Skip to main content
A session is a single verification run for one of your users against a chosen workflow.
curl -X POST https://identity.contra.id/v1/sessions \
  -H "x-api-key: $CONTRA_KEY" -H "Content-Type: application/json" \
  -d '{
    "workflow_id":  "enhanced_kyc",
    "vendor_data":  "user-abc-123",
    "callback":     "https://yourapp.com/webhook"
  }'

Statuses

pending → in_progress → in_review | declined | approved (+ expired).

Idempotency

Posting twice with the same (workflow_id, vendor_data) while a session is still active returns the existing one — never two parallel sessions for the same user.

Webhooks

Set callback on the session (or one global webhook destination) and Contra POSTs { session_id, status, vendor_data, decision } on every status transition. See webhooks.