Returns list of verification attempts for a session, including attempt IDs, statuses, user-defined data, and creation timestamps
What is an attempt?
- In the API requests' context, an "attempt" is one step (uploading required data and getting a decision) inside a verification session, and it can be made several times during one verification session
When to use this endpoint
- Use this endpoint to retrieve all verification attempts associated with a session
Common use cases include:
- Tracking multiple verification attempts by an end-user
- Monitoring custom statuses applied to attempts
- Investigating verification flows with multiple submissions
- Analyzing attempt patterns and timing
Response data
The response includes an array of attempt objects, each containing:
- Unique attempt ID
- Current attempt status (
created,started,submitted,resubmission_requested) - User-defined custom statuses with reasons and timestamps (if enabled for your integration)
- Attempt creation time
User-defined statuses in Veriff Customer Portal
- Can be used to query the user-defined statuses data if those have been set in the Veriff Customer Portal
- For more information see the Adding user-defined Statuses to Sessions article in Veriff Knowledge Base (you need an active account with Veriff to access the article)
Implementation notes
- Multiple attempts can exist for a single session, indicating different actions and "steps" done inside one session
- User-defined data requires custom status configuration in Veriff Customer Portal
- Attempts are returned in reverse chronological order (newest first)
- This endpoint requires session-level HMAC signature authentication
- Always ensure that you use the correct API URL to send requests. See the API URL section for more info.
- The order of parameters in the real API response can differ from the order you see in this documentation. This is expected and part of the Backwards compatible changes requirements.
Your integration's API key (occasionally referred to as the "Token", "API public key" or "Publishable key"). Required for all API requests.
You can find your API key in the Veriff Customer Portal > Settings > API keys.
Session ID signed with the shared secret key. Required to authenticate the request sender.
Verification session ID.
Successfully retrieved session attempts
Single attempt with custom status data
{
"status": "success",
"verifications": [
{
"id": "a1c68aea-7f4d-478d-80ab-ca9356074f69",
"status": "approved",
"userDefinedData": [
{
"status": "Custom status for suspicious attempt",
"statusCode": "custom_status_for_suspicious_attempt",
"reason": "Looks like velocity abuse",
"reasonCode": "looks_like_velocity_abuse",
"createdAt": "2023-09-18T08:41:41.606Z"
}
],
"createdTime": "2023-09-18T08:33:30.047Z"
}
]
}Session with multiple attempts showing mixed statuses and custom status data
{
"status": "success",
"verifications": [
{
"id": "a1c68aea-7f4d-478d-80ab-ca9356074f69",
"status": "approved",
"userDefinedData": [
{
"status": "Custom status for suspicious attempt",
"statusCode": "custom_status_for_suspicious_attempt",
"reason": "The document used in this attempt is clearly a cut-out",
"reasonCode": null,
"createdAt": "2023-09-18T08:41:41.606Z"
}
],
"createdTime": "2023-09-18T08:33:30.047Z"
},
{
"id": "f2270684-8c51-4d03-88eb-dafd43e8b486",
"status": "resubmission_requested",
"userDefinedData": [],
"createdTime": "2023-09-17T14:22:15.123Z"
}
]
}Attempt without custom user-defined data
{
"status": "success",
"verifications": [
{
"id": "b3d79efa-6c2a-4b8e-92cd-da8467185c7a",
"status": "submitted",
"userDefinedData": [],
"createdTime": "2023-09-18T10:15:42.789Z"
}
]
}API request status.
List of data identifying the attempts in the verification session
Unique identifier (ID) of the attempt.
Verification session status.
Array of objects describing the custom statuses defined by the user in Veriff Customer Portal.
Name of the custom end-user defined status as set in the Veriff Customer Portal.
Autogenerated code for the custom end-user defined status.
Name of the custom end-user defined reason as set in the Veriff Customer Portal. If the user has selected the "Custom" reason for the status and typed an explanation to the text box, then the explanation is sent in this field.
Autogenerated code for the custom end-user defined reason. It is null when the user
has selected the "Custom" reason for the status and typed an explanation to the text box.
This explanation is sent in the reason parameter.
Creation time of the user-defined status for the verification attempt.
As combined ISO 8601 date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.sssZ.
Timestamp of when the attempt was created.
As combined ISO 8601 date and time in UTC. Format: YYYY-MM-DDTHH:MM:SS.sssZ.
Bad request
Unauthorized - Invalid or missing authentication credentials
Session not found
Internal server error
Changelog
Date | Description |
|---|---|
Apr 24, 2026 |
|
Mar 9, 2026 | Documentation updated: parent categories rearranged, intro section expanded, request and response examples added |
Oct 2, 2025 |
|
Aug 6, 2025 | Response headers added |
Mar 12, 2025 | Documentation published |