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

Gambaran Umum PPOB

PPOB (Payment Point Online Bank) API memungkinkan merchant untuk melakukan transaksi pembelian produk digital dan pembayaran tagihan melalui sistem Relay.

Endpoint yang Tersedia

EndpointMetodeKeterangan
POST /api/v1/merchant/ppob/checkPOSTCek status transaksi berdasarkan order_req_id
POST /api/v1/merchant/ppob/phone-credit/transactionPOSTBeli pulsa / paket data
POST /api/v1/merchant/ppob/ewallet/inquiryPOSTInquiry sebelum top-up e-wallet
POST /api/v1/merchant/ppob/ewallet/transactionPOSTEksekusi top-up e-wallet
POST /api/v1/merchant/ppob/pln/prepaid/inquiryPOSTInquiry token listrik PLN prabayar
POST /api/v1/merchant/ppob/pln/prepaid/transactionPOSTBeli token listrik PLN prabayar
POST /api/v1/merchant/ppob/pln/postpaid/inquiryPOSTInquiry tagihan PLN pascabayar
POST /api/v1/merchant/ppob/pln/postpaid/transactionPOSTBayar tagihan PLN pascabayar
POST /api/v1/merchant/ppob/bpjs/inquiryPOSTInquiry tagihan BPJS Kesehatan
POST /api/v1/merchant/ppob/bpjs/transactionPOSTBayar tagihan BPJS Kesehatan

Autentikasi

Semua endpoint PPOB menggunakan API Key via header X-API-Key dan opsional Signature Validation. Lihat Autentikasi.

Alur Transaksi

Produk Tanpa Inquiry (Pulsa, Paket Data)

Merchant                         Sistem
  │                                 │
  │  POST /ppob/phone-credit/       │
  │  transaction                    │
  │────────────────────────────────>│
  │                                 │  proses ke biller
  │  200 OK { status, serial_no }   │
  │<────────────────────────────────│

Produk Dengan Inquiry (E-Wallet, PLN, BPJS)

Merchant                         Sistem
  │                                 │
  │  POST /ppob/ewallet/inquiry     │
  │────────────────────────────────>│
  │  200 OK { amount, unit_price }  │
  │<────────────────────────────────│
  │                                 │
  │  POST /ppob/ewallet/transaction │
  │────────────────────────────────>│
  │                                 │  potong saldo, kirim ke biller
  │  200 OK { status, serial_no }   │
  │<────────────────────────────────│

Format Request Umum

Semua endpoint transaksi PPOB menerima JSON dengan field berikut (field spesifik per endpoint dijelaskan di halaman masing-masing):

FieldTipeWajibKeterangan
req_idStringYa (untuk payment)ID unik merchant — idempotency key
product_idStringYaKode produk dari Katalog Produk
cust_idStringYaID pelanggan (nomor HP, ID meter PLN, nomor BPJS, dll)

Format Response Umum

{
  "success": true,
  "message": "...",
  "rc": "000",
  "data": {
    "req_id": "TXN-20240501-001",
    "ref_id": "1777946295495371000",
    "product_id": "XL5",
    "cust_id": "08123456789",
    "status": "SUCCESS",
    "rc": "000",
    "description": "Transaksi Sukses",
    "message": "...",
    "amount": "5000",
    "unit_price": "5500",
    "balance_used": "5500",
    "balance": "494500",
    "serial_no": "SN123456",
    "data": {}
  }
}

Poin Penting

  • Strict JSON — field yang tidak dikenal dalam request body ditolak dengan HTTP 422.
  • Minimal Amount — nominal minimum transaksi adalah Rp 1.000 ("1000").
  • Idempotency — gunakan req_id yang sama untuk retry jika terjadi timeout; jangan kirim req_id baru untuk transaksi yang sama.
  • Produk dengan status: MAINTENANCE atau status: CLOSED pada katalog tidak dapat diproses.