curl --request POST \
--url https://api.example.com/service/checks/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"routingNumber": "<string>",
"accountNumber": "<string>",
"amount": 123,
"checkNumber": "<string>",
"currency": "USD",
"payerName": "<string>",
"frontImage": "<string>",
"backImage": "<string>"
}
'import requests
url = "https://api.example.com/service/checks/verify"
payload = {
"routingNumber": "<string>",
"accountNumber": "<string>",
"amount": 123,
"checkNumber": "<string>",
"currency": "USD",
"payerName": "<string>",
"frontImage": "<string>",
"backImage": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
routingNumber: '<string>',
accountNumber: '<string>',
amount: 123,
checkNumber: '<string>',
currency: 'USD',
payerName: '<string>',
frontImage: '<string>',
backImage: '<string>'
})
};
fetch('https://api.example.com/service/checks/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/service/checks/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'routingNumber' => '<string>',
'accountNumber' => '<string>',
'amount' => 123,
'checkNumber' => '<string>',
'currency' => 'USD',
'payerName' => '<string>',
'frontImage' => '<string>',
'backImage' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/service/checks/verify"
payload := strings.NewReader("{\n \"routingNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"amount\": 123,\n \"checkNumber\": \"<string>\",\n \"currency\": \"USD\",\n \"payerName\": \"<string>\",\n \"frontImage\": \"<string>\",\n \"backImage\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/service/checks/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"routingNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"amount\": 123,\n \"checkNumber\": \"<string>\",\n \"currency\": \"USD\",\n \"payerName\": \"<string>\",\n \"frontImage\": \"<string>\",\n \"backImage\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/service/checks/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"routingNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"amount\": 123,\n \"checkNumber\": \"<string>\",\n \"currency\": \"USD\",\n \"payerName\": \"<string>\",\n \"frontImage\": \"<string>\",\n \"backImage\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"verificationId": "<string>",
"status": "verified",
"decision": "approve",
"riskScore": 123,
"routingNumberValid": true,
"accountStatus": "open",
"createdAt": "<string>",
"reasons": [
"<string>"
]
},
"code": "health_status_ok",
"message": "<string>"
}{
"code": "validation_error",
"message": "<string>",
"data": "<unknown>"
}{
"code": "unauthorized",
"message": "<string>",
"data": "<unknown>"
}{
"code": "internal_server_error",
"message": "<string>",
"data": "<unknown>"
}Verify Check
Verify a check before submitting it for processing. The endpoint validates the MICR line (routing and account numbers), confirms the account is in good standing and returns a risk decision so the platform can decide whether to deposit the check.
curl --request POST \
--url https://api.example.com/service/checks/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"routingNumber": "<string>",
"accountNumber": "<string>",
"amount": 123,
"checkNumber": "<string>",
"currency": "USD",
"payerName": "<string>",
"frontImage": "<string>",
"backImage": "<string>"
}
'import requests
url = "https://api.example.com/service/checks/verify"
payload = {
"routingNumber": "<string>",
"accountNumber": "<string>",
"amount": 123,
"checkNumber": "<string>",
"currency": "USD",
"payerName": "<string>",
"frontImage": "<string>",
"backImage": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
routingNumber: '<string>',
accountNumber: '<string>',
amount: 123,
checkNumber: '<string>',
currency: 'USD',
payerName: '<string>',
frontImage: '<string>',
backImage: '<string>'
})
};
fetch('https://api.example.com/service/checks/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/service/checks/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'routingNumber' => '<string>',
'accountNumber' => '<string>',
'amount' => 123,
'checkNumber' => '<string>',
'currency' => 'USD',
'payerName' => '<string>',
'frontImage' => '<string>',
'backImage' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/service/checks/verify"
payload := strings.NewReader("{\n \"routingNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"amount\": 123,\n \"checkNumber\": \"<string>\",\n \"currency\": \"USD\",\n \"payerName\": \"<string>\",\n \"frontImage\": \"<string>\",\n \"backImage\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/service/checks/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"routingNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"amount\": 123,\n \"checkNumber\": \"<string>\",\n \"currency\": \"USD\",\n \"payerName\": \"<string>\",\n \"frontImage\": \"<string>\",\n \"backImage\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/service/checks/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"routingNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"amount\": 123,\n \"checkNumber\": \"<string>\",\n \"currency\": \"USD\",\n \"payerName\": \"<string>\",\n \"frontImage\": \"<string>\",\n \"backImage\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"verificationId": "<string>",
"status": "verified",
"decision": "approve",
"riskScore": 123,
"routingNumberValid": true,
"accountStatus": "open",
"createdAt": "<string>",
"reasons": [
"<string>"
]
},
"code": "health_status_ok",
"message": "<string>"
}{
"code": "validation_error",
"message": "<string>",
"data": "<unknown>"
}{
"code": "unauthorized",
"message": "<string>",
"data": "<unknown>"
}{
"code": "internal_server_error",
"message": "<string>",
"data": "<unknown>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Check verification request body
ABA routing number extracted from the MICR line
9Bank account number the check is drawn on
Check amount in the smallest currency unit (e.g. cents)
Type of check being verified
personal, business Sequential number printed on the check
ISO 4217 currency code
Name of the account holder issuing the check
Base64-encoded image of the front of the check captured from a scanner or mobile app
Base64-encoded image of the back of the check
Response
Check verification completed successfully
Show child attributes
Show child attributes
health_status_ok, health_status_error, validation_error, bad_request, unauthorized, forbidden, not_found, method_not_allowed, internal_server_error, organization_not_found, cannot_access_organization, api_key_not_found, resource_already_exists