API
Penanganan Error
Daftar error yang mungkin muncul dari endpoint API NgirimWA, beserta penyebab dan solusinya.
Daftar error yang mungkin Anda temui dan cara mengatasinya.
Ringkasan Kode HTTP
| Kode | Arti | Endpoint yang umum trigger |
|---|---|---|
| 400 | Request tidak valid (validation / nomor / device offline) | semua POST |
| 401 | API Key tidak disertakan | semua |
| 403 | API Key salah / nonaktif | semua |
| 404 | Resource tidak ditemukan (template, dll) | /messages/send-template |
| 429 | Kuota bulanan habis atau rate limit IP | /messages/* |
| 500 | Error internal | semua |
Detail per error di bawah.
API Key Tidak Valid
Respon
{
"success": false,
"message": "Invalid API Key"
}Status Code: 403
Penyebab:
- API Key salah atau sudah tidak aktif
- Header
x-api-keytidak disertakan
Solusi:
- Periksa API Key di dashboard
- Pastikan header
x-api-keyada di request
Kuota Pesan Habis
Respon:
{
"success": false,
"message": "Monthly message quota exceeded"
}Status Code: 429
Penyebab:
- Kuota bulanan habis
Solusi:
- Upgrade paket langganan
- Tunggu reset kuota bulan depan (tanggal 1)
Perangkat Tidak Terhubung
Respon:
{
"success": false,
"message": "Device not connected"
}Status Code: 400
Penyebab:
- WhatsApp belum di-scan QR
- Koneksi terputus
Solusi:
- Hubungkan perangkat via dashboard
- Gunakan endpoint
/devices/connectuntuk mendapatkan QR baru
Format Nomor Tidak Valid
Respon
{
"success": false,
"message": "Invalid phone number format"
}Status Code: 400
Penyebab:
- Format nomor telepon salah
Solusi:
- Gunakan format:
628123456789,08123456789, atau8123456789 - Pastikan nomor adalah nomor Indonesia
Template Tidak Ditemukan
Respon
{
"success": false,
"message": "Template not found"
}Status Code: 404
Penyebab:
- Template ID salah
- Template sudah dihapus
Solusi:
- Periksa template ID di dashboard
- Buat template baru jika diperlukan
Rate Limit Terlampaui
Respon
{
"success": false,
"error": "Too many requests, please try again later."
}Status Code: 429
Penyebab:
- Lebih dari 200 request per jam dari IP yang sama
Solusi:
- Tunggu reset window (lihat header
RateLimit-Reset) - Kurangi frekuensi request
- Implementasikan queue / debounce untuk pengiriman massal
- Bila volume tinggi, kirim dari beberapa server (IP berbeda → kuota terpisah)
Tips Penanganan Error
try {
const result = await kirimPesan('628123456789', 'Halo!');
if (result.success) {
console.log('Pesan terkirim!');
}
} catch (error) {
if (error.response?.status === 429) {
console.log('Tunggu sebentar sebelum mencoba lagi');
} else if (error.response?.status === 400) {
console.log('Periksa format data Anda');
} else if (error.response?.status === 403) {
console.log('API Key tidak valid');
}
}