Skip to content

Payment Methods

Baiyar supports two payment method types, used the same way in both payment links and direct payments:

Type What it is Requires bank
qris Indonesia’s unified QR standard — works with any QRIS-enabled e-wallet or mobile banking app No
virtual_account A bank-specific virtual account number the customer transfers to Yes
{ "type": "qris" }
{ "type": "virtual_account", "bank": "bca" }

bank must be one of the codes below:

Code Bank
bca BCA
bni BNI
bri BRI
mandiri Mandiri
permata Permata
cimb_niaga CIMB Niaga
danamon Danamon
bsi BSI
bjb BJB
btn BTN
bnc BNC
bss BSS
sinarmas Sinarmas
Type Minimum (IDR)
qris 100
virtual_account 10,000

When a payment link allows both, the higher floor (10,000) applies.

GET /v1/payment-methods returns each method’s total fee as fee_percentage_bps (basis points — 70 = 0.7%) plus fee_fixed_amount (a flat amount charged in addition, not instead of the percentage). Both are already the combined total; there’s no separate provider-fee breakdown to add on top. Who pays the fee — you or the customer — is controlled by fee_bearer when you create the payment link or payment.

Restrict which methods a payment link accepts with allowed_payment_methods; omit it to fall back to the project’s defaults:

"allowed_payment_methods": [
{ "type": "qris" },
{ "type": "virtual_account", "bank": "bca" },
{ "type": "virtual_account", "bank": "mandiri" }
]

See the Payment Links guide and Direct Payments guide for how each method’s instructions are shaped in the response.