Entry types
sec_code is the entry's Standard Entry Class. The API originates three classes and refuses every other.
The classes
| Code | Use | What the API requires |
|---|---|---|
PPD | An entry where either side is a person. | No iat object. counterparty.account_number of at most 17 characters. |
CCD | An entry between two businesses. | The same as PPD. |
IAT | An entry to or from a party outside the United States. | The iat object, an originator with IAT among its sec_codes, and no same_day. The account number may be 35 characters. See International ACH (IAT). |
What is checked
sec_codeis put in upper case and then judged. Any value but these three answers422withpayments.unsupported_sec_code, and thedetailis the code that was sent.- The customer's ACH Originator must list the class in
sec_codes. The same problem code answers when it does not. - An originator created on the customer's first origination has
PPDandCCD. Operations add a class withPUT /ach-originators/{id}. A new class loosens the record, so the request answerspayments.control_approval_requiredand the change waits for a second operator.
What is not checked
- The API does not check that the class fits the parties. The caller chooses between
PPDandCCD. - The request has no field for the receiver's authorization, and the API does not ask for one.
- A
PPDorCCDentry leaves with no addenda record. The request has no field for payment related information.
When the bank picks the class itself, for a scheduled transfer to a saved counterparty, it uses CCD when the customer's type is business and the counterparty's legal_type is not individual. Otherwise it uses PPD.
Transaction codes
The bank derives the NACHA transaction code from direction, counterparty.account_type and prenote. The same codes appear as transaction_code on an ACH Receipt and inside the corrected object of an ACH Change.
| Entry | checking | savings |
|---|---|---|
| Credit | 22 | 32 |
| Debit | 27 | 37 |
| Credit prenotification | 23 | 33 |
| Debit prenotification | 28 | 38 |
What goes in the file
- Entries are grouped into one batch for each class and company identification, in the order
PPD,CCD,IAT. AnIATbatch is also split by destination country, destination currency and exchange terms. - The batch header carries the originator's
company_idandcompany_name. The company identification is the bank's own unless the originator record sets another, and the name is at most 16 characters. - Each entry carries the counterparty's name and, as its individual identification number, the first 15 characters of the transfer's
id. - The
trace_numberis the first eight digits of the bank's routing number followed by a seven-digit sequence.
Classes the bank receives
A received entry keeps the class it arrived under in the receipt's sec_code. An entry that carries a notification of change, class COR, becomes an ACH Change and has no receipt. A received IAT entry carries its addenda in the receipt's iat. In a sandbox, POST /simulate/transfers/ach/receive delivers a PPD, CCD or IAT entry; PPD is the default.