Acme Citibank US Payments
This describes validations / allowed data formats for Acme payments going through Citibank US. 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
-
Citi restrictions:
- For SWIFT character set: do not start a field with any of the following characters:
/
,-
,:
- For SWIFT character set: do not start a field with any of the following characters:
US_ACH
field | pattern / charset | max length | mandatory/optional |
---|---|---|---|
subtype (at batch level) | CCD or PPD | M | |
customerReference | SWIFT (uppercase only) | 15 | M |
paymentDetails | SWIFT | 80 | O |
instructionForSenderBank | SWIFT | 35 | O |
receiver.name | SWIFT | 22 | M |
receiver.bankAccountNumber | Numeric | 17 | M |
receiver.bankName | SWIFT | 35 | M |
receiver.accountType | CHECKING or SAVINGS | M | |
receiver.localRoutingIdentifier | Numeric (routing number) | 9 | M |
receiver.address | SWIFT | 35 chars x 3 | O |
Note: CCD
subtype is for sending to corporate accounts, it can only send to CHECKING
account type. PPD
subtype is for sending to personal accounts, it can use either CHECKING
or SAVINGS
.
Example:
{
"type": "US_ACH",
"subtype": "CCD",
"currency": "USD",
"payments": [
{
"amount": 100,
"customerReference": "REF 01",
"receiver": {
"name": "Recipient Name",
"bankName": "Test Bank",
"localRoutingIdentifier": "123456789",
"bankAccountNumber": "987654321",
"accountType": "CHECKING"
}
},
{
"amount": 200,
"customerReference": "REF 02",
"receiver": {
"name": "Recipient Two",
"bankName": "Test Bank",
"localRoutingIdentifier": "123456789",
"bankAccountNumber": "967854321",
"accountType": "CHECKING"
}
}
]
}