Available now live
VerifyDesk
The counterparty checks an agent needs before it onboards a customer, pays a supplier or signs a contract. Official registries in, one normalized answer out.
Who this is for
If a wrong answer costs you money, this is the check.
- Marketplaces and fintechs onboarding business customers: confirm the entity is registered and active before opening an account.
- Finance and procurement agents paying invoices: validate the VAT number and the IBAN structure before money moves.
- Compliance workflows: screen counterparties against the OFAC, UN, EU and UK sanctions lists and keep the evidence of the check.
A real screening call
Answers an agent can act on without parsing prose.
{
"name": "screen_sanctions",
"arguments": { "name": "CONGOMET TRADING HOUSE" }
}{
"query": "CONGOMET TRADING HOUSE",
"screened_entries": 85027,
"lists": ["EU Consolidated", "OFAC Consolidated (non-SDN)",
"OFAC SDN", "UK Sanctions List", "UN Consolidated"],
"data_as_of": "2026-10-11T23:10:28.163Z",
"stale": false,
"match_count": 3,
"matches": [
{ "name": "CONGOMET TRADING HOUSE", "list": "UN Consolidated",
"programs": "DRC", "score": 1, "match_type": "exact" },
{ "name": "Congomet Trading House", "list": "EU Consolidated",
"programs": "COD", "score": 1, "match_type": "exact" },
{ "name": "CONGOMET TRADING HOUSE", "list": "UK Sanctions List",
"score": 1, "match_type": "exact" }
]
}A match is a signal for enhanced due diligence, never a legal determination. The response always says how many entries were screened and which lists answered, so the agent can judge coverage. Trimmed for space: the full answer also carries the date of each list, the matching settings and each listing's reference number.
Tools
Six tools, one credit balance.
| Tool | Credits | What it does |
|---|---|---|
| verify_company | 1 | Look a company up in the official French or UK registry and get its legal status, address and activity back in one normalized shape. France: recherche-entreprises (SIRENE/RNE). United Kingdom: Companies House API. |
| verify_vat | 0.2 | Check an EU VAT number against VIES, live, and read back the registered name and address when the member state publishes them. Pass your own VAT number to get the VIES consultation number. VIES, European Commission. |
| validate_iban | 0.2 | Validate an IBAN offline against the SWIFT IBAN Registry (all 89 countries): length, national account format, check digits and ISO 7064 checksum, plus an optional BIC check. Structure only, not account existence. SWIFT IBAN Registry, Release 103 (Sep 2026), computed locally. No third party sees the IBAN. |
| screen_sanctions | 1 | Screen a person or company against the US, UN, EU and UK sanctions lists, aliases and spelling variants included, and get scored matches with their programs. A hit is a signal for review, not a verdict. OFAC SDN and Consolidated (US Treasury), UN Security Council Consolidated List, EU consolidated list (European Commission), UK Sanctions List (FCDO). |
| enrich_company | 1 | Pull officers, legal form, activity and headcount for one registration number you already trust. Same official registries as verify_company. |
| get_usage | free | Read the remaining credit balance and the last 30 days of calls, so an agent can budget before an expensive run. Your account. |
What is actually checked
One line per check, so you know what a pass means.
- verify_company and enrich_company read the official registry live on every call, with no cache: recherche-entreprises (SIRENE and RNE) for France, the Companies House API for the United Kingdom. Officers are the ones currently in office; resigned officers are left out.
- verify_vat calls VIES live on every request, and returns the VIES consultation number when you pass your own VAT number as requester_vat_number. If VIES or the member state is down, it returns the last answer VIES gave for that number in the past 7 days, marked stale: true with its original checkedAt and never with a consultation number. That fallback lives in the Cloudflare cache of each location, so it exists only where a recent check went through the same location; otherwise you get a retryable error, not a guess.
- validate_iban checks an IBAN offline against the SWIFT IBAN Registry (Release 103, September 2026, all 89 countries): registered country, exact length, the national account format (BBAN), check digits 02 to 98 and the ISO 7064 mod-97 checksum. It returns a stable reason_code when invalid, and the bank and branch codes the registry defines when valid.
- The optional BIC check confirms the ISO 9362 format SWIFT implements and a real ISO 3166 country code; it does not confirm that SWIFT issued the BIC. A BIC country that differs from the IBAN country is a warning, not an error, unless the registry lists it as a territory using that IBAN prefix (for example GP with FR).
- screen_sanctions screens names against the OFAC SDN and Consolidated (non-SDN) lists with every alias, the UN Security Council Consolidated List, the EU consolidated financial sanctions list and the UK Sanctions List, mirrored from the official files. Every result states which lists were screened and how old each one is, and says stale: true if a list has not been refreshed for more than 7 days.
- Sanctions matching ignores case, accents, punctuation, word order and legal forms, tolerates one typo in words of four letters or more and common transliterations, weighs words by how rare they are in the lists, and returns designated parties scoring 0.85 or more (adjustable from 0.7 to 1) as exact, alias or fuzzy matches. Dates of birth and other identifiers are not compared, and only Latin-script names are read.
- Measured on 2026-10-10: 92.36% of 9,130 realistic spelling variants of listed names (case, word order, legal form, one typo, a dropped middle name) and 89.2% of 1,000 real transliterations from the EU list were found, and 0.78% of 36,070 real company and person names that are not designated (SEC issuers, GLEIF entities, US legislators, Nobel laureates) were wrongly flagged. Every flagged name was read by hand to separate designated companies from false positives.
- Every tool declares its required and optional parameters in its JSON Schema (vat_number, iban and bic are separate fields, never one generic identifier), and the endpoint passes the official MCP Inspector over Streamable HTTP.
Measured
100% of scenarios passed on the last run.
33 agent scenarios, including the failure cases, run against the deployed server. p95 1.78s end to end.
Use cases
What agents use it for, with real calls.
- Verify an EU VAT number via API, from an agent. Check that an EU VAT number is valid before invoicing or paying, and read back the registered name and address, with one tool call against VIES.
- Screen a company or person against sanctions lists from an agent. Screen a person or company name against the OFAC SDN and Consolidated, UN, EU and UK sanctions lists in one call, aliases included, with scored matches and the date of each list.
- Validate an IBAN via API before a payment goes out. Catch mistyped IBANs before money moves: length, national account format and mod-97 checksum per the SWIFT IBAN Registry (89 countries), plus an optional BIC check. Runs offline.
- Look up a French company by SIREN or name, via API. Find a French company in the official registry by SIREN, SIRET or name and get its legal status, legal form, activity code, address and creation date in one normalized shape.
- Supplier onboarding checks an agent can run on its own. Know who you are paying: pull the registry record and the officers of a French company, then screen the company against the US, UN, EU and UK sanctions lists, in two tool calls.
Connect
The endpoint.
A remote MCP server over Streamable HTTP. Any MCP client reaches it, and so does plain HTTP if you would rather call it directly. Swap in the key from your free account and the first call works.
https://verifydesk.agenttoolworks.com/mcp
claude mcp add --transport http verifydesk \ https://verifydesk.agenttoolworks.com/mcp \ --header "Authorization: Bearer atw_live_your_key"
Pricing
Pay for the calls you make.
Credits are shared with every other server, so one balance covers everything you call. Packs start at $10 for 1,000 credits and never expire, and 100 credits are free without a card.
Where the data comes from
Only official, public sources, documented per tool. France uses the state company registry API, the United Kingdom uses the Companies House API, VAT validation uses the European Commission VIES service, and IBAN validation follows the SWIFT IBAN Registry and runs locally, so the number never leaves our server. Sanctions screening uses the US Treasury OFAC lists, the UN Security Council Consolidated List, the EU consolidated financial sanctions list published by the European Commission, and the UK Sanctions List published by the Foreign, Commonwealth and Development Office, which contains public sector information licensed under the Open Government Licence v3.0.
We do not scrape sources behind a login, and we do not resell data we are not allowed to serve.