Error & Status
Ada dua bentuk respons kesalahan tergantung sumbernya: validasi input, dan kegagalan yang lain (kunci API, perangkat, pengiriman pesan).
Kesalahan validasi input
Jika field yang dikirim tidak lolos validasi (misalnya target salah format, atau message kosong), responsnya HTTP 422 dengan bentuk baku Laravel, bukan bentuk { status, message, data } yang dipakai di tempat lain:
{
"message": "The target field format is invalid.",
"errors": {
"target": [
"Invalid target format. Use number@s.whatsapp.net or id@g.us."
]
}
}Kesalahan lainnya
Selain validasi, semua kesalahan berbentuk { status, message }. Field status di body-lah yang jadi acuan, bukan semata kode status HTTP-nya, lihat catatan tentang kunci API tidak valid di bawah.
{
"status": 400,
"message": "Failed to send message. Please try again."
}Referensi status
| HTTP | status di body | Penyebab |
|---|---|---|
| 200 | 200 | Berhasil. |
| 401 | 401 | Header Api-Key tidak disertakan. |
| 200 | 401 | Header Api-Key disertakan tapi kuncinya tidak dikenal. Perhatikan: kode HTTP-nya 200, bukan 401, periksa field status di body. |
| 422 | - | Input tidak lolos validasi, lihat bentuk respons di atas. |
| 400 | 400 | Gagal mengirim: saldo token tidak cukup, perangkat tidak tersambung, atau gateway WhatsApp menolak pesan. Ketiganya memakai pesan generik yang sama. |
| 400 | 400 | Template tidak ditemukan, atau variable tidak lengkap/tidak valid untuk endpoint kirim template. |
| 500 | 500 | Gagal mengambil status perangkat. |
Saldo token tidak cukup
Kegagalan karena saldo tidak cukup memakai respons generik yang sama dengan kegagalan pengiriman lainnya (HTTP 400, "Failed to send message. Please try again."), bukan pesan khusus. Cek saldo dari dashboard sebelum mengirim dalam volume besar.
