v1.0.5Changelog

Cash / Check Deposit

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

Posts a credit (cash or check deposit) to the specified account. Use transaction.type to indicate deposit type. Include the cash object for cash deposits and the check object for check deposits.

Operation ID: Credits

Deposit Types

Use CASHDEPOSIT for cash, CHECKDEPOSIT for checks, or CASHCHECKDEPOSIT for combined. The request example uses Cash Deposit — toggle to Check Deposit below.

transaction.type string Yes
Deposit type: CASHDEPOSIT · CHECKDEPOSIT · CASHCHECKDEPOSIT
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
Account to credit.
institution.id string Yes
Institution ID.
amount.amount number Yes
Total deposit amount.
amount.currencyCode string Yes
ISO 4217 currency code.
cash.amount number Context
Cash component. Required for CASHDEPOSIT.
check.totAmount string Context
Total check amount. Required for CHECKDEPOSIT.
check.totDerivedAmount string Context
Derived total (e.g., after holds). Required for CHECKDEPOSIT.
check.checkDetails[] array Context
Individual check items. Required for CHECKDEPOSIT.
json — CASHDEPOSIT
{
  "head": {
    "acquirerId":  "10001",
    "description": "ATM Cash Deposit"
  },
  "transaction": {
    "rrn":  "250603001040",
    "date": "20260603",
    "type": "CASHDEPOSIT"
  },
  "deviceInfo": {
    "terminalId":  "ATM00001",
    "terminalLoc": "100 Main St, New York NY 10001",
    "acceptorId":  "ACCEPTOR000001"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" },
    "card":    { "pan": "543100XXXXXXXXX0781" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 500, "currencyCode": "USD" },
  "cash":   { "amount": 500 }
}
balances[].type string
Balance type. Available · Balance
balances[].amount number
Updated balance after deposit.
balances[].currencyCode string
ISO 4217 currency code.
status.responseCode string
"000" = deposit posted successfully.
status.authId string
Authorization ID. Store for potential reversal.
branch.* object
Branch ID, name, and address.
json — 200 OK
{
  "transaction": {
    "rrn":  "250603001040",
    "type": "CASHDEPOSIT"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 500, "currencyCode": "USD" },
  "branch": {
    "id":      "BR-001",
    "name":    "Main Street Branch",
    "address": "100 Main Street, New York, NY 10001"
  },
  "balances": [
    { "type": "Available", "amount": 5321.50, "currencyCode": "USD" }
  ],
  "status": { "authId": "AUTH04", "responseCode": "000" }
}

Check Deposit Example

json — CHECKDEPOSIT
{
  "head": { "acquirerId": "10001", "description": "ATM Check Deposit" },
  "transaction": { "rrn": "250603001041", "date": "20260603", "type": "CHECKDEPOSIT" },
  "deviceInfo": {
    "terminalId":  "ATM00001",
    "terminalLoc": "100 Main St, New York NY 10001",
    "acceptorId":  "ACCEPTOR000001"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" },
    "card":    { "pan": "543100XXXXXXXXX0781" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 250, "currencyCode": "USD" },
  "check": {
    "totAmount":        "250.00",
    "totDerivedAmount": "250.00",
    "checkDetails": [
      { "amount": "250.00", "checkNumber": "1001" }
    ]
  }
}

Credit Reversal

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

Reverses a previously posted credit (deposit reversal). Debits the account for the reversal amount. Must reference the original deposit via reverseInfo.

Operation ID: CreditsReverse

transaction.type string Yes
CASHDEPOSITREVERSAL · CHECKDEPOSITREVERSAL · CASHCHECKDEPOSITREVERSAL
transaction.rrn string Yes
New 12-digit RRN for this reversal.
paymentInstrument.account.id string Yes
Account that received the original deposit.
institution.id string Yes
Institution ID.
amount.amount number Yes
Amount to reverse.
amount.currencyCode string Yes
ISO 4217 currency code.
reverseInfo.reasonCode string Yes
Reason for reversal. Example: DEPOSIT_ERROR
reverseInfo.amount number Yes
Amount being reversed.
reverseInfo.authId string No
Auth ID from original credit (status.authId).
json
{
  "head": {
    "acquirerId":  "10001",
    "description": "ATM Cash Deposit Reversal"
  },
  "transaction": {
    "rrn":  "250603001050",
    "date": "20260603",
    "type": "CASHDEPOSITREVERSAL"
  },
  "deviceInfo": {
    "terminalId":  "ATM00001",
    "terminalLoc": "100 Main St, New York NY 10001",
    "acceptorId":  "ACCEPTOR000001"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" },
    "card":    { "pan": "543100XXXXXXXXX0781" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 500, "currencyCode": "USD" },
  "reverseInfo": {
    "authId":     "AUTH04",
    "reasonCode": "DEPOSIT_ERROR",
    "amount":     500
  }
}
balances[].type string
Balance type after reversal.
balances[].amount number
Balance after the debit reversal.
status.responseCode string
"000" = reversal successful.
status.authId string
Authorization ID for this reversal.
json — 200 OK
{
  "transaction": {
    "rrn":  "250603001050",
    "type": "CASHDEPOSITREVERSAL"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 500, "currencyCode": "USD" },
  "balances": [
    { "type": "Available", "amount": 4821.50, "currencyCode": "USD" }
  ],
  "status": { "authId": "AUTH05", "responseCode": "000" }
}