Acme DBS Singapore Payments (H2H)
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
- The 26 uppercase Latin letters
Acme Address Packing (Before SWIFT ISO20022 Payment data changes)
receiver.addressis submitted as a structured object with up to six fields. The fields areline1,line2,city,state,postalCode, andcountry.- The same handling applies to every existing payment type that accepts an address (FAST, PAYNOW, PAYNOW_GIRO, GIRO, MEPS, TT).
line1is mandatory only for MEPS and TT. It is optional for the other types.- When no address is provided for the optional types, packing is skipped.
- When an address is provided, Acme flattens the fields into 3 lines of up to 35 SWIFT characters.
line1andline2are each placed on their own line. Each must be 35 characters or fewer.city,state,postalCode, andcountryare combined in that order onto the remaining lines. Acme splits on spaces or punctuation as needed to fit.- The payment is rejected if the combined address cannot fit within 3 lines of 35 characters.
Payment advice on DBS IDEAL and advice emails
When you provide payments[N].paymentAdviceEmails, DBS sends a payment advice to those recipients. The following fields determine what the recipient sees.
paymentDetailsis shown as the Invoice Details in the advice email Payment Details section in the email body.customerReferenceis shown as the Client Reference in the advice email Payment Details section in the email body.- If
paymentDetailsis not provided, Acme usescustomerReferenceas the Invoice Details so the field is never empty. - These fields are populated only when advice emails are provided in
paymentAdviceEmailsfor the payment.
FAST
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 35 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 35 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.address | SWIFT | 35 chars x 3 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
receiver.address is a structured object with the fields line1, line2, city, state, postalCode, and country. When provided, Acme flattens it into 3 lines of 35 SWIFT characters. See Address packing.
PAYNOW (FAST) / PAYNOW_GIRO
Acme does not validate the proxyValue patterns. Follow the rules specified below to avoid rejection by the bank.
receiver.bankAccountNumberandreceiver.bankmust not be provided
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 35 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 35 | M |
| receiver.proxyType | MOBILE or UEN or VPA or NRIC | M | |
| receiver.proxyValue (MOBILE) | SWIFT, + followed by up to 15 digits Example: +6588880000 | 35 | M |
| receiver.proxyValue (UEN) | Uppercase SWIFT 9 to 13 uppercase alphanumeric characters Example: 201688888A | 35 | M |
| receiver.proxyValue (NRIC) | Uppercase SWIFT 9 uppercase alphanumeric characters Example: S7800000A | 35 | M |
| receiver.proxyValue (VPA) | Uppercase SWIFT Mobile followed by # and 4 uppercase alphanumeric characters Example: +6588880000#Grab or UEN followed by UEN followed by # and 4 uppercase alphanumeric characters Example: +UEN1234567#Grab | 35 | M |
| receiver.address | SWIFT | 35 chars x 3 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
receiver.address is a structured object with the fields line1, line2, city, state, postalCode, and country. When provided, Acme flattens it into 3 lines of 35 SWIFT characters. See Address packing.
GIRO
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 35 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 35 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.address | SWIFT | 35 chars x 3 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
receiver.address is a structured object with the fields line1, line2, city, state, postalCode, and country. When provided, Acme flattens it into 3 lines of 35 SWIFT characters. See Address packing.
ACT
receiver.bankmust not be provided
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 16 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 35 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
MEPS
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 16 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER or RECEIVER or SHARED | O | |
| receiver.name | SWIFT | 35 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.bankAccountNumber | Alphanumeric + - | 34 | M |
| receiver.intermediaryBank | Alphanumeric | 11 | O |
| receiver.address.line1 | SWIFT | 35 | M |
| receiver.address.line2 | SWIFT | 35 | O |
| receiver.address.city | SWIFT | 35 | O |
| receiver.address.state | SWIFT | 35 | O |
| receiver.address.postalCode | SWIFT | 35 | O |
| receiver.address.country | SWIFT | 35 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
Acme flattens these receiver.address fields into 3 lines of 35 SWIFT characters before submission to DBS. See Address packing.
TT
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 16 | O * Acme auto-generate if not provided |
| instructionForSenderBank | SWIFT | 128 | O |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER or RECEIVER or SHARED | O | |
| receiver.name | SWIFT | 35 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.bankAccountNumber | Alphanumeric + - | 34 | M |
| receiver.localRoutingIdentifier | Alphanumeric | 31 | O |
| receiver.intermediaryBank | Alphanumeric | 11 | O |
| receiver.address.line1 | SWIFT | 35 | M |
| receiver.address.line2 | SWIFT | 35 | O |
| receiver.address.city | SWIFT | 35 | O |
| receiver.address.state | SWIFT | 35 | O |
| receiver.address.postalCode | SWIFT | 35 | O |
| receiver.address.country | SWIFT | 35 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
Acme flattens these receiver.address fields into 3 lines of 35 SWIFT characters before submission to DBS. See Address packing.
MEPS and TT - SWIFT ISO20022 Payment data changes
- Only applicable to clients migrated to DBS H2H CBPR+ (ISO 20022).
instructionForSenderBankapplies toTTonly.receiver.namemaximum characters increased from 35 to 140.outgoingPurposeCodeapplies toTTonly 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)
- Currencies:
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 16 | O * Acme auto-generate if not provided |
| instructionForSenderBank | SWIFT | 128 | O (TT only) |
| outgoingPurposeCode | Alphanumeric (ISO 20022 ExternalPurpose code or country-specific purpose code) Example: SALA, GDDS | 10 | Conditional (TT only) — M for specific beneficiary country/currency, otherwise O |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER or RECEIVER or SHARED | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.bankAccountNumber | Alphanumeric + - | 34 | M |
| receiver.localRoutingIdentifier | Alphanumeric | 31 | O (TT only) |
| receiver.intermediaryBank | Alphanumeric | 11 | O |
| receiver.address.line1 | SWIFT | 70 | M |
| receiver.address.line2 | SWIFT | 70 | O |
| receiver.address.city | SWIFT | 35 | M |
| receiver.address.country | SWIFT | 2 | M |
| receiver.address.state | SWIFT | 35 | O |
| receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |
ACT - SWIFT ISO20022 Payment data changes
- Only applicable to clients migrated to DBS H2H CBPR+ (ISO 20022).
receiver.namemaximum characters increased from 35 to 140.receiver.bankmust not be provided.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 16 | O * Acme auto-generate if not provided |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 140 | M |
| receiver.bankAccountNumber | Numeric | 34 | M |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 75 per email (max 5 emails) | O |