Dokumentasi APIEnglish
Kode error dan cara memperbaikinya.
Setiap jawaban gagal membawa status HTTP dan kode. API v2 selalu menulis { "error": { "type", "code", "message", "param", "doc_url", "request_id" } }; doc_url menuju baris kode itu di halaman ini.
Aturan umum
- 4xx: perbaiki permintaannya dulu. Kirim ulang tanpa perubahan memberi hasil yang sama, kecuali 429 dan 409
request_in_progress. - 429: tunggu sesuai header
Retry-After(detik), lalu kirim ulang. - 5xx atau koneksi putus: kirim ulang dengan jeda bertambah dan
Idempotency-Keyyang sama, agar tidak terkirim dua kali. - Sebutkan
request_id(juga di headerRequest-Id) saat menghubungi dukungan Klik Flow.
Daftar kode
type mengelompokkan kode: authentication_error, permission_error, invalid_request_error, not_found_error, conflict_error, rate_limit_error, channel_error, dan api_error.
| Kode | HTTP | Arti dan cara memperbaiki |
|---|---|---|
missing_keyauthentication_error | 401 | Kunci API belum dikirim. Kirim kunci di header Authorization: Bearer kf_live_… atau kf_test_…. |
key_invalidauthentication_error | 401 | Kunci API tidak dikenal. Kunci salah ketik atau bukan Kunci API. Buat kunci di Pengaturan › API & Webhook. |
key_revokedauthentication_error | 401 | Kunci API sudah dicabut. Kunci sudah dicabut atau masa tenggang setelah diganti sudah habis. Pakai kunci barunya. |
key_expiredauthentication_error | 401 | Kunci API kedaluwarsa. Masa berlaku kunci habis. Buat kunci baru. |
member_inactiveauthentication_error | 401 | Pembuat kunci bukan anggota lagi. Pembuat kunci tidak lagi anggota bisnis ini. Owner perlu membuat kunci baru. |
ip_not_allowedpermission_error | 403 | IP server tidak ada di daftar kunci. Tambahkan IP server Anda di daftar IP kunci, atau kosongkan daftarnya. |
plan_no_apipermission_error | 403 | Paket belum memuat API untuk kunci live. Kunci live butuh paket dengan fitur API. Kunci tes bisa dipakai di semua paket. |
tenant_blockedpermission_error | 403 | Akses bisnis ditangguhkan. Akses bisnis ini sedang ditangguhkan. Hubungi dukungan Klik Flow. |
rate_limitedrate_limit_error | 429 | Terlalu banyak permintaan per menit. Tunggu sesuai header Retry-After (detik), lalu kirim ulang. |
internal_errorapi_error | 500 | Gangguan di Klik Flow. Ada gangguan di Klik Flow. Kirim ulang dengan Idempotency-Key yang sama; sebutkan request_id bila terulang. |
scope_missingpermission_error | 403 | Kunci tidak punya izin ini. Kunci ini tidak punya izin untuk aksi ini. Buat kunci dengan izin yang tertulis di referensi. |
permission_missingpermission_error | 403 | Role pembuat kunci tidak punya izin ini. Role pembuat kunci tidak punya izin ini. Owner bisa menambahkannya di Pengaturan › Role & hak akses. |
invalid_jsoninvalid_request_error | 400 | Body bukan JSON yang sah. Kirim body JSON dengan header Content-Type: application/json. |
idempotency_key_invalidinvalid_request_error | 400 | Idempotency-Key tidak sah. Idempotency-Key 1–255 karakter tanpa spasi, misalnya UUID. |
idempotency_conflictconflict_error | 409 | Idempotency-Key dipakai untuk isi lain. Idempotency-Key ini sudah dipakai untuk permintaan lain. Pakai kunci baru untuk permintaan baru. |
request_in_progressconflict_error | 409 | Permintaan yang sama masih diproses. Permintaan dengan Idempotency-Key yang sama masih diproses. Coba lagi beberapa detik lagi. |
invalid_requestinvalid_request_error | 422 | Field tidak sah. Field di param tidak sah. Periksa tipe dan nilainya di referensi. |
invalid_phoneinvalid_request_error | 422 | Nomor tujuan tidak sah. Pakai 8–15 digit dengan kode negara, misalnya 6281234567890. |
message_too_longinvalid_request_error | 422 | Pesan terlalu panjang. Maksimal 4.000 karakter untuk teks dan keterangan. |
media_too_largeinvalid_request_error | 413 | File terlalu besar. Perkecil file sesuai batas jenisnya. |
test_number_requiredpermission_error | 403 | Kunci tes hanya ke nomor uji. Kunci tes hanya mengirim ke nomor uji. Tambahkan nomornya di Pengaturan › API & Webhook › Nomor uji. |
channel_not_allowedpermission_error | 403 | Saluran tidak boleh dipakai kunci ini. Kunci ini dibatasi ke saluran lain, atau role pembuatnya tidak boleh memakai saluran ini. |
channel_unavailablechannel_error | 409 | Tidak ada nomor WhatsApp yang bisa dipakai. Tidak ada nomor WhatsApp tersambung yang boleh dipakai kunci ini. Sambungkan di Channel atau isi from. |
channel_pausedpermission_error | 403 | Saluran sedang dijeda. Saluran dijeda karena melebihi kuota paket. Owner bisa membuka jedanya di Channel. |
window_closedchannel_error | 409 | Di luar jendela 24 jam. Di luar 24 jam sejak pelanggan terakhir menulis. Kirim type: template. |
contact_blockedchannel_error | 422 | Kontak diblokir atau berhenti berlangganan. Kontak diblokir atau berhenti berlangganan, jadi tidak dikirimi pesan. |
daily_limitrate_limit_error | 429 | Batas pesan harian tercapai. Batas pesan harian tercapai. Tunggu sesuai Retry-After, atau naikkan paket. |
send_failedchannel_error | 502 | Pesan gagal terkirim. Pesan dibuat tapi gagal terkirim. Lihat message, lalu kirim ulang dengan Idempotency-Key yang sama. |
not_foundnot_found_error | 404 | Tidak ditemukan. Id tidak ada atau di luar cakupan pembuat kunci. |
template_not_foundnot_found_error | 404 | Template tidak ditemukan atau belum disetujui. Template tidak ada atau belum disetujui. Periksa nama dan bahasanya di GET /api/v2/templates. |
template_valuesinvalid_request_error | 422 | Variabel template belum lengkap. Isi semua variabel template yang disebut di message. |
template_not_supportedinvalid_request_error | 422 | Jenis template belum didukung. Jenis template ini belum bisa dikirim lewat API. |
otp_code_invalidinvalid_request_error | 422 | Kode OTP tidak sah. Isi otp.code 1–15 huruf, angka, atau tanda -. |
new_chat_limitrate_limit_error | 429 | Batas chat ke nomor baru tercapai. Batas chat ke nomor baru hari ini tercapai untuk kunci ini. |
channel_refusedchannel_error | 502 | WhatsApp menolak pesan. WhatsApp menolak pesan. Alasannya ada di message. |
cursor_invalidinvalid_request_error | 400 | Cursor tidak sah. Pakai next_cursor dari jawaban sebelumnya apa adanya. |
live_key_requiredpermission_error | 403 | Butuh kunci live. Mengelola webhook butuh kunci live, karena webhook menerima event sungguhan. Kunci tes tetap bisa membaca dan mengirim ke nomor uji. |
webhook_limitinvalid_request_error | 422 | Batas jumlah webhook tercapai. Maksimal 5 webhook per bisnis. Hapus webhook yang tidak dipakai lebih dulu. |
console_test_onlypermission_error | 403 | Konsol Coba hanya untuk kunci tes. Konsol Coba di docs hanya menerima kunci tes (kf_test_…). Panggil API dengan kunci live dari server Anda. |