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
- The 26 uppercase Latin letters
-
Alphanumeric:
A-Z,a-z,0-9 -
BIC11: 11-character alphanumeric bank identifier
General Notes
paymentDateis required and cannot be earlier than the current date inAsia/Singaporetimezone.- Each batch must contain between 1 and 1,000 payments.
paymentAdviceEmailsis optional for all payment types; maximum 1 email address and maximum 100 characters.paymentDetails(remittance information) is supported forTTandMEPSonly.
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.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| currency | SGD | - | M |
| paymentDate | current/future date | - | M |
| amount | numeric, min 1, max 20,000,000 | - | M |
| customerReference | Alphanumeric | 35 | O * Acme auto-generate if not provided |
| purposeCode | Alphanumeric | 4 | M |
| paymentAdviceEmails | 1 email, 100 chars | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric (BIC/SWIFT code) | 11 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.address.line1 | SWIFT | 70 | O |
| receiver.address.city | SWIFT | 35 | O |
| receiver.address.postalCode | SWIFT | 16 | O |
| receiver.address.country | ISO alpha-2 | 2 | O |
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
- Currency must be
SGD. - A 4-character purpose code is required. Refer to the ABS Singapore purpose code list.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| currency | SGD | - | M |
| paymentDate | current/future date | - | M |
| amount | numeric, min 1 | - | M |
| customerReference | Alphanumeric | 35 | O * Acme auto-generate if not provided |
| purposeCode | Alphanumeric | 4 | M |
| paymentAdviceEmails | 1 email, 100 chars | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric (BIC11) | 11 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
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. bankChargeBeareris required.paymentDetails(remittance information) is supported; maximum 140 characters.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| currency | SGD | - | M |
| paymentDate | current/future date | - | M |
| amount | numeric, min 1 | - | M |
| customerReference | Alphanumeric | 35 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER, RECEIVER, SHARED | - | M |
| paymentAdviceEmails | 1 email, 100 chars | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric (BIC11) | 11 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.address.line1 | SWIFT | 70 | O |
| receiver.address.line2 | SWIFT | 70 | O |
| receiver.address.city | SWIFT | 35 | O |
| receiver.address.postalCode | SWIFT | 16 | O |
| receiver.address.country | ISO alpha-2 | 2 | O |
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.
bankChargeBeareris required.receiver.addressis required;receiver.address.line1andreceiver.address.countryare mandatory within it.paymentDetails(remittance information) is supported; maximum 140 characters.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| currency | valid ISO currency code | - | M |
| paymentDate | current/future date | - | M |
| amount | numeric, min 1 | - | M |
| customerReference | Alphanumeric | 35 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER, RECEIVER, SHARED | - | M |
| paymentAdviceEmails | 1 email, 100 chars | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric (BIC11) | 11 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.iban | ^[A-Z]{2}[0-9]{2}[A-Z0-9]{10,30}$ | 34 | O |
| receiver.localRoutingIdentifier | Alphanumeric | 35 | O |
| receiver.address | object | - | M |
| receiver.address.line1 | SWIFT | 70 | M |
| receiver.address.line2 | SWIFT | 70 | O |
| receiver.address.city | SWIFT | 35 | O |
| receiver.address.postalCode | SWIFT | 16 | O |
| receiver.address.country | ISO alpha-2 | 2 | M |
| intermediaryBank | Alphanumeric | 8–11 | O |
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
BKTRfor in-house book transfers within CIMB SG. - Currency accepts any valid ISO currency code.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| currency | valid ISO currency code | - | M |
| paymentDate | current/future date | - | M |
| amount | numeric, min 1 | - | M |
| customerReference | Alphanumeric | 35 | O * Acme auto-generate if not provided |
| paymentAdviceEmails | 1 email, 100 chars | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric (BIC11) | - | O |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
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"
}
}
]
}