API tích hợp · WhatsApp Unofficial

Gửi WhatsApp qua API tích hợp

Một điểm cuối không trạng thái để gửi tin nhắn WhatsApp từ ứng dụng hoặc hệ thống của bạn bằng cách sử dụng Local API Key — không JWT, không quy trình đăng nhập. Được xây dựng cho các tích hợp backend, công cụ tự động hóa (Zapier/n8n) hoặc webhooks tùy chỉnh.

Tổng quan

API Tích hợp cshub là con đường bên ngoài để gửi tin nhắn WhatsApp từ backend hoặc công cụ tự động hóa của bạn. Nó sử dụng một Local API Key theo từng doanh nghiệp để xác thực (khớp với hành vi Laravel whatscrmhub). Điểm cuối này tách biệt với các điểm cuối nội bộ được sử dụng bởi bảng điều khiển cshub + ứng dụng di động.

Base URL

https://api.cshub.id/api/v1

Content-Type

application/json

Xác thực

Xác thực sử dụng một Local API Key trong thân yêu cầu (`api_key`), không phải là tiêu đề HTTP. Mỗi doanh nghiệp có một Local API Key (UUID) được tạo tự động khi doanh nghiệp được tạo.

Không có JWT, không có tiêu đề token

Khác với các điểm cuối bảng điều khiển nội bộ, bạn chỉ cần đặt `api_key` trong thân yêu cầu và máy chủ sẽ xác định doanh nghiệp từ đó. Hãy coi Local API Key của bạn như một mật khẩu — không bao giờ cam kết nó vào các kho công khai hoặc tiết lộ nó trong mã frontend.

Cách lấy Local API Key

  1. Đăng nhập vào bảng điều khiển cshub tại /app.
  2. Mở Cài đặt → API Key (hoặc Hồ sơ → Tích hợp).
  3. Sao chép Local API Key. Bạn có thể tạo lại nó bất cứ lúc nào — khóa cũ sẽ trở nên không hợp lệ ngay lập tức.

Điểm cuối

Một điểm cuối duy nhất bao phủ mọi tin nhắn WhatsApp Không chính thức (whatsmeow) gửi đi. Chọn phương thức = text cho các tin nhắn tự do, hoặc phương thức = template để gửi một mẫu mà bạn đã cấu hình trong bảng điều khiển.

POST https://api.cshub.id/api/v1/integration/whatsapp/send-message

Xác thực

Local API Key trong thân yêu cầu (`api_key`)

Giới hạn tỷ lệ

Theo thiết bị (theo giới hạn daily_send của thiết bị)

Các trường thân yêu cầu

Thân yêu cầu là JSON. Các trường dưới đây tương đương với whatscrmhub Laravel — di chuyển từ phiên bản cũ hơn, hình dạng yêu cầu là giống hệt nhau.

Field Type Required Mô tả
api_keystring✅Local API Key theo từng doanh nghiệp (UUID). Lấy nó từ Cài đặt trong bảng điều khiển cshub.
phonestring✅Số điện thoại người nhận theo định dạng quốc tế không có "+" (ví dụ: 6281234567890), hoặc một JID nhóm khi `is_group` là true.
methodstring✅text, template
textstringmethod=textNội dung tin nhắn. Bắt buộc khi phương thức = text.
templatestringmethod=templateID Mẫu tin nhắn được tạo trong bảng điều khiển cshub. Bắt buộc khi phương thức = template.
variablesobject—Đối tượng `{placeholder: value}` cho việc thay thế mẫu. Ví dụ: `{"$name":"Budi"}` thay thế mọi `$name` trong tin nhắn mẫu bằng "Budi".
device_keystringphụ thuộc *UUID của thiết bị WhatsApp để gửi từ.
is_groupboolean—Đặt true nếu `phone` là một JID nhóm (ví dụ: 120363...@g.us).

Ví dụ yêu cầu

1. Gửi một tin nhắn văn bản đơn giản

cURL
curl -X POST "https://api.cshub.id/api/v1/integration/whatsapp/send-message" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "<LOCAL_API_KEY>",
    "device_key": "<DEVICE_ID>",
    "phone": "6281234567890",
    "method": "text",
    "text": "Halo, makasih udah order ya!"
  }'

2. Gửi một mẫu với việc thay thế biến

