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

# Identity verification

> Verify a connected user's identity: upload their ID, submit extra fields, then a short face scan.

**Identity verification** (KYC) is required before a user can hold a balance or be issued a card. The flow runs in your own UI: upload the front and back of the user's ID, send any `required_fields` the back-of-ID response asks for, then show the `iframe_url` for the face scan. Track the result by polling status or listening for `identity.verification.updated`.

Already verified the user on your own Sumsub account? **Import** the verification with a share token and the user skips document capture and the face scan.

## The verification object

| Field             | Type   | Description                                                                                                                        |
| ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `object`          | string | `kyc`                                                                                                                              |
| `status`          | string | `awaiting_documents`, `needs_information`, `requires_verification`, `pending`, `approved`, `rejected`.                             |
| `required_fields` | array  | Only on `needs_information`: exactly the fields to collect and post to `/kyc/information`.                                         |
| `iframe_url`      | string | On every actionable status: the hosted page that collects what the verification still needs (documents, fields, or the face scan). |
| `warnings`        | array  | On document uploads: actionable feedback safe to show the user.                                                                    |
| `extracted`       | object | On document uploads: what the document reader pulled off the image, to prefill your form.                                          |
| `reason`          | string | On `needs_information`, `awaiting_documents`, `requires_verification`, `rejected`: an end-user-safe explanation.                   |

```json theme={null}
{ "object": "kyc", "status": "needs_information", "required_fields": ["address_line1", "postal_code"], "iframe_url": "https://in.sumsub.com/websdk/p/…" }
```

## Endpoints

| Endpoint                           |                                                                                                                                                            |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `POST /api/v2/kyc/documents/front` | [Upload the front of the ID](/api-reference/identity-verification/upload-front)                                                                            |
| `POST /api/v2/kyc/documents/back`  | [Upload the back of the ID](/api-reference/identity-verification/upload-back): the branch point (`needs_information`, `requires_verification`, `rejected`) |
| `POST /api/v2/kyc/information`     | [Submit information](/api-reference/identity-verification/submit-information)                                                                              |
| `GET /api/v2/kyc`                  | [Get verification status](/api-reference/identity-verification/status)                                                                                     |
| `POST /api/v2/kyc/simulate`        | [Simulate an outcome](/api-reference/identity-verification/simulate) (test mode only)                                                                      |
| `POST /api/v2/kyc/import`          | [Import a verification](/api-reference/identity-verification/import) (Sumsub share token)                                                                  |

Webhook: `identity.verification.updated`.
