Check management
For check management, Cross River offers both check writing (withdrawals) and check deposits using Mobile Deposit Capture (MDC). Cross River works with lockbox service providers to process paper check deposits.
By default, all Cross River partners have checks blocked (turned off) for their products. This means a customer can order checks using a third party, and issue a check, but that check will automatically be rejected by Cross River when presented by the Federal Reserve for payment. You can request that CR enable checks per product or even per specific account. If you want to offer checking to your customers on an individual basis, you can keep checks blocked for the product and have CR enable you to have each customer opt in individually, after which you perform a fraud review on the customer.
In Cross River, checks have two different flows:
-
Deposit. In the deposit flow, you deposit a check into your CR account. In CR this is referred to as an outbound forward item because the check needs to be sent (out) to the Federal Reserve and presented to the drawee bank (paying bank) for payment.
-
Withdrawal. In the withdrawal flow, you write a check on your CR account to pay someone. In CR this is referred to as an inbound forward item because the Federal Reserve sends the check (in) to CR for payment and attempts to clear the check on your account. Your check clears when the transfer of funds succeeds.
In addition, whether deposited or used as a payment, a check might be returned for a number of reasons.
-
A returned check presented to CR by the Federal Reserve is considered an inbound return.
-
A check returned by CR is considered an outbound return
Availability policies
Availability policies define how quickly funds can be made available to the payee.
Availability of funds from a deposited check is based on rules specifically mandated by the Federal Reserve under Regulation CC (Reg CC). Reg CC defines how long a bank can hold funds based on various types of deposits. It's important to understand check processing and how Regulation CC (12 CFR 229) laws effect availability of funds. Learn more about Regulation CC.
COS defines the availability policy of any given deposit when the deposit is successfully received. COS assigns the policy of the deposit based on that business day's deposits to that specific account. You can use the availability policy API to update the policy of a specific deposit.
Availability policies can only be updated prior to the check being batched and released to the Fed.
Payment scheduling

When you deposit a check with the API, the response shows the assigned availability policy in the policy
field and the payment schedule in the schedule
field. For example, in the response below, the check is assigned the NewAccount availability policy along with the schedule. The schedule shows the amount of funds from the check deposit that will be available in the customer's COS account each day starting with the first day (Day 1), which is defined as the value in the processedAt
field. In this example, all the funds (100 or 1.00 USD) are available on the third day.
Check deposit response sample
GET /v1/payments/{id}
{
"id": "9a44fdbf-89e2-4300-8f05-ad9501439bb1",
"accountNumber": "2193590144",
"referenceId": "C2436F698K0D",
"paymentType": "Forward",
"checkType": "Standard",
"direction": "Outbound",
"status": "Completed",
"source": "Api",
"posting": "Posted",
"postingCode": "OK",
"coreTransactionId": "21ba5fb0-e609-4560-a36f-ad9501439bb1",
"memoPostId": "dc20e619-c5f7-4890-b3c8-ad9501439bb1",
"originalPaymentId": "9a44fdbf-89e2-4300-8f05-ad9501439bb1",
"customerId": "700f0d35-9940-4132-8608-ad89013927a9",
"payerRoutingNumber": "021200339",
"payerAccountNumber": "123456789",
"payeeName": "",
"checkNumber": "1237",
"bofdRoutingNumber": "021214891",
"sequenceNumber": "1353885824",
"amount": 100,
"currency": "usd",
"micr": "d021200339dc12345678c1237",
"recognizedAmount": 100,
"iqaPassed": true,
"hasFrontImage": true,
"hasBackImage": true,
"isRedeposit": false,
"policy": "NewAccount",
"schedule": [
0,
0,
100
],
"createdAt": "2021-08-31T15:38:13.28-04:00",
"rejectedAt": "2021-08-31T15:38:17.527-04:00",
"wasReturned": false,
"purpose": "ENTERED BY #60C367E26DD36A0068580230#",
"depositBusinessDate": "210831",
"productId": "d5dc52bb-df80-4a5d-a5a8-ad89013844bd",
"partnerId": "ede1a60d-3d51-47e8-9a9b-ad8901381f9e",
"lastModifiedAt": "2021-08-31T15:38:17.5280148-04:00"
}
If you look at the deposit in Explorer, the same schedule would appear as:
Using the deposit scenario above, this means that $1.00 will be available in the account ending in 0144 on Thursday, September 2nd. Below is a more detailed breakdown of the schedule depicted in the payment details above:
Day # | Date | Amount Available |
---|---|---|
1 |
Tuesday, August 31, 2021 |
$0.00 |
2 |
Wednesday, September 1, 2021 |
$0.00 |
3 |
Thursday, September 2, 2021 |
$1.00 |
Stop payments
If the payer has passed a check that the payer FI has not yet processed, they can put a stop payment on the check.
Once a check has been processed by the payer FI, a stop payment cannot be made. Instead, a dispute must be filed by the payer.
If the payee deposits the check after the check has had a stop payment put on it, the payee FI generally charges the payee a penalty fee. The payer bank will likely also charge for the stop payment service.
Usually the check amount, check number and account number is included the stop payment instructions.
For further guidance, please refer to: Reg E 1005.10 Preauthorized Transfer (c) Customer's Right to Stop payment section in the following link:
https://www.consumerfinance.gov/rules-policy/regulations/1005/10/#a-1
Bounced Checks
When someone writes a check for an amount larger than what is held in their checking account, the check can't be processed because there is not enough money (insufficient/non-sufficient funds, you can use either term) in the account. Not enough money is also referred to as "NSF." When there is not enough money in the account, this is known as a “bounced check”. A bounced check usually means a penalty fee for the payer. In some cases the payee is also charged a fee.
Positive Pay
CR's Positive Pay feature lets you or your customer make sure that only legitimate checks get deposited in their accounts. Either you or the account holder define which specific checks will be accepted. This helps prevent check fraud.
You can think of Positive Pay as the opposite of Stop Pay. In a sense you are providing an allowed list of authorized checks for deposit. Your or your customer provide the check number and amount for authorized checks. COS takes this Positive Pay information and matches it against inbound forward items presented by the Fed. If a match is found the check is paid. Otherwise the check is rejected.
Your product must be configured by CR in order to use the Positive Pay feature. Once Positive Pay is enabled, any checks presented by the Fed that are not authorized will automatically be rejected and returned to the depositing bank.
The date time within the expiresAt
field of the response is ignored. If a check matching that positive pay criteria is received after the date in the expiresAt
field it will be automatically rejected and returned to the depositing bank.
Business reference information

