Statuses
| Status | Meaning |
|---|---|
pending | Just created. User hasn’t opened the verification URL yet. |
in_progress | User is completing verification. |
in_review | Borderline result. Awaiting manual decision or auto-aging out. |
approved | All required nodes passed → ContraToken issued. |
declined | One or more required nodes failed. |
expired | Session passed its expires_at without resolution. |
Idempotency
Posting Create Session twice with the same(workflow_id, vendor_data) while a session is active (pending / in_progress / in_review) returns the existing session with idempotent_reuse: true.
Webhook events
| Event | Fires on |
|---|---|
session.status_changed | Every status transition |
session.data_updated | KYC / PoA extracted-data manually patched |
session.review_created | A reviewer added a note or override |