Bank payment rules
Acme Deutsche Bank Singapore Payments
This describes validations / allowed data formats for Acme payments going through Deutsche 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
- The 26 uppercase Latin letters
General notes
- The beneficiary country (
receiver.address.country) must be an uppercase 2-letter ISO 3166 country code (e.g.SGfor Singapore). - The format for BIC (used in
receiver.bankandreceiver.intermediaryBank) is strictly validated using[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?(as specified in ISO20022 BICFIIdentifier).
FAST
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 25 | M |
| 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 |
PAYNOW
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 25 | M |
| paymentDetails | SWIFT | 140 | O |
| receiver.proxyType | MOBILE or UEN or VPA | M | |
| receiver.proxyValue for MOBILE | + followed by 7 to 15 digits | 16 | M |
| receiver.proxyValue for UEN | 9 to 13 alphanumeric characters | 13 | M |
| receiver.proxyValue for VPA | Mobile followed by # and 4 alphanumeric characters or UEN followed by UEN followed by # and 4 alphanumeric characters | 21 | M |
| receiver.address | SWIFT | 35 chars x 3 | O |
GIRO
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 25 | M |
| 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 |
ACT - not supported
This type is not supported.
MEPS
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 25 | M |
| 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.address | SWIFT | 35 chars x 3 | O |
TT
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 25 | M |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER or RECEIVER or SHARED | O | |
| receiver.name | SWIFT | 35 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.intermediaryBank | Alphanumeric | 11 | O |
| receiver.localRoutingIdentifier | Alphanumeric | 35 | O |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.address | SWIFT | 35 chars x 3 | O |
| receiver.address.country | uppercase ISO country code | 2 | M |
Bank references
bankReference is usually null for Deutsche Bank payments: Deutsche Bank's status files usually carry no payment reference to use as bankReference. bankReferences lists any reference a status file does carry, keyed by Deutsche Bank's field name.
Good to know:
- If Deutsche Bank's status file carries
AcctSvcrRef(Deutsche Bank's own reference for the transaction),ClrSysRef(the clearing system's reference) orStsId(the id of Deutsche Bank's status entry) when Deutsche Bank accepts or rejects the payment, Acme keeps it, andbankReferenceis set toAcctSvcrRef, elseClrSysRef. - A payment rejected in a status file keeps the references in that file.
A completed payment usually returns:
{
"bankReference": null,
"bankReferences": {}
}