cURL
curl -X POST "https://api.cshub.id/api/v1/integration/whatsapp/send-message" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "<LOCAL_API_KEY>",
    "device_key": "<DEVICE_ID>",
    "phone": "6281234567890",
    "method": "template",
    "template": "<TEMPLATE_ID>",
    "variables": {
      "$name": "Pak Budi",
      "$order_id": "INV-20260602-001"
    }
  }'

3. Gửi đến một nhóm (sử dụng JID nhóm)

cURL
curl -X POST "https://api.cshub.id/api/v1/integration/whatsapp/send-message" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "<LOCAL_API_KEY>",
    "device_key": "<DEVICE_ID>",
    "phone": "120363012345678901@g.us",
    "method": "text",
    "text": "Pengumuman: order minggu ini ditutup pukul 17:00.",
    "is_group": true
  }'

Phản hồi thành công (200 OK)

200 OK
{
  "status": true,
  "message": "berhasil mengirim pesan"
}

Mã lỗi & cách khắc phục

Status Nguyên nhân Cách khắc phục
401Api Key Cannot be recognizedXác minh api_key là chính xác (sao chép lại từ bảng điều khiển) và doanh nghiệp không bị đình chỉ.
401Device tidak di temukanKiểm tra device_key có hợp lệ và thiết bị đang hoạt động. Kết nối lại thiết bị qua mã QR/mã ghép nối trong bảng điều khiển nếu cần.
401Template tidak dikenaliXác minh ID mẫu là chính xác và thuộc về doanh nghiệp của bạn (danh sách mẫu nằm trong bảng điều khiển → Dữ liệu chính → Mẫu).
422Daily send limit habisChờ đến khi reset hàng ngày (00:00 WIB) hoặc chuyển sang thiết bị khác. Tăng limit_per_day trên thiết bị nếu cần.
422Validation gagal (phone/method/text)Đảm bảo số điện thoại theo định dạng quốc tế không có "+" và phương thức là một trong các phương thức text/template.
502WhatsApp service unavailableDịch vụ WhatsApp đang gặp sự cố. Thử lại sau vài phút hoặc kiểm tra trạng thái thiết bị trong bảng điều khiển.

Ghi chú & giới hạn

  • Có một giới hạn daily_send theo từng thiết bị. Tránh gửi hơn ~10 tin nhắn/giây từ một thiết bị duy nhất để tránh bị cấm WhatsApp.
  • Nếu doanh nghiệp của bạn có `api_device_use = required`, trường `device_key` là bắt buộc. Nếu nó là tùy chọn, máy chủ sẽ chọn một thiết bị hoạt động dựa trên cài đặt `whatsapp_sender_notif` (`sequence` / `spin` / `random`).
  • Việc thay thế biến sử dụng `str_replace` — các placeholder có thể là bất kỳ chuỗi nào (ví dụ: `$name`, `{name}`, `[NAME]`). Nó chỉ cần khớp chính xác với văn bản bên trong tin nhắn mẫu.
  • Luôn định dạng mà không có "+" và không có khoảng trắng/dấu gạch ngang. Ví dụ: 6281234567890 (Indonesia), 60123456789 (Malaysia). Đối với các nhóm, sử dụng JID đầy đủ với hậu tố `@g.us`.
  • Phiên bản MVP: tải lên tệp nhị phân qua multipart/form-data chưa được hỗ trợ. Để gửi phương tiện, sử dụng phương thức=template với một mẫu đã có hình ảnh được cấu hình trong bảng điều khiển.

API Tích hợp vs API Bảng điều khiển Nội bộ

cshub cố ý giữ hai con đường gửi tin nhắn. API Tích hợp dành cho các nhà phát triển bên thứ ba và tự động hóa; API Nội bộ cung cấp năng lượng cho bảng điều khiển web cshub và ứng dụng di động. Đối tượng khác nhau, xác thực khác nhau, hình dạng phản hồi khác nhau.

Integration API API Bảng điều khiển Nội bộ
Đối tượngCác nhà phát triển backend, Zapier, n8n, tích hợp tùy chỉnhbảng điều khiển web cshub-fe, ứng dụng di động cshub
URL/integration/whatsapp/send-message/app/device/{id}/chats/send
Xác thựcapi_key di bodyJWT Bearer + X-Business-ID + CSRF
Hình dạng phản hồi{status, message}{success, message, data}

Sẵn sàng để tích hợp?

Đăng nhập vào bảng điều khiển cshub, lấy Local API Key của bạn từ Cài đặt và bắt đầu gửi WhatsApp từ hệ thống của bạn.