Verifying Bank Account Information (via Routable)
This is a new, optional feature!
To use Routable Bank Account Validation, we will need to enable it in your Workspace. Additional fees may apply. Contact your Routable Success Manager to start using it!
If you have not activated the feature in your Workspace, this endpoint will return a
402 Payment Required
error.
To help minimize fraud and failed payments, it's a good idea to verify bank information prior to sending funds. Fortunately, Routable makes it easy!
We've introduced a new Validate a Payment Method endpoint to check bank
accounts. Currently, this supports domestic US banks, but look for expansion of this feature soon. The endpoint takes the same payload as the Create a Payment Method endpoint, so implementing it is super easy!
{
"is_primary": true,
"type": "bank",
"type_details": {
"account_number": "123456789",
"account_type": "checking",
"routing_number": "021000021"
}
}
The result of this call is an object containing an array of checks
. Currently, we check two things:
- The
verification
check confirms that the bank account exists and is open. - The
ownership
check confirms that the bank account's owner matches the information provided in the Company identified in thecompany_id
query parameter of the request.
{
"id": "b4ae2dc9-f9ec-410f-a18c-ce612cdb4d84",
"checks": [
{
"id": "268f4942-cf01-4b6e-84c8-3d3fcfbf0222",
"type": "ownership",
"created_at": "2025-06-02T17:57:05.350000+00:00",
"result": "mismatch",
"updated_at": "2025-06-02T17:57:05.350000+00:00"
},
{
"id": "56b8cb0c-9b09-496c-beed-cf687eedd70f",
"type": "verification",
"created_at": "2025-06-02T17:57:05.350000+00:00",
"result": "match",
"updated_at": "2025-06-02T17:57:05.350000+00:00"
}
]
}
For each check
, one of four results are possible:
match
: We were able to confirm that the information is correct and valid.mismatch
: We were able to confirm that the information is not correct and valid.no_data
: No data was found to assess validity or ownership.unable_to_verify
: The system was unable to verify (due to timeout, upstream failure, etc.)
Control your results in test environments
When testing in Your Routable Sandbox, the last digits of the
account_number
in your payload determine the results you will get.The value you pass for each of the last digits determines the result you will get:
1️⃣ in a check will return
match
2️⃣ in a check will return
mismatch
3️⃣ in a check will return
no_data
4️⃣ in a check will return
unable_to_verify
Other values' results in the final two digits of the
account_number
should be considered undefined.
Examples
account_number
Providedownership
Resultverification
Result00012 match
mismatch
00024 mismatch
unable_to_verify
00031 no_data
match
00068 result undefined result undefined
We recommend that you follow the following flow when validating bank information:
- Create a Company
- Validate a Payment Method
- If successful, Create a Payment Method with the same payload and then Create a Payable
- If unsuccessful, prompt your vendor to check their information
Updated 16 days ago