Hubungkan aplikasi Anda (billing, CRM, sistem internal) dengan eBilling Chat: kirim pesan WhatsApp lewat HTTP dan terima pesan masuk secara real-time lewat webhook.
Admin membuat API key di menu API & Webhook. Kirim di setiap permintaan sebagai header:
Authorization: Bearer ebc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Batas 60 permintaan per menit per API key (HTTP 429 bila terlampaui). Simpan API key di server Anda, jangan di aplikasi peramban/HP.
POST https://chat.ebilling.co.id/v1.php?aksi=kirim — badan JSON:
curl -X POST 'https://chat.ebilling.co.id/v1.php?aksi=kirim' \
-H 'Authorization: Bearer ebc_...' \
-H 'Content-Type: application/json' \
-d '{"nomor": "081234567890", "pesan": "Halo Budi, tagihan bulan ini Rp150.000.", "nama": "Budi"}' Jawaban:
{"ok": true, "id": 1532, "nomor": "6281234567890", "status": "terkirim", "pesan": ""} nomor boleh 08…, 8…, atau 62…. nama opsional (mengisi nama kontak bila kosong). Pesan muncul di Inbox dengan label "API". HTTP 502 bila WhatsApp belum terhubung/gagal.
GET https://chat.ebilling.co.id/v1.php?aksi=status
{"ok": true, "terhubung": true, "nomor": "6281299998888"}
GET https://chat.ebilling.co.id/v1.php?aksi=pesan&nomor=6281234567890&sejak=0 — 100 pesan terbaru; isi sejak dengan id terakhir untuk mengambil yang lebih baru saja.
{"ok": true, "nomor": "6281234567890", "pesan": [{"id": 1530, "arah": "masuk", "teks": "Internet mati kak", "jenis": "teks", "status": "terkirim", "sumber": "wa", "media_tipe": null, "waktu": "2026-10-16 09:12:01"}]}
GET https://chat.ebilling.co.id/v1.php?aksi=kontak&cari=budi — maks. 200 kontak.
Admin mengisi URL penerima (https) di menu API & Webhook. Setiap pesan masuk dikirim sebagai POST JSON:
POST https://sistem-anda.id/webhook/whatsapp
X-EBC-Event: pesan.masuk
X-EBC-Signature: sha256=<HMAC-SHA256(badan, rahasia)>
{"event": "pesan.masuk", "waktu": "2026-10-16T09:12:01+07:00",
"data": {"id": 1530, "wa_id": "3EB0...", "nomor": "6281234567890", "nama": "Budi",
"teks": "Internet mati kak", "jenis": "teks", "media_tipe": null, "waktu": "2026-10-16 09:12:01"}} Event lain: pesan.status ({"wa_id": [...], "status": "diterima"|"dibaca"}). Periksa tanda tangan sebelum memproses, contoh PHP:
$badan = file_get_contents('php://input');
$sah = hash_equals('sha256=' . hash_hmac('sha256', $badan, RAHASIA), $_SERVER['HTTP_X_EBC_SIGNATURE'] ?? '');
if (!$sah) { http_response_code(401); exit; }
$data = json_decode($badan, true); Balas HTTP 2xx dalam 8 detik. Pengiriman tidak diulang otomatis bila gagal; gunakan aksi=pesan untuk menyusul.
| 200 | Berhasil |
| 401 | API key tidak ada / salah / dinonaktifkan |
| 404 | Aksi atau kontak tidak ditemukan |
| 422 | Isian tidak sah |
| 429 | Melebihi batas per menit |
| 502 | WhatsApp belum terhubung / pengiriman gagal |