Skip to content

Submit typed personal details for a hosted full-flow capture session

POST/v1/vision/details-submit

Authenticates with client credentials — no bearer token required.

Forwards the request verbatim to identity-kyc's internal `redeem-details` endpoint and maps its response back to the widget faithfully — this is a thin passthrough, not a second copy of the business logic. No OAuth bearer token: `capture_session_token` in the body is the entire authorization, verified downstream when this handler calls identity-kyc. `fields` is a flat map of the programme policy's outstanding detail fields (e.g. `given_name`, `date_of_birth`) — per-field deep validation (required-ness, format, cross-field rules) is identity-kyc's business rule, not duplicated here; a request that violates it 400s with `code: invalid_details` and an `errors` array describing every failing field, forwarded verbatim for the widget's per-field rendering. Served by the vision host, not the primary API host (see the second `servers` entry), same as documentScan/selfieSubmit — temporary pending the unified API edge (ADR-0043). Rate-limited per-source-IP (RIGID-591 pattern, fixed 60s window); a 429 carries a `Retry-After` header.

Request body

capture_session_tokenstringrequired
fieldsobjectrequired
+ show properties

No properties.

Example

curl -X POST https://vision.dev.rigid.fi/v1/vision/details-submit \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "capture_session_token": "string",
  "fields": {}
}'

Responses

200

The typed details were accepted and merged into the case.

case_idstringrequired
400

Validation error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
404

Capture session not found or expired

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
429

Too many details submits from this address — retry shortly

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
500

Internal server error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring