Automated registry lookups, company status validation, and data extraction across 220+ countries. Pay-per-call $2.00 KYB, no contracts.
When a business verification session starts, Didit queries official company registries to retrieve and validate company information. This automated lookup provides the foundation for the entire business verification process.
Didit connects to company registries in supported countries to retrieve official data. The lookup is triggered automatically when the company name, registration number, and country are provided.
The registry lookup follows an asynchronous workflow:
Search
Didit queries the registry with the provided company name, country, and optional registration number. The search runs asynchronously.
Poll results
Poll the search status until results are resolved. Large registries may take a few seconds to return results.
Select company
Review the returned companies and select the correct match. Didit links the selected company to the KYB check and populates all available data.
Manual submission
If the company is not found in the registry, submit company data manually. The session continues with the provided data, and is_from_registry is set to false.
Didit keeps registry-returned data and user-confirmed data as separate audit records, with a merged canonical view used by downstream checks. Every company carries three related blocks:
Field
Description
registry_data
Raw payload returned by the registry. Immutable — kept as an audit record of exactly what the registry said, unchanged.
user_provided_data
What the end user confirmed or edited during the registry-confirmation step in the hosted flow.
The merged truth — user-confirmed data when present, registry data as fallback. Downstream features (document OCR cross-check, AML screening, risk assessment) run against the canonical view.
The confirmed_by_user_at timestamp marks when the end user confirmed or edited the registry data. While that timestamp is still null and is_editable is true, the end user can continue to modify fields inside the hosted flow.For manual-entry companies (is_from_registry: false), user_provided_data is the only source and is_editable becomes false after the user submits.Analysts can see the two sources side-by-side in the Business Console session review and diff what the registry said vs what the user confirmed.
You control which company-data fields the hosted verification flow asks for during the registry-confirmation step. Configure them in the Business Console: open the workflow editor, select the KYB Registry check node, and switch to the Fields tab.Each field has one of three states:
State
Behavior
Hidden
The field is not shown in the hosted flow and is not collected.
Optional
The field is shown; the user can leave it empty.
Required
The field is shown and must be filled before the user can submit.
Three fields are always shown and always required — they identify the company and cannot be configured: company_name, country_code, and region (state/region, where the registry is regional).The 16 configurable fields:registration_number, incorporation_date, legal_address, vat_number, alternative_names, tax_number, company_type, legal_entity_identifier, location_of_registration, nature_of_business, registered_capital_amount, registered_capital_currency, website, email, phone, control_schemeBy default — and for all existing workflows — only incorporation_date is Required; every other configurable field is Optional, so the form behaves exactly as it did before this setting existed.Requiredness is enforced server-side: submitting the registry form with a required field empty returns 400 with per-field error messages, and the hosted UI renders only the enabled fields. In the workflow API, the setting is the kyb_registry_fields_config object on the KYB Registry node — see feature configs for the shape.
vat_number marked Required is only enforced for companies incorporated in an EU VAT country (see below) — for all other countries the field is treated as optional even when required, since there is no EU VAT number to collect.
When the end user (or the registry) provides a vat_number for a company incorporated in the EU, Didit validates it against the European Commission’s VIES service when the registry step is submitted.
Coverage — the 27 EU member states plus Northern Ireland (XI). Greek VAT numbers are checked under the EL prefix automatically. Companies from any other country skip validation entirely and get vat_validation_status: "not_applicable".
Prefix handling — the number is normalized before the check, so it can be submitted with or without the country prefix (DE123456789 and 123456789 are equivalent for a German company).
valid, invalid, could_not_validate, or not_applicable
vat_validated_name
Trader name registered with VIES, when the member state discloses it
vat_validated_address
Trader address registered with VIES, when the member state discloses it
vat_checked_at
Timestamp of the VIES check
Status
Meaning
valid
VIES confirmed the VAT number is registered
invalid
VIES rejected the number (not registered or malformed)
could_not_validate
VIES or the member state was unavailable — the number could not be checked
not_applicable
No VAT number was provided, or the company is outside the EU VAT area
Name cross-check. When the number is valid and VIES discloses the registered trader name, Didit fuzzy-compares it against the submitted company name. A meaningful divergence raises the KYB_COMPANY_VAT_NAME_MISMATCH warning (with vies_name and submitted_name in additional_data) without changing the session status — it is a soft signal for reviewers. Some member states do not disclose the name or address; the fields come back empty and no comparison runs.Configurable actions. Two settings on the KYB Registry check node control what an unsuccessful check does to the session (values REVIEW, DECLINE, NO_ACTION):
Setting
Fires when
Default
kyb_vat_invalid_action
vat_validation_status is invalid
REVIEW — session goes to In Review
kyb_vat_unverified_action
vat_validation_status is could_not_validate
NO_ACTION — no effect on the session
Each outcome also raises the matching warning (KYB_COMPANY_VAT_INVALID, KYB_COMPANY_VAT_COULD_NOT_VALIDATE) on the registry check — see Business Verification warnings.