Bank payment rules

Acme Citibank Malaysia Payments

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

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

MY_IBFT

Important

  • Currency must be MYR only.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT140O
payments[N].receiver.residencyStatusRESIDENT or NON_RESIDENTM
payments[N].receiver.nameSWIFT70M
payments[N].receiver.bankAlphanumeric11M
payments[N].receiver.bankAccountNumberAlphanumeric34M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.citySWIFT35O
payments[N].receiver.address.stateSWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O
payments[N].receiver.address.countryISO 3166-1 alpha-22O

MY_IBG

Important

  • Currency must be MYR only.
  • Amount maximum 1,000,000 MYR.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT140O
payments[N].receiver.nameSWIFT70M
payments[N].receiver.bankAlphanumeric11M
payments[N].receiver.bankAccountNumberAlphanumeric34M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.citySWIFT35O
payments[N].receiver.address.stateSWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O
payments[N].receiver.address.countryISO 3166-1 alpha-22O
payments[N].paymentAdviceEmails[N]Valid email address
Example: ["finance@company.com"]
50 per email (max 1 email)O

MY_DUITNOW

Important

  • Currency must be MYR only.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT140O
payments[N].receiver.nameSWIFT70M
payments[N].receiver.residencyStatusRESIDENT or NON_RESIDENTM
payments[N].receiver.proxyTypeMOBILE or BUSINESS_REG or PASSPORT or NRICM
payments[N].receiver.proxyValue
for PASSPORT
passport number followed by 3 letter ISO 3166-1 country code
e.g. A12345678MYS for Malaysia passport A12345678
15M
payments[N].receiver.proxyValue
for other types
SWIFT15M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.citySWIFT35O
payments[N].receiver.address.stateSWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O
payments[N].receiver.address.countryISO 3166-1 alpha-22O

MY_RENTAS

Important

  • Currency must be MYR only.
  • Amount minimum 10,000 MYR.
  • Purpose code is required. Please contact the bank for the list.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT116O
payments[N].bankChargeBearerSENDER or RECEIVER or SHAREDM
payments[N].purposeCode5 digit purpose code5M
payments[N].receiver.residencyStatusRESIDENT or NON_RESIDENTM
payments[N].receiver.nameSWIFT35M
payments[N].receiver.bankAlphanumeric11M
payments[N].receiver.bankAccountNumberAlphanumeric34M
payments[N].receiver.address.citySWIFT30M
payments[N].receiver.address.countryISO 3166-1 alpha-22M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O
payments[N].paymentAdviceEmails[N]Valid email address
Example: ["finance@company.com"]
50 per email (max 1 email)O

TT

Important

  • Purpose code is required. Please contact the bank for the list.
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT140O
payments[N].bankChargeBearerSENDER or RECEIVER or SHAREDM
payments[N].purposeCode5 digit purpose code5M
payments[N].receiver.nameSWIFT35M
payments[N].receiver.bankAlphanumeric (BIC/SWIFT code)11M
payments[N].receiver.bankAccountNumberAlphanumeric + Dash34M
payments[N].receiver.address.citySWIFT30M
payments[N].receiver.address.countryISO 3166-1 alpha-22M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O
payments[N].paymentAdviceEmails[N]Valid email address
Example: ["finance@company.com"]
50 per email (max 1 email)O

BKTR

fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT140O
payments[N].bankChargeBearerSENDER or RECEIVER or SHAREDM
payments[N].receiver.nameSWIFT35M
payments[N].receiver.bankAccountNumberAlphanumeric34M
payments[N].receiver.address.citySWIFT30M
payments[N].receiver.address.countryISO 3166-1 alpha-22M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O
payments[N].paymentAdviceEmails[N]Valid email address
Example: ["finance@company.com"]
50 per email (max 1 email)O

MY_JOMPAY

Important

  • Currency must be MYR only.
  • recipientRef2 allowed characters: 0-9, A-Z, a-z, Space, and special characters: ? @ [ \ ] ^ _ ` \{ | \} ~
fieldpattern / charsetmax lengthmandatory/optional
payments[N].customerReferenceSWIFT (uppercase only)15M
payments[N].paymentDetailsSWIFT140O
payments[N].receiver.nameSWIFT35O
payments[N].receiver.billerCodeAlphanumeric8M
payments[N].receiver.recipientRef1Alphanumeric20M
payments[N].receiver.recipientRef2Alphanumeric + special chars*30O
payments[N].receiver.address.citySWIFT30M
payments[N].receiver.address.countryISO 3166-1 alpha-22M
payments[N].receiver.address.line1SWIFT35O
payments[N].receiver.address.line2SWIFT35O
payments[N].receiver.address.postalCodeSWIFT16O

Bank references

Sent asbankReferencebankReferencesAvailable from
A fileAcctSvcrRef, else ClrSysRefAcctSvcrRef, ClrSysRef, StsId, as Citi sends themCiti's status report on the payment
MY_DUITNOW 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