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 Requirederror.
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
verificationcheck confirms that the bank account exists and is open. - The
ownershipcheck confirms that the bank account's owner matches the information provided in the Company identified in thecompany_idquery 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 environmentsWhen testing in Your Routable Sandbox, the last digits of the
account_numberin 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
match2️⃣ in a check will return
mismatch3️⃣ in a check will return
no_data4️⃣ in a check will return
unable_to_verifyOther values' results in the final two digits of the
account_numbershould be considered undefined.
Examples
account_numberProvidedownershipResultverificationResult00012 matchmismatch00024 mismatchunable_to_verify00031 no_datamatch00068 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 10 days ago

