Skip to main content
Business verification includes structured document collection to validate company information beyond what’s available in registries.

Document groups

Documents are organized into four structured groups, each representing a category of evidence needed for business verification:
GroupDescriptionExamples
Legal presenceDocuments proving the company legally existsCertificate of incorporation, business registration
Company detailsDocuments describing the company’s operationsArticles of association, memorandum of association
Ownership structureDocuments proving the ownership chainShareholder register, share certificates, UBO declarations
Representatives authorizationDocuments proving authority to act on behalf of the companyPower of attorney, board resolutions, authorization letters
Each group tracks its own progress with per-group summaries: total documents expected, approved, pending review, and missing. The business session’s overall documents status aggregates across all groups.

Document types

CategoryExamples
Formation documentsCertificate of incorporation, articles of association, memorandum of association
Ownership documentsShareholder register, share certificates, UBO declarations
Address documentsUtility bills, bank statements, or lease agreements for the registered address
Financial documentsAnnual accounts, audit reports, financial statements
Tax documentsTax registration certificates, tax compliance certificates
Regulatory documentsLicenses, permits, regulatory approvals
Custom documentsAny additional documents required by your compliance process

Document workflow

Automatic requests

Based on your workflow configuration, Didit automatically identifies which documents are needed for the business verification. Required document types are presented to the business for upload.

Upload

Documents are uploaded through the hosted verification flow or via the Business Console. Supported formats include PDF, JPG, PNG, and WebP.

OCR extraction

Didit extracts structured data from uploaded documents using OCR:
  • Company name and registration number from certificates
  • Address data from utility bills
  • Financial figures from statements
  • Names and roles from shareholder registers

Cross-referencing

Extracted data is cross-referenced against:
  • Registry data from the company lookup
  • Information provided at session creation
  • Data from other uploaded documents
Inconsistencies are flagged for analyst review.

Review

Analysts review uploaded documents in the console, verify their authenticity, and approve or reject each document individually.

Analyst document requests

During the review process, analysts can request additional documents:
  1. Navigate to the business session in the console
  2. Click Request document and specify the document type and description
  3. The business is notified and can upload the requested document
  4. The document appears in the session with a Requested status until uploaded
This allows analysts to gather additional evidence without rejecting the entire business session.

Document statuses

Each document and the aggregate document_verifications[] check use the standard KYB feature status set:
StatusDescription
NOT_FINISHEDDocument is still being processed (upload in progress, OCR running, or cross-check pending).
APPROVEDDocument was reviewed and accepted.
DECLINEDDocument was reviewed and rejected.
IN_REVIEWDocument requires manual analyst attention.
RESUB_REQUESTEDAnalyst requested a resubmission — the business must re-upload this document before the session can progress.

Cross-check results

When a document is processed, Didit cross-references the OCR-extracted data against the user-provided data submitted in the Key People flow (and any data confirmed during registry review) plus other uploaded documents. The cross-check produces structured results:
CategoryDescription
Critical fieldsFields where the document data and the user-provided data do not match — these require analyst review. Each field shows the document value, the user-provided value, and a confidence score.
Non-critical fieldsFields with minor discrepancies or formatting differences that may not require action (e.g. abbreviation differences in company name).
People overlapAnalysis of people mentioned in the document vs. people submitted by the user — highlights missing or additional individuals.
Cross-check results are displayed in the Business Console alongside the document preview, giving analysts a clear view of what matches and what needs attention.

Retrieving documents via API

Documents are attached to the Business Verification (KYB) session. Fetch them via the session decision:
curl https://verification.didit.me/v3/session/{session_id}/decision/ \
  -H "x-api-key: YOUR_API_KEY"
The response includes a document_verifications[] array — each item has a status, node_id, items[] (each with a signed file_url and OCR extract), groups, and required_groups. See response schema for the full structure.

Next steps

Response schema

Where documents appear in the payload.

Troubleshooting

OCR failures and request flows.

Business console

Reviewing documents as an analyst.