Acme Zand Bank UAE Transactions
This describes how Acme categorizes transactions on Zand Bank UAE accounts in the
Transactions API, and how the transaction transactionType
relates to the payment type you specify when creating a payment.
transactionTypeZand Bank does not provide an explicit payment rail / transaction type on its transaction
notifications or account statements. Acme derives the transactionType of each transaction from
the information the bank does provide using the rules documented on this page.
Payment Type vs Transaction Type
- Payments API (
POST /v1/payments): you specify the paymenttypeto choose the rail a payment is sent through. For Zand, the allowed values areBKTR,UAE_FTS,UAE_IBFTandTT— see Acme Zand Bank UAE Payments (API). - Transactions API (
GET /v1/transactions): every transaction reported on your account retrieved from multiple sources including incoming credits, outgoing debits, and bank-generated entries such as fees and interest — carries atransactionTypedescribing the rail the money moved through.
The two map to each other as follows:
Payment type (Payments API) | Transaction transactionType (Transactions API) | Underlying Payment Rails |
|---|---|---|
BKTR | BKTR | Book transfer between two Zand Bank accounts |
UAE_FTS | FTS | The UAE Funds Transfer System (FTS) is the Central Bank of the UAE's core real-time gross settlement (RTGS) network. Zand automatically route the transaction to FTS if amount > 50,000 AED. |
UAE_IBFT | IBFT | Instant Payment Platform (IPP) / Immediate Payment Instructions (IPI) or AANI. Zand autoamtically route the transaction to IPI if amount ≤ 50,000 AED |
TT | TT | Telegraphic Transfer — cross-border international SWIFT transfer |
| — | OTHERS | Bank-generated entries (fees, VAT on fees, interest) and any record Acme cannot categorize as a specific rail. |
Categorization rules
The bank transactions reach Acme through two sources, and each source provides different information, so the categorization rules differ.
From Inbound Credit Notifications
For credit transactions received through Zand's credit notifications webhook, the
transactionType is derived from the notification event type, the counterparty IBANs, and the
amount. The conditions are evaluated in order:
dataSource | Condition | transactionType |
|---|---|---|
| ICN | Both parties are Zand Bank accounts (IBAN bank code 096) | BKTR |
| ICN | International event types INCOMING_INTERNATIONAL_TRANSACTION_STATUS | TT |
| ICN | Domestic inter-bank event types INCOMING_DOMESTIC_TRANSACTION_STATUS & amount > 50,000 AED | FTS |
| ICN | Domestic inter-bank event types INCOMING_DOMESTIC_TRANSACTION_STATUS & amount ≤ 50,000 AED | IBFT |
Example payload:
An Incoming book transfer from a credit notification, categorized as BKTR:
{
"data": [
{
"id": "txn_0QN6ZF3MGNNQF",
"dataSource": "ICN",
"transactionType": "BKTR",
"transactionStatus": "BOOKED",
"bankReference": "D7811010XXXXXXXX",
"transactionReferences": [
{
"dataSource": "ICN",
"name": "channelRefId",
"value": "D7811010XXXXXXXX"
},
{
"dataSource": "ICN",
"name": "instructionIdentification",
"value": "<UUID>"
}
],
"description": "Incoming Transfer within Zand Received",
"customerReference": "<UUID>",
"remittanceInformation": "UUID",
"additionalInformation": "OpenFX - <UUID>",
"amount": 200000000,
"currency": "AED",
"direction": "CREDIT",
"counterparty": {
"name": "<Sender Name>",
"bank": null,
"bankAccountNumber": "<IBAN>"
},
"bankAccount": {
"id": "intacc_0PWZ0XWTR3S8Q",
"bank": "ZANDAEAAXXX",
"bankAccountNumber": "REDACTED"
},
"virtualAccountNumber": null,
"transactionDate": "2026-06-10",
"bookingDate": {
"date": "2026-06-10",
"time": "18:12:51.908"
}
}
]
}
From Account Statement Inquiry
For transactions received through Zand's account statement inquiry, the transactionType is derived from
the statement record's description and the amount:
dataSource | Transaction description | Transaction amount | transactionType |
|---|---|---|---|
| RECON | Incoming transfer within Zand Bank, Incoming Transfer within Zand Received, Outgoing Transfer within Zand, Outgoing transfer within Zand Bank | — | BKTR |
| RECON | International Transfer, Outgoing AED Remittance, Incoming AED Remittance, Outgoing Foreign Currency Remittance | — | TT |
| RECON | Domestic Transfer, Local Transfer | > 50,000 AED | FTS |
| RECON | Domestic Transfer, Local Transfer, Instant Payment, Real-time Payment | ≤ 50,000 AED | IBFT |
| RECON | Outward Local Remittance Fee | — | OTHERS |
| RECON | {N}% VAT On Fee (e.g. 5% VAT On Fee) | — | OTHERS |
| RECON | null / blank / unrecognized (e.g. interest calculation) | — | OTHERS |
Records that Acme does not recognize are labelled OTHERS and logged on Acme side for review, so
new description patterns can be added to the categorization over time.
Example payload:
An outgoing cross-border transfer debitted from your account, categorized as TT:
{
"data": [
{
"id": "txn_0QMT893PK4MP7",
"dataSource": "RECON",
"transactionType": "TT",
"transactionStatus": "BOOKED",
"bankReference": "C0261032XXXXXXXX",
"transactionReferences": [
{
"dataSource": "RECON",
"name": "channelRefId",
"value": "C0261032XXXXXXXX"
},
{
"dataSource": "RECON",
"name": "instructionIdentification",
"value": "C0261032XXXXXXXX"
},
{
"dataSource": "RECON",
"name": "partType",
"value": "Main"
},
{
"dataSource": "RECON",
"name": "Description",
"value": "Outgoing AED Remittance"
},
{
"dataSource": "RECON",
"name": "BeneficiaryDetails",
"value": "<bene details> "
}
],
"description": "Outgoing AED Remittance",
"customerReference": "C0261032XXXXXXXX",
"remittanceInformation": null,
"additionalInformation": "Additional Info ",
"amount": 1090000,
"currency": "AED",
"direction": "DEBIT",
"counterparty": {
"name": "<Sender Name>",
"bank": null,
"bankAccountNumber": "<IBAN>"
},
"bankAccount": {
"id": "intacc_0PWZ0XRXQ4WJ2",
"bank": "ZANDAEAAXXX",
"bankAccountNumber": "REDACTED"
},
"virtualAccountNumber": null,
"transactionDate": "2026-06-10",
"bookingDate": {
"date": "2026-06-10",
"time": "18:12:51.908"
}
}
]
}
Bank charges associated with the transaction above with a different id but the same bankReference, categorized as OTHERS:
{
"data": [
{
"id": "txn_0QMT893R34DSW",
"dataSource": "RECON",
"transactionType": "TT",
"transactionStatus": "BOOKED",
"bankReference": "C0261032XXXXXXXX",
"transactionReferences": [
{
"dataSource": "RECON",
"name": "channelRefId",
"value": "C0261032XXXXXXXX"
},
{
"dataSource": "RECON",
"name": "instructionIdentification",
"value": "C0261032XXXXXXXX"
},
{
"dataSource": "RECON",
"name": "partType",
"value": "Main"
},
{
"dataSource": "RECON",
"name": "Description",
"value": "Outward International Remittance Fee"
},
{
"dataSource": "RECON",
"name": "BeneficiaryDetails",
"value": "<bene details> "
}
],
"description": "Outward International Remittance Fee",
"customerReference": "C0261032XXXXXXXX",
"remittanceInformation": null,
"additionalInformation": "Outward International Remittance Fee",
"amount": 500,
"currency": "AED",
"direction": "DEBIT",
"counterparty": {
"name": null,
"bank": null,
"bankAccountNumber": null
},
"bankAccount": {
"id": "intacc_0PWZ0XRXQ4WJ2",
"bank": "ZANDAEAAXXX",
"bankAccountNumber": "REDACTED"
},
"virtualAccountNumber": null,
"transactionDate": "2026-06-10",
"bookingDate": {
"date": "2026-06-10",
"time": "18:12:51.908"
}
}
]
}