Type |
Description |
---|---|
Standard |
A check drawn from a business or personal account at another bank |
OnUs |
A check drawn from a CR account |
Treasury |
A check drawn on the US Treasury and issued by the US Department of the Treasury |
MoneyOrder |
A pre-paid traceable certificate used to transfer funds in amounts of up to 1000 USD |
FedReserveBank |
A check drawn on the Federal Reserve Bank |
FedHomeLoan |
A check issued by a member Federal Home Loan bank |
StateLocalGovt |
A check issued by a state or local government |
Certified |
A check guaranteed by the issuing FI to be valid and that the account it is drawn on has sufficient funds to cover the amount |
Unknown |
Check type cannot be determined |

Direction |
Description |
---|---|
Inbound |
A check drawn from a COS account, deposited at another bank |
Outbound |
A check deposited into a COS account, drawn from an account at another bank |

Status |
Description |
---|---|
Created |
We have received the payment, but have not started processing it yet. This status should only appear briefly under normal circumstances. |
Pending |
The payment is waiting to be batched and sent to the Federal Reserve |
Hold |
Payment is being held at the moment and reviewed by our Operations Team |
Batched |
The payment has been batched and a final review is being done before we send it out in a file to the Federal Reserve |
Processing |
For inbound payments, we are attempting to post the payment to the receiving account. For outbound payments, the payment has been sent to the Federal Reserve, but has not posted yet. |
Completed |
The payment has been posted and accepted by the Federal Reserve (in the case of outbound payments). This is a final status. |
Rejected |
Your check has been rejected for compliance reasons. Applies to Outbound payments only. This is a final status. |
Canceled |
An outbound payment has be canceled at the request of the partner. A payment may only be canceled while either pending or on hold. This is a final status. |

Status |
Description |
---|---|
Authorized |
The check has been authorized for positive pay |
Paid |
An authorized check has been presented by the Federal Reserve and paid by the Bank |
Revoked |
The check's positive pay authorization has been revoked |

Type |
Description |
---|---|
Forward |
A forward item is a check that has been presented for deposit and will be sent to the payer bank |
Return |
Relates to a previous forward item which the payer bank has returned |

The details below provide the length in days as to when funds from a check deposit will be available in the customer's account.
Type |
Details |
---|---|
Standard |
- $225 or less of the aggregate amount deposited daily to be available next business day. |
NewAccount |
- $5,525.00 or less of the aggregate amount deposited daily to be available 2nd business day |
LargeDeposits |
- $225 or less of the aggregate amount deposited daily to be available next business day |
RedepositedCheck |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RepeatedOverdrafts |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
OnUs |
- Total amount of the deposit to be available on the 2nd business day after the deposit date |
RCNoticeOfUnpaidReturn |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCSuspectFraud |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCFundingAccountOverdrafts |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCUnverifiedEndorsement |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCInconsistentInformation |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCErasuresOrAlterations |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCOutOfDateRoutingNumber |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCPostDatedOrStaleDate |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCPayingBankNotPaidIndication |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
RCLostOrDamaged |
- Total amount of the deposit to be available on the 7th business day after the deposit date |
EmergencyConditions |
- Total amount of the deposit to be available on the 7th business day after the deposit date |

