> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# KYB Statuses

> Full reference for KYB session, feature, registry lookup, AML statuses, and decision reason codes. Pay-per-call $2.00 business verification.

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.

| Status          | Meaning                                                                                                                                                                               |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `NOT_STARTED`   | Session created but business has not opened the hosted link.                                                                                                                          |
| `IN_PROGRESS`   | Hosted flow is active — registry lookups, document uploads, or AML screening in progress.                                                                                             |
| `AWAITING_USER` | Waiting 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. |
| `APPROVED`      | All required features passed. Business is verified.                                                                                                                                   |
| `DECLINED`      | A critical check failed (dissolved company, sanctioned entity, blocklisted) or workflow rule rejected.                                                                                |
| `IN_REVIEW`     | One or more features require manual analyst review.                                                                                                                                   |
| `RESUBMITTED`   | Previously declined/resub-requested session has been resubmitted with updated data.                                                                                                   |
| `ABANDONED`     | Business never completed the flow (timeout).                                                                                                                                          |
| `EXPIRED`       | Session expired before the business completed it.                                                                                                                                     |

<Note>
  `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.
</Note>

## Feature status

Each KYB feature has its own status, which rolls up into the session status.

| Status            | Meaning                                                                                                                                                   |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `NOT_FINISHED`    | Feature has not yet been started or is mid-run.                                                                                                           |
| `APPROVED`        | Feature passed.                                                                                                                                           |
| `DECLINED`        | Feature failed (critical).                                                                                                                                |
| `IN_REVIEW`       | Feature requires analyst attention.                                                                                                                       |
| `RESUB_REQUESTED` | Business must resubmit for this feature (e.g. re-upload a document).                                                                                      |
| `AWAITING_USER`   | Feature 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)

The official status of the company as obtained from authoritative registry sources. Reflects the legal or regulatory standing of the entity as reported by the jurisdiction-specific registry, so exact values vary by source. Surfaced inside the KYB decision under `company.registry_status`.

| Status                     | Meaning                                              |
| -------------------------- | ---------------------------------------------------- |
| `ACTIVE`                   | Company is active and in good standing.              |
| `DISSOLVED`                | Company has been dissolved.                          |
| `DEREGISTERED`             | Company has been deregistered.                       |
| `STRUCK_OFF`               | Company has been struck from the registry.           |
| `CLOSED`                   | Company has been closed.                             |
| `INACTIVE`                 | Company is inactive (non-trading).                   |
| `AUTHORISED`               | Authorised (typically for regulated entities).       |
| `APPOINTED_REPRESENTATIVE` | Appointed representative of another authorised firm. |
| `UNAUTHORISED`             | Previously authorised, now unauthorised.             |
| `NO_LONGER_AUTHORISED`     | Authorisation revoked.                               |
| `SEE_FULL_DETAILS`         | Status requires manual inspection.                   |

<Note>
  Because `registry_status` reflects raw registry values, use `verification_status` below when you need a consistent, cross-jurisdiction indicator to drive product logic.
</Note>

## Company verification status

A standardized, business-facing status per company result. Normalizes the varying registry and company statuses across different countries and sources into a single consistent indicator that can be interpreted directly within your product. Surfaced inside the KYB decision under `company.verification_status`.

| Status     | Meaning                                                            |
| ---------- | ------------------------------------------------------------------ |
| `verified` | The company appears active and valid.                              |
| `failed`   | The company appears inactive, dissolved, or has issues identified. |
| `unknown`  | There is insufficient information or the status is ambiguous.      |

## Company fetch status

Indicates the data retrieval progress for a specific company record from external or official registries. Use it to determine how complete the fetched information is for a given company. Surfaced inside the KYB decision under `company.fetch_status`.

| Status     | Meaning                                                                               |
| ---------- | ------------------------------------------------------------------------------------- |
| `pending`  | Only partial or basic company information has been retrieved at this stage.           |
| `resolved` | Full and complete company data has been successfully retrieved from official sources. |

## AML verification status

Returned per screening (company or person).

| Status         | Meaning                                              |
| -------------- | ---------------------------------------------------- |
| `APPROVED`     | No hits above threshold.                             |
| `DECLINED`     | High-severity hit (confirmed sanction or PEP match). |
| `IN_REVIEW`    | Hit found that requires analyst review.              |
| `NOT_FINISHED` | Screening has not completed.                         |

## Decision reason codes

When a session is `DECLINED`, the decision includes a machine-readable `decision_reason_code`. Common codes:

| Code                         | Meaning                                                        |
| ---------------------------- | -------------------------------------------------------------- |
| `blocked_country`            | Country of incorporation is in the dangerous countries list.   |
| `blocked_business`           | The `vendor_data` matches a Business blocklist entry.          |
| `registry_company_not_found` | Company could not be located in any supported registry.        |
| `registry_company_dissolved` | Registry reports company is dissolved.                         |
| `registry_mismatch`          | Registry data contradicts the customer-provided data.          |
| `aml_confirmed_sanction`     | Confirmed sanctions match on the company or a key person.      |
| `aml_confirmed_pep`          | Confirmed PEP match on a key person.                           |
| `documents_failed_ocr`       | Uploaded documents could not be OCR'd or fail cross-reference. |
| `documents_incomplete`       | Required documents missing.                                    |
| `key_people_incomplete`      | UBOs or officers below threshold could not be identified.      |
| `analyst_rejected`           | An analyst manually declined after review.                     |
| `timeout_abandoned`          | Business 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:

| Field                  | Description                                                                     |
| ---------------------- | ------------------------------------------------------------------------------- |
| `risk_level`           | `LOW`, `MEDIUM`, `HIGH` — composite of registry, AML, and ownership complexity. |
| `ownership_complexity` | `SIMPLE`, `COMPLEX` — based on number of ownership layers and entity types.     |

See [risk assessment](/business-verification/risk-assessment) for how these fields are computed.

## Next steps

<CardGroup cols={3}>
  <Card title="Response schema" icon="file-lines" href="/business-verification/response-schema">
    Where each status appears in the payload.
  </Card>

  <Card title="Risk assessment" icon="gauge" href="/business-verification/risk-assessment">
    How statuses combine into a risk level.
  </Card>

  <Card title="Webhooks" icon="bolt" href="/business-verification/webhooks">
    Events that fire on status changes.
  </Card>
</CardGroup>
