Lifecycle
in_progress
The user opens the hosted page and begins; each step’s wallet response is
verified and emits
step.completed.awaiting_decision (optional)
If a step is a gate, the
session pauses here until you
continue or stop it.| Status | Meaning |
|---|---|
created | Made, not yet opened by the user |
in_progress | User is working through the steps |
awaiting_decision | Paused at a gate, awaiting your continue/stop |
completed | All steps verified |
stopped | You ended it at a gate |
failed | A step failed verification, or funds ran out |
expired | The session or a step window elapsed |
The hosted page & capability URLs
The sessionurl (https://uip.digital/s/{id}) is a capability URL — holding
the link is what lets a user open the session. Treat it like a secret: deliver it
over a channel only the intended user controls (your authenticated app, their phone).
Reading a session
GET /v1/sessions/{id} returns operational
status and progress only — never the verified claims. Disclosed data and
signatures are delivered exclusively by webhook; the
capability URL holder can’t read them back out. Use the GET for polling progress or
reconciling state, not for fetching results.
Create options
Beyondsteps, POST /v1/sessions accepts:
| Field | Type | Purpose |
|---|---|---|
client_reference_id | string | Your own id, echoed on every webhook and stamped into the audit |
metadata | object | Up to 50 string-valued keys; operational only (webhooks + reads), never shown to the user |
return_url | https URL | Renders a “Return to ” button on the hosted page after completion (never an auto-redirect) |
expires_in | seconds | Override the session TTL (60s–24h) |
Idempotency-Key header so a retried create returns the
original session instead of a duplicate. See
Create a session for the full reference.
Expiry
Sessions have an overall TTL (default capped at 1 hour, or yourexpires_in), and
each step has its own shorter window once started. Expiry is enforced lazily — an
expired session resolves to expired on next access and emits no further steps.
Next: Wallets & coverage
Which wallets and countries can complete a session today.