| Method | Path | Summary | Auth |
|---|---|---|---|
| POST | /v1/identity-verification/cases | Create a draft from trusted server-resolved evidence | Session |
| GET | /v1/identity-verification/cases/{case_id} | Read a case owned by the authenticated user | Session |
| POST | /v1/identity-verification/cases/{case_id}/expire | Expire an owned submitted or reviewing case after its deadline | Session |
| POST | /v1/identity-verification/cases/{case_id}/submit | Submit an owned draft for review | Session |
| POST | /v1/identity-verification/cases/{case_id}/withdraw | Withdraw an owned draft or submitted case | Session |
| POST | /v1/identity-verification/provider-callbacks/{provider} | Accept a signed replay-safe provider callback | Public |
| POST | /v1/identity-verification/provider-sessions | Start or retry a durable KYC provider session | Session |
| POST | /v1/identity-verification/provider-sessions/{session_id}/uploads | Create a bound private object store upload | Session |
| POST | /v1/identity-verification/provider-sessions/{session_id}/uploads/{upload_id}/finalize | Finalize exact immutable private object facts | Session |
| GET | /v1/identity-verification/reviewer/cases | List the authenticated tenant's review cases | Session |
| GET | /v1/identity-verification/reviewer/cases/{case_id} | Read one case in the authenticated reviewer tenant | Session |
| POST | /v1/identity-verification/reviewer/cases/{case_id}/claim | Atomically claim a submitted case as the authenticated reviewer | Session |
| POST | /v1/identity-verification/reviewer/cases/{case_id}/decision | Approve or reject a case assigned to the authenticated reviewer | Session |
| GET | /v1/identity-verification/status | Read the authenticated user's own verification status | Session |
Contract file:api/control-identity-verification.openapi.yaml