# Acme HSBC Bank Singapore Payments (/guides/hsbc-sg-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 [#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 <code style="{whiteSpace: 'pre'}"> </code>

* BIC11:
  * 11-character Bank Identifier Code

## General notes [#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](https://www.iso20022.org/standardsrepository/type/BICFIIdentifier)).

## GIRO [#giro]

<Callout type="warn" title="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.
</Callout>

| field                                    | pattern / charset                                                             | max length | mandatory/optional |
| ---------------------------------------- | ----------------------------------------------------------------------------- | ---------- | ------------------ |
| paymentSetCode                           | SWIFT <br /> Example: `E01`                                                   | 3          | O                  |
| payments\[N].customerReference           | SWIFT                                                                         | 12         | M                  |
| payments\[N].paymentDetails              | SWIFT                                                                         | 140        | O                  |
| payments\[N].bankChargeBearer            | `SENDER` or `RECEIVER` or `SHARED`<br /> 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 [#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 [#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 <br />for NRIC or FIN | 9 uppercase alphanumeric characters                                                                                                                                                                             | 9          | M                  |
| payments\[N].receiver.proxyValue <br />for MOBILE      | + followed by 7 to 15 digits <br /> Example: `+6588880000`                                                                                                                                                      | 16         | M                  |
| payments\[N].receiver.proxyValue <br />for UEN         | 9 to 13 alphanumeric characters                                                                                                                                                                                 | 13         | M                  |
| payments\[N].receiver.proxyValue <br />for VPA         | Mobile followed by `#` and 4 alphanumeric characters <br /> Example: `+6588880000#Grab` <br /> or <br /> `UEN` followed by UEN followed by `#` and 4 alphanumeric characters <br /> 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 [#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`<br /> 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 [#tt]

<Callout type="warn" title="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**.<br />
  * 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**.<br />
  * **Note:*&#x2A; As part of the requirements, for TT payments to Malaysia, please append the prefix &#x2A;*"REMI/"** before populating the purpose of payment. Example: "REMI/Manufactured Goods"
</Callout>

| field                                    | pattern / charset                                                             | max length | mandatory/optional |
| ---------------------------------------- | ----------------------------------------------------------------------------- | ---------- | ------------------ |
| payments\[N].customerReference           | SWIFT                                                                         | 16         | M                  |
| payments\[N].paymentDetails              | SWIFT <br />Example: `REMI/Manufactured Goods`                                | 140        | CM                 |
| payments\[N].bankChargeBearer            | `SENDER` or `RECEIVER` or `SHARED`<br /> 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          | M                  |
