v1.0.5Changelog
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

ErrorCauseResolution
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.