Credit Transactions
Cash and check deposit initiation, and credit reversal. Supports cash-only, check-only, and combined cash+check deposits.
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" }
}