Acme UOB Malaysia Payments
This describes validations / allowed data formats for Acme payments going through UOB Malaysia. 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
-
BIC11:
- 11-character Bank Identifier Code
General notes
- The beneficiary country (
payments[N].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.MY,SG,AU,US, etc. - The format for BIC (used in
payments[N].receiver.bank) is strictly validated using[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?(as specified in ISO20022 BICFIIdentifier). - Payment date (
paymentDate) cannot be in the past (validated against Malaysia time zone * Asia/Kuala_Lumpur). - All payments require:
payments[N].receiver.transactorRelationship: Must beRELATEDorNOT_RELATEDpayments[N].receiver.residencyStatus: Must beRESIDENTorNON_RESIDENT
TT
Important
- Payment details (
payments[N].paymentDetails) is mandatory. Refer to UOB additional payment details for details. - Purpose code (
payments[N].purposeCode) is mandatory. Please contact the bank for the latest BNM purpose codes. - Purpose of payment (
payments[N].purposeOfPayment) is mandatory. - Address is mandatory including country and city fields.
- Clearing code (
payments[N].receiver.localRoutingIdentifier) may be required for TT payments to certain countries or currencies. Refer to UOB clearing codes for details. - Extra allowed characters:
+'-.,()/:?#$%&*=_`{|}";<>@[\]
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT | 16 | M |
| payments[N].paymentDetails | SWIFT See UOB additional payment details. Details will appear on the payment advice email. | 140 | M |
| payments[N].purposeCode | Alphanumeric Example: 00001 Please contact the bank for the latest BNM purpose codes. | 5 | M |
| payments[N].bankChargeBearer | SENDER or RECEIVER or SHARED. Default to SHARED if not provided. | O | |
| payments[N].purposeOfPayment | SWIFT | 60 | M |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | SWIFT | 140 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.localRoutingIdentifier | Alphanumeric | 35 | C (Required for certain countries/currencies. See UOB clearing codes.) |
| payments[N].receiver.intermediaryBank | Alphanumeric | 11 | O |
| payments[N].receiver.address.line1 | SWIFT | 35 | M |
| payments[N].receiver.address.line2 | SWIFT | 35 | O |
| payments[N].receiver.address.city | SWIFT | 35 | M |
| payments[N].receiver.address.state | SWIFT | 35 | O |
| payments[N].receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M |
| payments[N].receiver.transactorRelationship | RELATED or NOT_RELATED | M | |
| payments[N].receiver.residencyStatus | RESIDENT or NON_RESIDENT | M |
MY_RENTAS
Important
- Currency must be MYR only.
- Purpose code (
payments[N].purposeCode) is mandatory. Please contact the bank for the latest BNM purpose codes. - Purpose of payment (
payments[N].purposeOfPayment) is mandatory. - Address is mandatory including country field.
- Extra allowed characters:
/-?:( ).,'+#$%&*=_`{|}";<>@[\]
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].currency | MYR only | 3 | M |
| payments[N].customerReference | SWIFT | 35 | M |
| payments[N].paymentDetails | SWIFT Details will appear on the payment advice email. | 140 | O |
| payments[N].purposeCode | Alphanumeric Example: 00001 Please contact the bank for the latest BNM purpose codes. | 5 | M |
| payments[N].purposeOfPayment | SWIFT | 60 | M |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | SWIFT | 140 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.localRoutingIdentifier | Alphanumeric | 35 | O |
| payments[N].receiver.intermediaryBank | Alphanumeric | 11 | O |
| payments[N].receiver.address.line1 | SWIFT | 35 | M |
| payments[N].receiver.address.line2 | SWIFT | 35 | O |
| payments[N].receiver.address.city | SWIFT | 35 | O |
| payments[N].receiver.address.state | SWIFT | 35 | O |
| payments[N].receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M |
| payments[N].receiver.transactorRelationship | RELATED or NOT_RELATED | M | |
| payments[N].receiver.residencyStatus | RESIDENT or NON_RESIDENT | M |
MY_IBG
Important
- Currency must be MYR only.
- Purpose code (
payments[N].purposeCode) is mandatory. Please contact the bank for the latest BNM purpose codes. - Purpose of payment (
payments[N].purposeOfPayment) is mandatory.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].currency | MYR only | 3 | M |
| payments[N].customerReference | SWIFT | 30 | M |
| payments[N].paymentDetails | SWIFT Details will appear on the payment advice email. | 140 | O |
| payments[N].purposeCode | Alphanumeric Example: 00001 Please contact the bank for the latest BNM purpose codes. | 5 | M |
| payments[N].purposeOfPayment | SWIFT | 60 | M |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | SWIFT | 20 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.transactorRelationship | RELATED or NOT_RELATED | M | |
| payments[N].receiver.residencyStatus | RESIDENT or NON_RESIDENT | M |
MY_IAFT
Important
- Currency must be MYR only.
- Purpose code (
payments[N].purposeCode) is mandatory. Please contact the bank for the latest BNM purpose codes. - Purpose of payment (
payments[N].purposeOfPayment) is mandatory. - Both sender and receiver accounts must be with UOB Malaysia (book transfer).
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].currency | MYR only | 3 | M |
| payments[N].customerReference | SWIFT | 30 | M |
| payments[N].paymentDetails | SWIFT Details will appear on the payment advice email. | 140 | O |
| payments[N].purposeCode | Alphanumeric Example: 00001 Please contact the bank for the latest BNM purpose codes. | 5 | M |
| payments[N].purposeOfPayment | SWIFT | 60 | M |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | SWIFT | 20 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.transactorRelationship | RELATED or NOT_RELATED | M | |
| payments[N].receiver.residencyStatus | RESIDENT or NON_RESIDENT | M |
MY_DUITNOW
Important
- Currency must be MYR only.
- Use
payments[N].receiver.proxyType+payments[N].receiver.proxyValueinstead of bank account numbers. - Purpose code (
payments[N].purposeCode) is conditionally mandatory ifpayments[N].receiver.residencyStatus = NON_RESIDENT. - Purpose of payment (
payments[N].purposeOfPayment) is conditionally mandatory ifpayments[N].receiver.residencyStatus = NON_RESIDENT.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].currency | MYR only | 3 | M |
| payments[N].customerReference | Alphanumeric | 40 | M |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric Example: 00001 Please contact the bank for the latest BNM purpose codes. | 5 | C (required if payments[N].receiver.residencyStatus = NON_RESIDENT) |
| payments[N].purposeOfPayment | SWIFT | 60 | C (required if payments[N].receiver.residencyStatus = NON_RESIDENT) |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 100 per email (max 5 emails) | O |
| payments[N].receiver.name | SWIFT | 140 | M |
| payments[N].receiver.proxyType | NRIC or PASSPORT or ARMY or MOBILE or BUSINESS_REG | M | |
| payments[N].receiver.proxyValue for NRIC | NRIC / Malaysian Identification Number | 34 | M |
| payments[N].receiver.proxyValue for PASSPORT | Passport Number + Alpha-3 country code of the country of issuance. E.g: given a passport number E394029340V and country code of Singapore (SGP), the value will be E394029340VSGP. | 34 | M |
| payments[N].receiver.proxyValue for ARMY | Army Number | 34 | M |
| payments[N].receiver.proxyValue for MOBILE | + followed by 7 to 34 digits Example: +60121234567 | 34 | M |
| payments[N].receiver.proxyValue for BUSINESS_REG | Business Registration Number (BRN) Example: 202201234565 | 34 | M |
| payments[N].receiver.transactorRelationship | RELATED or NOT_RELATED | M | |
| payments[N].receiver.residencyStatus | RESIDENT or NON_RESIDENT | M |
MY_IBFT
Important
- Currency must be MYR only.
- Proxy identifiers are NOT supported, use bank account number instead.
- Purpose code (
payments[N].purposeCode) is conditionally mandatory ifpayments[N].receiver.residencyStatus = NON_RESIDENT. - Purpose of payment (
payments[N].purposeOfPayment) is conditionally mandatory ifpayments[N].receiver.residencyStatus = NON_RESIDENT.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].currency | MYR only | 3 | M |
| payments[N].customerReference | Alphanumeric | 40 | M |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric Example: 00001 Please contact the bank for the latest BNM purpose codes. | 5 | C (required if payments[N].receiver.residencyStatus = NON_RESIDENT) |
| payments[N].purposeOfPayment | SWIFT | 60 | C (required if payments[N].receiver.residencyStatus = NON_RESIDENT) |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 100 per email (max 5 emails) | O |
| payments[N].receiver.name | SWIFT | 140 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Numeric | 34 | M |
| payments[N].receiver.transactorRelationship | RELATED or NOT_RELATED | M | |
| payments[N].receiver.residencyStatus | RESIDENT or NON_RESIDENT | M |