Skip to main content
A session is the core unit of Contra verification. Every flow follows the same lifecycle:

Statuses

StatusMeaning
pendingJust created. User hasn’t opened the verification URL yet.
in_progressUser is completing verification.
in_reviewBorderline result. Awaiting manual decision or auto-aging out.
approvedAll required nodes passed → ContraToken issued.
declinedOne or more required nodes failed.
expiredSession 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

EventFires on
session.status_changedEvery status transition
session.data_updatedKYC / PoA extracted-data manually patched
session.review_createdA reviewer added a note or override
See Webhook Destinations.

Endpoints

Create Session

Retrieve Session

Get Decision

List Sessions

Update Status

Update Data

Delete Session

Generate PDF

Share Session

Import Shared Session