Skip to main content

Acme DBS Singapore Payments (API)

This describes validations / allowed data formats for Acme payments going through DBS 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
  • DBS G_I3 String Character Set:

    • The 26 uppercase Latin letters A-Z
    • The 26 lowercase Latin letters a-z
    • The 10 digits 0-9
    • Space
    • Exclamation mark !
    • Hash #
    • Dollar sign $
    • Percent %
    • Ampersand &
    • Single quote '
    • Left and right parentheses ( )
    • Asterisk *
    • Plus sign +
    • Comma ,
    • Full stop .
    • Forward slash /
    • Colon :
    • Semicolon ;
    • Equals sign =
    • Question mark ?
    • At sign @
    • Left and right square brackets [ ]
    • Caret ^
    • Underscore _
    • Backtick `
    • Left and right curly braces { }
    • Pipe |
    • Tilde ~
    • Hyphen -

Payment details

paymentDetails is an optional free-text field. Acme does not validate its charset or length. DBS validates it.

  • For ACT, MEPS, and TT, paymentDetails is sent to the beneficiary bank but it is subject to the beneficiary to display it. It is also included in the email advice when an advice email is provided.
  • For FAST and PAYNOW, paymentDetails is not sent to the beneficiary bank. It is included in the email advice only when an advice email is provided.

Receiver name validation

Important

Migrating ACT, MEPS, or TT from the existing version (V4) to the new ISO 20022 Payment data changes version (V6) is a breaking change for receiver.name.

  • On V6, receiver.name is enforced as SWIFT up to 140 characters.
  • Names that were accepted before but contain characters outside the SWIFT set are rejected on V6.
  • Sanitize stored payee names before migrating. Characters outside the SWIFT set include !, #, $, %, &, *, ;, =, @, [, ], ^, _, `, {, }, |, ~.

Bank charges (MEPS and TT)

bankChargeBearer and chargeAccount apply to MEPS and TT only.

  • bankChargeBearer accepts SENDER, RECEIVER, or SHARED. When omitted, DBS applies its default charge bearer.
  • chargeAccount is the account DBS debits for the bank charges. When omitted, DBS debits the originating account.

FAST

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT35O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
receiver.nameG_I3140M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberNumeric34M
  • The receiver.name charset and length shown here are validated by DBS. Acme does not validate them upfront.
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.

PAYNOW

  • receiver.bankAccountNumber and receiver.bank must not be provided
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT35O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
receiver.nameG_I3140M
receiver.proxyTypeMOBILE or UEN or VPA or NRICM
receiver.proxyValueSWIFT35M
receiver.addressSWIFT35 chars x 3O
  • The receiver.name charset and length shown here are validated by DBS. Acme does not validate them upfront.
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.

ACT

  • receiver.bank must be provided (Required by DBS)
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberNumeric34M
  • The receiver.name charset and length shown here are validated by DBS. Acme does not validate them upfront.
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.

MEPS

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
chargeAccountAlphanumeric35O *Example: 0172948596
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberNumeric34M
receiver.address.line1SWIFT35M
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35O
receiver.address.countrySWIFT35O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT35O
  • The receiver.name charset and length shown here are validated by DBS. Acme does not validate them upfront.
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.

TT

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
chargeAccountAlphanumeric35O
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberNumeric34M
receiver.address.line1SWIFT35M
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT35O
receiver.address.countrySWIFT35O
  • The receiver.name charset and length shown here are validated by DBS. Acme does not validate them upfront.
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.

MEPS and TT - SWIFT ISO20022 Payment data changes

Important
  • Only applicable to client migrated to DBS V6 Payment API.
  • The following are breaking changes for MEPS and TT clients migrating from V4 to V6.
    • receiver.name is enforced as SWIFT up to 140 characters. See Receiver name validation before migrating from V4.
    • receiver.address.city is now required. It was optional in V4.
    • receiver.address.country is now required and must be an ISO 3166-1 alpha-2 code, for example SG. In V4 it was optional free SWIFT text up to 35 characters.
    • receiver.address.postalCode max length is reduced from 35 to 16.
  • receiver.address.line1 and line2 max length increases from 35 to 70. This is not a breaking change.
  • outgoingPurposeCode applies to TT only and is mandatory when the payment currency or beneficiary country falls into the corridors below. Payments that omit a required code will be rejected by the bank. Applicable purpose code list should be obtained from DBS or the destination country's regulator.
    • Currencies: MYR, CNH / CNY, INR, KWD
    • Beneficiary countries: Myanmar (MM), United Arab Emirates (AE)
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
chargeAccountAlphanumeric35O
outgoingPurposeCodeAlphanumeric (ISO 20022 ExternalPurpose code or country-specific purpose code)
Example: SALA, GDDS
10Conditional (TT only) — M for specific beneficiary country/currency, otherwise O
receiver.nameSWIFT140M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberNumeric34M
receiver.address.line1SWIFT70M
receiver.address.line2SWIFT70O
receiver.address.citySWIFT35M
receiver.address.countrySWIFT2M
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.

ACT - SWIFT ISO20022 Payment data changes

Important
  • Only applicable to client migrated to DBS V6 Payment API.
  • receiver.bank must be provided (Required by DBS).
  • receiver.name is enforced as SWIFT up to 140 characters. See Receiver name validation before migrating from V4.
fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT16O * Acme auto-generate if not provided
paymentDetailsSWIFT140O
receiver.nameSWIFT140M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberNumeric34M
  • The paymentDetails charset and length shown here are validated by DBS. Acme does not validate them upfront.