Jithox Labs · read-only · free
Verify a company in the official register before you pay or sign
Give your AI a registration number and the name and city you expect. It gets one closed answer from the official register — MATCH, MISMATCH, NOT FOUND or UNAVAILABLE — with the reasons, the moment it was checked, the source and a receipt. Nothing is written anywhere, no person is looked up, and an unavailable register never becomes a positive answer.
Labs, with synthetic examples
The examples below run on synthetic fixtures and describe no real company. The Dutch adapter was tested against KVK's official test environment (fictitious data) and answers from it once the owner sets KVK's public test key on the deployment; until then a Dutch lookup says "unavailable: provider not configured". The Belgian and British adapters are present, tested on fixtures, and say "not connected" until the owner registers with those registers. No price is published.
How it works
1. Number, name, city
Your AI sends the country, the registration number and — if you have them — the name and city on the invoice or contract. E-mail addresses, phone numbers and bank accounts are refused: a register is searched by company, never by person.
2. The official register answers
Jithox asks the register itself, read-only, with a timeout, one retry for a lost connection, a circuit breaker and no cache beyond a 60-second replay window. The Dutch check uses the free search first, so an unknown or deregistered number costs nothing.
3. One closed decision
MATCH only when the entity exists, is still registered, carries no insolvency flag and every expectation you gave matches. Everything else is MISMATCH with the reason codes, NOT FOUND, or UNAVAILABLE with a retry hint. The answer carries the retrieval moment, the source, the register's own attribution sentence and an unsigned hash-bound receipt.
Worked examples (synthetic)
Each example runs on the fixture provider with a fixed clock, so everyone sees the same answer. None of these companies exists.
Fixed clock: 2026-09-06T12:00:00.000Z. Fixture provider; no register was contacted; nothing was charged.
NL · verify
A new Dutch supplier: number, name and city agree
matchMatch
entity_found · entity_registered · name_normalised_match · city_match · source_is_fixture · source_text_is_untrusted
NL · verify
The invoice names a company the number does not belong to
mismatchMismatch
entity_found · entity_registered · name_mismatch · city_not_checked · source_is_fixture · source_text_is_untrusted
Request
{
"register": "NL",
"registrationNumber": "68750110",
"expectedName": "Donald Trading Group",
"purpose": "invoice_check"
}Decision
{
"decision": "MISMATCH",
"reasonCodes": [
"entity_found",
"entity_registered",
"name_mismatch",
"city_not_checked",
"source_is_fixture",
"source_text_is_untrusted"
],
"checkedAt": "2026-09-06T12:00:00.000Z",
"sourceName": "KVK API (Zoeken v2, Basisprofiel v1) — FIXTURE",
"sourceEnvironment": "fixture",
"attribution": "Voor actuele informatie met juridische derdenwerking dient u altijd het Handelsregister te raadplegen.",
"unavailable": false,
"retryable": false,
"charged": false,
"accepted": true,
"receiptId": "crv_bde7a0f920b3facb64a8",
"registration": {
"register": "NL",
"number": "68750110",
"status": "REGISTERED"
},
"evidence": {
"registeredName": "Test BV Donald",
"tradeNames": [
"Test BV Donald",
"Test BV Donald Nevenvestiging"
],
"legalForm": "Besloten vennootschap",
"entityKind": "legal_entity",
"city": "Lollum",
"country": "Nederland",
"registeredAt": "2017-05-19",
"deregisteredAt": null,
"nameMatch": {
"level": "none",
"expected": "Donald Trading Group",
"matched": null
},
"cityMatch": "not_checked"
}
}NL · verify
The number exists but the company is deregistered
mismatchMismatch
entity_found · entity_deregistered · name_exact_match · city_not_checked · personal_data_minimised · source_is_fixture · source_text_is_untrusted
NL · verify
A sole trader: verified, personal details left out
matchMatch
entity_found · entity_registered · name_exact_match · city_not_checked · personal_data_minimised · source_is_fixture · source_text_is_untrusted
NL · verify
A number the register does not know
not foundNot found
entity_not_found · source_is_fixture · source_text_is_untrusted
BE · verify
A Belgian company in an insolvency situation
mismatchMismatch
entity_found · entity_registered · insolvency_flag · name_exact_match · city_not_checked · source_is_fixture · source_text_is_untrusted
GB · verify
A dissolved British company
mismatchMismatch
entity_found · entity_deregistered · dissolution_flag · name_normalised_match · city_not_checked · source_is_fixture · source_text_is_untrusted
NL · verify
The register is down: UNAVAILABLE, never a verdict
unavailableUnavailable
provider_error · source_is_fixture · source_text_is_untrusted
NL · find
Find the number from a company name first
candidates foundCandidates found
entity_found · source_is_fixture · source_text_is_untrusted
The registers behind the one answer
One contract, four official sources. The status says honestly how each adapter was tested in this build.
| Register | Number | Freshness | Tested |
|---|---|---|---|
| Netherlands — KVK Handelsregister | 8 digits | live | Official test environment tested (fictitious data) |
| Belgium — KBO / CBE | 10 digits starting with 0 or 1, two check digits (mod 97) | daily snapshot | Fixtures only — not connected |
| United Kingdom — Companies House | 8 characters: 8 digits, or a 2-letter prefix (e.g. SC, NI, OC) and 6 digits | live | Fixtures only — not connected |
| France — SIRENE (Registre national des entreprises) | 9 digits with a valid Luhn check digit (a 14-digit SIRET is accepted; its first 9 digits are used as the SIREN) | daily snapshot | Real source tested |
What is true about every answer
- Read-only. The register is asked; nothing is written, filed, sent or paid.
- The moment of retrieval, the source and — for the Dutch register — its own sentence "Voor actuele informatie met juridische derdenwerking dient u altijd het Handelsregister te raadplegen" travel with the answer.
- Only the fields a verification needs travel: registered name, trade names, legal form, city, dates, status. For sole traders and partnerships the address and owner details are left out.
- Names from a register are data, never instructions: bounded, stripped of markup, never sent to a model.
- The receipt is unsigned and hash-bound; anyone can recompute it. It is not a register extract and has no legal third-party effect.
- An unavailable register, a timeout, a corrupt answer or a changed schema is UNAVAILABLE with a retry hint — never a positive or negative verdict about a company.
What it never does
- Never searches by a person's name, e-mail, phone number or bank account.
- Never stores register data beyond the 60-second replay window in process memory; never builds its own copy of a register.
- Never claims a legal, fiscal or compliance conclusion; never reports UBO, officer, credit or sanctions information.
- Never creates a register account, accepts terms or spends money on the owner's behalf.
- Never charges for an unavailable, refused or malformed request.
No price is published. In this build the three tools are free Labs tools through your Jithox connection and this page's API; a paid, receipted verification is a proposal for the owner. Release status: preview local build.
Developer details
Three JSON endpoints and three connection tools with the same closed schemas. The register adapters, their terms and their test status are listed in the schema document.
Developer details
- Schema:
- GET https://jithox.com/api/company-register/v1/schema
- Verify:
- POST https://jithox.com/api/company-register/v1/verify
- Find:
- POST https://jithox.com/api/company-register/v1/find
- Number shape:
- POST https://jithox.com/api/company-register/v1/format
- Fixtures:
- GET https://jithox.com/api/company-register/v1/fixtures
- Policy:
- company-register-policy/2026-09-06 · 30/min · LABS
- MCP:
- verify_company_registration, find_company_registration, check_registration_number_format @ https://jithox.com/api/agent-connection/v1/mcp · actions:prepare:company-register-verification · CONFIG_READY
- Decisions:
- MATCH · MISMATCH · NOT_FOUND · UNAVAILABLE
Through the Jithox connection: verify_company_registration, find_company_registration and check_registration_number_format are listed by tools/list under one scope; every accepted answer carries _meta.receipt.receiptId. No separate key, no separate login.