Acme Citibank Taiwan Payments (H2H)
This describes validations / allowed data formats for Acme payments going through Citibank Taiwan (CITITWTXXXX). 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
- The 26 uppercase Latin letters
Citibank restrictions
- For SWIFT character set: Citibank may reject fields that start with
/,-, or:.
Receiver address mapping:
receiver.address.line1andreceiver.address.line2each take a dedicatedAdrLineslot when present (at most 2AdrLines).- Every other field has its own structured field in the bank file:
citymaps toTwnNm,statetoCtrySubDvsn,postalCodetoPstCd, andcountrytoCtry. - For
BKTR, the bank file always sendsCtryasTWregardless of what the client sends; Acme only validates thatreceiver.address.countryisTWwhen provided. - Each address field is validated on its own length limit (35 for most fields; 16 for
postalCode). Acme does not pack city, state, postal code or country intoAdrLines.
BKTR
Book transfer between accounts held at Citibank Taiwan (CITITWTXXXX).
Important
- For TWD, the amount must not have cents / digits after the decimal point (you must send amount ending in
00). paymentDatecannot be in the past. Maximum 21 days forward.receiver.address.countryis fixed toTW.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT (uppercase only) | 15 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | SWIFT | 35 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | SWIFT | 35 | O |
| payments[N].receiver.address.line2 | SWIFT | 35 | O |
| payments[N].receiver.address.city | SWIFT | 35 | O |
| payments[N].receiver.address.state | SWIFT | 35 | O |
| payments[N].receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].receiver.address.country | Fixed value TW | 2 | O |
TT
Telegraphic transfer for international payments.
Important
- Payment date cannot be in the past. Maximum 21 days forward.
- For TWD, the amount must not have cents / digits after the decimal point (you must send amount ending in
00). - Taiwan Central Bank regulatory reporting enforces
beneficiaryType,transactionNature,purposeCode,subCode, andspecialApproval. Acme assembles them into a/TWNREG/[beneficiaryType][transactionNature][purposeCode][subCode][specialApproval][internetBankingFlag]string for the bank. Acme setsinternetBankingFlagtoW; clients do not send this field. - Refer to the Taiwan Central Bank Reporting Code provided by Citibank for the specification.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT (uppercase only) | 15 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].instructionForSenderBank | SWIFT | 35 | O |
| payments[N].bankChargeBearer | SENDER / RECEIVER / SHARED | O | |
| payments[N].beneficiaryType | 1 Government / 2 Public / 3 Private / 4 FX Funds | 1 | M |
| payments[N].transactionNature | One of S Y B A C I G J E R T X 4 | 1 | M |
| payments[N].purposeCode | Alphanumeric (0-9, A-Z), exactly 3 characters Example: 194 | 3 | M |
| payments[N].subCode | One of A B C D E F G I R S T X Y Z Required when purposeCode is 692, 693, or 695. Optional otherwise. | 1 | Conditional |
| payments[N].specialApproval | Y / N | 1 | M |
| payments[N].receiver.name | SWIFT | 35 | M |
| payments[N].receiver.bank | BIC (8 or 11 characters, ISO 9362) | 11 | M |
| payments[N].receiver.intermediaryBank | BIC (8 or 11 characters) | 11 | O |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | SWIFT | 35 | O |
| payments[N].receiver.address.line2 | SWIFT | 35 | O |
| payments[N].receiver.address.city | SWIFT | 35 | M |
| payments[N].receiver.address.state | SWIFT | 35 | O |
| payments[N].receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | M |
TW_ACH
Taiwan domestic ACH transfer.
Important
- Currency must be TWD only.
- The amount must not have cents / digits after the decimal point (you must send amount ending in
00). - Payment date cannot be in the past. Maximum 365 days forward.
receiver.namemust be in Han script (Chinese characters).receiver.bankNameis the beneficiary bank name (not a BIC). English or Chinese are both accepted.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT (uppercase only) | 15 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | Han script (Chinese) only | 70 | M |
| payments[N].receiver.bankName | SWIFT or Chinese (not a BIC) Example: DBS BANK (TAIWAN) LTD | 140 | M |
| payments[N].receiver.localRoutingIdentifier | Numeric (7 digits exactly) | 7 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | SWIFT | 35 | O |
| payments[N].receiver.address.line2 | SWIFT | 35 | O |
| payments[N].receiver.address.city | SWIFT | 35 | O |
| payments[N].receiver.address.state | SWIFT | 35 | O |
| payments[N].receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | O |
TW_RTGS
Taiwan domestic RTGS transfer for high-value payments.
Important
- Currency must be TWD only.
- The amount must not have cents / digits after the decimal point (you must send amount ending in
00). - Payment date cannot be in the past. Maximum 365 days forward.
receiver.namemust be in Han script (Chinese characters).- If
addressis provided, bothcityandcountryare mandatory. receiver.bankNameis the beneficiary bank name (not a BIC). English or Chinese are both accepted. Citi rejects RTGS without this name.
| field | pattern / charset | max length | mandatory/optional |
|---|---|---|---|
| payments[N].customerReference | SWIFT (uppercase only) | 15 | O |
| payments[N].paymentDetails | SWIFT | 140 | O |
| payments[N].paymentAdviceEmails[N] | Valid email address Example: ["finance@company.com"] | 50 per email (max 1 email) | O |
| payments[N].receiver.name | Han script (Chinese) only | 70 | M |
| payments[N].receiver.bankName | SWIFT or Chinese (not a BIC) Example: DBS BANK (TAIWAN) LTD | 140 | M |
| payments[N].receiver.localRoutingIdentifier | Numeric (7 digits exactly) | 7 | M |
| payments[N].receiver.bankAccountNumber | Alphanumeric | 34 | M |
| payments[N].receiver.address.line1 | SWIFT | 35 | O |
| payments[N].receiver.address.line2 | SWIFT | 35 | O |
| payments[N].receiver.address.city | SWIFT | 35 | O |
| payments[N].receiver.address.state | SWIFT | 35 | O |
| payments[N].receiver.address.postalCode | SWIFT | 16 | O |
| payments[N].receiver.address.country | ISO 3166-1 alpha-2 | 2 | O |
Bank references
bankReference is AcctSvcrRef, else ClrSysRef, from Citi's status report on the payment. bankReferences lists every reference Citi sent, keyed by Citi's field name: AcctSvcrRef, ClrSysRef and StsId, as Citi sends them.
On your Citi statement: 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.
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"
}
}