Corgi BankDocumentation
OpenAPI

Sandbox and testing

The other side of every rail is a simulator. The simulation calls let a test play that other side: the Federal Reserve settling a file, another bank sending a wire, a merchant running a card.

What is simulated

FedACH, Fedwire, FedNow, RTP, the card networks, the identity provider behind KYC and the payment HSM are simulators. The bank's own side is not: the ledger, the holds, the screening, the files and messages it builds (NACHA files, ISO 20022 messages, ISO 8583 messages) are the real code. A simulation call delivers the message the outside world would have delivered, and the bank processes it as it would in production.

Simulation routes live under /simulate and are listed under Simulation in the reference.

Money arriving

To testCall
An incoming ACH credit or debit, such as payrollPOST /simulate/transfers/ach/receive
An incoming wirePOST /simulate/transfers/wire/receive
An incoming instant paymentPOST /simulate/transfers/realtime/receive
A request for payment from another institution's customerPOST /simulate/transfers/realtime/request
An incoming international wirePOST /simulate/transfers/international-wire/receive

An entry addressed to an account number the bank does not have is handled as the rail requires: an ACH entry is returned with R03, and a wire is received as unapplied until it is applied to an account or returned.

What happens to money you sent

To testCall
The operator settling an ACH file the bank sentPOST /simulate/transfers/ach/settle
The receiving bank returning an ACH entryPOST /simulate/transfers/ach/return
The receiving bank sending a notification of changePOST /simulate/transfers/ach/change
The receiver returning a wire the bank sentPOST /simulate/transfers/wire/return
A sender asking for a wire backPOST /simulate/transfers/wire/return-request
The receiver returning an instant paymentPOST /simulate/transfers/realtime/return

Checks and cards

To testCall
Checks drawn on the bank being presentedPOST /simulate/transfers/checks/presentment
A deposited check coming back unpaidPOST /simulate/transfers/checks/return
A merchant purchase on a cardPOST /simulate/cards/purchase
The network clearing an authorizationPOST /simulate/cards/clearing

A whole banking day

go run ./cmd/e2e runs 51 narrated steps against a local database: onboarding, deposits, ACH out and in, wires, instant payments, checks, cards, loans, statements, reports and reconciliation. It is the quickest way to see how the calls chain together, and it is what CI runs on every change.

to move to open esc to close