Error
Setiap respons API Kirisan berformat JSON. Panggilan berhasil menyertakan "status": true. Kegagalan menyertakan "status": false dan "reason" yang mudah dibaca ketika seluruh permintaan gagal sebelum pengiriman ke channel.
Kode status HTTP
| Status | Kapan terjadi |
|---|---|
200 | Permintaan terurai — periksa "status" di body (send dapat mengembalikan 200 dengan "status": false dan detail channel) |
400 | JSON tidak valid, field hilang, atau error validasi |
401 | Bearer token hilang atau tidak valid |
403 | Bearer token valid tetapi channel key bukan milik akun Anda |
503 | Layanan sementara tidak tersedia |
POST /v1/send biasanya mengembalikan HTTP 200 meskipun pengiriman gagal — baca "status" dan "channels".
reason tingkat atas
Ini muncul di root respons ketika permintaan tidak pernah sampai ke pengiriman, atau ketika setiap channel gagal secara blocking:
| Reason (contoh) | Arti |
|---|---|
missing api token / invalid api token | Perbaiki Authorization: Bearer … — lihat Authentication |
invalid JSON | Body bukan JSON valid |
No channels configured | keys kosong — sertakan minimal satu token channel |
content required | Tidak ada objek content dengan minimal satu channel |
no sendable channels: content requires a matching key | Anda mengatur content.whatsapp tetapi tidak menyertakan keys.whatsapp, atau sejenisnya |
Invalid schedule: the time is in the past. | context.timing.schedule harus timestamp Unix di masa depan |
whatsapp key does not belong to this account | Token channel milik pengguna lain (403) |
Error validasi dari body pesan juga dikembalikan sebagai "reason" tingkat atas sebelum send — misalnya email inline messages are not supported on /v1/send atau waba message type must be text, interactive, image, video, or document.
Error per channel (channels)
Pada POST /v1/send, setiap channel yang Anda coba punya objek sendiri di bawah "channels":
{
"status": false,
"channels": {
"whatsapp": {
"status": false,
"reason": "template is not approved for sending",
"processing_time": "142ms"
},
"email": {
"status": true,
"processing_time": "891ms"
}
}
} | Field | Arti |
|---|---|
status | true jika channel tersebut terkirim (atau dijadwalkan) |
reason | Ada jika status adalah false — kuota, target hilang, template tidak aktif, error provider, dll. Untuk email, error SMTP/transport diringkas menjadi kalimat singkat yang mudah dibaca (misalnya Recipient address does not exist). Teks mentah provider hanya disimpan di log internal. Kegagalan email yang tidak dikenali mengembalikan Email could not be delivered. Pesan kuota seperti insufficient quota dan paid plan expired dikembalikan apa adanya. |
detail | Payload provider tambahan pada beberapa channel (WhatsApp, Telegram, WABA) |
processing_time | Lama panggilan ke provider |
scheduled | true ketika pesan diantre untuk context.timing.schedule |
fallback | true ketika channel ini mengirim sebagai bagian dari tier fallback |
Ketika satu channel gagal dan yang lain berhasil (misalnya WhatsApp gagal, fallback email berhasil), "status" tingkat atas mungkin tetap true jika ada channel yang terkirim.
Error template saat send
Ketika content.<channel>.template menunjuk ke template dashboard yang tidak bisa dikirim:
| Reason | Arti |
|---|---|
template is not approved for sending | Template masih menunggu review atau ditolak |
template is inactive | Template ada tetapi dimatikan di dashboard |
WhatsApp template not found | ID salah, channel salah, atau template milik akun lain |
Buat template di Channel → channel → Templates dan pastikan status Approved dan Active sebelum mereferensikan ID-nya saat send.
Terkait
- Authentication — token dan channel key
- Send API — bentuk permintaan dan perilaku fallback
- Send messages — tier fallback yang sama di dashboard