Corgi BankDocumentation
OpenAPI

Entry types

sec_code is the entry's Standard Entry Class. The API originates three classes and refuses every other.

The classes

CodeUseWhat the API requires
PPDAn entry where either side is a person.No iat object. counterparty.account_number of at most 17 characters.
CCDAn entry between two businesses.The same as PPD.
IATAn 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_code is put in upper case and then judged. Any value but these three answers 422 with payments.unsupported_sec_code, and the detail is 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 PPD and CCD. Operations add a class with PUT /ach-originators/{id}. A new class loosens the record, so the request answers payments.control_approval_required and 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 PPD and CCD.
  • The request has no field for the receiver's authorization, and the API does not ask for one.
  • A PPD or CCD entry 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.

Entrycheckingsavings
Credit2232
Debit2737
Credit prenotification2333
Debit prenotification2838

What goes in the file

  • Entries are grouped into one batch for each class and company identification, in the order PPD, CCD, IAT. An IAT batch is also split by destination country, destination currency and exchange terms.
  • The batch header carries the originator's company_id and company_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_number is 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.

to move to open esc to close