Deposit check
Relevant webhooks
For this endpoint be sure you have registered for these webhooks:
API reference
Sends the Cross River system information needed to deposit a check into a Cross River account using the API. This information includes images of both the front and the back of the check. You submit these images after converting each one to a Base64-encoded value.
Endpoint: /checks/v1/payments
POST
https://sandbox.crbcos.com/checks/v1/payments
Body Parameters
- accountNumberstringrequiredDescription
- amountintegerrequiredDescription
- frontImagestringrequiredDescription
- backImagestringrequiredDescription
- purposestringDescription
- clientIdentifierstringDescription
- isRedepositbooleanDescription
Response
- idstringDescription
- accountNumberstringDescription
- referenceIdstringDescription
- paymentTypestringDescription
- checkTypestringDescription
- direction stringDescription
- statusstringDescription
- sourcestringDescription
- postingstringDescription
- rejectionReasonstringDescription
- positivePayResultstringDescription
- positivePayMatchIdstringDescription
- postingCodestringDescription
- clientBatchIdstringDescription
- clientBatchSequenceintegerDescription
- fedBatchIdstringDescription
- fedBatchSequenceintegerDescription
- coreTransactionIdstringDescription
- memoPostIdstringDescription
- originalPaymentIdstringDescription
- customerIdstringDescription
- payerRoutingNumberstringDescription
- payerAccountNumberstringDescription
- payeeNamestringDescription
- checkNumberstringDescription
- bofdRoutingNumberstringDescription
- sequenceNumberstringDescription
- amountintegerDescription
- currencystringDescription
- micrstringDescription
- recognizedAmountintegerDescription
- iqaPassedbooleanDescription
- returnCodestringDescription
- hasFrontImagebooleanDescription
- hasBackImagebooleanDescription
- isRedepositbooleanDescription
- policy stringDescription
- schedulearrayDescription
- createdAtstringDescription
- canceledAtstringDescription
- rejectedAtstringDescription
- processedAtstringDescription
- completedAtstringDescription
- postedAtstringDescription
- wasReturnedbooleanDescription
- purposestringDescription
- clientIdentifierstringDescription
- depositBusinessDatestringDescription
- lockboxVendorIdstringDescription
- productIdstringDescription
- partnerIdstringDescription
- lastModifiedAtstringDescription
curl
curl --location 'https://sandbox.crbcos.com/checks/v1/payments' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"accountNumber": "2640511503",
"amount": 10000,
"frontImage": "/9j/4QuqRXhpZgAATU0AKgA...",
"backImage": "/9j/4REyRXhpZgAATU0AKgAA...",
"isRedeposit": false,
"purpose": "SKIP_IQA"
}'nodejs
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': 'sandbox.crbcos.com',
'path': '/checks/v1/payments',
'headers': {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"accountNumber": "2640511503",
"amount": 10000,
"frontImage": "/9j/4QuqRXhpZgAATU0AKgA...",
"backImage": "/9j/4REyRXhpZgAATU0AKgAA...",
"isRedeposit": false,
"purpose": "SKIP_IQA"
});
req.write(postData);
req.end();python
import http.client
import json
conn = http.client.HTTPSConnection("sandbox.crbcos.com")
payload = json.dumps({
"accountNumber": "2640511503",
"amount": 10000,
"frontImage": "/9j/4QuqRXhpZgAATU0AKgA...",
"backImage": "/9j/4REyRXhpZgAATU0AKgAA...",
"isRedeposit": False,
"purpose": "SKIP_IQA"
})
headers = {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
}
conn.request("POST", "/checks/v1/payments", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))ruby
require "uri"
require "json"
require "net/http"
url = URI("https://sandbox.crbcos.com/checks/v1/payments")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"accountNumber": "2640511503",
"amount": 10000,
"frontImage": "/9j/4QuqRXhpZgAATU0AKgA...",
"backImage": "/9j/4REyRXhpZgAATU0AKgAA...",
"isRedeposit": false,
"purpose": "SKIP_IQA"
})
response = https.request(request)
puts response.read_body
go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.crbcos.com/checks/v1/payments"
method := "POST"
payload := strings.NewReader(`{
"accountNumber": "2640511503",
"amount": 10000,
"frontImage": "/9j/4QuqRXhpZgAATU0AKgA...",
"backImage": "/9j/4REyRXhpZgAATU0AKgAA...",
"isRedeposit": false,
"purpose": "SKIP_IQA"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}200
{
"id": "18619219-ccbb-45a6-a068-b30c008f7b47",
"accountNumber": "2640511503",
"referenceId": "C181DC3259D7",
"paymentType": "Forward",
"checkType": "Standard",
"direction": "Outbound",
"status": "Created",
"source": "Api",
"posting": "Pending",
"postingCode": "OK",
"coreTransactionId": "31746634-977b-461f-9899-b30c008f7b47",
"memoPostId": "51b24aa9-1cdc-4d82-9ddb-b30c008f7b47",
"originalPaymentId": "18619219-ccbb-45a6-a068-b30c008f7b47",
"customerId": "53c34cf0-4cd2-4768-937b-b30000dffdca",
"payerRoutingNumber": "",
"payerAccountNumber": "",
"payeeName": "",
"checkNumber": "",
"bofdRoutingNumber": "021214891",
"sequenceNumber": "2203615981",
"amount": 10000,
"currency": "usd",
"recognizedAmount": 0,
"iqaPassed": false,
"hasFrontImage": true,
"hasBackImage": true,
"isRedeposit": false,
"policy": "Standard",
"schedule": [
0,
10000
],
"createdAt": "2025-06-30T04:42:24.0202774-04:00",
"wasReturned": false,
"purpose": "SKIP_IQA",
"depositBusinessDate": "250701",
"productId": "83bed086-8182-4151-a1e3-af5b01362783",
"partnerId": "cd9c12f4-7691-424a-b38b-af5b0134c611",
"lastModifiedAt": "2025-06-30T04:42:24.0515279-04:00"
}400
{
"errors": [
{
"code": 2301,
"message": "Deposits not allowed for account type"
}
]
}