Skip to content

Payment instructions

GET /v1/partners/payment-instructions?lang=en

Use this catalogue to populate your payment channel selector and display how-to-pay steps in your app.

PropertyValue
Permissionread-gateway
AuthenticationBearer partner API key; no HMAC signature
IdempotencyNot applicable — this request reads reference content
Languagelang=id (default) or lang=en
Responses200, 400 for unsupported language, 401 for invalid credentials, 403 for missing permission
GET /v1/partners/payment-instructions?lang=en
Authorization: Bearer <partner-api-key>

Omit lang for Indonesian. An empty value, unsupported value such as fr, or repeated lang parameter returns HTTP 400 with REQUEST_INVALID_PAYLOAD. Unknown query fields use the existing validation contract: HTTP 422 with the same error code.

This excerpt shows BRI and DANA; the actual response includes all published channels.

{
"data": {
"lang": "en",
"channels": [
{
"method": "virtual_account",
"channel": "BRI",
"name": "BRI",
"instructions": [
{
"id": "bank_transfer",
"title": "Bank transfer",
"steps": [
"Copy the Virtual Account number from the payment page and check its expiry time.",
"Open the Virtual Account payment service through your banking app, internet banking, or ATM.",
"Enter the Virtual Account number and follow the bank instructions.",
"Review the payment details and ensure the amount exactly matches the bill.",
"Confirm payment as instructed by the bank and keep the payment receipt."
]
}
]
},
{
"method": "ewallet",
"channel": "EWALLET_DANA",
"name": "DANA",
"instructions": [
{
"id": "checkout",
"title": "Pay with DANA",
"steps": [
"Open the payment link from the payment page before it expires.",
"Follow the checkout instructions to open DANA.",
"Review the payment details and amount in DANA.",
"Approve payment using the authentication method requested by DANA.",
"Return to the payment page and check the payment status."
]
}
]
}
]
},
"request_id": "req_example"
}

Each channel contains method, channel, name, and instructions. Each group has a stable id, translated title, and ordered array of steps. Render steps in array order. Channel codes and group IDs stay the same across languages; brand names can also stay the same.

MethodExact channel codesInstruction group
virtual_accountBCA, BNI, BRI, MANDIRI, PERMATA, MAYBANK, CIMB, BSI, MUAMALAT, BNC, OCBC, DANAMONbank_transfer
ewalletEWALLET_DANAcheckout

Bank steps provide general VA payment guidance, not exact menu paths for each banking app or ATM. This is a curated initial list, not an account-specific availability check. Provider account activation and channel configuration still determine whether payment creation succeeds.

  1. Use the exact method and channel from the catalogue in Create a payment. For example, submit BRI, not VA_BRI.
  2. Match the created payment’s method and channel to the catalogue entry.
  3. Display its steps alongside that payment’s actual payment_code, amount, and expires_at. The catalogue contains no transaction-specific VA number or checkout URL.
  4. Confirm payment through the payment status endpoint or webhook. A checkout redirect alone does not prove payment success.