Upload onboarding liveness video
POST/v2/users/onboardings/:id/liveness/video
Submit the recorded video, the provider that verified liveness, its verification identifier and the capture time.Submit the first video before completing onboarding document submission. Sending it selects video verification instead of link capture. Provide the front identity document as JPEG or PNG up to 5 MiB when submitting documents so it can be compared with the video.The result is asynchronous; follow progress through the onboarding liveness endpoint. A replacement is accepted only when the previous video failed to be processed and the onboarding and liveness step still allow it. Resending identical bytes after a technical failure can return the existing video with its original timestamps and recovery deadline. A closed or discarded onboarding does not accept uploads.
Request
Path Parameters
Natural person onboarding ID.
Header Parameters
The nonce ID is a UUID (v4) used to uniquely identify the request. All requests must have an identifier.
UUID (v4) of the product that the request should use. Send it explicitly when the authenticated user has more than one product or when the integration must select a specific product. If omitted and the endpoint does not require it, the API uses the authenticated user's default product.
UUID (v4) of the user on whose behalf the request should run within the selected product. If omitted, the request runs as the authenticated user. Requires x-product-uuid.
Possible values: [pt-BR, en-US]
Indicates the preferred language. Defaults to Brazilian Portuguese if unspecified.
- multipart/form-data
Body
required
Liveness video file. Formats: video/mp4, video/quicktime. Max size: 50 MB by default.
Possible values: <= 255 characters
Provider that performed the liveness verification the video comes from.
Possible values: <= 255 characters
Identifier of that liveness verification at the provider, kept as an audit reference.
Possible values: Value must match regular expression ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}(?:Z|[+-]\d{2}:\d{2})$
Instant the video was captured, in YYYY-MM-DDTHH:mm:ss.SSSZ format. It cannot be in the future and the video must be recent: captures older than the accepted window are refused with 422.
Responses
- 201
- 400
- 401
- 403
- 422
Video registered, or the existing video returned for a technical retry.
- application/json
- Schema
- Example (from schema)
Schema
- UPLOADED: stored, waiting for analysis.
- PROCESSING: under analysis.
- COMPLETED: analysis finished.
- FAILED: analysis could not be completed.
Liveness video ID.
Onboarding ID.
Legal representative ID. Present only when the video belongs to a legal representative of a legal person onboarding.
Stored video file ID.
Possible values: [UPLOADED, PROCESSING, COMPLETED, FAILED]
Processing state of the video:
Capture instant informed on upload.
Upload instant.
{
"id": "3f1c2b7e-9d4a-4f6b-8c2e-1a5d7b9e0c3f",
"onboarding_id": "f6e2e084-29b9-4935-a059-5473b13033aa",
"legal_representative_id": "7b5e8c47-b6a3-4e29-942f-7f5ec06b26a2",
"file_id": "8fc58500-b12e-49d7-892c-dfd704b94c2d",
"state": "UPLOADED",
"captured_at": "2026-09-21T10:23:41.580Z",
"created_at": "2026-09-21T10:23:41.580Z"
}
Invalid request parameters.
User authentication failed.
The onboarding does not belong to the user or the user does not have permission.
The onboarding was not found or is closed, the first video was submitted after document completion, the existing video is not eligible for replacement, the capture time is not acceptable, or the file is missing, unsupported or too large.