> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.withpersona.com/2023-01-05/relay-schemas/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withpersona.com/_mcp/server. # Schemas > Shared data schemas for the Relay API. ## Claim payload When `encryptionKeyPem` is `null`, `claimPayload` is a JSON string. Once parsed (`JSON.parse(claimPayload)`), it has the following shape: **`ClaimPayload`** | Field | Type | Description | | -------------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `claim_type` | `string` | The claim type that was evaluated | | `claim_result` | `'passed' \| 'failed'` | The outcome of the claim | | `methodology` | `MethodologyCalculation[]` | Optional. Lists each verification method used and its result. Not included for claim types that hide methodology (see the **Methodology in payload** column under [Claim types](#claim-types)). When hidden, the field is left out of the payload entirely. | **`MethodologyCalculation`** | Field | Type | Description | | -------- | --------------------------------------------------------------- | ---------------------------- | | `method` | `'facial_age_estimation' \| 'document_selfie' \| 'live_selfie'` | The verification method used | | `result` | `'passed' \| 'failed'` | The outcome of this method | ## Claim types To obtain the Claim Type ID needed to create a Relay session, navigate to Persona Dashboard → Relay. Additional details, including supported use cases, verification approaches, and implementation guidance for each claim type, are also available in the Dashboard. ### Humanness | Claim type name | Description | Methodology in payload | | ----------------------- | ------------------------------------------------------------------------------------------ | ---------------------- | | Live Human Presence | Evaluates whether a real person is present at the time of verification. | Yes | | Verified Human Presence | Evaluates whether a real person is present using a higher-assurance verification approach. | Yes | ### Age | Claim type name | Description | Methodology in payload | | ---------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------- | | Age 18+ Germany | Evaluates whether a user meets an 18+ age threshold using an approach designed for Germany-related use cases. | Yes | | Age 18+ United Kingdom | Evaluates whether a user meets an 18+ age threshold using an approach designed for United Kingdom-related use cases. | Yes | | Age 18+ France | Evaluates whether a user meets an 18+ age threshold using an approach designed for France-related use cases. | No | | Age 18+ Italy | Evaluates whether a user meets an 18+ age threshold using an approach designed for Italy-related use cases. | No | | Age 18+ Australia | Evaluates whether a user meets an 18+ age threshold using an approach designed for Australia-related use cases. | Yes | | Age 16+ Australia | Evaluates whether a user meets a 16+ age threshold using an approach designed for Australia-related use cases. | Yes | | Age 18+ Brazil | Evaluates whether a user meets an 18+ age threshold using an approach designed for Brazil-related use cases. | Yes | | Age 18+ Verified | Evaluates whether a user meets an 18+ age threshold using a high-assurance age verification approach. | Yes | | Age 21+ Verified | Evaluates whether a user meets a 21+ age threshold using a high-assurance age verification approach. | Yes | ## Error responses All Relay API endpoints return errors in the following shape: ```json { "errors": [ { "status": "401", "title": "Unauthorized", "detail": "..." } ] } ``` | Status | Description | | ----------------------- | ------------------------------------------------------------------- | | `400` | Bad request — missing or invalid parameters | | `401` | Unauthorized — invalid or missing API key or relay secret | | `403` | Forbidden — relay secret does not match, or claim not yet available | | `404` | Not found — relay token does not exist | | `429` | Rate limited | | `500 / 502 / 503 / 504` | Server error | > Shared data schemas for the Relay API.