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

BPJS Kesehatan

Bayar iuran BPJS Kesehatan untuk nomor kartu/peserta BPJS. Menggunakan alur dua langkah: inquiry → pembayaran.

Endpoint

EndpointKeterangan
POST /api/v1/merchant/ppob/bpjs/inquiryInquiry tagihan BPJS, cek nama & jumlah
POST /api/v1/merchant/ppob/bpjs/transactionBayar iuran BPJS

Inquiry BPJS

Mengambil informasi tagihan BPJS Kesehatan. Tidak memotong saldo.

URL: POST /api/v1/merchant/ppob/bpjs/inquiry

Request

FieldTipeWajibKeterangan
product_idStringYaKode produk BPJS (dari katalog)
cust_idStringYaNomor kartu / peserta BPJS Kesehatan
periodStringYaJumlah bulan yang dibayar (2 digit, contoh: "01" = 1 bulan)
mobile_noStringTidakNomor HP peserta (untuk notifikasi)

Catatan period: Nilai harus berupa 2 digit numerik, misalnya "01" untuk 1 bulan, "03" untuk 3 bulan. Maksimum 12 bulan.

Contoh Request

{
  "product_id": "BPJSKS",
  "cust_id": "0001234567890",
  "period": "01",
  "mobile_no": "08123456789"
}
curl -X POST "https://api-sandbox.alfakios.com/api/v1/merchant/ppob/bpjs/inquiry" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: apk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "product_id": "BPJSKS",
    "cust_id": "0001234567890",
    "period": "01",
    "mobile_no": "08123456789"
  }'

Response Inquiry Berhasil

{
  "success": true,
  "message": "BPJS inquiry completed successfully",
  "rc": "000",
  "data": {
    "req_id": "",
    "ref_id": "1777946295495371000",
    "product_id": "BPJSKS",
    "cust_id": "0001234567890",
    "status": "SUCCESS",
    "rc": "000",
    "description": "Transaksi Sukses",
    "message": "INQUIRY BPJSKS KE 0001234567890 SUKSES",
    "amount": "42000",
    "unit_price": "42500",
    "balance_used": "0",
    "balance": "500000",
    "serial_no": "",
    "data": {
      "nama_peserta": "AHMAD FAUZAN",
      "jumlah_peserta": "1",
      "periode": "01",
      "tagihan": "42000",
      "admin": "500",
      "total": "42500"
    }
  }
}

Pembayaran BPJS

Membayar iuran BPJS Kesehatan. Saldo merchant akan dipotong.

URL: POST /api/v1/merchant/ppob/bpjs/transaction

Request

FieldTipeWajibKeterangan
req_idStringYaID unik transaksi (idempotency key)
product_idStringYaKode produk BPJS
cust_idStringYaNomor BPJS (sama dengan inquiry)
periodStringYaPeriode bulan (sama dengan inquiry, format 2 digit)
inquiry_req_idStringYareq_id dari step inquiry — digunakan oleh biller sebagai referensi
mobile_noStringTidakNomor HP peserta
emailStringTidakEmail peserta (untuk notifikasi)

Penting: inquiry_req_id harus diisi dengan nilai req_id yang dikembalikan dari response inquiry. Jika inquiry dilakukan tanpa req_id, gunakan ref_id dari response inquiry.

Contoh Request

{
  "req_id": "TXN-20240501-040",
  "product_id": "BPJSKS",
  "cust_id": "0001234567890",
  "period": "01",
  "inquiry_req_id": "INQ-20240501-040",
  "mobile_no": "08123456789",
  "email": "ahmad@email.com"
}
curl -X POST "https://api-sandbox.alfakios.com/api/v1/merchant/ppob/bpjs/transaction" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: apk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "req_id": "TXN-20240501-040",
    "product_id": "BPJSKS",
    "cust_id": "0001234567890",
    "period": "01",
    "inquiry_req_id": "INQ-20240501-040",
    "mobile_no": "08123456789"
  }'

Response Berhasil

{
  "success": true,
  "message": "BPJS payment completed successfully",
  "rc": "000",
  "data": {
    "req_id": "TXN-20240501-040",
    "ref_id": "1777946295495372000",
    "product_id": "BPJSKS",
    "cust_id": "0001234567890",
    "status": "SUCCESS",
    "rc": "000",
    "description": "Transaksi Sukses",
    "message": "BAYAR BPJSKS 0001234567890 SUKSES",
    "amount": "42000",
    "unit_price": "42500",
    "balance_used": "42500",
    "balance": "457500",
    "serial_no": "BPJS-REF-2024050112345",
    "data": {
      "nama_peserta": "AHMAD FAUZAN",
      "periode": "01",
      "nomor_struk": "BPJS-REF-2024050112345"
    }
  }
}

Kode Produk BPJS

product_idKeterangan
BPJSKSBPJS Kesehatan

Gunakan endpoint Katalog Produk untuk daftar produk terbaru.

Catatan

  • Field period wajib dan harus berupa string 2 digit ("01" s/d "12").
  • Field inquiry_req_id pada payment harus berisi req_id yang digunakan saat inquiry — ini adalah referensi transaksi yang dibutuhkan biller untuk melanjutkan proses.
  • Nomor struk pembayaran tersedia di serial_no setelah transaksi sukses.