Code |
Description |
---|---|
A |
Not Sufficient Funds |
B |
Uncollected Funds Hold |
C |
Stop Payment |
D |
Closed Account |
E |
Unable to Locate Account |
F |
Frozen/Blocked Account |
G |
Stale Dated |
H |
Post Dated |
I |
Endorsement Missing |
J |
Endorsement Irregular |
K |
Signature(s) Missing |
L |
Signature(s) Irregular |
M |
Non-Cash Item (Non-Negotiable) |
N |
Altered/Fictitious Item |
P |
Item Exceeds Dollar Limit |
Q |
Not Authorized |
R |
Branch/Account Sold (Wrong Bank) |
S |
Refer to Maker |
T |
Stop Payment Suspect |
W |
Cannot Determine Amount |
X |
Refer to Image |

Code |
Description |
---|---|
2000 |
General exception |
2001 |
Invalid payment status |
2002 |
Invalid posting status |
2003 |
Payment cannot be canceled |
2004 |
Account not found |
2005 |
Payment must be outbound |
2006 |
Payment must be inbound |
2007 |
Payment must be an inbound origination |
2008 |
Payment must be status completed or rejected to be corrected |
2009 |
Invalid change code |
2010 |
Payment must be an inbound return |
2011 |
Payment must be an origination |
2012 |
Payment must be status completed or rejected to be returned |
2013 |
Payment must be status completed or rejected to be dishonored |
2014 |
Invalid return code |
2015 |
Invalid dishonored return code |
2016 |
Original payment not found |
2017 |
Cannot link to same payment ID |
2018 |
Payment type must be return or notification of change |
2019 |
Original payment must be completed |
2020 |
Payment must be on hold to request a rescan |
2021 |
No scan lists are configured for account |
2022 |
Scan already pending |
2023 |
Previous payment not found |
2024 |
Previous payment must be a completed outbound origination |
2025 |
Receiver account not found |
2026 |
Active holds found |
2027 |
Posting account cannot be changed due to current payment status |
2028 |
Posting status must be pending or failed to change posting account |
2029 |
Posting status must be failed to attempt a retry |
2030 |
Originator profile address missing or invalid |
2031 |
Payment image data not available |
2032 |
Invalid front image format |
2033 |
Invalid back image format |
2200 |
Batch not authorizing |
2201 |
Batch requires one or more payments |
2202 |
No filters were found on the request |
2300 |
No active configuration found for account |
2301 |
Deposits not allowed for account type |
2306 |
Max payment amount exceeded |
2309 |
Origination not allowed from a restricted account |
2310 |
Account config change not approved |
2311 |
Account config change not pending |
2312 |
Account config change approval requires dual control |
2313 |
Account configuration not found or is invalid |
2314 |
Global profile not found or is invalid |
2315 |
Global profile change not approved |
2316 |
Global profile change not pending |
2317 |
Product change not pending |
2318 |
Product change not approved |
2319 |
Global config change approval requires dual control |
2320 |
Global config required |
2321 |
Global config accounts must be unique |
2323 |
Inbound Suspense Account not found |
2324 |
Outbound Suspense Account not found |
2325 |
Return Account not found |
2326 |
Operator Account not found |
2327 |
Unposted Account not found |
2328 |
Product config change approval requires dual control |
2329 |
Account config required |
2330 |
Product config required |
2400 |
Distribution must be generating |
2401 |
Distribution already canceled |
2402 |
Distribution must be pending |
2403 |
Distribution must be on hold |
2404 |
Distribution must be verified |
2405 |
Distribution must be released |
2406 |
Distribution must not be released |
2407 |
Distribution must be transmitted |
2408 |
Distribution must be acknowledged |
2409 |
Distribution must be processing |
2410 |
Distribution must have been previously transmitted |
2411 |
Distribution release requires dual control |
2412 |
A distribution is currently generating |
2413 |
No payments to distribute |
2414 |
Distribution is currently processing and can no longer be acknowledged |
2415 |
Distribution is currently complete and can no longer be acknowledged |
2416 |
Cannot verify distribution with exceeded limits |
2417 |
No filters were found on the request |
2500 |
Submission import count cannot exceed total payment count |
2501 |
Submission process count cannot exceed total payment count |
2600 |
Hold is not active |
2601 |
Hold payment not found |
2602 |
No filters were found on the request |
2603 |
This action requires dual control |
3000 |
General exception |
3001 |
Flags not allowed |
3002 |
Clearing hold exceeds user permissions for payment amount |
3200 |
Access denied |