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).

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 adaLihat details.field untuk nama field
VALIDATION_INVALID_FIELD400Format field tidak valid (panjang, tipe, regex)Lihat details.hint

WhatsApp — pengiriman umum

KodeHTTPPenyebabSolusi
WHATSAPP_SESSION_CLOSED400Di luar jendela 24 jamPakai template
WHATSAPP_CHANNEL_NOT_FOUND404channel_id tidak valid, atau >1 saluran tanpa channel_idCek saluran aktif di dashboard
WHATSAPP_SEND_FAILED502Meta menolak requestLihat details. Coba lagi setelah beberapa saat.
WHATSAPP_MEDIA_UPLOAD_FAILED400URL media tidak bisa di-fetch Meta (404, timeout, terlalu besar)Pastikan 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, atau cta_url
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
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