Paymenku Docs

Galat & kode status

Arti setiap kode HTTP, bentuk envelope galat, dan kebijakan percobaan ulang.

Kode HTTP

KodeArtiYang harus dilakukan
200Berhasil—
201Objek dibuat (payment link)—
400Permintaan tidak valid, atau kanal tidak aktif secara globalPerbaiki permintaan; jangan ulangi
401Kunci API tidak ada, formatnya salah, atau tidak dikenaliPerbaiki kredensial
403Kanal belum diaktifkan untuk merchant, KYC belum disetujui, atau fitur menolak kunci ujiAktifkan kanal / selesaikan KYC
404Objek tidak ada, atau milik merchant lainJangan ulangi
422Validasi gagal, atau nominal di luar batas kanalPerbaiki input
429Melebihi kuotaTunggu Retry-After, lalu ulangi dengan backoff
500Galat di sisi PaymenkuUlangi dengan backoff; hubungi dukungan bila menetap
500Penyedia menolak permintaanPesan galat dari penyedia, sering disertai error_code

Dua bentuk galat

Endpoint transaksi, kanal, dan payment link:

{
  "status": "error",
  "message": "Payment channel is inactive."
}

Endpoint fee, instruction, dan wallet:

{
  "success": false,
  "message": "Wallet not found"
}

Fee calculator dan payment instruction memakai validator Laravel langsung, sehingga galat validasinya tanpa status:

{
  "message": "The amount field is required.",
  "errors": { "amount": ["The amount field is required."] }
}

Galat validasi

{
  "status": "error",
  "message": "Validation failed",
  "errors": {
    "amount": ["validation.required"],
    "reference_id": ["validation.required"]
  }
}

Kunci pada errors adalah nama field; nilainya daftar pesan galat.

Pesan yang sering muncul:

PesanSebab
Validation failedField wajib kosong atau format salah
validation.exists pada channel_codeKode kanal tidak dikenal
Minimum amount for ... is Rp 10.000Nominal di bawah batas kanal
Payment channel is not enabled for your merchant account.Kanal belum diaktifkan
Unauthorized. API Token required.Header Authorization tidak dikirim
Transaction not foundtrx_id/reference_id salah atau milik merchant lain
Rate limit exceeded.Kuota per menit habis

Kebijakan percobaan ulang

KondisiUlangi?Cara
400, 401, 403, 404, 422TidakPerbaiki dulu penyebabnya
429YaTunggu Retry-After, lalu backoff eksponensial + jitter
500, 502, 503, 504YaBackoff eksponensial, batasi jumlah percobaan
Timeout jaringanYaPakai Idempotency-Key agar tidak membuat transaksi ganda

Selalu baca kode HTTP dan body

Jangan hanya memeriksa status/success. Kode HTTP membawa arti yang tidak selalu muncul di body, terutama 429 dan 503.

Melaporkan masalah

Sertakan trx_id, waktu permintaan (dengan zona waktu), endpoint, dan kode HTTP saat menghubungi dukungan. Jangan pernah mengirim kunci API lengkap.

On this page