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

# Overview

> How Reap verifies user identity, the methods available, and the application statuses to expect.

Know Your Customer (KYC) is the identity verification process every user must complete before they can hold an account or a card on Reap.

Reap supports three verification methods. Whichever you use, the outcome is the same: an `APPROVED` user, tracked by a single application status, with results delivered to your webhook endpoint.

***

## Verification methods

<CardGroup cols={3}>
  <Card title="Managed KYC" href="/compliance/kyc/managed-kyc">
    Reap runs the verification. You embed a provider SDK in your app, the user completes document and liveness checks, and the outcome arrives by webhook.
  </Card>

  <Card title="Sumsub Token Sharing" href="/compliance/kyc/sumsub-token-sharing">
    Reuse verifications from your own Sumsub account. You share a per-user token, Reap imports the existing verification, and the user is approved without going through KYC on Reap.
  </Card>

  <Card title="Universal KYC" href="/compliance/kyc/universal-kyc">
    Bring verifications from your own KYC provider. You submit the verified data pack and supporting documents, and Reap reviews them and returns a decision.
  </Card>
</CardGroup>

Your project uses one of these methods, set when you onboard with Reap based on your agreement. The method is fixed per project, not chosen per user. If you are not sure which one applies to you, check with your account manager.

***

## Application statuses

User KYC is tracked via an application status on the user resource.

| Status               | Meaning                                                                       | Typical next step                                                                                           |
| -------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `NOT_STARTED`        | Application created, verification not yet initiated                           | [Advance the application](/api-reference/users/advance-the-user-application) using your verification method |
| `AWAITING_DOCUMENTS` | Data pack submitted, supporting documents pending upload (Universal KYC only) | [Upload the documents](/api-reference/users/upload-application-documents) listed in `nextAction`            |
| `IN_REVIEW`          | User has submitted documents, under review by compliance                      | Wait for `USER_APPLICATION_STATUS_UPDATED`                                                                  |
| `APPROVED`           | Identity verified, user can hold an account and cards                         | Proceed to account creation                                                                                 |
| `REJECTED`           | Verification failed and cannot be recovered                                   | Check `rejectionReason`, inform user, do not re-initiate                                                    |
| `RETRY_REQUIRED`     | Submission incomplete or unclear, user can try again                          | [Advance the application](/api-reference/users/advance-the-user-application) again with a new submission    |

The `application` object on a user includes both `status` and `rejectionReason`.
`rejectionReason` is populated only when status is `REJECTED` or `RETRY_REQUIRED`.

<Note>
  Not every method uses every status. [Sumsub Token Sharing](/compliance/kyc/sumsub-token-sharing) skips `IN_REVIEW`, moving a successful import straight to `APPROVED` and leaving a failed one at `NOT_STARTED`. [Universal KYC](/compliance/kyc/universal-kyc) adds `AWAITING_DOCUMENTS` while you upload the supporting documents, then moves to `IN_REVIEW`.
</Note>

***

## Unsupported jurisdictions

Reap cannot onboard users from some jurisdictions due to regulatory restrictions.
A user who resides in a restricted jurisdiction cannot be onboarded, regardless of verification method.

For the current list of restricted jurisdictions, contact your account manager.

***

## Key principles

* **Reap orchestrates verification.** Reap manages provider communication, status tracking, and the application lifecycle. How the verification itself happens depends on your [verification method](#verification-methods).
* **One application per user.** A user has a single KYC application. If verification needs to be retried, you advance that user's application again.
* **KYC is a gate.** A user cannot have an account created or a card issued until their KYC status is `APPROVED`.
* **Webhooks are the source of truth.** Do not poll for status changes. Listen for `USER_APPLICATION_STATUS_UPDATED` events and update your UI and internal systems from there.
