v1.0.5Changelog
POST /api/ssb/accountservices/{version}/transactions/cardless

Executes a cardless ATM cash pickup initiated by a mobile application via QR code or NFC token. No card.pan is required — the account is identified directly by paymentInstrument.account.id.

Operation ID: CardlessWithdrawal  ·  transaction.type: CARDLESSWITHDRAWAL

No Card PAN Required

Unlike other debit endpoints, cardless withdrawal does not require paymentInstrument.card.pan. The account is identified directly by paymentInstrument.account.id. Do not pass a card PAN for cardless transactions.

head.description string Yes
Transaction description. Example: "ATM Cardless QR Withdrawal"
transaction.rrn string Yes
12-digit RRN.
transaction.type string Yes
Must be: CARDLESSWITHDRAWAL
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. No card PAN required.
institution.id string Yes
Financial institution ID.
amount.amount number Yes
Withdrawal amount.
amount.currencyCode string Yes
ISO 4217 currency code.
json
{
  "head": {
    "acquirerId":  "10001",
    "description": "ATM Cardless QR Withdrawal"
  },
  "transaction": {
    "rrn":  "250603001090",
    "date": "20260603",
    "type": "CARDLESSWITHDRAWAL"
  },
  "deviceInfo": {
    "terminalId":  "ATM00001",
    "terminalLoc": "100 Main St, New York NY 10001",
    "acceptorId":  "ACCEPTOR000001"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 100, "currencyCode": "USD" }
}
balances[].type string
Balance type after withdrawal.
balances[].amount number
Updated balance.
status.responseCode string
"000" = approved and cash dispensed.
status.authId string
Authorization ID.
branch.* object
Branch ID, name, and address.
json — 200 OK
{
  "transaction": {
    "rrn":  "250603001090",
    "type": "CARDLESSWITHDRAWAL"
  },
  "paymentInstrument": {
    "account": { "id": "DDA1234567890" }
  },
  "institution": { "id": "000100" },
  "amount": { "amount": 100, "currencyCode": "USD" },
  "branch": {
    "id":      "BR-001",
    "name":    "Main Street Branch",
    "address": "100 Main Street, New York, NY 10001"
  },
  "balances": [
    { "type": "Available", "amount": 4721.50, "currencyCode": "USD" }
  ],
  "status": { "authId": "AUTH09", "responseCode": "000" }
}

Typical Use Case

Cardless withdrawal is used in mobile-initiated ATM cash pickup flows:

1

Mobile App — Initiate Request

The cardholder initiates a cash pickup in the mobile banking app, specifying the amount and selecting an account.

2

Mobile App — Generate Token / QR

The app generates a time-limited QR code or NFC token that encodes the withdrawal session details.

3

ATM — Scan and Submit

The cardholder scans the QR code at the ATM. The ATM switch calls POST /transactions/cardless with the account ID and amount — no card insertion required.

4

ATM — Dispense Cash

On receiving responseCode: "000", the ATM dispenses the requested cash amount.