Bill Payments
Execute a bill payment from a member account to a registered biller.
POST
/api/ssb/accountservices/{version}/transactions/billpayments
Executes a bill payment from a member account to a registered biller. Both biller.institutionId and biller.bin are required from v1.0.5.
Operation ID: BillPayments
Breaking Change — biller.bin Required from v1.0.5
biller.bin is required from EAPI v1.0.5. Requests missing biller.bin will return 400 Bad Request. Update all existing bill payment integrations.
head.description
string
Yes
Transaction description. Example:
"ATM Bill Payment"
transaction.rrn
string
Yes
12-digit RRN.
transaction.type
string
Yes
Must be:
BILLPAYMENT
deviceInfo.terminalId
string
Yes
ATM terminal ID.
deviceInfo.terminalLoc
string
Yes
Terminal location.
deviceInfo.acceptorId
string
Yes
Acceptor ID.
paymentInstrument.account.id
string
Yes
Account to debit for the bill payment.
institution.id
string
Yes
Financial institution ID.
biller.institutionId
string
Yes
Biller institution ID. Sandbox:
"600001"
biller.bin
string
Yes
Biller BIN. Required from v1.0.5. Sandbox:
"600001"
amount.amount
number
Yes
Payment amount.
amount.currencyCode
string
Yes
ISO 4217 currency code.
json
{
"head": {
"acquirerId": "10001",
"description": "ATM Bill Payment"
},
"transaction": {
"rrn": "250603001080",
"date": "20260603",
"type": "BILLPAYMENT"
},
"deviceInfo": {
"terminalId": "ATM00001",
"terminalLoc": "100 Main St, New York NY 10001",
"acceptorId": "ACCEPTOR000001"
},
"paymentInstrument": {
"account": { "id": "DDA1234567890" },
"card": { "pan": "543100XXXXXXXXX0781" }
},
"institution": { "id": "000100" },
"biller": {
"institutionId": "600001",
"bin": "600001"
},
"amount": { "amount": 150, "currencyCode": "USD" }
}
balances[].type
string
Balance type after payment.
balances[].amount
number
Updated balance.
status.responseCode
string
"000" = payment posted successfully.
status.authId
string
Authorization ID.
branch.*
object
Branch ID, name, and address.
json — 200 OK
{
"transaction": {
"rrn": "250603001080",
"type": "BILLPAYMENT"
},
"paymentInstrument": {
"account": { "id": "DDA1234567890" }
},
"institution": { "id": "000100" },
"biller": {
"institutionId": "600001",
"bin": "600001"
},
"amount": { "amount": 150, "currencyCode": "USD" },
"branch": {
"id": "BR-001",
"name": "Main Street Branch",
"address": "100 Main Street, New York, NY 10001"
},
"balances": [
{ "type": "Available", "amount": 4671.50, "currencyCode": "USD" }
],
"status": { "authId": "AUTH08", "responseCode": "000" }
}
Common Error Scenarios
| Error | Cause | Resolution |
|---|---|---|
| 400 Bad Request | Missing biller.bin |
Add biller.bin to all bill payment requests. Required from v1.0.5. |
| 404 Not Found | Biller not registered in core banking | Verify biller.institutionId and biller.bin against the registered biller list. |
| responseCode 110 | Insufficient funds | Account balance below payment amount. Offer a lower amount or different account. |