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
- Đăng nhập vào bảng điều khiển cshub tại /app.
- Mở Cài đặt → API Key (hoặc Hồ sơ → Tích hợp).
- 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.
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_key | string | ✅ | 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. |
| phone | string | ✅ | 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. |
| method | string | ✅ | text, template |
| text | string | method=text | Nội dung tin nhắn. Bắt buộc khi phương thức = text. |
| template | string | method=template | ID 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. |
| variables | object | — | Đố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_key | string | phụ thuộc * | UUID của thiết bị WhatsApp để gửi từ. |
| is_group | boolean | — | Đặ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 -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 -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 -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)
{
"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 |
|---|---|---|
| 401 | Api Key Cannot be recognized | Xá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ỉ. |
| 401 | Device tidak di temukan | Kiể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. |
| 401 | Template tidak dikenali | Xá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). |
| 422 | Daily send limit habis | Chờ đế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. |
| 422 | Validation 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. |
| 502 | WhatsApp service unavailable | Dị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ượng | Các nhà phát triển backend, Zapier, n8n, tích hợp tùy chỉnh | bả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ực | api_key di body | JWT 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.