Referencia de la API
TrustID API · v1.0.0 · openapi.json
Create identity-verification sessions, send the applicant to the hosted link, then receive the signed webhook and fetch the result. Personal-token API: send Authorization: Bearer <token> (Account → API tokens). Tokens act as their owner, carry abilities (read/write for the account routes; sessions:read, sessions:write, flows:read, webhooks:read for verifications) and always expire. A tid_live_… token works on real sessions; a tid_test_… token only on test sessions (livemode: false: a simulator replaces the capture, nothing is reviewed or billed, data is deleted after 24 hours). Every POST accepts an Idempotency-Key header. Metadata must never hold personal data. Tenant routes take the team from the X-Team-Id header, required when the user belongs to more than one team. Errors are RFC 9457 application/problem+json. Ids are ULIDs, timestamps ISO-8601 UTC, money integer cents plus a currency, lists cursor-paginated. Requests are rate limited per token by plan (X-RateLimit-*, 429 + Retry-After).
Meta
GET
/openapi.json
This document
Respuestas
- 200 The OpenAPI document
Account
The token's owner. No team needed.
GET
/me
The token's owner and the token itself
Permisos del token: read
Respuestas
-
200 Owner and token
Nombre Tipo Descripción id* string ULID name* string email* string (email) locale* string timezone* string created_at* string (date-time) token* object|null -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
GET
/teams
Teams the user belongs to (their ids go in X-Team-Id)
Permisos del token: read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| cursor | query | string | Opaque cursor from `links.next` / `meta.next_cursor`. |
Respuestas
-
200 A page of teams
Nombre Tipo Descripción data* array<Team> links* object meta* object -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
Team
The team picked by X-Team-Id. Needs a plan with API access.
GET
/team
The current team, your role and its plan
Permisos del token: read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
Respuestas
-
200 The team, with your role, and its plan in meta
Nombre Tipo Descripción data* Team meta* object -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
PATCH
/team
Rename the current team (owner or admin role)
Permisos del token: write
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
Cuerpo de la petición (JSON)
| Nombre | Tipo | Descripción |
|---|---|---|
| name* | string |
Respuestas
-
200 The team, with your role, and its plan in meta
Nombre Tipo Descripción data* Team meta* object -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
422 Invalid fields (`validation_failed`); see `errors`
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
Flows
The verification flows of the team (read only).
GET
/flows
List the flows of the team
Permisos del token: flows:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| cursor | query | string | Opaque cursor from `links.next` / `meta.next_cursor`. |
| per_page | query | integer | |
| archived | query | boolean | `true` only archived, `false` only active; omit for both. |
Respuestas
-
200 A page of flows
Nombre Tipo Descripción data* array<Flow> links* object meta* object -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
422 Invalid fields (`validation_failed`); see `errors`
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
GET
/flows/{id}
One flow
Permisos del token: flows:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| id* | path | string | Flow id (ULID). |
Respuestas
-
200 The flow
Nombre Tipo Descripción id string name string steps object documents object|null min_age integer|null result_detail full | minimal max_resubmissions integer link_ttl_hours integer locale_default string ready boolean Can create sessions (has a privacy policy URL). archived boolean archived_at string|null (date-time) created_at string|null (date-time) -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
Sessions
Verification sessions. A test token creates and sees only test sessions (livemode: false); a live token only live ones.
GET
/sessions
List sessions (newest first, cursor pagination)
Permisos del token: sessions:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| cursor | query | string | Opaque cursor from `links.next` / `meta.next_cursor`. |
| per_page | query | integer | |
| status | query | created | in_progress | submitted | in_review | approved | rejected | resubmission_requested | expired | cancelled | |
| flow_id | query | string | |
| external_reference | query | string | |
| created | query | object | Filter on created: `created[gte]` / `created[lte]`, ISO-8601. |
| decided | query | object | Filter on decided: `decided[gte]` / `decided[lte]`, ISO-8601. |
Respuestas
-
200 A page of sessions
Nombre Tipo Descripción data* array<Session> links* object meta* object -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
422 Invalid fields (`validation_failed`); see `errors`
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
POST
/sessions
Create a session and get its hosted link
Permisos del token: sessions:write
Returns 201 with the session plus url (the hosted link), qr_svg_url (signed, 15 minutes) and embed. The link is shown only in this response and in POST /sessions/{id}/link; only a hash of it is stored. A test token creates a test session (simulator, no review, no billing, deleted after 24 h).
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| Idempotency-Key | header | string | Up to 255 characters. The same key with the same request within 24 hours replays the first response (`Idempotent-Replayed: true`); the same key with a different request is a `422` (`idempotency_key_reused`). |
Cuerpo de la petición (JSON)
| Nombre | Tipo | Descripción |
|---|---|---|
| flow_id* | string | ULID of an active flow that has a privacy policy URL. |
| external_reference | string|null | Your own reference (order, booking...). Echoed in every response and webhook. |
| applicant | object|null | |
| locale | en | es | | |
| send_invite | boolean | Email the link to `applicant.email` (live mode only). |
| redirect_url | string|null (uri) | Where to send the applicant afterwards. Its host must be one of the hosts of the flow's redirect URLs. |
| metadata | object|null | Up to 10 string pairs of at most 500 bytes. **Do not put personal data here.** |
Respuestas
-
201 Session created
Nombre Tipo Descripción id* string livemode* boolean flow_id* string flow_name string|null external_reference string|null metadata object|null status* created | in_progress | submitted | in_review | approved | rejected | resubmission_requested | expired | cancelled decision approved | rejected | reason_codes array<string> round* integer locale string resubmission_items array|null created_at* string (date-time) expires_at string|null (date-time) submitted_at string|null (date-time) decided_at string|null (date-time) media_purge_at string|null (date-time) url* string (uri) The hosted link. Shown only here and in `POST /sessions/{id}/link`. qr_svg_url* string (uri) Signed URL of an SVG QR code of the link, valid 15 minutes. embed* object invite queued | suppressed | -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
422 Invalid fields (`validation_failed`); see `errors`
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
GET
/sessions/{id}
One session: status, decision, reason codes, subject fields, checks and timeline (no media)
Permisos del token: sessions:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| id* | path | string | Session id (ULID). |
Respuestas
-
200 The session
Nombre Tipo Descripción id* string livemode* boolean flow_id* string flow_name string|null external_reference string|null metadata object|null status* created | in_progress | submitted | in_review | approved | rejected | resubmission_requested | expired | cancelled decision approved | rejected | reason_codes array<string> round* integer locale string resubmission_items array|null created_at* string (date-time) expires_at string|null (date-time) submitted_at string|null (date-time) decided_at string|null (date-time) media_purge_at string|null (date-time) result object|null Present once decided. A minimal-result flow only carries the `age_over_*` booleans. checks object|null Flag names of the latest automatic pre-check; never metrics. timeline array<object> -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
DELETE
/sessions/{id}
Erase the session and its media now (data-subject erasure)
Permisos del token: sessions:write
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| id* | path | string | Session id (ULID). |
Respuestas
- 204 Erased
-
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
POST
/sessions/{id}/cancel
Cancel a session that has not been submitted
Permisos del token: sessions:write
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| id* | path | string | Session id (ULID). |
| Idempotency-Key | header | string | Up to 255 characters. The same key with the same request within 24 hours replays the first response (`Idempotent-Replayed: true`); the same key with a different request is a `422` (`idempotency_key_reused`). |
Respuestas
-
200 The cancelled session
Nombre Tipo Descripción id* string livemode* boolean flow_id* string flow_name string|null external_reference string|null metadata object|null status* created | in_progress | submitted | in_review | approved | rejected | resubmission_requested | expired | cancelled decision approved | rejected | reason_codes array<string> round* integer locale string resubmission_items array|null created_at* string (date-time) expires_at string|null (date-time) submitted_at string|null (date-time) decided_at string|null (date-time) media_purge_at string|null (date-time) result object|null Present once decided. A minimal-result flow only carries the `age_over_*` booleans. checks object|null Flag names of the latest automatic pre-check; never metrics. timeline array<object> -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
409 The session is in a status that does not allow this (`not_cancellable`, `not_relinkable`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
POST
/sessions/{id}/link
Issue a new hosted link (the old one stops working)
Permisos del token: sessions:write
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| id* | path | string | Session id (ULID). |
| Idempotency-Key | header | string | Up to 255 characters. The same key with the same request within 24 hours replays the first response (`Idempotent-Replayed: true`); the same key with a different request is a `422` (`idempotency_key_reused`). |
Respuestas
-
200 The session with its new link
Nombre Tipo Descripción id* string livemode* boolean flow_id* string flow_name string|null external_reference string|null metadata object|null status* created | in_progress | submitted | in_review | approved | rejected | resubmission_requested | expired | cancelled decision approved | rejected | reason_codes array<string> round* integer locale string resubmission_items array|null created_at* string (date-time) expires_at string|null (date-time) submitted_at string|null (date-time) decided_at string|null (date-time) media_purge_at string|null (date-time) url* string (uri) The hosted link. Shown only here and in `POST /sessions/{id}/link`. qr_svg_url* string (uri) Signed URL of an SVG QR code of the link, valid 15 minutes. embed* object invite queued | suppressed | -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
409 The session is in a status that does not allow this (`not_cancellable`, `not_relinkable`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
GET
/sessions/{id}/export
Data-subject access export (JSON, no media binaries)
Permisos del token: sessions:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| id* | path | string | Session id (ULID). |
Respuestas
- 200 Everything held about the session
-
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
404 Not found, including a team you are not a member of (`team_not_found`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
Usage
Billable verifications of the current month.
GET
/usage
Billable verifications of the current month
Permisos del token: sessions:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
Respuestas
-
200 Usage
Nombre Tipo Descripción period string (date) First day of the billing month. included integer|null used integer overage integer cap integer|null -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
Webhooks
Delivery status of the webhooks the platform sent you.
GET
/webhook-deliveries
Delivery status of webhooks, for debugging (no payloads)
Permisos del token: webhooks:read
Parámetros
| Nombre | En | Tipo | Descripción |
|---|---|---|---|
| X-Team-Id | header | string | ULID of the team. Required when the user belongs to more than one team; otherwise their only team is used. |
| cursor | query | string | Opaque cursor from `links.next` / `meta.next_cursor`. |
| per_page | query | integer | |
| session_id | query | string | |
| status | query | pending | delivered | failed |
Respuestas
-
200 A page of deliveries
Nombre Tipo Descripción data* array<WebhookDelivery> links* object meta* object -
400 You belong to several teams and sent no X-Team-Id (`team_required`), or a token was sent in the query string (`token_in_query`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
401 No token, an unknown, expired or revoked one, or its owner is suspended (`unauthenticated`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
403 The token lacks the ability (`missing_ability`), the role doesn't allow it (`forbidden`), the plan has no API access or the team is suspended (`team_suspended`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
422 Invalid fields (`validation_failed`); see `errors`
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages. -
429 Rate limit of the token's plan reached (`rate_limited`)
Nombre Tipo Descripción type* string title* string status* integer detail* string code* string Stable machine-readable reason. request_id* string|null Quote it when contacting support. errors object Only on 422: field → messages.
Eventos de webhook
sessionEvent
Event sent to your endpoint (configure it in Developers → Webhooks)
Header TrustId-Signature: t=<unix>,v1=<hex> where v1 = HMAC-SHA256 of <t>.<raw body> with your endpoint secret (two values during the 24 h after a rotation). Reject timestamps older than 5 minutes. Other headers: TrustId-Event, TrustId-Delivery. Answer 2xx within 10 seconds; otherwise it is retried (1 m, 5 m, 30 m, 2 h, 6 h, 12 h, 24 h). Events: session.created, session.started, session.submitted, session.approved, session.rejected, session.resubmission_requested, session.decision_changed, session.expired, session.cancelled, session.media_purged, session.erased (only data.session_id and data.erased_at), webhook.test. Test-mode sessions send the same events with livemode: false.
| Nombre | Tipo | Descripción |
|---|---|---|
| id* | string | |
| type* | string | |
| created_at* | string (date-time) | |
| livemode* | boolean | |
| data* | object | Session id, external_reference, metadata, flow_id, status, decision, reason_codes, round, resubmission_items, age_over_* booleans, timestamps and (full-result flows) `document` and `subject`. Never media, URLs or the applicant's email. |