Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

QRIS — Cek Status

Mengecek status pembayaran QRIS menggunakan trace_number yang didapat dari response Buat QRIS.

URL: POST /api/v1/merchant/payin/qris/check

Request

Headers

HeaderWajibKeterangan
X-API-KeyYaAPI Key merchant
Content-TypeYaapplication/json

Body

FieldTipeWajibKeterangan
trace_numberStringYatrace_number dari response QRIS create

Contoh Request

{
  "trace_number": "240501001234"
}
curl -X POST "https://api-sandbox.alfakios.com/api/v1/merchant/payin/qris/check" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: apk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{"trace_number": "240501001234"}'

Response

Spesifikasi

FieldTipeKeterangan
req_idStringreq_id dari transaksi asal
ref_idStringID referensi internal
product_idStringKode produk QRIS
trace_numberStringTrace number yang dicek
statusStringSUCCESS, PENDING, atau FAILED
rcStringKode respon
descriptionStringKeterangan RC
messageStringPesan detail
amountStringNominal pembayaran
dataObjectData tambahan dari GPay (payer info, dll)

Contoh Response — Dibayar (SUCCESS)

{
  "success": true,
  "message": "Pembayaran QRIS diterima",
  "rc": "000",
  "data": {
    "req_id": "QRIS-20240501-001",
    "ref_id": "1777946295495371000",
    "product_id": "GPAY",
    "trace_number": "240501001234",
    "status": "SUCCESS",
    "rc": "000",
    "description": "Payment Received",
    "message": "Pembayaran QRIS berhasil dikonfirmasi",
    "amount": "150000",
    "data": {
      "payer_name": "ANDI WIJAYA",
      "payer_number": "08123456789",
      "issuer": "BCA Mobile",
      "paid_at": "2024-05-01T10:08:32Z",
      "rrn": "240501123456"
    }
  }
}

Contoh Response — Belum Dibayar (PENDING)

{
  "success": true,
  "message": "Menunggu pembayaran",
  "rc": "021",
  "data": {
    "req_id": "QRIS-20240501-001",
    "ref_id": "1777946295495371000",
    "product_id": "GPAY",
    "trace_number": "240501001234",
    "status": "PENDING",
    "rc": "021",
    "description": "Waiting Payment",
    "message": "QRIS belum dibayar",
    "amount": "150000",
    "data": {}
  }
}

Contoh Response — Tidak Ditemukan

Jika trace_number tidak valid atau tidak terdaftar di merchant ini:

HTTP Status: 404 Not Found

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

Rekomendasi Polling

Gunakan interval polling yang meningkat agar tidak membebani server:

Detik 0–30  : polling setiap 3 detik
Detik 30–60 : polling setiap 5 detik
Detik 60+   : polling setiap 10 detik
> 5 menit   : tampilkan "QR kedaluwarsa" ke pelanggan

Catatan

  • Endpoint ini hanya bisa mengecek QRIS yang dibuat oleh merchant yang sama (API Key yang sama).
  • Setelah pembayaran dikonfirmasi (status: "SUCCESS"), trace_number dapat digunakan untuk refund via QRIS Refund jika diperlukan.