Overview
CloudChat menyediakan REST API terpadu untuk mengelola percakapan dari berbagai channel chat populer. Satu API key, banyak channel, satu inbox.
Authentication
Authenticate request menggunakan header Authorization dengan API Key Anda.
Jangan share di client-side code (browser/aplikasi). Jika kompromised, generate ulang di App Settings.
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Send Messages
Kirim pesan teks atau media ke channel apa pun yang didukung. Sistem otomatis menangani logic per-channel.
/api/public/v1/messages
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://app.cloudchat.id/api/public/v1/messages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'channel' => 'whatsapp',
'to' => '6281234567890',
'type' => 'text',
'text' => 'Halo dari CloudChat API!',
]),
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
// Node.js (axios)
import axios from 'axios';
const res = await axios.post(
'https://app.cloudchat.id/api/public/v1/messages',
{
channel: 'whatsapp',
to: '6281234567890',
type: 'text',
text: 'Halo dari CloudChat API!',
},
{
headers: {
Authorization: 'Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
},
}
);
console.log(res.data);
Webhooks
Daftarkan URL webhook untuk menerima event real-time saat pesan masuk, status berubah, dll.
1. Event Payload
Contoh payload event pesan masuk:
{
"event": "message.received",
"id": "evt_123456",
"timestamp": 1700000000,
"channel": "whatsapp",
"session_id": "uuid-session-001",
"data": {
"from": "6281234567890",
"pushName": "John Doe",
"text": "Halo, saya tertarik produk Anda",
"media": null
}
}
2. Verifikasi Webhook
Setiap event mengandung header X-CloudChat-Signature berupa HMAC-SHA256 dari body.
Verifikasi sebelum memproses event di server Anda.
3. Retry Policy
- Kami expect respons
200 OKdalam 5 detik. - Jika server Anda fail (5xx) atau timeout, kami retry 3 kali.
- Retries menggunakan exponential backoff:
2s, 4s, 8s.
Error Reference
Semua error mengikuti format JSON konsisten dengan kode dan pesan jelas.
| Code | Name | Description |
|---|---|---|
400 | Bad Request | Body tidak valid atau parameter wajib hilang. |
401 | Unauthorized | API key tidak valid atau hilang. |
403 | Forbidden | Akses ditolak — periksa scope key Anda. |
404 | Not Found | Resource tidak ditemukan. |
429 | Rate Limit | Melebihi 60 req/min — terapkan exponential backoff. |
500 | Server Error | Internal server error — coba ulang dengan backoff. |
Email kami di care@cloudchat.id atau hubungi via Pusat Bantuan.