Lewati ke konten utama

Apa arti kode galat API SekaliPay?

Galat dikenali dari status HTTP dan kodenya. Kode ada di error_code untuk galat autentikasi dan batas permintaan, dan di message untuk galat dari endpoint. Galat validasi field memakai status 422 dengan daftar errors per field dan tanpa kode.

Isi halaman ini dicocokkan dengan kode API per 16 Oktober 2026.

Ada berapa bentuk respons galat?#

BentukMuncul saatKode ada di
Autentikasi dan batasAPI key, IP, tanda tangan, atau batas permintaan bermasalaherror_code
EndpointAturan bisnis endpoint menolak permintaanmessage
Validasi (422)Field permintaan tidak validTidak ada kode; lihat errors
{
  "success": false,
  "message": "Access denied. Your IP address is not whitelisted.",
  "your_ip": "203.0.113.10",
  "error_code": "IP_NOT_WHITELISTED"
}

Selalu kirim Accept: application/json

Tanpa header ini, galat validasi dibalas pengalihan 302 ke beranda SekaliPay, bukan JSON 422. URL yang salah dibalas halaman HTML 404.

Apa saja kode galatnya?#

HTTPKodeArti
401MISSING_API_KEYHeader X-API-Key tidak dikirim.
401INVALID_API_KEYAPI key salah, sudah diganti, atau akun tidak aktif.
403IP_WHITELIST_NOT_CONFIGUREDMode IP Whitelist aktif tetapi belum ada IP terdaftar. Tambahkan IP, atau matikan whitelist untuk memakai Enhanced HMAC.
403IP_WHITELIST_INVALIDKonfigurasi whitelist akun rusak. Hubungi dukungan.
403IP_NOT_WHITELISTEDIP pengirim tidak terdaftar. Daftarkan IP yang tertera di your_ip.
401MISSING_SIGNATUREPermintaan POST di mode IP Whitelist tanpa header X-Signature.
401INVALID_SIGNATURETanda tangan body tidak cocok. Tanda tangani byte yang persis sama dengan yang dikirim.
401MISSING_HMAC_SIGNATUREMode Enhanced HMAC aktif tetapi X-Signature atau X-Timestamp tidak dikirim.
401TIMESTAMP_EXPIREDX-Timestamp berselisih lebih dari 300 detik dari jam server. Bandingkan dengan data.server_time.
401INVALID_HMAC_SIGNATURETanda tangan Enhanced HMAC tidak cocok. Periksa PATH, urutan dan encode PARAMS, serta timestamp.
429RATE_LIMIT_EXCEEDEDBatas permintaan per menit terlampaui. Tunggu retry_after detik.
403MERCHANT_KYC_INCOMPLETEVerifikasi merchant belum lengkap. data.onboarding_url menunjuk halaman untuk melengkapinya.
400PAYMENT_METHOD_NOT_AVAILABLEKode metode tidak dikenal, atau metodenya sedang nonaktif.
403PAYMENT_METHOD_NOT_ENABLEDMetode ada tetapi belum diaktifkan di akun Anda.
400AMOUNT_OUT_OF_RANGENominal di luar rentang metode; data memuat min_amount dan max_amount.
409PAYMENT_ALREADY_EXISTSmerchant_ref_id ini sudah punya tagihan; data berisi tagihan tersebut.
409DUPLICATE_REF_IDDua permintaan dengan ref yang sama tiba bersamaan dan yang ini kalah. Cek status ref tersebut.
500PAYMENT_GATEWAY_ERRORMitra pembayaran menolak atau tidak menjawab. Tidak ada yang tersimpan; coba lagi dengan ref yang sama atau metode lain.
404PAYMENT_NOT_FOUNDTidak ada tagihan dengan merchant_ref_id itu di akun ini.
400BANK_NOT_VERIFIEDRekening penarikan belum diverifikasi di dasbor.
400BANK_DETAILS_INCOMPLETEData rekening penarikan belum lengkap.
400INSUFFICIENT_BALANCESaldo tersedia kurang dari amount ditambah biaya; data.shortage adalah kekurangannya.
400PENDING_SETTLEMENT_EXISTSMasih ada penarikan yang berjalan. Tunggu sampai selesai.
400WITHDRAWAL_REJECTEDPenarikan ditolak karena keadaan akun berubah saat diproses. Periksa saldo dan rekening, lalu coba lagi.
503PAYOUT_UNAVAILABLELayanan transfer sedang tidak bisa memproses penarikan (sisi kami, bukan saldo Anda). Coba lagi beberapa menit kemudian.
500INTERNAL_SERVER_ERRORKesalahan di sisi kami; detailnya tidak dikirim. Coba lagi, atau hubungi dukungan dengan waktu kejadian dan merchant_ref_id.
503SERVICE_UNAVAILABLELayanan sementara tidak tersedia. Coba lagi setelah Retry-After detik.

Bagaimana membaca galat validasi?#

Status 422 berarti satu atau lebih field tidak valid. errors memetakan nama field ke daftar pesan. Pesannya bisa berbahasa Inggris atau Indonesia, jadi catat untuk tim Anda dan jangan dijadikan logika.

422 Unprocessable Content
{
  "message": "Amount must be an integer",
  "errors": {
    "amount": [
      "Amount must be an integer"
    ]
  }
}

Galat mana yang boleh diulang?#

StatusUlang?Catatan
400, 401, 403, 404, 409, 422TidakPerbaiki permintaan, kunci, atau konfigurasi dulu.
429YaTunggu sesuai header Retry-After.
503YaGangguan sementara di sisi kami. Tunggu sesuai Retry-After.
500 dan timeoutHati-hatiPOST /payment: ulang dengan merchant_ref_id yang sama, aman (idempotensi). POST /withdrawal: jangan ulang otomatis; cek saldo dan riwayat dulu.

Siap memakai kunci Anda sendiri?

Masuk ke dasbor merchant untuk mengambil API key dan secret key, mengatur mode akses dan URL webhook, serta mengunduh koleksi Postman berisi kunci akun Anda.

Masuk ke dasbor