Skip to main content

Acme CIMB Singapore (H2H) Payments

This describes validations / allowed data formats for Acme batch payments going through CIMB H2H (Host-to-Host) 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
  • Alphanumeric: A-Z, a-z, 0-9

  • BIC11: 11-character alphanumeric bank identifier

General Notes

  • paymentDate is required and cannot be earlier than the current date in Asia/Singapore timezone.
  • Each batch must contain between 1 and 1,000 payments.
  • paymentAdviceEmails is optional for all payment types; maximum 1 email address and maximum 100 characters.
  • paymentDetails (remittance information) is supported for TT and MEPS only.

FAST

  • Currency must be SGD.
  • FAST payment amount must not exceed 200,000 SGD.
  • A 4-character purpose code is required. Refer to the ABS Singapore purpose code list.
fieldpattern / charsetmax lengthmandatory/optional
currencySGD-M
paymentDatecurrent/future date-M
amountnumeric, min 1, max 20,000,000-M
customerReferenceAlphanumeric35O * Acme auto-generate if not provided
purposeCodeAlphanumeric4M
paymentAdviceEmailsemail1 email, 100 charsO
receiver.nameSWIFT140M
receiver.bankAlphanumeric (BIC/SWIFT code)11M
receiver.bankAccountNumberAlphanumeric34M
receiver.address.line1SWIFT70O
receiver.address.citySWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO alpha-22O

Example payload:

{
"type": "FAST",
"paymentDate": "2026-04-15",
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"currency": "SGD",
"payments": [
{
"amount": 500000,
"customerReference": "INVFAST001",
"purposeCode": "OTHR",
"paymentAdviceEmails": ["ops@example.com"],
"receiver": {
"name": "Acme Technology Pte Ltd",
"bank": "DBSSSGSGXXX",
"bankAccountNumber": "0123456789"
}
}
]
}

GIRO

fieldpattern / charsetmax lengthmandatory/optional
currencySGD-M
paymentDatecurrent/future date-M
amountnumeric, min 1-M
customerReferenceAlphanumeric35O * Acme auto-generate if not provided
purposeCodeAlphanumeric4M
paymentAdviceEmailsemail1 email, 100 charsO
receiver.nameSWIFT140M
receiver.bankAlphanumeric (BIC11)11M
receiver.bankAccountNumberAlphanumeric34M

Example payload:

{
"type": "GIRO",
"paymentDate": "2026-04-15",
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"currency": "SGD",
"payments": [
{
"amount": 250000,
"customerReference": "INVGIRO001",
"purposeCode": "SALA",
"receiver": {
"name": "Jane Doe",
"bank": "UOVBSGSGXXX",
"bankAccountNumber": "9876543210"
}
}
]
}

MEPS

  • Currency must be SGD.
  • bankChargeBearer is required.
  • paymentDetails (remittance information) is supported; maximum 140 characters.
fieldpattern / charsetmax lengthmandatory/optional
currencySGD-M
paymentDatecurrent/future date-M
amountnumeric, min 1-M
customerReferenceAlphanumeric35O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
bankChargeBearerSENDER, RECEIVER, SHARED-M
paymentAdviceEmailsemail1 email, 100 charsO
receiver.nameSWIFT140M
receiver.bankAlphanumeric (BIC11)11M
receiver.bankAccountNumberAlphanumeric34M
receiver.address.line1SWIFT70O
receiver.address.line2SWIFT70O
receiver.address.citySWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO alpha-22O

Example payload:

{
"type": "MEPS",
"paymentDate": "2026-04-15",
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"currency": "SGD",
"payments": [
{
"amount": 5000000,
"customerReference": "INVMEPS001",
"paymentDetails": "Payment for Invoice INV-2024-001",
"bankChargeBearer": "SENDER",
"paymentAdviceEmails": ["ops@example.com"],
"receiver": {
"name": "Global Supplies Pte Ltd",
"bank": "OCBCSGSGXXX",
"bankAccountNumber": "5432109876"
}
}
]
}

TT

  • Currency accepts any valid ISO currency code.
  • bankChargeBearer is required.
  • receiver.address is required; receiver.address.line1 and receiver.address.country are mandatory within it.
  • paymentDetails (remittance information) is supported; maximum 140 characters.
fieldpattern / charsetmax lengthmandatory/optional
currencyvalid ISO currency code-M
paymentDatecurrent/future date-M
amountnumeric, min 1-M
customerReferenceAlphanumeric35O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
bankChargeBearerSENDER, RECEIVER, SHARED-M
paymentAdviceEmailsemail1 email, 100 charsO
receiver.nameSWIFT140M
receiver.bankAlphanumeric (BIC11)11M
receiver.bankAccountNumberAlphanumeric34M
receiver.iban^[A-Z]{2}[0-9]{2}[A-Z0-9]{10,30}$34O
receiver.localRoutingIdentifierAlphanumeric35O
receiver.addressobject-M
receiver.address.line1SWIFT70M
receiver.address.line2SWIFT70O
receiver.address.citySWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO alpha-22M
intermediaryBankAlphanumeric8–11O

Example payload:

{
"type": "TT",
"paymentDate": "2026-04-15",
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"currency": "USD",
"payments": [
{
"amount": 1000000,
"customerReference": "INVTT001",
"paymentDetails": "Payment for Invoice INV-2024-002",
"bankChargeBearer": "SHARED",
"paymentAdviceEmails": ["ops@example.com"],
"receiver": {
"name": "Overseas Partner Corp",
"bank": "CHASUS33XXX",
"bankAccountNumber": "000123456789",
"address": {
"line1": "270 Park Avenue",
"line2": "Floor 12",
"city": "New York",
"postalCode": "10017",
"country": "US"
}
}
}
]
}

BKTR

  • Use BKTR for in-house book transfers within CIMB SG.
  • Currency accepts any valid ISO currency code.
fieldpattern / charsetmax lengthmandatory/optional
currencyvalid ISO currency code-M
paymentDatecurrent/future date-M
amountnumeric, min 1-M
customerReferenceAlphanumeric35O * Acme auto-generate if not provided
paymentAdviceEmailsemail1 email, 100 charsO
receiver.nameSWIFT140M
receiver.bankAlphanumeric (BIC11)-O
receiver.bankAccountNumberAlphanumeric34M

Example payload:

{
"type": "BKTR",
"paymentDate": "2024-06-15",
"senderAccountId": "intacc_XXXXXXXXXXXXX",
"currency": "SGD",
"payments": [
{
"amount": 100000,
"customerReference": "INVBKTR001",
"receiver": {
"name": "Internal Treasury Account",
"bankAccountNumber": "1234567890"
}
}
]
}