Skip to main content
Business Verification tracks status at multiple levels: the session, individual features, the registry lookup, and the AML result. This page is the reference for every state.

Session status

The overall status of a Business Verification (KYB) session — the single field you’ll most often switch on.
StatusMeaning
NOT_STARTEDSession created but business has not opened the hosted link.
IN_PROGRESSHosted flow is active — registry lookups, document uploads, or AML screening in progress.
AWAITING_USERWaiting for the end user to take an action (typically submit Key People, or respond to a resubmission request). Transitions automatically once the user completes the pending action.
APPROVEDAll required features passed. Business is verified.
DECLINEDA critical check failed (dissolved company, sanctioned entity, blocklisted) or workflow rule rejected.
IN_REVIEWOne or more features require manual analyst review.
RESUBMITTEDPreviously declined/resub-requested session has been resubmitted with updated data.
ABANDONEDBusiness never completed the flow (timeout).
EXPIREDSession expired before the business completed it.
AWAITING_USER is transient — you don’t need to manually move sessions out of it. As soon as the end user completes the pending action (for example, submits the Key People list or re-uploads a requested document), Didit re-evaluates the session and transitions it automatically to IN_REVIEW, APPROVED, or DECLINED based on the outcome.

Feature status

Each KYB feature has its own status, which rolls up into the session status.
StatusMeaning
NOT_FINISHEDFeature has not yet been started or is mid-run.
APPROVEDFeature passed.
DECLINEDFeature failed (critical).
IN_REVIEWFeature requires analyst attention.
RESUB_REQUESTEDBusiness must resubmit for this feature (e.g. re-upload a document).
AWAITING_USERFeature is waiting for an end-user action. Applies to the Key People feature while the user must submit parties. Automatically transitions on submission.

KYB feature names

  • kyb_registry — company registry lookup.
  • kyb_company_aml — company-level AML screening.
  • kyb_documents — document collection and OCR.
  • kyb_key_people — key people: UBOs, shareholders, directors, representatives and other officers.

Registry status (from the provider)

Returned by the underlying company registry. Surfaced inside the KYB decision under company.registry_status.
StatusMeaning
ACTIVECompany is active and in good standing.
DISSOLVEDCompany has been dissolved.
DEREGISTEREDCompany has been deregistered.
STRUCK_OFFCompany has been struck from the registry.
CLOSEDCompany has been closed.
INACTIVECompany is inactive (non-trading).
AUTHORISEDAuthorised (typically for regulated entities).
APPOINTED_REPRESENTATIVEAppointed representative of another authorised firm.
UNAUTHORISEDPreviously authorised, now unauthorised.
NO_LONGER_AUTHORISEDAuthorisation revoked.
SEE_FULL_DETAILSStatus requires manual inspection.

AML verification status

Returned per screening (company or person).
StatusMeaning
APPROVEDNo hits above threshold.
DECLINEDHigh-severity hit (confirmed sanction or PEP match).
IN_REVIEWHit found that requires analyst review.
NOT_FINISHEDScreening has not completed.

Decision reason codes

When a session is DECLINED, the decision includes a machine-readable decision_reason_code. Common codes:
CodeMeaning
blocked_countryCountry of incorporation is in the dangerous countries list.
blocked_businessThe vendor_data matches a Business blocklist entry.
registry_company_not_foundCompany could not be located in any supported registry.
registry_company_dissolvedRegistry reports company is dissolved.
registry_mismatchRegistry data contradicts the customer-provided data.
aml_confirmed_sanctionConfirmed sanctions match on the company or a key person.
aml_confirmed_pepConfirmed PEP match on a key person.
documents_failed_ocrUploaded documents could not be OCR’d or fail cross-reference.
documents_incompleteRequired documents missing.
key_people_incompleteUBOs or officers below threshold could not be identified.
analyst_rejectedAn analyst manually declined after review.
timeout_abandonedBusiness did not complete the flow within the SLA.
Additional workflow-specific reason codes may appear — see your workflow configuration for the full list.

Ownership and complexity signals

Returned in the decision alongside status, for informational use:
FieldDescription
risk_levelLOW, MEDIUM, HIGH — composite of registry, AML, and ownership complexity.
ownership_complexitySIMPLE, COMPLEX — based on number of ownership layers and entity types.
See risk assessment for how these fields are computed.

Next steps

Response schema

Where each status appears in the payload.

Risk assessment

How statuses combine into a risk level.

Webhooks

Events that fire on status changes.