API JSON (rqid)
POST JSON endpoints using rqid header. Works when partner use_signature = 0.
Price check
POST {base_url}/V1/api/price
Prepaid price check. No customer_id/ref_1 needed. Returns resale price + availability flags.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"product_code": "IS5"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success", "rc": "00",
"data": { "gangguan": "Tidak", "kosong": "Tidak", "harga": "5500", "kode": "IS5", "nama": "INDOSAT SMS 5.000" }
}
Categories
POST {base_url}/V1/api/product-categories
List all product categories.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success",
"data": [ { "id": 22, "code": "PULSA", "name": "PULSA", "type": "PRABAYAR" } ]
}
Products
POST {base_url}/V1/api/products
List products in the partner's price plan. All filters are optional: category (category code), category_ids (csv of ids), type (csv of product group names; "prabayar" is a special case that also includes VOUCHER FISIK), is_open, operator, q (search), sort (e.g. code|asc, price|desc), page, per_page. Send {"mmid":"..."} alone to get every active product in the partner's plan.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"type": "PRABAYAR",
"category": "PULSA"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success",
"data": {
"data": [ { "kode": "IS5", "nama": "INDOSAT SMS 5.000", "operator": "INDOSAT", "kategori": "PULSA", "gangguan": "Tidak", "kosong": "Tidak", "harga": "5500", "nominal": "" } ],
"links": { "first": null, "last": null, "prev": null, "next": null },
"meta": { "current_page": 1, "last_page": 3, "per_page": 50, "total": 120 }
}
}
Topup (prepaid)
POST {base_url}/V1/api/topup
Alias dari /payment for prepaid products (no prior inquiry). Pre-request script generates a fresh ref_1 so re-sends don't hit RC:94 duplicate.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"product_code": "IS5",
"customer_id": "{customer_id}",
"ref_1": "{ref_1}"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success", "rc": "00",
"data": { "ref_1": "TEST-1", "product_code": "IS5", "product_name": "INDOSAT SMS 5.000", "customer_id": "081234567890", "status": 1, "status_label": "success", "price": "5500", "total_price": "5500", "msg": "TRX IS5.081234567890 SUKSES, SN:ABC123" }
}
Inquiry (postpaid)
POST {base_url}/V1/api/inquiry
Postpaid bill inquiry. Expires after 15 minutes.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"product_code": "BPJSKS",
"customer_id": "0001234567890",
"ref_1": "{ref_1}"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success", "rc": "00",
"data": { "ref_1": "INQ-1", "ref_2": "I-20260421-A3B1F2", "product_code": "PLN", "product_name": "PLN PASCABAYAR", "customer_id": "546302215889", "status": 1, "status_label": "success", "price": "300000", "admin": "2750", "total_price": "302750", "msg": "INQ PLN.546302215889 SUKSES, DATA:Anto ...", "detail": { "no_pelanggan": "546302215889", "nama": "Anto", "bl_th": "APR26", "tagihan": "300000" } }
}
Payment (postpaid)
POST {base_url}/V1/api/payment
Execute the postpaid payment. Do not regenerate ref_1 between Inquiry and Payment.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"product_code": "BPJSKS",
"customer_id": "0001234567890",
"ref_1": "{ref_1}"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success", "rc": "00",
"data": { "ref_1": "INQ-1", "ref_2": "I-20260421-A3B1F2", "product_code": "PLN", "product_name": "PLN PASCABAYAR", "customer_id": "546302215889", "status": 1, "status_label": "success", "total_price": "302750", "msg": "BAYAR PLN.546302215889 SUKSES ..." }
}
Status
POST {base_url}/V1/api/status
Poll the transaction status for the current ref_1. Re-send until the server settles process → success or process → failed.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"ref_1": "{ref_1}"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success", "rc": "00",
"data": { "ref_1": "INQ-1", "product_code": "IS5", "status": 1, "status_label": "success", "msg": "..." }
}
History (by ref_1)
POST {base_url}/V1/api/history/{ref_1}
Partner-side history lookup keyed on the client-supplied ref_1.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}"
}
History (list)
POST {base_url}/V1/api/history
Filtered transaction history — body carries date (ISO, defaults to today), optional start_date/end_date, status (1=success, 11=failed, 2,3=pending), page, per_page (max 1000), plus pass-through filters (product_code, customer_id, trx_no_mitra, etc.). When page is omitted the response is a flat array; when present the envelope is {data: {data, links, meta}}.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"date": "{date}",
"page": 1,
"per_page": 50
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success",
"data": [ { "ref_1": "TEST-1", "product_code": "IS5", "customer_id": "081234567890", "status_label": "success", "total_price": "5500", "created_at": "2026-04-21 11:00:00" } ]
}
Balance
POST {base_url}/V1/api/balance
Aggregate deposit balance (single saldo integer across PRABAYAR + PASCABAYAR wallets combined). Plain success envelope, no rc.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}"
}
Contoh respons:
{ "status": "success", "code": 200, "message": "success", "data": { "saldo": 1000000 } }
Mutations
POST {base_url}/V1/api/mutations
Deposit mutation history (debits + credits). Date range is ISO YYYY-MM-DD.
Header:
| Header | Nilai |
|---|---|
rqid | {api_key} |
Body (JSON):
{
"mmid": "{mmid}",
"start_date": "2026-04-01",
"end_date": "2026-04-30"
}
Contoh respons:
{
"status": "success", "code": 200, "message": "success",
"data": [ { "debit": 0, "credit": 5500, "balance": 994500, "notes": "Trx IS5 ...", "trx_no": "T-20260421-LKXQY4", "created_at": "2026-04-21 11:00:00" } ]
}