Skip to main content

Acme CIMB Singapore Payments (API)

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

Common Definitions

  • SWIFT Character Set:

    • The 26 uppercase Latin letters A-Z
    • The 26 lowercase Latin letters a-z
    • The 10 digits 0-9
    • Forward slash /
    • Hyphen -
    • Question mark ?
    • Colon :
    • Left and right parentheses ( )
    • Full stop .
    • Comma ,
    • Single quote '
    • Plus sign +
    • Space
  • BIC11:

    • 11-character Bank Identifier Code

General notes

  • The format for BIC (used in receiver.bank) is strictly validated using [A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})? (as specified in ISO20022 BICFIIdentifier).

FAST

  • customerReference must be uniquely defined to serve as the end-to-end identifier.
  • 4 letter purpose code is required for SG FAST payment. Refer to this list from ABS Singapore for the list of official purpose codes supported.
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT35O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
purposeCode^[A-Za-z0-9]4$4M
receiver.nameSWIFT35M
receiver.bankAlphanumeric (BIC/SWIFT code)11M
receiver.bankAccountNumberAlphanumeric34M

Example payload:

{
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"type": "FAST",
"amount": 100,
"currency": "SGD",
"receiver": {
"bankAccountNumber": "0123456789",
"name": "Acme Technology Pte. Ltd.",
"bank": "DBSSSGSGXXX"
},
"purposeCode": "OTHR",
"paymentDetails": "FAST xfer to DBS for INV001",
"customerReference": "0FR4123968T"
}

BKTR

  • Use BKTR type for In-house Book Transfer within CIMB SG.
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT19O * Acme auto-generate if not provided
receiver.bankAccountNumberAlphanumeric34M

Example payload:

{
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"type": "BKTR",
"amount": 100,
"currency": "SGD",
"receiver": {
"bankAccountNumber": "1234567890"
},
"paymentDetails": "In House Transfer for INV002",
"customerReference": "0SR5123967T"
}

TT

  • bankChargeBearer is required.
  • paymentAdviceEmails accepts at most 1 email.
fieldpattern / charsetmax lengthmandatory/optional
bankChargeBearerSENDER, RECEIVER, SHARED-M
customerReferenceSWIFT35O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
paymentAdviceEmailsemail1 email, 100 charsO
receiver.nameSWIFT100M
receiver.bankAlphanumeric (BIC/SWIFT code, 8 or 11 chars)11M
receiver.bankAccountNumberAlphanumeric40M
receiver.address.line1SWIFT35M
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT35O
receiver.address.countrySWIFT35O

Example payload:

{
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"type": "TT",
"amount": 100000,
"currency": "USD",
"receiver": {
"bankAccountNumber": "000123456789",
"name": "Overseas Partner Corp",
"bank": "CHASUS33XXX",
"address": {
"line1": "270 Park Avenue",
"line2": "New York NY 10017",
"city": "New York",
"state": "NY",
"postalCode": "10017",
"country": "US"
}
},
"bankChargeBearer": "SHARED",
"paymentAdviceEmails": ["ops@example.com"],
"customerReference": "0TT4123968T"
}