In order to be compliant with Automated Clearing House (ACH) and Office of Foreign Assets Control (OFAC) rules, any transaction where the "ultimate" source or destination of funds is outside of the United States, should be coded as an International ACH Transaction (IAT). This ACH format contains several additional addenda records to allow the ACH transaction to carry necessary information to appropriately identify the source and destination of the funds for sanctions screening and Bank Secrecy Act (BSA) compliance purposes. The source and destination must be at the very "ends" of the transaction flow - where the funds are coming from, and where the funds are going to.
IAT transactions include the domestic leg of international transactions, (i.e. a transaction between a US bank and another US bank, where the source of funds is from a foreign source or where the funds are ultimately delivered outside the US (regardless of how those funds get there - Check, Wire, Intercompany Settlement, etc)).
There are a variety of resources available including the Nacha International ACH Transactions solutions center: https://www.nacha.org/content/international-ach-transactions-solutions-center
This IAT file format guide is to be used as a supplemental tool to the format listed in the NACHA rules. Organizations can use this to help make changes in their system to prepare for the IAT format; however, it is important to note that the actual content of the fields will vary depending on the destination and type of transaction being sent.
Note: The IAT ACH transfer object contains all the information needed to transfer money including bank account information, amount, and dates. It also provides the transfer’s current workflow status. We keep the core body of the ACH transfer object the same, and add an IAT specific details object.
IAT ACH Transfer Object
Attributes
NAME | TYPE | DESCRIPTION |
---|---|---|
account_number | string alphanumeric (10 characters) |
IAT Company/Batch header record for IAT entries field 8 - "Originator Identification". |
amount | int | IAT Entry Detail Record - field 7. Format: $$$$$$$$¢¢ |
batch_id | string |
IAT Company/Batch A unique ID indicating the batch this transfer was sent with. Can be used to reconcile with your SVB bank statements. Will be null until the transfer reaches processing status. |
currency | enum(“usd”) alphanumeric (3 characters) |
IAT Company/Batch Header Record for IAT Entries field 11 "ISO Originating Currency Code". Currently supports only USD. |
direction | enum(“credit”, “debit”) |
IAT Company/Batch Header Record - field 2 "Service Class Code". SVB Translations: "credit" translates to 220 IAT Entry Detail Record field 2 "Transaction Code". SVB uses the direction + receiver_account_type: |
effective_date | date ("YYYY-MM-DD") |
IAT Company/Batch Header Record field 13 "Effective Entry Date". Date when the transfer should take place. Defaults to tomorrow’s date. SVB translates "YYYY-MM-DD" to "YYMMDD". |
id | string | Uniquely identifies each ACH transfer object. |
memo | string alphanumeric (15 characters) |
This field is not used for IAT. |
metadata | object | Optional metadata to associate with the API resource. Note: These are associated with the SVB ACH Transfer object but are not sent in the NACHA file. |
receiver_account_number | string alphanumeric (35 characters) |
IAT Entry Detail Record field 8 "Foreign Receiver's Account Number/ DFI Account Number". |
receiver_account_type | enum(“checking”, “savings”) |
IAT Entry Detail Record field 2 "Transaction Code". See "direction" above to see how this field is used to create the translation of the transaction code. |
receiver_name | string alphanumeric (35 characters) |
First IAT Addenda Record field 6 "Receiving Company Name/Individual Name". |
receiver_routing_number | TTTTAAAA + Numeric (1 digit) | IAT Entry Detail Record - field 3 "GO Identification/Receiving DFI Identification" & 4 "Check Digit". |
return | object | If the ACH transfer has been returned ("status": "failed"), or the transaction was corrected ("status": "corrected"), this field will be an object containing the NACHA return or correction code and description. For corrections, this will also contain the corrected value. |
sec_code | enum("iat") | SEC code to be used for the ACH transfer. For IAT transactions this will always be "iat". |
service | enum("standard") | IAT transactions only have "standard" transfer available. |
status | enum | The status of the workflow (see above). |
iat_details | object | Object containing fields specific to sec_code "iat". Returns an error if this is added and the sec_code is not "iat". |
IAT Details Object
As defined by the NACHA guidelines:
- Mandatory for ACH Operator Processing:
A “mandatory” field is necessary to ensure the proper routing and/or posting of an ACH entry.
Any “mandatory” field not meeting required data specifications, as defined within Appendix Two (Specifications for Data Acceptance by ACH Operators) will cause the ACH operator to pend or reject the file, batch, or entry. A file, batch, or entry placed in a pending status by the ACH operator will await action to be released or rejected, based on instructions provided by the sending point. The ACH operator will report to the ODFI or its sending point any file, batch, or entry placed in a pending status or rejected by the ACH operator. A rejected entry will be returned to the ODFI or its sending point by the ACH operator.
NAME | TYPE | CORRESPONDING IAT NACHA RECORD FIELD |
---|---|---|
iso_destination_country_code mandatory |
string (2 characters) |
IAT Company/Batch Header Record record field 7 "ISO Destination Country Code". Only “US” is allowed. |
trace_number |
string (15 characters) |
IAT Entry Detail Record - field 13 "Trace Number". |
transaction_type_code mandatory |
enum (max 3 chars) ANN – Annuity BUS – Business/Commercial DEP – Deposit LOA – Loan MIS – Miscellaneous MOR – Mortgage PEN – Pension RLS – Rent/Lease SAL – Salary/Payroll TAX – Tax ARC - Accounts Receivable Entry BOC - Back Office Conversion MTE - Machine Transfer Entry POP - Point-of-Purchase Entry POST - Point-of-Sale Entry RCK - Re-presented Check Entry SHR - Shared Network Transaction TEL - Telephone-Initiated Entry WEB - Internet-Initiated Entry |
First IAT Addenda Record - field 3 "Transaction Type Code". |
originator_name mandatory |
string alphanumeric (35 characters) |
Second IAT Addenda Record - field 3 "Originator Name". |
originator_street_address mandatory |
string alphanumeric (35 characters) |
Second IAT Addenda Record - field 4 "Originator Street Address". |
originator_city mandatory |
string alphanumeric (33 characters max combined with originator_state_province) |
Third IAT Addenda Record - field 3 "Originator City & State/Province". |
originator_state_province mandatory |
string |
Third IAT Addenda Record - field 3 "Originator City & State/Province". |
originator_country mandatory |
string (2 characters) |
Third IAT Addenda Record - field 4 "Originator Country & Postal Code". |
originator_postal_code mandatory |
string (31 characters) |
Third IAT Addenda Record - field 4 "Originator Country & Postal Code". |
originating_dfi_name mandatory |
string alphanumeric (35 characters) |
Fourth IAT Addenda Record - field 3 "Originating DFI Name" . |
originating_dfi_identification_ number_qualifier |
string alphanumeric (2 characters) |
Fourth IAT Addenda Record - field 4 "Originating DFI Identification Number Qualifier". |
originating_dfi_identification mandatory |
string alphanumeric (34 characters) |
Fourth IAT Addenda Record - field 5 "Originating DFI Identification". |
originating_dfi_branch_ |
string alphanumeric (2 characters) |
Fourth IAT Addenda Record - field 6 "Originating DFI Branch Country Code". This field contains a two-character alphabetic country code, as defined within the International Organization for Standardization’s (ISO) 3166-1-alpha-2 code list, to identify the country in which the branch of the bank that originated the Entry is located. |
receiving_dfi_name mandatory |
string alphanumeric (35 characters) |
Fifth IAT Addenda Record - field 3 "Receiving DFI Name". |
receiving_dfi_identification_ number_qualifier |
string alphanumeric (2 characters) |
Fifth IAT Addenda Record - field 4 "Receiving DFI Identification Number Qualifier". |
receiving_dfi_identification mandatory |
string alphanumeric (34 characters) |
Fifth IAT Addenda Record - field 5 "Receiving DFI Identification". |
receiving_dfi_branch_country_ mandatory |
string alphanumeric (2 characters) |
Fifth IAT Addenda Record - field 6 "Receiving DFI Branch Country Code". This field contains the two-character alphabetic country code, as defined within the International Organization for Standardization’s (ISO) 3166-1-alpha-2 code list, to identify the country in which the branch of the bank that receives the Entry is located. |
receiver_identification_ number optional |
string alphanumeric (15 characters) |
Sixth IAT Addenda Record - field 3 "Receiver Identification Number". |
receiver_street_address mandatory |
string alphanumeric (35 characters) |
Sixth IAT Addenda Record - field 4 "Receiver Street Address". |
receiver_city mandatory |
string alphameric (33 characters max combined with receiver_state_province) |
Seventh IAT Addenda Record - field 3 "Receiver City & State/Province". |
receiver_country mandatory |
string alphameric (33 characters max combined with receiver_postal_code) |
Seventh IAT Addenda Record - field 4 "Receiver Country & Postal Code". |
receiver_postal_code mandatory |
string alphameric (33 characters max combined with receiver_country) |
Seventh IAT Addenda Record - field 4 "Receiver Country & Postal Code". |
receiver_state_province mandatory |
string alphameric (33 characters max combined with receiver_city) |
Seventh IAT Addenda Record - field 3 "Receiver City & State/Province. |