Bank payment rules

Acme Citibank Singapore Payments

This describes validations / allowed data formats for Acme payments going through Citibank 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
  • Citi restrictions:

    • For SWIFT character set: do not start a field with any of the following characters: /, -, :

FAST

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT (uppercase only)35M
paymentDetailsSWIFT140O
instructionForSenderBankSWIFT35O
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberAlphanumeric34M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO 3166-1 alpha-22O

PAYNOW

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT (uppercase only)35M
paymentDetailsSWIFT140O
instructionForSenderBankSWIFT35O
receiver.proxyTypeMOBILE or UEN or VPAM
receiver.proxyValue
for MOBILE
+ followed by 7 to 15 digits16M
receiver.proxyValue
for UEN
9 to 13 alphanumeric characters13M
receiver.proxyValue
for VPA
Mobile followed by # and 4 alphanumeric characters
or
UEN followed by UEN followed by # and 4 alphanumeric characters
21M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO 3166-1 alpha-22O

GIRO

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT (uppercase only)15M
paymentDetailsSWIFT105O
instructionForSenderBankSWIFT35O
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberAlphanumeric34M

ACT

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT (uppercase only)15M
paymentDetailsSWIFT140O
instructionForSenderBankSWIFT35O
receiver.nameSWIFT35M
receiver.bankAccountNumberAlphanumeric34M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO 3166-1 alpha-22O

MEPS

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT (uppercase only)15M
paymentDetailsSWIFT140O
instructionForSenderBankSWIFT35O
bankChargeBearerSENDER or RECEIVER or SHAREDM
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.bankAccountNumberAlphanumeric + Dash34M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35Conditional: M if address is provided
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO 3166-1 alpha-22Conditional: M if address is provided

TT

fieldpattern / charsetmax lengthmandatory/optional
customerReferenceSWIFT (uppercase only)15M
paymentDetailsSWIFT140O
instructionForSenderBankSWIFT35O
bankChargeBearerSENDER or RECEIVER or SHAREDM
receiver.nameSWIFT35M
receiver.bankAlphanumeric11M
receiver.intermediaryBankAlphanumeric11O
receiver.bankAccountNumberAlphanumeric + Dash34M
receiver.address.line1SWIFT35O
receiver.address.line2SWIFT35O
receiver.address.citySWIFT35Conditional: M if address is provided
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O
receiver.address.countryISO 3166-1 alpha-22Conditional: M if address is provided

Bank references

Sent asbankReferencebankReferencesAvailable from
A fileAcctSvcrRef, else ClrSysRefAcctSvcrRef, ClrSysRef, StsId, as Citi sends themCiti's status report on the payment
PAYNOW through Citi's APInull: Citi's API returns no reference of its ownUETRCiti's answer to the request

On your Citi statement: for payments sent as files, the line shows a different Citi reference. Find the payment by your customerReference.

What the names mean:

  • AcctSvcrRef: Citi's own reference for the transaction.
  • ClrSysRef: the clearing system's reference.
  • StsId: the id of Citi's status entry.
  • UETR: the SWIFT tracking id.

A rejected payment keeps the references from the report that rejected it.

A completed payment sent as a file returns:

{
  "bankReference": "01720322200000001",
  "bankReferences": {
    "AcctSvcrRef": "01720322200000001"
  }
}

On this page