Bank payment rules
Acme UOB Singapore Payments
This describes validations / allowed data formats for Acme payments going through UOB 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) is mandatory for all payment types, and must be a valid, uppercase 2-letter ISO country code (ISO 3166 Alpha-2) e.g. SG, MY, AU, US, etc.
FAST
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 35 | 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 |
| receiver.address.country | Uppercase ISO country code | 2 | M |
PAYNOW
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 35 | M |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 35 | M |
| receiver.proxyType | MOBILE or UEN or NRIC or VPA | M | |
| receiver.proxyValue for MOBILE | + followed by 7 to 15 digits | 16 | M |
| receiver.proxyValue for UEN | 9 to 13 uppercase alphanumeric characters | 13 | M |
| receiver.proxyValue for NRIC | 9 uppercase alphanumeric characters | 9 | 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 |
| receiver.address.country | Uppercase ISO country code | 2 | M |
GIRO
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 35 | 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 |
| receiver.address.country | Uppercase ISO country code | 2 | M |
ACT
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 16 | M |
| paymentDetails | SWIFT | 140 | O |
| receiver.name | SWIFT | 35 | M |
| receiver.bankAccountNumber | Alphanumeric | 34 | M |
| receiver.address.country | Uppercase ISO country code | 2 | M |
MEPS
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 20 | M |
| instructionForSenderBank | SWIFT | 140 | 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 + Dash | 34 | M |
| receiver.address | SWIFT | 35 chars x 3 | O |
| receiver.address.country | Uppercase ISO country code | 2 | M |
TT
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 20 | M |
| instructionForSenderBank | SWIFT | 140 | O |
| 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 + Dash | 34 | M |
| receiver.address | SWIFT | 35 chars x 3 | M |
| receiver.address.country | Uppercase ISO country code | 2 | M |
TT - SWIFT ISO20022 (CBPR+) Payment data changes
Important
- Only applicable to organizations onboarded to UOB's CBPR+ update.
- The following are breaking changes for
TTclients migrating to CBPR+.receiver.address.line1is now required.receiver.address.cityis now required. City is sent as the structured town name, so it does not count against the 3 x 35 address-line limit.
receiver.namemax length increases from 35 to 140. This is not a breaking change.outgoingPurposeCodeis new. It carries the UOB Creditor Purpose of Payment (POP) code and applies toTTonly.- It is mandatory when the beneficiary bank is in China (
CN), Malaysia (MY), Indonesia (ID) or Thailand (TH). UOB rejects the payment if it is missing. - For every other beneficiary country it is optional.
- Acme validates the format only (
TTonly, alphanumeric, max 10 characters). Acme does not validate the code value.
- It is mandatory when the beneficiary bank is in China (
- See Acme UOB Singapore Creditor Purpose of Payment Codes for the code list per beneficiary country.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| customerReference | SWIFT | 20 | M |
| instructionForSenderBank | SWIFT | 140 | O |
| outgoingPurposeCode | Alphanumeric (UOB Creditor POP code) Example: GDDS, SALA, GOD | 10 | Conditional (TT only). M for beneficiary banks in CN, MY, ID or TH, otherwise O |
| paymentDetails | SWIFT | 140 | O |
| bankChargeBearer | SENDER or RECEIVER or SHARED | O | |
| receiver.name | SWIFT | 140 | M |
| receiver.bank | Alphanumeric | 11 | M |
| receiver.intermediaryBank | Alphanumeric | 11 | O |
| receiver.localRoutingIdentifier | Alphanumeric | 35 | O |
| receiver.bankAccountNumber | Alphanumeric + Dash | 34 | M |
| receiver.address | SWIFT | 35 chars x 3 | M |
| receiver.address.line1 | SWIFT | 35 | M |
| receiver.address.city | SWIFT | 35 | M |
| receiver.address.country | Uppercase ISO country code | 2 | M |