Notifikasi pesanan, pengingat tagihan, nomor resi, OTP. Bukan gateway seadanya — idempotency, retry webhook, dan batas laju sudah terpasang sejak awal.
curl -X POST https://api.chaty.id/api/v1/messages \
-H "Authorization: Bearer crm_a1b2c3d4.XyZ..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-8812-notif" \
-d '{
"accountId": 5,
"to": "628123456789",
"type": "text",
"body": "Halo! Pesanan #8812 sudah dikirim."
}'
# 202 Accepted
{ "success": true, "data": { "messageId": 304, "status": "pending" } }Kenapa beda
Gateway WhatsApp gampang dibuat. Yang susah itu bikin dia tetap benar saat jaringan putus, saat request dobel, dan saat volumenya naik.
Sembilan scope terpisah — messages:send, contacts:read, dan seterusnya. Key bisa dikunci ke nomor tertentu saja, dan dicabut seketika dari dashboard.
Kirim ulang request dengan header Idempotency-Key yang sama, respons pertama yang dikembalikan. Jaringan putus di tengah jalan tidak lagi berarti pelanggan dapat notifikasi dua kali.
Pesan masuk, perubahan status, dan update kontak dikirim ke endpoint-mu. Gagal? Dicoba lagi otomatis, dan tiap percobaan tercatat supaya bisa ditelusuri.
Sisa kuota dikirim di header tiap respons — X-RateLimit-Remaining dan Retry-After. Tidak perlu menebak kapan boleh mengirim lagi.
Endpoint
Dokumentasi lengkap dan playground interaktif tersedia di dalam dashboard — semua endpoint bisa dicoba langsung dari browser.
/v1/messages Kirim pesan teks, media, atau template/v1/messages/:id Cek status satu pesan/v1/chats Daftar percakapan/v1/chats/:id/messages Riwayat pesan satu chat/v1/contacts Daftar & cari kontak/v1/contacts Tambah atau perbarui kontak/v1/contacts/check Cek nomor terdaftar di WhatsApp atau tidak/v1/media Upload gambar, dokumen, atau audio/v1/accounts Daftar nomor & status koneksinya/v1/webhooks Daftarkan endpoint webhookWebhook
Pasang endpoint webhook, terima pesan masuk secara realtime, proses di sistemmu, lalu balas lewat API. Itu pola bot balas-otomatis yang paling sederhana.
// Webhook masuk ke server-mu saat ada pesan baru
{
"event": "message.received",
"data": {
"chatId": 23,
"from": "628123456789",
"type": "text",
"body": "Kak, pesanan saya sudah dikirim belum?"
}
}Satu catatan penting: abaikan event message.sent hasil kirimanmu
sendiri, kalau tidak bot-nya akan membalas dirinya sendiri tanpa henti.
Kami kirimkan akses playground supaya kamu bisa mencoba tiap endpoint sebelum memutuskan.