Chatera Docs
API & Integrasi

Daftar Kode Error

Referensi lengkap kode error API Chatera, penyebab umum, dan cara mengatasinya.

Semua error dari API Chatera memakai envelope yang sama:

{
  "success": false,
  "error": {
    "code": "VALIDATION_INVALID_PHONE",
    "message": "Format nomor telepon tidak valid",
    "details": { "field": "to", "hint": "..." }
  }
}

error.code adalah identifier mesin yang stabil — pakai untuk branching logic di handler kamu (jangan parse message, karena kalimatnya bisa berubah).

Isi error.details bervariasi per kode error:

Field detailsMuncul diIsi
details.field + details.hintError validasiNama field yang bermasalah + petunjuk perbaikan
details.errors[]Validasi multi-field (mis. komponen template)Array { field, message }
details.errorWHATSAPP_SEND_FAILEDPesan error asli dari Meta, diteruskan apa adanya — mis. (#132001) Template name does not exist in the translation. Ini sumber informasi paling akurat saat pengiriman ditolak Meta

Autentikasi

KodeHTTPPenyebabSolusi
AUTH_MISSING_KEY401Header Authorization / X-API-Key tidak dikirimTambah header autentikasi
AUTH_INVALID_KEY401Key tidak valid (salah ketik, prefix salah, atau tidak ada di DB)Cek key, pastikan diawali chatera_sk_ atau chatera_pk_
AUTH_KEY_REVOKED401Key dicabut dari dashboardBuat key baru
AUTH_KEY_EXPIRED401Key memiliki masa berlaku dan sudah lewatBuat key baru
AUTH_INSUFFICIENT_SCOPE403Key tidak punya scope yang dibutuhkan endpointBuat key baru dengan scope yang sesuai

Validasi

KodeHTTPPenyebabSolusi
VALIDATION_ERROR400Generic validation failureLihat details.errors[]
VALIDATION_INVALID_PHONE400Format nomor tidak validPakai E.164 (628xxx atau +628xxx)
VALIDATION_MISSING_FIELD400Field wajib tidak ada — termasuk channel_id saat organisasi punya lebih dari satu saluran WhatsApp aktifLihat details.field untuk nama field
VALIDATION_INVALID_FIELD400Format field tidak valid (panjang, tipe, regex). Juga dipakai untuk pesan reaction, sticker, dan contacts yang field-nya kurang, serta reaction.message_id (UUID Chatera) yang tidak ditemukanLihat details.hint atau details.errors[]

WhatsApp — pengiriman umum

KodeHTTPPenyebabSolusi
WHATSAPP_SESSION_CLOSED403Di luar jendela 24 jam (semua tipe selain template, termasuk reaction, sticker, contacts)Pakai template
WHATSAPP_CHANNEL_NOT_FOUND404channel_id tidak valid / tidak aktif, atau organisasi belum punya saluran WhatsApp aktifCek saluran aktif di dashboard
WHATSAPP_SEND_FAILED500Meta menolak requestBaca details.error (pesan asli Meta). Untuk #132001 lihat troubleshooting template. Error 5xx boleh di-retry dengan backoff.
WHATSAPP_MEDIA_UPLOAD_FAILED500Dicadangkan, saat ini belum dikembalikan endpoint mana pun. URL media yang gagal di-fetch Meta biasanya dilaporkan belakangan lewat webhook message.failedPastikan URL HTTPS publik dan ukuran sesuai limit Meta

WhatsApp — template

KodeHTTPPenyebabSolusi
WHATSAPP_TEMPLATE_NOT_FOUND404Nama template salah / belum approvedCek di Meta Business Manager
WHATSAPP_TEMPLATE_REJECTED400Template ditolak MetaBuat ulang di Meta Business Manager
WHATSAPP_TEMPLATE_INVALID_COMPONENTS400Struktur components tidak validLihat details.errors[]
WHATSAPP_TEMPLATE_MISSING_BUTTON_INDEX400Komponen button tanpa indexTambah index: 0 (atau posisi yang tepat)
WHATSAPP_TEMPLATE_INVALID_PARAMETER_TYPE400Tipe parameter tidak cocok untuk komponenMis. currency di header tidak diperbolehkan

WhatsApp — pesan interaktif

KodeHTTPPenyebabSolusi
WHATSAPP_INTERACTIVE_INVALID_TYPE400interactive.type tidak dikenalPakai button, list, cta_url, atau location_request_message
WHATSAPP_INTERACTIVE_MISSING_FIELD400Field wajib tidak adaCek details.field
WHATSAPP_INTERACTIVE_INVALID_FIELD400Format field tidak valid (URL, panjang, dll)Cek details.hint
WHATSAPP_INTERACTIVE_LIMIT_EXCEEDED400Melebihi batas tombol/section/karakterLihat tabel batas di Pesan Interaktif

Resource

KodeHTTPPenyebabSolusi
RESOURCE_NOT_FOUND404Resource (kontak, percakapan, template) tidak ditemukanCek ID yang dikirim
RESOURCE_ALREADY_EXISTS409Resource dengan identifier yang sama sudah ada (mis. kontak dengan nomor sama)Pakai endpoint list / update untuk modify resource yang ada

Rate limit & server

KodeHTTPPenyebabSolusi
SUBSCRIPTION_READ_ONLY402Langganan organisasi tidak aktif. Request baca (GET) tetap jalan, request yang mengubah data (POST) ditolakPerpanjang langganan di dashboard
RATE_LIMIT_EXCEEDED429Melebihi batas request per menit / per hariTunggu beberapa saat. Lihat header X-RateLimit-Reset.
SERVER_INTERNAL_ERROR500Error tidak terduga di server ChateraCoba lagi dengan exponential backoff. Hubungi support kalau berlanjut.
SERVER_SERVICE_UNAVAILABLE503Layanan sedang maintenance / overloadCoba lagi dalam beberapa menit

Strategi retry

Tidak semua error layak di-retry. Aturan umum:

HTTPRetry?
4xx (kecuali 429)Jangan retry — perbaiki request kamu dulu
429Ya, dengan exponential backoff. Hormati header X-RateLimit-Reset
500, 502, 503, 504Ya, dengan exponential backoff (1s → 2s → 4s → 8s)
Network error / timeoutYa, dengan exponential backoff

Jangan retry pesan WhatsApp tanpa idempotency

Kalau request POST /v1/whatsapp/messages mengembalikan timeout network (bukan 4xx/5xx dari server), pesan mungkin sudah dikirim. Cek webhook message.sent sebelum retry, atau implementasikan deduplication di sisi kamu (lihat Konvensi).

On this page