Acme HSBC Bank Singapore Payments
This describes validations / allowed data formats for Acme payments going through HSBC 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
-
BIC11:
- 11-character Bank Identifier Code
General notes
- The
receiver.address.country
must be an uppercase 2-letter ISO 3166 country code (e.g.SG
for Singapore). - The format for BIC (used in
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).
GIRO
Important
- The
paymentSetCode
for GIRO payments is a 3 character optional code configured on HSBCnet to group payment instructions under a specific access or entitlement group. Use this field to restrict payroll transaction access on HSBCnet. The value must match an existing payment set code configured in HSBCnet, please contact the bank for the appropriate code(s) to set.
field | pattern / charset | max length | mandatory/optional |
---|---|---|---|
paymentSetCode | SWIFT Example: E01 | 3 | O |
payments[N].customerReference | SWIFT | 12 | M |
payments[N].paymentDetails | SWIFT | 140 | O |
payments[N].bankChargeBearer | SENDER or RECEIVER or SHARED Default to SENDER if not provided. | 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.address.line1 | SWIFT | 35 | O |
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 | SWIFT | 2 | O |
FAST
field | pattern / charset | max length | mandatory/optional |
---|---|---|---|
payments[N].customerReference | SWIFT | 16 | M |
payments[N].paymentDetails | SWIFT | 140 | 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.address.line1 | SWIFT | 35 | O |
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 | SWIFT | 2 | O |
PAYNOW
field | pattern / charset | max length | mandatory/optional |
---|---|---|---|
payments[N].customerReference | SWIFT | 16 | M |
payments[N].paymentDetails | SWIFT | 140 | O |
payments[N].receiver.proxyType | NRIC or MOBILE or UEN or VPA | M | |
payments[N].receiver.proxyValue for NRIC or FIN | 9 uppercase alphanumeric characters | 9 | M |
payments[N].receiver.proxyValue for MOBILE | + followed by 7 to 15 digits Example: +6588880000 | 16 | M |
payments[N].receiver.proxyValue for UEN | 9 to 13 alphanumeric characters | 13 | M |
payments[N].receiver.proxyValue for VPA | Mobile followed by # and 4 alphanumeric characters Example: +6588880000#Grab or UEN followed by UEN followed by # and 4 alphanumeric characters Example: +UEN1234567#Grab | 21 | M |
payments[N].receiver.address.line1 | SWIFT | 35 | O |
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 | SWIFT | 2 | O |
MEPS
field | pattern / charset | max length | mandatory/optional |
---|---|---|---|
payments[N].customerReference | SWIFT | 16 | M |
payments[N].paymentDetails | SWIFT | 140 | O |
payments[N].bankChargeBearer | SENDER or RECEIVER or SHARED Default to SHARED if not provided. | O | |
payments[N].receiver.name | SWIFT | 35 | M |
payments[N].receiver.bank | BIC11 | 11 | M |
payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
payments[N].receiver.address.line1 | SWIFT | 35 | O |
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 | SWIFT | 2 | O |
TT
Important
- The
paymentDetails
is conditionally mandatory for TT to specific countries in Asia including Bangladesh, India, Malaysia, Mauritius, the Philippines, Sri Lanka, Vietnam and Indonesia. - Specify the purpose of payments (PoP) according to the local regulatory guidelines for each country. Please contact the bank for the latest Asia Purpose of Payment Formatting Guide.
- Note: As part of the requirements, for TT payments to Malaysia, please append the prefix "REMI/" before populating the purpose of payment. Example: "REMI/Manufactured Goods"
field | pattern / charset | max length | mandatory/optional |
---|---|---|---|
payments[N].customerReference | SWIFT | 16 | M |
payments[N].paymentDetails | SWIFT Example: Manufactured Goods | 140 | CM |
payments[N].bankChargeBearer | SENDER or RECEIVER or SHARED Default to SHARED if not provided. | O | |
payments[N].receiver.name | SWIFT | 35 | M |
payments[N].receiver.bank | BIC11 | 11 | M |
payments[N].receiver.intermediaryBank | BIC11 | 11 | O |
payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
payments[N].receiver.address.line1 | SWIFT | 35 | O |
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 | SWIFT | 2 | O |