Skip to main content

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

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

  • customerReference is 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 nameWhere it appearsWhat the recipient sees
Debit descriptionYour Maybank statement and the Transaction Reference column on the Maybank M2E portal-
Credit referenceThis reference is sent to the beneficiary's bank and should appear in your beneficiary's bank statementThe value you provide in customerReference or the auto-generated reference ID

Payment Details

  • paymentDetails is 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 nameWhere it appearsWhat the recipient sees
Payment detailsBeneficiary's bankThe value you provide in paymentDetails. Whether it is shown to the beneficiary depends on the beneficiary's bank.

FAST

info
  • 4 characters purposeCode is mandatory for FAST payments. Refer to the list provided by The Association of Banks in Singapore (ABS).
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT35O
payments[N].paymentDetailsSWIFT140O
payments[N].purposeCodeAlphanumeric35M
payments[N].receiver.nameSWIFT120M
payments[N].receiver.bankBIC1111M
payments[N].receiver.bankAccountNumberAlphanumeric34M

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 proxyValue patterns. Follow the rules specified below to avoid rejection by the bank.
  • receiver.bank and receiver.bankAccountNumber must not be provided.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT35O
payments[N].paymentDetailsSWIFT140O
payments[N].purposeCodeAlphanumeric35M
payments[N].receiver.nameSWIFT120M
payments[N].receiver.proxyTypeMOBILE or NRIC or UENM
payments[N].receiver.proxyValue (MOBILE)+ followed by up to 15 digits
Example: +6591234567
35M
payments[N].receiver.proxyValue (NRIC)9 uppercase alphanumeric characters
Example: S7800000A
35M
payments[N].receiver.proxyValue (UEN)9 to 13 uppercase alphanumeric characters
Example: 201688888A
35M

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 purposeCode is mandatory for GIRO payments. Refer to the list provided by The Association of Banks in Singapore (ABS).
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT35O
payments[N].paymentDetailsSWIFT140O
payments[N].purposeCodeAlphanumeric35M
payments[N].receiver.nameSWIFT120M
payments[N].receiver.bankBIC1111M
payments[N].receiver.bankAccountNumberAlphanumeric34M

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.bank must not be provided.
  • purposeCode is not required for book transfers.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT35O
payments[N].paymentDetailsSWIFT140O
payments[N].receiver.nameSWIFT120M
payments[N].receiver.bankAccountNumberAlphanumeric34M

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:

StatusDescription
PROCESSINGStatus upon creation.
SUBMITTEDPayment file uploaded to Maybank. Awaiting acknowledgment and final confirmation.
COMPLETEDPayment confirmed successful by the bank.
FAILEDPayment rejected by the bank. Check underlyingErrorMessage for details.