Bank payment rules
Acme Standard Chartered Bank Singapore Payments (H2H)
This describes validations and allowed data formats for Acme payments going through Standard Chartered Bank (SCB) Singapore (SWIFT BIC: SCBLSG22XXX) over host-to-host (H2H) file integration. These rules are validated by Acme and further validated by the bank. These rules may be stricter than what the bank requires.
Supported types: FAST, GIRO, MEPS, SG_PAYROLL, 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
- The 26 uppercase Latin letters
-
SCB Extended Character Set:
- The 26 uppercase Latin letters
A-Z - The 26 lowercase Latin letters
a-z - The 10 digits
0-9 - Space
- The punctuation characters
!"#$%&'()*+-./:;<=>?@[]^_{} - Note that the comma
,is not allowed in this character set.
- The 26 uppercase Latin letters
ISO 20022 Migration
SCB address requirements
- SCB is migrating to the ISO 20022 message standards. The address requirements below are part of this migration. Refer to ISO 20022 at Standard Chartered for an overview.
- Under the SCB address guidelines, the beneficiary
address.city(town name) andaddress.countrybecome mandatory for all payment types, not only forMEPSandTT. - These address requirements become mandatory in November 2026.
- Acme enforces
address.cityandaddress.countryon every payment type, ahead of the bank's deadline.TTadditionally requiresaddress.line1andaddress.postalCode; on the other types those two stay optional.
Payment Customer Reference
- Use payments[N].customerReference as the unique identifier of your payments.
- If customerReference is not provided, Acme generates a 13-character unique alphanumeric reference automatically.
- The customerReference is sent to the bank as the end-to-end ID of the payment.
FAST
- 4 characters
purposeCodeis mandatory forFASTpayments. Refer to the list provided by The Association of Banks in Singapore (ABS). - The maximum amount for FAST payment is SGD 200,000 per transaction.
- The payment
currencymust be SGD. - FAST payments are processed 24/7.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | Alphanumeric | 16 | O |
| paymentDate | YYYY-MM-DD | M | |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric | 4 | M |
| payments[N].bankChargeBearer | SENDER, RECEIVER, or SHARED | O | |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 150 per email (max 5 emails) | O |
| payments[N].receiver.name | SWIFT | 70 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | Free text | 70 | O |
| payments[N].receiver.address.line2 | Free text | 70 | O |
| payments[N].receiver.address.city | Free text | 35 | M (See ISO 20022 Requirements) |
| payments[N].receiver.address.postalCode | Free text | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M (See ISO 20022 Requirements) |
Example Request:
{
"type": "FAST",
"paymentDate": "2026-07-15",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV001",
"paymentDetails": "Payment for invoice 001",
"purposeCode": "OTHR",
"receiver": {
"name": "Tan Ah Kow",
"bank": "DBSSSGSGXXX",
"bankAccountNumber": "9876543210",
"address": {
"city": "Singapore",
"country": "SG"
}
}
}
]
}GIRO
- 4 characters
purposeCodeis mandatory forGIROpayments. Refer to the list provided by The Association of Banks in Singapore (ABS). - The cut-off time for GIRO payments is 18:30 SGT. Files submitted by Acme to the bank after the cut-off are processed in the next processing window.
- The payment
currencymust be SGD.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | Alphanumeric | 16 | O |
| paymentDate | YYYY-MM-DD | M | |
| payments[N].paymentDetails | SCB Extended | 140 | O |
| payments[N].purposeCode | Alphanumeric | 4 | M |
| payments[N].bankChargeBearer | SENDER, RECEIVER, or SHARED | O | |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 150 per email (max 5 emails) | O |
| payments[N].receiver.name | SWIFT | 70 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | Free text | 70 | O |
| payments[N].receiver.address.line2 | Free text | 70 | O |
| payments[N].receiver.address.city | Free text | 35 | M (See ISO 20022 Requirements) |
| payments[N].receiver.address.postalCode | Free text | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M (See ISO 20022 Requirements) |
Example Request:
{
"type": "GIRO",
"paymentDate": "2026-07-15",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV002",
"paymentDetails": "Payment for invoice 002",
"purposeCode": "OTHR",
"receiver": {
"name": "Tan Ah Kow",
"bank": "OCBCSGSGXXX",
"bankAccountNumber": "9876543210",
"address": {
"city": "Singapore",
"country": "SG"
}
}
}
]
}MEPS
- The minimum amount is SGD 50,000 per payment.
purposeCodeis optional forMEPSpayments.- The payment
currencymust be SGD.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | Alphanumeric | 16 | O |
| paymentDate | YYYY-MM-DD | M | |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric | 4 | O |
| payments[N].bankChargeBearer | SENDER, RECEIVER, or SHARED | O | |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 150 per email (max 5 emails) | O |
| payments[N].receiver.name | SWIFT | 70 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | Free text | 70 | O |
| payments[N].receiver.address.line2 | Free text | 70 | O |
| payments[N].receiver.address.city | Free text | 35 | M (See ISO 20022 Requirements) |
| payments[N].receiver.address.postalCode | Free text | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M (See ISO 20022 Requirements) |
Example Request:
{
"type": "MEPS",
"paymentDate": "2026-07-15",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 5000000,
"customerReference": "INV003",
"paymentDetails": "Payment for invoice 003",
"receiver": {
"name": "Tan Ah Kow",
"bank": "UOVBSGSGXXX",
"bankAccountNumber": "9876543210",
"address": {
"city": "Singapore",
"country": "SG"
}
}
}
]
}SG_PAYROLL
purposeCodeis mandatory forSG_PAYROLLpayments.- Allowed values are
SALAorSAL(Salary),BONUorBON(Bonus), andOTHRorOTH(Other). - The cut-off time for PAYROLL payments is 18:30 SGT. Files submitted by Acme to the bank after the cut-off are processed in the next processing window.
- The payment
currencymust be SGD.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | Alphanumeric | 16 | O |
| paymentDate | YYYY-MM-DD | M | |
| payments[N].paymentDetails | SCB Extended | 140 | O |
| payments[N].purposeCode | SALA or SAL or BONU or BON or OTHR or OTH | 4 | M |
| payments[N].bankChargeBearer | SENDER, RECEIVER, or SHARED | O | |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 150 per email (max 5 emails) | O |
| payments[N].receiver.name | SWIFT | 70 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | Free text | 70 | O |
| payments[N].receiver.address.line2 | Free text | 70 | O |
| payments[N].receiver.address.city | Free text | 35 | M (See ISO 20022 Requirements) |
| payments[N].receiver.address.postalCode | Free text | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M (See ISO 20022 Requirements) |
Example Request:
{
"type": "SG_PAYROLL",
"paymentDate": "2026-07-15",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 350000,
"customerReference": "PAYROLL07",
"paymentDetails": "July salary",
"purposeCode": "SALA",
"receiver": {
"name": "Tan Ah Kow",
"bank": "DBSSSGSGXXX",
"bankAccountNumber": "9876543210",
"address": {
"city": "Singapore",
"country": "SG"
}
}
}
]
}BKTR
Book transfers move funds between accounts within SCB Singapore (SCBLSG22XXX).
receiver.bankis required for H2H book transfers. Use SCB Singapore's BICSCBLSG22XXX.receiver.nameaccepts the SCB Extended Character Set.purposeCodeis optional for book transfers.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | Alphanumeric | 16 | O |
| paymentDate | YYYY-MM-DD | M | |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].purposeCode | Alphanumeric | 4 | O |
| payments[N].bankChargeBearer | SENDER, RECEIVER, or SHARED | O | |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 150 per email (max 5 emails) | O |
| payments[N].receiver.name | SCB Extended | 70 | M |
| payments[N].receiver.bank | BIC11 | 11 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | Free text | 70 | O |
| payments[N].receiver.address.line2 | Free text | 70 | O |
| payments[N].receiver.address.city | Free text | 35 | M (See ISO 20022 Requirements) |
| payments[N].receiver.address.postalCode | Free text | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M (See ISO 20022 Requirements) |
Example Request:
{
"type": "BKTR",
"paymentDate": "2026-07-15",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "SGD",
"payments": [
{
"amount": 10000,
"customerReference": "INV004",
"paymentDetails": "Internal fund transfer",
"receiver": {
"name": "Tan Ah Kow",
"bank": "SCBLSG22XXX",
"bankAccountNumber": "9876543210",
"address": {
"city": "Singapore",
"country": "SG"
}
}
}
]
}TT
paymentDetailsis mandatory forTTpayments.- The beneficiary address is mandatory for
TTpayments. You must provideline1,city,postalCode, andcountry. TTpayments accept any valid ISO 4217 currency.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | Alphanumeric | 16 | O |
| paymentDate | YYYY-MM-DD | M | |
| payments[N].paymentDetails | SWIFT | 140 | M |
| payments[N].purposeCode | Alphanumeric | 4 | O |
| payments[N].bankChargeBearer | SENDER, RECEIVER, or SHARED | O | |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 150 per email (max 5 emails) | 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 | Free text | 70 | M |
| payments[N].receiver.address.line2 | Free text | 70 | O |
| payments[N].receiver.address.city | Free text | 35 | M |
| payments[N].receiver.address.postalCode | Free text | 16 | M |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M |
Example Request:
{
"type": "TT",
"paymentDate": "2026-07-15",
"senderAccountId": "intacc_0H3BQNTQGBW2W",
"senderAccountCurrency": "SGD",
"currency": "USD",
"payments": [
{
"amount": 250000,
"customerReference": "INV005",
"paymentDetails": "Payment for invoice 005",
"receiver": {
"name": "John Smith",
"bank": "CHASUS33XXX",
"bankAccountNumber": "123456789",
"address": {
"line1": "270 Park Avenue",
"city": "New York",
"postalCode": "10017",
"country": "US"
}
}
}
]
}Payment Response
Payment status definitions:
| Status | Description |
|---|---|
PROCESSING | Status upon creation. |
SUBMITTED | Payment file uploaded to SCB. Awaiting acknowledgment and final confirmation. |
COMPLETED | Payment confirmed successful by the bank. |
FAILED | Payment rejected by the bank. Check underlyingErrorMessage for details. |