Skip to main content

Acme Zand Bank UAE Payments (API)

This describes validations / allowed data formats for Acme payments going through Zand Bank UAE. These will be validated by Acme and further validated by the bank. These rules may be stricter than what the bank requires.

Common Definitions

  • BIC8 / BIC11:

    • Bank Identifier Code, 8 to 11 characters (uppercase letters + digits).
    • Required for international (TT) transfers.
  • IBAN:

    • 23-character International Bank Account Number starting with the AE country prefix.
    • Required for all domestic transfers (BKTR, UAE_FTS, UAE_IBFT).
  • customerReference:

    • Must be 16–40 characters (alphanumeric + hyphen).
    • If value is null or shorter than 16, Acme generates a 16 characters UUID and replaces it.
  • Allowed currencies: AED, BHD, CNY, EUR, GBP, HKD, INR, QAR, SAR, SGD, USD.

General notes

  • For domestic transfers, Zand auto-selects and routes the underlying rail by amount:
    • FTS for amounts > 50,000 AED (high value)
    • IPI for amounts ≤ 50,000 AED (low value)
  • The purposeCode is required for all payment types and defaults to FIS if not supplied. Refer to the list from Central Bank UAE.

BKTR

Book Transfer — intra-Zand. Same-bank transfer between two Zand accounts.

Important
  • Currency must be one of the 11 allowed currencies (typically AED).
  • customerReference must be 16–40 characters.
  • Receiver IBAN must be a valid UAE IBAN (23 chars, AE prefix).
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceAlphanumeric + hyphen16–40M
paymentDetailsFree text100M
purposeCode3-letter code (defaults to FIS)3O
receiver.nameFree text75M
receiver.ibanUAE IBAN (AE + 21 chars)23M

Example Request:

{
"type": "BKTR",
"amount": 100000,
"currency": "AED",
"customerReference": "1234567890ABCDEF",
"paymentDetails": "Invoice INV-12345",
"purposeCode": "FIS",
"senderAccountId": "intacc_0H3BQNT7HBW2W",
"receiver": {
"name": "Test Receiver Name",
"iban": "AE360961000061010000012"
}
}

UAE_FTS

UAE Interbank Fund Transfer Service via the domestic API. Used for high-value transfers (> 50,000 AED).

Important
  • Currency must be one of the 11 allowed currencies (typically AED).
  • customerReference must be 16–40 characters.
  • Receiver IBAN must be a valid UAE IBAN (23 chars, AE prefix).
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceAlphanumeric + hyphen16–40M
paymentDetailsFree text100M
purposeCode3-letter code (defaults to FIS)3O
receiver.nameFree text75M
receiver.ibanUAE IBAN (AE + 21 chars)23M

Example Request:

{
"type": "UAE_FTS",
"amount": 250000,
"currency": "AED",
"customerReference": "1234567890ABCDEF",
"paymentDetails": "Invoice INV-12345",
"purposeCode": "FIS",
"senderAccountId": "intacc_0H3BQNT7HBW2W",
"receiver": {
"name": "Test Receiver Name",
"iban": "AE070331234567890123456"
}
}

UAE_IBFT

UAE Interbank Immediate Payment Instruction (IPI) via the domestic API. Used for low-value transfers (≤ 50,000 AED).

Important
  • Currency must be one of the 11 allowed currencies (typically AED).
  • customerReference must be 16–40 characters.
  • Receiver IBAN must be a valid UAE IBAN (23 chars, AE prefix).
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceAlphanumeric + hyphen16–40M
paymentDetailsFree text100M
purposeCode3-letter code (defaults to FIS)3O
receiver.nameFree text75M
receiver.ibanUAE IBAN (AE + 21 chars)23M

Example Request:

{
"type": "UAE_IBFT",
"amount": 5000,
"currency": "AED",
"customerReference": "1234567890ABCDEF",
"paymentDetails": "Invoice INV-12345",
"purposeCode": "FIS",
"senderAccountId": "intacc_0H3BQNT7HBW2W",
"receiver": {
"name": "Test Receiver Name",
"iban": "AE220211234567890123456"
}
}

TT

Telegraphic Transfer — Cross-border International SWIFT transfer

Important
  • customerReference minimum 16 characters. Total 16–40 characters.
  • Receiver BIC required, 8–11 characters.
  • Receiver postal address required (line1, city, country).
  • Country must be ISO 3166-1 alpha-2 (2 chars).
  • receiver.beneficiaryType must be INDIVIDUAL or COMPANY.
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceAlphanumeric + hyphen16–40M
paymentDetailsFree text100M
purposeCode3-letter code (defaults to FIS)3O
receiver.nameFree text75M
receiver.bankBIC8 / BIC118–11M
receiver.ibanBeneficiary account IBANM
receiver.address.line1Free textM
receiver.address.line2Free textO
receiver.address.cityFree textM
receiver.address.stateFree textO
receiver.address.countryISO 3166-1 alpha-22M
receiver.address.postalCodeFree textO
receiver.beneficiaryTypeINDIVIDUAL or COMPANYO

Example Request:

{
"type": "TT",
"amount": 10000,
"currency": "USD",
"customerReference": "1234567890ABCDEF",
"paymentDetails": "Invoice INV-12345",
"purposeCode": "FIS",
"senderAccountId": "intacc_0H3BQNT7HBW2W",
"receiver": {
"name": "Test Receiver Name",
"bank": "CHASUS33XXX",
"iban": "GB29NWBK60161331926819",
"address": {
"line1": "123 Main Street",
"city": "London",
"country": "GB",
"postalCode": "EC1A 1BB"
},
"beneficiaryType": "COMPANY"
}
}

Payment Statuses

Zand StatusTerminal?Acme Payment Status
INITIATEDNoSUBMITTED (workflow in progress)
PROCESSEDYesCOMPLETED (FTS/IBFT success)
COMPLETEDYesCOMPLETED
REJECTEDYesFAILED
REVERSEDYesFAILED (reversed by beneficiary bank — FTS/IBFT only)

Possible result codes for FAILED payments:

resultCodeDescription
PAYMENT_REJECTEDPayment rejected.
PAYMENT_CANCELLEDPayment aborted or cancelled by user.
PAYMENT_EXPIREDPayment expired.
REJECTED_BY_APPROVERPayment rejected by authorizer.
REJECTED_BY_SENDING_BANKPayment rejected by sending bank.
REJECTED_BY_RECEIVING_BANKPayment rejected by receiving bank.
RETURNEDPayment returned (maps from Zand REVERSED).
PROCESSING_ERRORProcessing error encountered.
OTHERSDefault resultCode if status code returned is not a known status code.