Bank payment rules

Acme OCBC Bank Singapore Payments (H2H)

This describes validations / allowed data formats for Acme payments going through OCBC Bank Singapore. 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 beneficiary country (receiver.address.country) must be an uppercase 2-letter ISO 3166 country code (e.g. SG for Singapore).
  • The format for BIC (used in receiver.bank and receiver.intermediaryBank) is strictly validated using [A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})? (as specified in ISO20022 BICFIIdentifier).

Currency

  • ACT, MEPS, FAST, GIRO, PAYNOW (FAST), and PAYNOW_GIRO payments must be in SGD.

Payment date

  • For GIRO and PAYNOW_GIRO, the paymentDate must be at least one business day after today (Asia/Singapore time).

Amount

  • FAST and PAYNOW (FAST) payments must not be more than SGD 200,000 in amount.

FAST / GIRO

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
receiver.nameSWIFT140M
receiver.bankBIC1111M
receiver.bankAccountNumberAlphanumeric34M
receiver.addressSWIFT35 chars x 3O

PAYNOW (FAST)

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
receiver.nameSWIFT140M
receiver.proxyTypeMOBILE or UEN or NRIC or VPAM
receiver.proxyValue
for MOBILE
+ followed by 1 to 15 digits16M
receiver.proxyValue
for UEN
1 to 35 digits and uppercase letters A-Z35M
receiver.proxyValue
for NRIC
First letter S, T, F, G, or M, followed by 7 digits, then an uppercase check letter9M
receiver.proxyValue
for VPA
1 to 21 characters from +, #, digits, and uppercase letters A-Z21M
receiver.addressSWIFT35 chars x 3O

PAYNOW_GIRO

VPA is not a valid receiver.proxyType for PAYNOW_GIRO.

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
receiver.nameSWIFT140M
receiver.proxyTypeMOBILE or UEN or NRICM
receiver.proxyValue
for MOBILE
+ followed by 1 to 15 digits16M
receiver.proxyValue
for UEN
1 to 35 digits and uppercase letters A-Z35M
receiver.proxyValue
for NRIC
First letter S, T, F, G, or M, followed by 7 digits, then an uppercase check letter9M
receiver.addressSWIFT35 chars x 3O

ACT

Also known as IFT (Internal Funds Transfer) or Book Transfer.

The receiver.bank is not required because it's a transfer within the same bank (OCBC).

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
receiver.nameSWIFT35M
receiver.bankAccountNumberAlphanumeric34M
receiver.addressSWIFT35 chars x 3O

MEPS

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
receiver.nameSWIFT140M
receiver.bankBIC1111M
receiver.intermediaryBankBIC1111O
receiver.bankAccountNumberAlphanumeric34M
receiver.addressSWIFT—M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35M
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryuppercase ISO country code2M

TT

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16M
paymentDetailsSWIFT140M
bankChargeBearerSENDER or RECEIVER or SHAREDO
receiver.nameSWIFT140M
receiver.bankBIC1111M
receiver.intermediaryBankBIC1111O
receiver.localRoutingIdentifierAlphanumeric35O
receiver.bankAccountNumberAlphanumeric34M
receiver.addressSWIFT—M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35M
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryuppercase ISO country code2M

MEPS and TT - SWIFT ISO20022 Payment data changes

Important

  • The MEPS and TT tables above show the OCBC H2H CBPR+ (ISO 20022) rules.
  • The following are breaking changes for MEPS and TT clients migrating to CBPR+.
    • receiver.address.city is now required. It was optional before.
    • receiver.address and receiver.address.country are now required for MEPS. They were already required for TT.
    • paymentDetails is now required for TT. It stays optional for MEPS.
    • receiver.address.postalCode max length is reduced from 35 (the limit for each address field before) to 16.
    • receiver.address.line1 and line2 are joined by a space and must total 70 characters or fewer. See Beneficiary address mapping.
  • receiver.name max length increases from 35 to 140. This is not a breaking change.

Beneficiary address mapping

receiver.address.line1 and receiver.address.line2 are joined by a space into the single street name field (StrtNm). Together with the joining space they must total 70 characters or fewer, so two full-length 35-character lines are one character too long and are rejected.

On this page