400 invalid_request with a detail message that identifies exactly which person, claim, consent, or evidence item caused the failure; fix it and resubmit.
All error responses follow the standard error format:
Person creation errors
Returned fromPOST /persons and POST /persons/{person_id}/claims.
Claim retrieval errors
Returned from theGET endpoints under /persons/{person_id}/claims.
Onboarding application errors
Returned fromPOST /onboarding-applications. Every 400 below returns a code of invalid_request with a specific detail message.
One error at a time. An onboarding application is validated in stages and we return on the first failing stage; structural checks first, then authority composition, then per-person claims, consents, and evidence. If the response mentions a missing claim, there may still be missing consents or evidence behind it. Fix what’s reported, resubmit, and expect the next thing to surface.Within a single stage, we do report every failure we can see. For example, a single “missing required claims” response will list all the claims that person is missing; not just the first.One gotcha worth calling out: on a business application, consents attributed to the legal-entity
owner are accepted silently. If the signatories don’t carry the required consents, the application still fails; the detail points at the signatory, not at the silently-ignored entry. See the attribution note.Structural errors
Per-authority composition errors
Requirements are defined per(customer_type, authority_type) slot. These errors fire when the submitted authorities don’t match the slot configuration; wrong authority type, wrong person type, too few, too many, or duplicates.
Missing or mis-shaped requirements
Required claims, consents, and evidence are defined per authority slot; a businessowner and a business signatory have different required sets. These errors tell you which authority is short and exactly what’s missing.