Skip to main content
A claim (clm_...) is a typed data point on a person. Each has a claim_type, a status, and the fields defined for that type, validated against a strict schema. Applications validate against claims.

Lifecycle

Every claim row carries a status plus two retirement timestamps (archived_at (pending-only) and superseded_at (verified-only)) plus a convenience lifecycle discriminator derived from them.

status

Retirement timestamps

At most one row per (person, claim_type) is “current” for each status; the current pending (status=pending AND archived_at IS NULL) and the current verified (status=verified AND superseded_at IS NULL).

lifecycle

lifecycle is a convenience discriminator that tells you, in one field, where a claim sits.

State transitions

A person can have more than one claim of the same claim_type. The current value is the row whose lifecycle is active. Submitting a new claim of the same type archives the current pending (if any) atomically and inserts a fresh in_flight pending. That new row takes over as active once compliance verifies it; which also stamps superseded_at on the prior active row.

Updating a claim value

Post a new claim of the same type. Any current pending for that type is archived atomically (its archived_at is stamped; its status stays pending and it remains retrievable). The new row starts as pending with lifecycle: in_flight, and becomes the current active value once compliance verifies it.

Creating a claim

POST /persons/{person_id}/claims with the claim as the body. claim_type tells us which claim you’re sending.
The response is the full claim:

Listing and retrieving claims

List a person’s claims, optionally filtered by type or status. By default the endpoint returns every row for the person (current and historical) newest-first by created_at (with id as a tiebreaker). This gives you an audit-ready view without a second request. Pass ?include_history=false to collapse to at most two rows per claim_type: the current active verified (if any) and the current in_flight pending (if any).
Breaking change. include_history previously defaulted to false (bare GET returned only current rows). It now defaults to true (bare GET returns full history). If you were relying on the old behavior, pass ?include_history=false explicitly.
Retrieve a specific claim by ID via GET /persons/{person_id}/claims/{claim_id}. This always returns the exact claim you asked for (including archived pendings and superseded verifieds) with lifecycle on the response.
Claims can’t be deleted. To correct a pending submission (or update a previously verified one) post a new claim of the same type via POST /persons/{person_id}/claims. Any current pending for that type is archived automatically. See updating a claim value.

Claim type reference

Unknown fields are rejected. Dates are ISO-8601, country codes ISO-3166-1 alpha-2.
Most claim types are specific to natural or legal persons; contact_details is valid on both. Creating a claim whose claim_type isn’t valid for the target’s person_type returns 400 invalid_request (e.g. Claim type 'relationships' is not allowed on natural persons.). See claim creation errors.

Natural-person claims

Acceptable when person_type is natural.

identity

nationalities

Each nationalities entry:

residence

tax_residencies

Each tax_residencies entry:
Supply a tin or tin_exemption_reason for each tax residency. The claim layer accepts either, but an onboarding application is expected to carry a tin where available.

fatca_status

pep_status

education_level

employment

financial_profile

investment_experience

expected_activity

Shared claim types

Acceptable on both natural and legal persons.

contact_details

How to reach the person. Required on every POST /persons. Acceptable when person_type is legal.

registration

lei

registered_address

The legal registration address.

operating_address

Where the business trades from. Same shape as residence. Send this claim only when the legal owner’s registered_address has operating_address_is_same set to false (the default). See conditional requirements.

business_nature

relationships

Legal-person-only. Declares directors, shareholders, UBOs, trustees, settlors, and authorised signatories. Each relationship entry:
Different relationship_type values carry different onboarding requirements. director and authorised_signatory also need a board_resolution evidence file authorising them to act on the entity; the others don’t. See related-person requirements.

Reference values

EUR amount bands

Industry values

agriculture, mining, manufacturing, utilities, construction, wholesale_retail, transport_logistics, hospitality, media_telecoms, technology, financial_services, insurance, real_estate, professional_services, education, healthcare, arts_entertainment, public_administration, defence, non_profit, gambling, extractives, precious_metals, cryptocurrency, other. Pair other with the _other text field on the same claim (employment.industry_other, business_nature.business_activity_other).