Bank payment rules

Acme Standard Chartered Bank Singapore Payments (API)

This describes validations / allowed data formats for Acme payments going through Standard Chartered Bank (SCB) Singapore (SCBLSG22XXX) over the SCB Open Banking API. These will be validated by Acme and further validated by the bank. These rules may be stricter than what the bank requires.

Supported types: FAST, MEPS, BKTR, TT.

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
  • customerReference is required for all payment types. It must be unique and must not exceed 16 characters.

  • A SWIFT BIC is 8 to 11 characters (uppercase letters and digits).

  • paymentDetails is sent to the beneficiary as unstructured remittance information across 2 lines of 70 characters.

  • receiver.address.city and receiver.address.country are required for all payment types, as enforced by Standard Chartered Bank. The line1, line2, state, and postalCode address fields are optional.

ISO 20022 migration: SCB address requirements

  • SCB is migrating to the ISO 20022 message standards. The beneficiary address requirements on this page are part of this migration. Refer to ISO 20022 at Standard Chartered for an overview.
  • Under the SCB Payment API guide, the beneficiary address.city (town name) and address.country are mandatory for all payment types. Acme validates this on every payment.

FAST

  • 4 characters purposeCode must be provided for FAST payments.
fieldpattern / charsetmax lengthmandatory/optional
currencySGD3M
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
purposeCodeSWIFT4M
receiver.nameFree text140M
receiver.bankSWIFT BIC8–11M
receiver.bankAccountNumberNumeric20M
receiver.address.citySWIFT35M
receiver.address.countryISO 3166-1 alpha-22M
receiver.address.line1SWIFT70O
receiver.address.line2SWIFT70O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O

MEPS

fieldpattern / charsetmax lengthmandatory/optional
currencySGD3M
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
receiver.nameFree text140M
receiver.bankSWIFT BIC8–11M
receiver.bankAccountNumberNumeric20M
receiver.address.citySWIFT35M
receiver.address.countryISO 3166-1 alpha-22M
receiver.address.line1SWIFT70O
receiver.address.line2SWIFT70O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O

BKTR

receiver.bank must not be provided. SCB routes the payment to itself.

fieldpattern / charsetmax lengthmandatory/optional
currencyISO 4217 currency code3M
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
receiver.nameFree text140M
receiver.bankAccountNumberNumeric16M
receiver.address.citySWIFT35M
receiver.address.countryISO 3166-1 alpha-22M
receiver.address.line1SWIFT70O
receiver.address.line2SWIFT70O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O

TT

receiver.bank is required.

fieldpattern / charsetmax lengthmandatory/optional
currencyISO 4217 currency code3M
customerReferenceSWIFT16M
paymentDetailsSWIFT140O
bankChargeBearerSENDER or RECEIVER or SHAREDO
receiver.nameFree text140M
receiver.bankSWIFT BIC8–11M
receiver.bankAccountNumberFree textM
receiver.address.citySWIFT35M
receiver.address.countryISO 3166-1 alpha-22M
receiver.address.line1SWIFT70O
receiver.address.line2SWIFT70O
receiver.address.stateSWIFT35O
receiver.address.postalCodeSWIFT16O

Bank references

bankReference is SCB's main reference for the payment. bankReferences is an object with every reference SCB returned, keyed by SCB's field name. It includes the main reference.

  • TT: when SCB reports the payment as processed, bankReference is set to SCB's clearingSystemReference, and bankReferences has it under the key clearingSystemReference, along with the other ids SCB returns: paymentIdentifier, internalTrackingId, clientReferenceId, endToEndId, clientIdentifier and instructionIdentifier. Until then, bankReference is null and bankReferences is {}. If SCB already answers the payment request with Completed, the payment completes before any clearingSystemReference arrives: bankReference stays null, and bankReferences has only paymentIdentifier, internalTrackingId and clientReferenceId.
  • Other payment types: bankReference is null and bankReferences is {} for now.

A completed TT payment returns:

{
  "bankReference": "6OT2610051234567",
  "bankReferences": {
    "clearingSystemReference": "6OT2610051234567",
    "paymentIdentifier": "2610051234567890",
    "internalTrackingId": "3f2b8c1e-7d4a-4e9b-9c6f-1a2b3c4d5e6f",
    "clientReferenceId": "ET12345678-USD-0",
    "endToEndId": "E2E2610051234",
    "clientIdentifier": "CLI2610051234",
    "instructionIdentifier": "INS2610051234"
  }
}

On this page