You're paying your list, we're checking it twice...
Time to find out if your vendors are naughty or nice!
A few months ago, we unveiled our new Bank Account Validation offering to help you ensure that you're sending money to bank accounts that are actually owned by your vendors. This new functionality was designed to go hand-in-hand with the existing Vendor Compliance Check functionality we introduced earlier in 2025, though not very much of the Vendor Compliance Check power had made its way down to the API at the time.
This week, Routable is releasing a whole host of improvements to our Vendor Compliance Check offering. These improvements are the direct result of learnings we've made as the feature matures and we hear feedback from our clients, and we'll leave the majority of them for the main Routable Changelog to discuss. But, over here in Developer Experience, we've been hard at work making sure that the toolset offered to our partner developers is as robust as the one your finance team has at its disposal in the Routable Dashboard.
We're introducing an entire new module to the Routable API: Vendor Compliance Checks. No longer will you just get a single risk_summary
field on a Retrieve a Company call to let you know if a vendor has potential compliance issues. Now, you can Retrieve a Compliance Report to get the full picture of exactly what Routable's monitoring suite uncovered about your vendors.
So, let's say you're getting ready to pay your newest vendor, and you see that their risk_summary
field indicates that their compliance report has a review_required
status. Depending on your Routable settings, it's very likely that payouts to that vendor are going to be placed into a compliance_hold
status and not released. So, we need to get to the bottom of this mystery! Quick! To the Retrieve a Compliance Report endpoint!
{
"object": "ComplianceReport",
"id": "09579c08-f73d-4237-8c56-77f39c53b64a",
"checks": [
{
"id": "175da0b2-5210-4f20-b9e7-0e04c57d0b53",
"type": "tin",
"created_at": "2025-09-19T19:47:20.927000+00:00",
"issues": [],
"status": "passed",
"updated_at": "2025-09-19T19:47:23.991000+00:00"
},
{
"id": "113cf4bf-1909-463d-9f05-95d2e16076bd",
"type": "watchlist",
"created_at": "2025-09-19T19:47:20.925000+00:00",
"issues": [
{
"type": "watchlist",
"checked_at": "2025-09-19T19:47:20.985000",
"fields": [
{
"label": "score",
"value": "100%"
},
{
"label": "remarks",
"value": "Type: Entity | Remarks: (Linked To: PERDOMO ROSALES, Gustavo Adolfo)"
}
],
"source": {
"name": "FEDERAL EXCLUSION - Specially Designated Nationals [SDN] List",
"region": "North America"
},
"subject_name": "My Test Business",
"url": "https://sanctionssearch.ofac.treas.gov/Details.aspx?id=26211"
},
{
"type": "watchlist",
"checked_at": "2025-09-19T19:47:20.985000",
"fields": [
{
"label": "score",
"value": "100%"
}
],
"source": {
"name": "FSE List",
"region": "North America"
},
"subject_name": "My Test Business",
"url": "https://ofac.treasury.gov/specially-designated-nationals-list-data-formats-data-schemas"
}
],
"status": "issues_found",
"updated_at": "2025-09-19T19:47:24.002000+00:00"
}
],
"created_at": "2025-09-19T19:47:24.007000+00:00",
"dismissal": null,
"status": "review_required",
"subject": {
"government_id": {
"type": "ein",
"value": "*********"
},
"legal_name": "My Test Business"
},
"links": {
"self": "https://api.sandbox.routable.com/v1/companies/157de565-a360-4344-b2df-24b979696a2d/compliance-checks",
"company": "https://api.sandbox.routable.com/v1/companies/157de565-a360-4344-b2df-24b979696a2d"
}
}
The checks
array shows all of the things we evaluated in our compliance check sweep. When Routable checked out this vendor, their government ID - in this case a tin
because it's a US vendor - matched the records we checked, so the tin
check has a status
of passed
. Looking good! 🎉
But, hold on a minute. The watchlist
check
has a status of issues_found
. Rut roh. Looking in the issues
array of that check
, we can see that the vendor appeared on two watchlists, indicating potential problems that probably mean you don't want to send them any money.
But, maybe you do want to unblock payments to this vendor after all - you've confirmed their identity, and feel confident that they're safe to pay. Well, if we're going to tell you that a review is required, we should probably let you complete that review, right? Enter the Dismiss a Compliance Check endpoint. Using this endpoint - with its super-easy single field payload - tells Routable you're manually giving the green light for us to release funds to the vendor. Any already-held Payables will begin to flow, and future payments won't be blocked based on the vendor's Compliance Report unless more issues are found later (such as a new watchlist hit) or the vendor is re-enrolled for a fresh check.
Coupled with our Bank Account Validation tools, Vendor Compliance Checks are another powerful arrow in your quiver for the fight against fraud. We'll continue evolving these tools over time, adding more checks and more safeguards to keep your money safe.
And that's not all we have cookin' in the DevEx kitchen! Stay tuned for more cool API announcements soon!