Acme Maybank Singapore Payments (H2H)
This describes validations and allowed data formats for Acme payments going through Maybank MBB Singapore (SWIFT BIC: MBBESGSGXXX). These rules are 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
General notes
- Currency must be SGD only for all supported payment types.
- 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).
Field visibility on bank portal and statements
Use this as a guide when deciding the value to populate in each field.
Customer Reference
customerReferenceis an optional field.- If not provided, Maybank's core banking system generates a reference ID automatically.
- Acme suggest to populate the Invoice Number or Document Reference Number that will be sent to the beneficiary in this field.
| Maybank field name | Where it appears | What the recipient sees |
|---|---|---|
| Debit description | Your Maybank statement and the Transaction Reference column on the Maybank M2E portal | - |
| Credit reference | This reference is sent to the beneficiary's bank and should appear in your beneficiary's bank statement | The value you provide in customerReference or the auto-generated reference ID |
Payment Details
paymentDetailsis an optional field.- It is sent to the beneficiary's bank as additional payment information.
- Whether the beneficiary sees this value depends on the beneficiary's bank. Not all banks surface this field to account holders.
| Maybank field name | Where it appears | What the recipient sees |
|---|---|---|
| Payment details | Beneficiary's bank | The value you provide in paymentDetails. Whether it is shown to the beneficiary depends on the beneficiary's bank. |
FAST
info
- 4 characters
purposeCodeis mandatory forFASTpayments. Refer to the list provided by The Association of Banks in Singapore (ABS).
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT | 35 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric | 35 | M |
| payments[N].receiver.name | SWIFT | 120 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
Example Request:
{
"type": "FAST",
"paymentDate": "2026-06-30",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV-001",
"paymentDetails": "Payment for invoice 001",
"purposeCode": "OTHR",
"receiver": {
"name": "Tan Ah Kow",
"bank": "DBSSSGSGXXX",
"bankAccountNumber": "9876543210"
}
}
]
}
PAYNOW
info
- Acme does not validate the
proxyValuepatterns. Follow the rules specified below to avoid rejection by the bank. receiver.bankandreceiver.bankAccountNumbermust not be provided.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT | 35 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric | 35 | M |
| payments[N].receiver.name | SWIFT | 120 | M |
| payments[N].receiver.proxyType | MOBILE or NRIC or UEN | M | |
| payments[N].receiver.proxyValue (MOBILE) | + followed by up to 15 digits Example: +6591234567 | 35 | M |
| payments[N].receiver.proxyValue (NRIC) | 9 uppercase alphanumeric characters Example: S7800000A | 35 | M |
| payments[N].receiver.proxyValue (UEN) | 9 to 13 uppercase alphanumeric characters Example: 201688888A | 35 | M |
Example Request:
{
"type": "PAYNOW",
"paymentDate": "2026-06-30",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV-002",
"paymentDetails": "Payment for invoice 002",
"purposeCode": "OTHR",
"receiver": {
"name": "Tan Ah Kow",
"proxyType": "MOBILE",
"proxyValue": "+6591234567"
}
}
]
}
GIRO
info
- 4 characters
purposeCodeis mandatory forGIROpayments. Refer to the list provided by The Association of Banks in Singapore (ABS).
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT | 35 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric | 35 | M |
| payments[N].receiver.name | SWIFT | 120 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
Example Request:
{
"type": "GIRO",
"paymentDate": "2026-06-30",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV-003",
"paymentDetails": "Payment for invoice 003",
"purposeCode": "SALA",
"receiver": {
"name": "Tan Ah Kow",
"bank": "OCBCSGSGXXX",
"bankAccountNumber": "9876543210"
}
}
]
}
BKTR
Book transfers move funds between accounts within Maybank SG (MBBESGSGXXX).
info
receiver.bankmust not be provided.purposeCodeis not required for book transfers.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT | 35 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].receiver.name | SWIFT | 120 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
Example Request:
{
"type": "BKTR",
"paymentDate": "2026-06-30",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV-004",
"paymentDetails": "Internal fund transfer",
"receiver": {
"name": "Tan Ah Kow",
"bankAccountNumber": "9876543210"
}
}
]
}
Payment Response
Payment status definitions:
| Status | Description |
|---|---|
PROCESSING | Status upon creation. |
SUBMITTED | Payment file uploaded to Maybank. Awaiting acknowledgment and final confirmation. |
COMPLETED | Payment confirmed successful by the bank. |
FAILED | Payment rejected by the bank. Check underlyingErrorMessage for details. |