# Acme UOB Singapore Payments (/guides/uob-sg-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 [#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>

## General notes [#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](https://www.iso.org/iso-3166-country-codes.html)) e.g. `SG`, `MY`, `AU`, `US`, etc.

## FAST [#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 [#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 <br />for MOBILE | + followed by 7 to 15 digits                                                                                                              | 16           | M                  |
| receiver.proxyValue <br />for UEN    | 9 to 13 uppercase alphanumeric characters                                                                                                 | 13           | M                  |
| receiver.proxyValue <br />for NRIC   | 9 uppercase alphanumeric characters                                                                                                       | 9            | M                  |
| receiver.proxyValue <br />for VPA    | Mobile followed by `#` and 4 alphanumeric characters <br /> or <br /> `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 [#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 [#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 [#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 [#tt]

| field                           | pattern / charset                  | max length        | mandatory/optional |
| ------------------------------- | ---------------------------------- | ----------------- | ------------------ |
| customerReference               | SWIFT                              | 20                | M                  |
| instructionForSenderBank        | SWIFT                              | 140               | O                  |
| outgoingPurposeCode             | Alphanumeric                       | 10                | O (TT only)        |
| paymentDetails                  | SWIFT                              | 140               | O                  |
| bankChargeBearer                | `SENDER` or `RECEIVER` or `SHARED` |                   | O                  |
| receiver.name                   | SWIFT                              | 35 (140 on CBPR+) | 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 on CBPR+         |
| receiver.address.city           | SWIFT                              | 35                | M on CBPR+         |
| receiver.address.country        | Uppercase ISO country code         | 2                 | M                  |

For organizations onboarded to UOB's CBPR+ update, `receiver.address.line1` and
`receiver.address.city` are mandatory. City is emitted as the structured town
name rather than as part of `receiver.address`, so it does not count against
the 3 x 35 address-line limit above. `receiver.name` also accepts up to 140
characters instead of 35.
