Schemas

Claim payload

When encryptionKeyPem is null, claimPayload is a JSON string. Once parsed (JSON.parse(claimPayload)), it has the following shape:

ClaimPayload

FieldTypeDescription
claim_typestringThe claim type that was evaluated
claim_result'passed' | 'failed'The outcome of the claim
methodologyMethodologyCalculation[]Omitted if the claim config sets hide_methodology

MethodologyCalculation

FieldTypeDescription
method'facial_age_estimation' | 'document_selfie' | 'live_selfie'The verification method used
result'passed' | 'failed'The outcome of this method

Claim types

Claim typeDescription
age_over_18_germanyAge 18+ for Germany — facial estimation with document selfie fallback
age_over_18_united_kingdomAge 18+ for UK — facial estimation with document selfie fallback
age_over_18_franceAge 18+ for France — facial estimation with document selfie fallback, methodology hidden from the claim response
age_over_18_italyAge 18+ for Italy — facial estimation with document selfie fallback, methodology hidden
age_over_18_australiaAge 18+ for Australia — facial estimation with document selfie fallback
age_over_16_australiaAge 16+ for Australia — facial estimation with document selfie fallback
age_over_18_brazilAge 18+ for Brazil — facial estimation with document selfie fallback
age_over_18_verifiedAge 18+ via document selfie only (no estimation fallback)
age_over_21_verifiedAge 21+ via document selfie only
age_over_13_verifiedAge 13+ via document selfie only
age_over_18_estimatedAge 18+ via facial age estimation only (no document fallback)
age_over_13_estimatedAge 13+ via facial age estimation only (no document fallback)
live_human_presenceConfirms a live human is present — via 3-point or video selfie

PersonaError

Base class for all TypeScript SDK errors. Extends Error.

PropertyTypeDescription
statusCodenumberHTTP status code from the Persona API
titlestringShort description of the error
detailsstring | undefinedOptional longer description
codestring | undefinedOptional machine-readable error code
metaRecord<string, unknown> | undefinedOptional additional metadata

Error responses

All Relay API endpoints return errors in the following shape:

1{
2 "errors": [
3 {
4 "status": "401",
5 "title": "Unauthorized",
6 "detail": "..."
7 }
8 ]
9}
StatusDescription
400Bad request — missing or invalid parameters
401Unauthorized — invalid or missing API key or relay secret
403Forbidden — relay secret does not match, or claim not yet available
404Not found — relay token does not exist
429Rate limited
500 / 502 / 503 / 504Server error