v1.0.5Changelog

Transfer Funds

POST /api/ssb/accountservices/{version}/transactions/transfers

Transfers funds between two accounts within the same institution. paymentInstrument is the source (debit); beneficiaryInstrument is the destination (credit).

Operation ID: Transfers

🚨
balances Is an Object, Not an Array

The transfer response returns balances as an object with two keys: balances.paymentInstrument[] (source) and balances.beneficiaryInstrument[] (destination). All other endpoints return balances as a flat array.

transaction.type string Yes
Must be: TRANSFER
head.description string Yes
Transaction description.
transaction.rrn string Yes
12-digit RRN.
deviceInfo.terminalId string Yes
ATM terminal ID.
deviceInfo.terminalLoc string Yes
Terminal location.
deviceInfo.acceptorId string Yes
Acceptor ID.
paymentInstrument.account.id string Yes
Source account to debit.
institution.id string Yes
Source institution ID.
beneficiary.institutionId string Yes
Destination institution ID. Must match institution.id.
beneficiaryInstrument.account.id string Yes
Destination account to credit.
amount.amount number Yes
Transfer amount.
amount.currencyCode string Yes
ISO 4217 currency code.
json
{
  "head": {
    "acquirerId":  "10001",
    "description": "ATM Account Transfer"
  },
  "transaction": {
    "rrn":  "250603001060",
    "date": "20260603",
    "type": "TRANSFER"
  },
  "deviceInfo": {
    "terminalId":  "ATM00001",
    "terminalLoc": "100 Main St, New York NY 10001",
    "acceptorId":  "ACCEPTOR000001"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" },
    "card":    { "pan": "543100XXXXXXXXX0781" }
  },
  "institution":           { "id": "000100" },
  "beneficiary":           { "institutionId": "000100" },
  "beneficiaryInstrument": { "account": { "id": "SAV9876543210" } },
  "amount": { "amount": 500, "currencyCode": "USD" }
}
balances.paymentInstrument[] array
Updated balances for the source account.
balances.beneficiaryInstrument[] array
Updated balances for the destination account.
status.responseCode string
"000" = transfer completed.
status.authId string
Authorization ID.
branch.* object
Branch details.
json — 200 OK
{
  "transaction": {
    "rrn":  "250603001060",
    "type": "TRANSFER"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "beneficiaryInstrument": {
    "account": { "id": "SAV9876543210" }
  },
  "institution": { "id": "000100" },
  "beneficiary": { "institutionId": "000100" },
  "amount": { "amount": 500, "currencyCode": "USD" },
  "branch": {
    "id":      "BR-001",
    "name":    "Main Street Branch",
    "address": "100 Main Street, New York, NY 10001"
  },
  "balances": {
    "paymentInstrument": [
      { "type": "Available", "amount": 4321.50, "currencyCode": "USD" }
    ],
    "beneficiaryInstrument": [
      { "type": "Available", "amount": 12900.00, "currencyCode": "USD" }
    ]
  },
  "status": { "authId": "AUTH06", "responseCode": "000" }
}

Transfer Reversal

POST /api/ssb/accountservices/{version}/transactions/transfers/reverse

Reverses a previously completed transfer. Credits the source account and debits the destination account for the reversal amount.

Operation ID: TransfersReverse

transaction.type string Yes
Must be: TRANSFERREVERSAL
transaction.rrn string Yes
New 12-digit RRN for this reversal.
paymentInstrument.account.id string Yes
Original source account.
beneficiaryInstrument.account.id string Yes
Original destination account.
institution.id string Yes
Institution ID.
beneficiary.institutionId string Yes
Beneficiary institution ID.
amount.amount number Yes
Reversal amount.
reverseInfo.reasonCode string Yes
Reversal reason. Example: TRANSFER_ERROR
reverseInfo.amount number Yes
Amount to reverse.
json
{
  "head": {
    "acquirerId":  "10001",
    "description": "ATM Transfer Reversal"
  },
  "transaction": {
    "rrn":  "250603001070",
    "date": "20260603",
    "type": "TRANSFERREVERSAL"
  },
  "deviceInfo": {
    "terminalId":  "ATM00001",
    "terminalLoc": "100 Main St",
    "acceptorId":  "ACCEPTOR000001"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "beneficiaryInstrument": {
    "account": { "id": "SAV9876543210" }
  },
  "beneficiary":  { "institutionId": "000100" },
  "institution":  { "id": "000100" },
  "amount":       { "amount": 500, "currencyCode": "USD" },
  "reverseInfo":  { "reasonCode": "TRANSFER_ERROR", "amount": 500 }
}
balances[] array
Balances after reversal (flat array on this endpoint).
status.responseCode string
"000" = reversal successful.
status.authId string
Authorization ID for this reversal.
json — 200 OK
{
  "transaction": {
    "rrn":  "250603001070",
    "type": "TRANSFERREVERSAL"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "beneficiaryInstrument": {
    "account": { "id": "SAV9876543210" }
  },
  "balances": [
    { "type": "Available", "amount": 4821.50, "currencyCode": "USD" }
  ],
  "status": { "authId": "AUTH07", "responseCode": "000" }
}