> For the complete documentation index, see [llms.txt](https://docs.voveid.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.voveid.com/docs/api-fundamentals/statuses.md).

# Statuses

Exact VOVE ID API, webhook, and SDK status values.

Status values are case-sensitive and differ between APIs, webhook event names, and SDKs. Map each surface explicitly into your own internal status model.

## KYC API statuses

Returned by `GET /v2/users/{refId}`.

| Value         | Terminal | Recommended handling                                                |
| ------------- | -------- | ------------------------------------------------------------------- |
| `open`        | No       | Keep access pending                                                 |
| `in-progress` | No       | Wait for another event or retrieve again later                      |
| `successful`  | Yes      | Apply your approved success policy after server-side reconciliation |

A common path is `open` → `in-progress` → a terminal status, but not every flow follows one linear sequence.

## KYC webhook payload statuses

KYC webhook payload statuses are `in_progress`, `pending`, `successful`, and `suspected`. Select and inspect the available webhook event types in the VOVE ID dashboard.

## SDK results

SDK results describe the client journey. Retrieve the API result before making an irreversible server-side decision.

| SDK          | Result values                                                                  |
| ------------ | ------------------------------------------------------------------------------ |
| Web          | `success`, `failed`, `pending`, `canceled`                                     |
| iOS          | `.success`, `.failure`, `.pending`, `.canceled`, `.maxAttempts`, `.inProgress` |
| Android      | `SUCCESS`, `IN_PROGRESS`, `PENDING`, `CANCELLED`, `MAX_ATTEMPTS_REACHED`       |
| React Native | `success`, `failure`, `pending`, `cancelled`, `max-attempts`                   |
| Flutter      | `success`, `pending`, `canceled`, `maxAttempts`                                |

## KYB statuses

KYB case statuses are `NOT_STARTED`, `IN_PROGRESS`, `IN_REVIEW`, `COMPLETED`, and `REJECTED`.

Related events include `kyb.case.in_progress`, `kyb.case.in_review`, `kyb.case.completed`, and `kyb.case.rejected`.

## AML statuses

AML case statuses are `NO_MATCH`, `IN_REVIEW`, `CLEARED`, and `REJECTED`.

`NO_MATCH` only means that the configured sources returned no match for that search configuration. It is not proof that every possible source was searched.

## Unknown values

Persist the original value, keep the subject in a safe pending or review state, alert the integration owner, and retrieve the current server-side resource. Never coerce an unknown value to success.
