Corgi BankDocumentation
OpenAPI

Check deposits

A deposited check is credited to the account at once, held under Regulation CC, and collected through an image cash letter. If the paying bank returns it, the amount is charged back.

The deposit

POST /transfers/checks/deposit takes an Idempotency-Key and these fields.

account_idstringRequired

An open USD account.

amount, currency_codeinteger, stringRequired

Minor units, greater than zero, in USD.

microbjectRequired

payor_routing_number and on_us (the account number, then a slash and the serial on a personal check), with optional aux_on_us and check_number.

channelstringOptional

branch (the default), mobile, atm for an ATM the bank operates, or lockbox. nonproprietary_atm is refused with payments.unsupported_deposit_channel.

payee, drawerstringOptional

Both are screened for sanctions.

front_image, back_imagestring · byteOptional

TIFF, base64 in JSON. They travel in the cash letter.

A check is identified by routing number, account, serial and amount. An item an earlier deposit is still collecting is refused with payments.duplicate_item. A returned item may be deposited again, unless it was returned as post dated (H) or for a missing endorsement (I).

POST /transfers/remote-deposits adds image quality tests and deposit limits for customer-captured images. An accepted capture becomes a mobile check deposit.

Posting and the Reg CC hold

The deposit posts one journal of kind check_deposit: a debit to GL 1050, cash items in process of collection, and a credit to the customer's account. In the same transaction the ledger places reg_cc_availability holds on the part that is not yet available. The answer is a check deposit (chkd_) with status deposited, a sequence_number, the journal_id and the hold ids, comma separated, in hold_id.

The schedule counts the checks deposited to the account on one banking day together:

  • the first 275.00 is available on the next banking day;
  • the rest, up to 6,725.00 for the day, on the second banking day;
  • anything above 6,725.00 on the seventh banking day, or the ninth when the account was opened less than 30 days before the deposit.

A 1,000.00 check deposited on Thursday 17 September 2026 gets two holds: 275.00 until Friday the 18th and 725.00 until Monday the 21st. A hold expires at the end-of-day run that closes the banking day before, so the money is available when its day opens.

If the payee or drawer is not clear of screening, the credit goes to the transit account and the deposit carries screening held until a reviewer approves or blocks it.

Collection and settlement

Bank operations file the deposited checks in a forward cash letter with POST /rails/check/cash-letters and kind forward. The file is X9.100-187 and carries each check's MICR line, amount, endorsement and images. It goes to the check operator, a simulator today, and each deposit becomes presented. With no operator configured the call answers payments.rail_unavailable.

POST /rails/check/cash-letters/{id}/settle posts the operator's settlement: a debit to GL 1010, cash at the Federal Reserve, and a credit to 1050. The deposits become settled. Settlement does not touch the Reg CC holds.

Returned checks

A return arrives in a return cash letter. In the sandbox, POST /simulate/transfers/checks/return plays the paying bank, with a deposit_id and an X9 reason such as A, insufficient funds.

  • The deposit's Reg CC holds are released.
  • A journal of kind check_return debits the customer's account for the full amount. The credit goes to 1050 if the letter had not settled and to 1010 if it had.
  • If the customer has spent the money, the account's overdraft protection decides whether the charge-back is covered. If it is not, the account is not debited: the charge-back waits on the transit account and a collection item is opened.
  • The deposit becomes returned, with a return_reason and return_journal_id.

On a redeposit of the item, an operator can place the redeposited-check exception hold, which keeps the next-day amount and holds the rest to the seventh banking day.

States and events

A deposit is deposited, then presented, then settled, and can become returned from any of them. Each change publishes payments.check_deposit.<status>. GET /transfers/checks lists deposits and filters by account_id, status and cash_letter_id.

Every field is listed in the Check Transfer object.

to move to open esc to close