DIVE Online API - Applicants
The Applicants endpoints allow you to create and manage applicants in the DIVE Online system.
What is an Applicant?
An applicant represents an individual who is undergoing identity verification through the DIVE Online platform.
The endpoints provide functionality to preform basic CRUD (Create, Read, Update, Delete) operations on applicants, as well as additional actions specific to the identity verification process.
Each applicant has one request/applicant ID and can have multiple attempts associated with them, each representing a separate instance of the identity verification process. The first successful attempt will mark the applicant as Passed.
The amount of attempts allowed per applicant is determined by the account settings configured in the DIVE Online Web Portal.
/api/v2/public/Applicants/{applicantId}/Completed
[GET] api/v2/public/Applicants/{applicantId}/Completed
Use Case - Checks if an applicant has completed.
Token - public API Token (pk_)
Required Parameters :
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
Response Body :
The HTTP response code will be a 200 value indicating the request has been passed the threshold scoring set by the DIVE Online account.
Transactions that do not meet the threshold scoring/pass verification will not return a 200 response code. A 200 code will only return for the first attempt that passes verification.
api/v2/public/Applicants/{applicantId}/Complete
[POST] api/v2/public/Applicants/{applicantId}/Complete
Use Case - Force completion of an applicant.
Token - public API Token (pk_) or secret API Token (sk_)
Required Parameters
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
Response Body :
Any applicant IDs that are currently in progress of receiving a passing verification can automatically be closed through this API call. This includes any applicant IDs that are currently pending or have only failed attempts.
The HTTP response code will be a 200 value indicating the request has been processed and the applicant has been marked as complete.
api/v2/private/Applicants (GET)
[GET] api/v2/private/Applicants
Use Case - List all applicants in a paginated list.
Token - secret API Token (sk_)
Required Parameters
Page specifies the page number to return. The value must be between 1 and 2147483647.
PageSize specifies the number of items to return per page. The value must be between 1 and 400.
Optional Parameters
CreatedFrom specifies the start date of the range to filter applicants by creation date. This value is in YYYY-MM-DD format.
CreatedTo specifies the end date of the range to filter applicants by creation date. This value is in YYYY-MM-DD format.
SortField specifies the field to sort the results by. The value must be one of the following:
Id,FirstName,LastName,Phone,Email,ReferenceId,OpenedLinkTimes,AttemptsUsed,Created,AccountId,Completed,Status,ResponsesCount,CallbackUrl,VerificationMethod,LastPriorityMessageStatus,LastPriorityEmailStatus,NotificationTypeOrder can be either
ascordescto specify the order of the results.TextFilter Filters the results by a text value.
Response Body :
{
"page": 0,
"pageSize": 0,
"total": 0,
"totalPages": 0,
"items": [
{
"firstName": "string",
"lastName": "string",
"phone": "string",
"email": "string",
"referenceId": "string",
"openedLinkTimes": 0,
"created": "2025-11-03T20:03:00.000Z",
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"validationRequestSettings": {
"validationRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"faceValidationPercent": 0,
"documentValidationPercent": 0,
"antiSpoofingPercent": 0,
"verifyFace": true,
"isOCREnabled": true,
"isAddressCheckEnabled": true,
"isExternalOFACWatchlistEnabled": true,
"isFaceMatchOptional": true,
"isCrossMatchRequired": true,
"isDocTypeChangeEnabled": true,
"isDMVEnabled": true,
"isDMVPartialEnabled": true,
"isIdentiFraudEnabled": true,
"isIdentiFraudFullCaseEnabled": true,
"isDmvOrIdentiFraudEnabled": true,
"isDmvAndIdentiFraudEnabled": true,
"isDmvOrIdentiFraudPartialEnabled": true,
"isDmvAndIdentiFraudPartialEnabled": true,
"isGenderCheckEnabled": true,
"isAgeCheckEnabled": true,
"ageYearsDifference": 0,
"showConsentForm": true,
"notificationType": 0
},
"completed": true,
"status": 0,
"statusName": "string",
"attemptsUsed": 0,
"documentExpired": true,
"hasRiskEvents": true,
"metadata": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"callbackUrl": "string",
"verificationMethod": 0,
"accountProfileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"applicantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"attemptsCount": 0,
"lastAttemptId": 0,
"successAttemptId": 0,
"isLastShuftiResultSuccess": true,
"successAttempt": {
"created": "2025-11-03T20:03:00.000Z",
"documentType": "string",
"documentTypeInt": 0,
"hasRiskEvents": true,
"status": 0,
"validationStatus": {
"expired": true,
"documentIsValid": true,
"faceIsValid": true,
"antiSpoofingIsValid": true
},
"attemptId": 0,
"document": {
"abbr3Country": "string",
"abbrCountry": "string",
"address": "string",
"city": "string",
"class": "string",
"country": "string",
"dob": "string",
"expires": "string",
"eyes": "string",
"familyName": "string",
"firstName": "string",
"fullName": "string",
"gender": "string",
"hair": "string",
"height": "string",
"id": "string",
"idType": "string",
"issued": "string",
"issuedBy": "string",
"maidenName": "string",
"middleName": "string",
"placeOfBirth": "string",
"postalBox": "string",
"state": "string",
"weight": "string",
"zip": "string",
"template": "string",
"privateName": "string"
}
}
}
]
}
Response Fields
- page The current page number.
- pageSize The number of items per page.
- total The total number of items listed.
- totalPages The total number of pages.
items — An array of applicant objects.
- items.firstName - The first name of the applicant.
- items.lastName - The last name of the applicant.
- items.phone - The phone number of the applicant.
- items.email - The email address of the applicant.
- items.referenceId - A reference ID used to identify the applicant in your own system.
- items.openedLinkTimes - The number of times the applicant has opened the validation link.
- items.created - The date and time the applicant was created.
- items.accountId - The DIVE Online customer ID of the account.
items.validationRequestSettings — The validation request settings for the applicant.
- items.validationRequestSettings.validationRequestId - The request/applicant ID.
- items.validationRequestSettings.faceValidationPercent - The face validation percentage.
- items.validationRequestSettings.documentValidationPercent - The document validation percentage.
- items.validationRequestSettings.antiSpoofingPercent - The anti-spoofing percentage.
- items.validationRequestSettings.verifyFace - Indicates whether face verification is enabled.
- items.validationRequestSettings.isOCREnabled - Indicates whether OCR is enabled.
- items.validationRequestSettings.isAddressCheckEnabled - Indicates whether address check is enabled.
- items.validationRequestSettings.isExternalOFACWatchlistEnabled - Indicates whether external OFAC watchlist is enabled.
- items.validationRequestSettings.isFaceMatchOptional - Indicates whether face match is optional.
- items.validationRequestSettings.isCrossMatchRequired - Indicates whether cross match is required.
- items.validationRequestSettings.isDocTypeChangeEnabled - Indicates whether document type change is enabled.
- items.validationRequestSettings.isDMVEnabled - Indicates whether 2 Sided DMV ONLY check is enabled.
- items.validationRequestSettings.isDMVPartialEnabled - Indicates whether 1 Sided DMV ONLY is enabled.
- items.validationRequestSettings.isIdentiFraudEnabled - Indicates whether 1 Sided IdentiFraud ONLY check is enabled.
- items.validationRequestSettings.isIdentiFraudFullCaseEnabled - Indicates whether full case Idenifraud check is enabled.
- items.validationRequestSettings.isDmvOrIdentiFraudEnabled - Indicates whether DMV or IdentiFraud check is enabled.
- items.validationRequestSettings.isDmvAndIdentiFraudEnabled - Indicates whether DMV and IdentiFraud check is enabled.
- items.validationRequestSettings.isDmvOrIdentiFraudPartialEnabled - Indicates whether partial 1 Sided DMV or IdentiFraud ONLY check is enabled.
- items.validationRequestSettings.isDmvAndIdentiFraudPartialEnabled - Indicates whether partial 1 Sided DMV and IdentiFraud ONLY check is enabled.
- items.validationRequestSettings.isGenderCheckEnabled - Indicates whether the gender check is enabled.
- items.validationRequestSettings.isAgeCheckEnabled - Indicates whether age check is enabled.
- items.validationRequestSettings.ageYearsDifference - The acceptable difference between document age and assessed age.
- items.validationRequestSettings.showConsentForm - Indicates whether the consent form was shown.
- items.validationRequestSettings.notificationType - The notification type for the applicant.
- 0 - None
- 1 - SMS
- 2 - Email
- 3 - Both SMS and Email
- items.completed - Indicates whether the applicant has completed the validation process.
- items.status - The current status of the applicant:
- 0 - Pending
- 1 - Success
- 2 - Failed
- 3 - Canceled
- 4 - Expired
- 5 - FailedAttempt
- items.statusName - The name of the current status.
- items.attemptsUsed - The number of attempts used.
- items.documentExpired - Indicates whether the document has expired.
- items.hasRiskEvents - Indicates if the applicant has risk events.
- items.metadata - Key/value pairs for additional information.
- items.callbackUrl - The redirect URL after completion.
- items.verificationMethod - The verification method used.
- items.accountProfileId - The ID of the account profile used.
- items.applicantId - A unique ID generated on each request.
- items.attemptsCount - Total number of attempts made.
- items.lastAttemptId - The ID of the last attempt.
- items.isLastShuftiResultSuccess - Indicates if the last attempt had completed with External Global proccesing.
- items.successAttemptId - The ID of the successful attempt.
items.successAttempt — The successful attempt object for the applicant.
- items.successAttempt.created - The date and time the successful attempt was created.
- items.successAttempt.documentType - The type of document provided.
- items.successAttempt.documentTypeInt - The integer representation of the document type.
- items.successAttempt.hasRiskEvents - Indicates if the successful attempt has risk events.
- items.successAttempt.status - The status of the successful attempt:
- 0 - Pending
- 1 - Success
- 2 - Failed
- 3 - Canceled
- 4 - Expired
- 5 - FailedAttempt
items.successAttempt.validationStatus — The validation status of the successful attempt.
- items.successAttempt.validationStatus.expired - Indicates whether the document has expired.
- items.successAttempt.validationStatus.documentIsValid - Indicates whether the document is valid.
- items.successAttempt.validationStatus.faceIsValid - Indicates whether the face is valid.
- items.successAttempt.validationStatus.antiSpoofingIsValid - Indicates whether the anti-spoofing check is valid.
items.successAttempt.document — The document object provided in the successful attempt.
- items.successAttempt.document.abbr3Country - Three-letter country abbreviation.
- items.successAttempt.document.abbrCountry - Two-letter country abbreviation.
- items.successAttempt.document.address - The address on the document.
- items.successAttempt.document.city - The city on the document.
- items.successAttempt.document.class - The class on the document.
- items.successAttempt.document.country - The country on the document.
- items.successAttempt.document.dob - Date of birth.
- items.successAttempt.document.expires - Expiration date.
- items.successAttempt.document.eyes - Eye color.
- items.successAttempt.document.familyName - Family name.
- items.successAttempt.document.firstName - First name.
- items.successAttempt.document.fullName - Full name.
- items.successAttempt.document.gender - Gender.
- items.successAttempt.document.hair - Hair color.
- items.successAttempt.document.height - Height.
- items.successAttempt.document.id - ID number.
- items.successAttempt.document.idType - Type of ID.
- items.successAttempt.document.issued - Issue date.
- items.successAttempt.document.issuedBy - Issuing authority.
- items.successAttempt.document.maidenName - Maiden name.
- items.successAttempt.document.middleName - Middle name.
- items.successAttempt.document.placeOfBirth - Place of birth.
- items.successAttempt.document.postalBox - Postal box.
- items.successAttempt.document.state - State.
- items.successAttempt.document.weight - Weight.
- items.successAttempt.document.zip - Zip code.
- items.successAttempt.document.template - Template data.
- items.successAttempt.document.privateName - Private name.
/api/v2/private/Applicants (POST)
[POST] /api/v2/private/Applicants
Use Case - Create Applicant
Token - secret API Token (sk_)
When making a new request, if you chose not to send an SMS or email message containing a link to a web page where documents can be uploaded by your users, you will need to determine a different method of delivering that link. When sending an SMS or email message, you have the option to configure a callback URL for the system to redirect your user to after submitting documents to DIVE.
For security reasons, when redirecting a user, the supplied callback URL in the body of the POST will be validated against the list of callback URLs in the DIVE Online Web Portal. If the list of callback URLs is empty or the URL can not be found, the user will be redirected to the page of the closed request.
Field metadata is useful for storing additional, structured information on an object. As an example, you could store your user's full name and corresponding unique identifier from your system. The metadata fields are not used by the DIVE API.
Request Body:
{
"firstName": "string",
"lastName": "string",
"phone": "string",
"email": "string",
"referenceId": "string",
"metadata": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"callbackUrl": "string",
"webhookEndpointId": 0,
"sendSms": true,
"sendEmail": true,
"accountProfileId": "########-####-####-####-############"
}
- firstName The first name of the applicant.
- lastName The last name of the applicant.
- phone The phone number of the applicant. This number will be used to send an SMS message with a link to the validation web page if
sendSmsis set to true. - email The email address of the applicant. This email will be used to send an email message with a link to the validation web page if
sendEmailis set to true. - referenceId A reference ID that can be used to identify the applicant in your own system.
metadata — A set of key/value pairs that can be used to store additional information about the applicant.
- additionalProp# - A key/value pair that can be used to store additional information about the applicant.
- callbackUrl A URL that the applicant will be redirected to after completing the validation process. This URL must be whitelisted in the DIVE Online Web Portal.
- webhookEndpointId The ID of the webhook endpoint that will be used to send notifications about the applicant's status.
- sendSms A boolean value that indicates whether to send an SMS message to the applicant with a link to the validation web page.
- sendEmail A boolean value that indicates whether to send an email message to the applicant with a link to the validation web page.
- accountProfileId The ID of the account profile that will be used to process the applicant. These profiles can be found in the DIVE Online Portal.
Response Body:
{
"applicantId": "########-####-####-####-############",
"validationLink": "string",
"shortValidationLink": "string"
}
Response Fields
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
- validationLink The full URL link that can be sent to the applicant for them to complete their identity verification. If the request body enabled SMS or email sending, this link will also be sent automatically to the applicant.
- shortValidationLink A shortened version of the validation link that can be sent to the applicant for them to complete their identity verification. If the request body enabled SMS or email sending, this link will also be sent automatically to the applicant.
/api/v2/private/Applicants/{applicantId}
[GET] api/v2/private/Applicants/{applicantId}
Use Case - Retrieves an applicants by their unique ID.
Token - secret API Token (sk_)
Required Parameters
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
Optional Parameters
- includeSuccessResponse A boolean value that indicates whether to include the successful response in the result. If set to true, the successful response will be included in the result. If set to false, only the failed responses will be included in the result.
Response Body :
{
"firstName": "string",
"lastName": "string",
"phone": "string",
"email": "string",
"referenceId": "string",
"openedLinkTimes": 0,
"created": "2025-11-04T20:29:32.622Z",
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"validationRequestSettings": {
"validationRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"faceValidationPercent": 0,
"documentValidationPercent": 0,
"antiSpoofingPercent": 0,
"verifyFace": true,
"isOCREnabled": true,
"isAddressCheckEnabled": true,
"isExternalOFACWatchlistEnabled": true,
"isFaceMatchOptional": true,
"isCrossMatchRequired": true,
"isDocTypeChangeEnabled": true,
"isDMVEnabled": true,
"isDMVPartialEnabled": true,
"isIdentiFraudEnabled": true,
"isIdentiFraudFullCaseEnabled": true,
"isDmvOrIdentiFraudEnabled": true,
"isDmvAndIdentiFraudEnabled": true,
"isDmvOrIdentiFraudPartialEnabled": true,
"isDmvAndIdentiFraudPartialEnabled": true,
"isGenderCheckEnabled": true,
"isAgeCheckEnabled": true,
"ageYearsDifference": 0,
"showConsentForm": true,
"notificationType": 0
},
"completed": true,
"status": 0,
"statusName": "string",
"attemptsUsed": 0,
"documentExpired": true,
"hasRiskEvents": true,
"metadata": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"callbackUrl": "string",
"verificationMethod": 0,
"accountProfileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"applicantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"attemptsCount": 0,
"lastAttemptId": 0,
"successAttemptId": 0,
"isLastShuftiResultSuccess": true,
"successAttempt": {
"created": "2025-11-04T20:29:32.622Z",
"documentType": "string",
"documentTypeInt": 0,
"hasRiskEvents": true,
"status": 0,
"validationStatus": {
"expired": true,
"documentIsValid": true,
"faceIsValid": true,
"antiSpoofingIsValid": true
},
"attemptId": 0,
"document": {
"abbr3Country": "string",
"abbrCountry": "string",
"address": "string",
"city": "string",
"class": "string",
"country": "string",
"dob": "string",
"expires": "string",
"eyes": "string",
"familyName": "string",
"firstName": "string",
"fullName": "string",
"gender": "string",
"hair": "string",
"height": "string",
"id": "string",
"idType": "string",
"issued": "string",
"issuedBy": "string",
"maidenName": "string",
"middleName": "string",
"placeOfBirth": "string",
"postalBox": "string",
"state": "string",
"weight": "string",
"zip": "string",
"template": "string",
"privateName": "string"
}
}
}
Response Fields
- firstName — The first name of the applicant
- lastName — The last name of the applicant
- phone — The phone number of the applicant
- email — The email address of the applicant
- referenceId — A reference ID that can be used to identify the applicant in your own system
- openedLinkTimes — The number of times the applicant has opened the validation link
- created — The date and time the applicant was created
- accountId — The customer ID of the account that the applicant belongs to
validationRequestSettings — The validation request settings for the applicant.
- validationRequestSettings.validationRequestId - The ID of the validation request settings.
- validationRequestSettings.faceValidationPercent - The face validation percentage for the applicant.
- validationRequestSettings.documentValidationPercent - The document validation percentage for the applicant.
- validationRequestSettings.antiSpoofingPercent - The anti-spoofing percentage for the applicant.
- validationRequestSettings.verifyFace - Indicates whether face verification is enabled (compares document image to selfie).
- validationRequestSettings.isOCREnabled - Indicates whether OCR is enabled (recognizes front/back characters).
- validationRequestSettings.isAddressCheckEnabled - Performs additional checks on the document's address.
- validationRequestSettings.isExternalOFACWatchlistEnabled - Indicates whether external OFAC watchlist is enabled.
- validationRequestSettings.isFaceMatchOptional - If enabled, transaction proceeds even if DIVE cannot process the provided face image.
- validationRequestSettings.isCrossMatchRequired - If enabled, both front and back must be provided and readable for 2-sided documents.
- validationRequestSettings.isDocTypeChangeEnabled - Allows correcting the document type during processing if chosen incorrectly.
- validationRequestSettings.isDMVEnabled - Indicates whether 2 Sided DMV ONLY check is enabled for 2-sided scans.
- validationRequestSettings.isDMVPartialEnabled - Indicates whether 1 Sided DMV ONLY is enabled (proceeds if only one side is readable).
- validationRequestSettings.isIdentiFraudEnabled - Indicates whether 1 Sided IdentiFraud ONLY check is enabled.
- validationRequestSettings.isIdentiFraudFullCaseEnabled - Indicates whether full case IdentiFraud check is enabled for 2-sided reads.
- validationRequestSettings.isDmvOrIdentiFraudEnabled - Attempts DMV first; if unavailable, falls back to IdentiFraud.
- validationRequestSettings.isDmvAndIdentiFraudEnabled - DMV and IdentiFraud will run at the same time for 2-sided reads.
- validationRequestSettings.isDmvOrIdentiFraudPartialEnabled - Partial 1 Sided DMV or IdentiFraud ONLY; falls back to IF if DMV is unavailable.
- validationRequestSettings.isDmvAndIdentiFraudPartialEnabled - Partial 1 Sided DMV and IdentiFraud ONLY; both run simultaneously.
- validationRequestSettings.isGenderCheckEnabled - Compares document gender with machine learning assessed gender.
- validationRequestSettings.isAgeCheckEnabled - Compares document age with machine learning assessed age.
completed — A boolean value that indicates whether the applicant has completed the validation process
status — The current status of the applicant
- Pending = 0,
- Success = 1,
- Failed = 2,
- Canceled = 3,
- Expired = 4,
- FailedAttempt = 5
statusName — The name of the current status of the applicant
attemptsUsed — The number of attempts used by the applicant
documentExpired — A boolean value that indicates whether the document provided by the applicant has expired
hasRiskEvents — A boolean value that indicates whether the applicant has any risk events associated with their account
metadata — A set of key/value pairs that can be used to store additional information about the applicant
callbackUrl — The callback URL that the applicant will be redirected to after completing the validation process
verificationMethod — The verification method used for the applicant
accountProfileId — The ID of the account profile that was used to process the applicant
applicantId — A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance
attemptsCount — The total number of attempts made by the applicant
lastAttemptId — The ID of the last attempt made by the applicant
isLastShuftiResultSuccess — A boolean value that indicates whether the last attempt made by the applicant had completed with External Global proccesing.
successAttemptId — The ID of the successful attempt made by the applicant
successAttempt — The successful attempt object for the applicant.
- successAttempt.created - The date and time the successful attempt was created.
- successAttempt.documentType - The type of document provided.
- successAttempt.documentTypeInt - The integer representation of the document type.
- successAttempt.hasRiskEvents - Indicates if the successful attempt has risk events.
- successAttempt.status - The status of the successful attempt.
- successAttempt.attemptId - The ID of the successful attempt.
successAttempt.validationStatus — The validation status of the successful attempt.
- validationStatus.expired - Indicates whether the document has expired.
- validationStatus.documentIsValid - Indicates whether the document is valid.
- validationStatus.faceIsValid - Indicates whether the face match is valid.
- validationStatus.antiSpoofingIsValid - Indicates whether the anti-spoofing check is valid.
successAttempt.document — The document object provided in the successful attempt.
- document.abbr3Country - The three-letter country abbreviation.
- document.abbrCountry - The two-letter country abbreviation.
- document.address - The address on the document.
- document.city - The city on the document.
- document.class - The class on the document.
- document.country - The country on the document.
- document.dob - The date of birth on the document.
- document.expires - The expiration date on the document.
- document.eyes - The eye color on the document.
- document.familyName - The family name on the document.
- document.firstName - The first name on the document.
- document.fullName - The full name on the document.
- document.gender - The gender on the document.
- document.hair - The hair color on the document.
- document.height - The height on the document.
- document.id - The ID number on the document.
- document.idType - The type of ID on the document.
- document.issued - The issue date on the document.
- document.issuedBy - The issuing authority on the document.
- document.maidenName - The maiden name on the document.
- document.middleName - The middle name on the document.
- document.placeOfBirth - The place of birth on the document.
- document.postalBox - The postal box on the document.
- document.state - The state on the document.
- document.weight - The weight on the document.
- document.zip - The zip code on the document.
- document.template - The template data on the document.
- document.privateName - The private name on the document.
/api/v2/public/Applicants/{applicantId} (DELETE)
[DELETE] api/v2/public/Applicants/{applicantId}
Use Case - Deletes an applicant by their unique ID.
Token - secret API Token (sk_)
Required Parameters
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
Response Body
An HTTP 200 OK response with no body. This indicates that the applicant has been successfully deleted.
/api/v2/private/Applicants/{applicantId}/Attempts/{attemptId}
[GET] api/v2/private/Applicants/{applicantId}/Attempts/{attemptId}
Use Case - Retrieves an applicant's attempt by their unique ID.
Token - secret API Token (sk_)
Required Parameters
applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
attemptId A unique ID generated for each attempt made by the applicant. This ID is used to retrieve the specific attempt data. This value is also called a response ID.
Response Body
{
"documentFailStatusReasons": [
"string"
],
"faceFailStatusReasons": [
"string"
],
"invalidDataErrors": [
{
"code": "string",
"message": "string"
}
],
"dvsResult": {
"faceVerificationResult": {
"far": 0,
"antiSpoofing": 0,
"confidence": 0,
"ageCheckResult": {
"displayName": "string",
"success": true,
"reasons": [
"string"
]
},
"genderCheckResult": {
"displayName": "string",
"success": true,
"reasons": [
"string"
]
}
},
"parsedData": {
"isShuftiSuccess": true,
"isAntiSpoofingSuccess": true,
"isTamperingDetected": true,
"isDataFieldsTampered": true,
"isPhotoFromDocumentTampered": true,
"isVeteran": true,
"isDonor": true,
"isRealId": true,
"isLimitedDurationDocument": true,
"isCommercialDriversLicense": true,
"pdfParseResult": {
"displayName": "string",
"reason": [
"string"
],
"success": true
},
"mrzParseResult": {
"displayName": "string",
"reason": [
"string"
],
"success": true
},
"ocrParseResult": {
"displayName": "string",
"reason": [
"string"
],
"success": true
}
},
"documentType": 1,
"requestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"ssn": "string",
"userAgent": "string",
"captureMethod": "string",
"facePhoto": "string",
"facePhotoFromDocument": "string",
"signature": "string",
"request": {
"ocrVisual": true,
"verifyFace": true,
"created": "2025-11-10T21:37:38.729Z",
"documentType": 1,
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accountName": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"captureMethod": "string",
"userAgent": "string",
"appName": "string",
"appVersion": "string",
"brand": "string",
"deviceFamily": "string",
"deviceModel": "string",
"os": "string",
"osVersion": "string",
"webLibVersion": "string",
"status": 0,
"content": {
"backOrSecondImageBase64": "string",
"backOrSecondImageIrBase64": "string",
"backOrSecondImageUvBase64": "string",
"faceImageBase64": "string",
"frontImageBase64": "string",
"frontImageIrBase64": "string",
"frontImageUvBase64": "string",
"trackString": "string",
"ssn": "string"
},
"apiVersion": "string"
},
"requestIpAddress": "string",
"geolocation": {
"continentCode": "string",
"continent": "string",
"countryCode": "string",
"country": "string",
"stateCode": "string",
"state": "string",
"city": "string",
"postCode": "string",
"accuracyRadius": 0,
"latitude": 0,
"longitude": 0,
"timeZone": "string",
"network": "string"
},
"transactionData": {
"updateDate": "2025-11-10T21:37:38.730Z",
"remainingAmount": 0
},
"document": {
"abbr3Country": "string",
"abbrCountry": "string",
"address": "string",
"city": "string",
"class": "string",
"country": "string",
"dob": "string",
"expires": "string",
"eyes": "string",
"familyName": "string",
"firstName": "string",
"fullName": "string",
"gender": "string",
"hair": "string",
"height": "string",
"id": "string",
"idType": "string",
"issued": "string",
"issuedBy": "string",
"maidenName": "string",
"middleName": "string",
"placeOfBirth": "string",
"postalBox": "string",
"state": "string",
"weight": "string",
"zip": "string",
"template": "string",
"privateName": "string"
},
"documentVerificationResult": {
"status": 0,
"verificationConfidence": {
"abbr3Country": 0,
"abbrCountry": 0,
"address": 0,
"city": 0,
"class": 0,
"country": 0,
"dob": 0,
"expires": 0,
"eyes": 0,
"familyName": 0,
"firstName": 0,
"fullName": 0,
"gender": 0,
"hair": 0,
"height": 0,
"id": 0,
"idType": 0,
"issued": 0,
"issuedBy": 0,
"maidenName": 0,
"middleName": 0,
"placeOfBirth": 0,
"postalBox": 0,
"state": 0,
"template": 0,
"weight": 0,
"zip": 0,
"privateName": 0
},
"validationTests": [
{
"rawResponse": "string",
"name": "string",
"displayName": "string",
"reason": "string",
"effect": 0,
"values": [
{
"score": 0,
"effectString": "string",
"effect": 0,
"fieldName": "string"
}
],
"status": 0,
"statusString": "string",
"effectString": "string"
}
],
"statusString": "string",
"totalConfidence": 0
}
},
"mobilePhoneModel": "string",
"mobilePhoneOS": "string",
"captureMethod": "string",
"requestIpAddress": "string",
"created": "2025-11-10T21:37:38.730Z",
"documentType": "string",
"documentTypeInt": 0,
"hasRiskEvents": true,
"status": 0,
"validationStatus": {
"expired": true,
"documentIsValid": true,
"faceIsValid": true,
"antiSpoofingIsValid": true
},
"content": {
"backOrSecondImageBase64": "string",
"backOrSecondImageIrBase64": "string",
"backOrSecondImageUvBase64": "string",
"faceImageBase64": "string",
"frontImageBase64": "string",
"frontImageIrBase64": "string",
"frontImageUvBase64": "string",
"trackString": "string",
"ssn": "string"
},
"applicantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"attemptId": 0
}
Response Fields
documentFailStatusReasons
- documentFailStatusReasons - Reasons for document failure.
faceFailStatusReasons
- faceFailStatusReasons - Reasons for face failure.
invalidDataErrors
- invalidDataErrors - Invalid data error details.
- invalidDataErrors.code - Error code
- invalidDataErrors.message - Error message
dvsResult
- dvsResult.faceVerificationResult - Face verification result.
- faceVerificationResult.far - False acceptance rate
- faceVerificationResult.antiSpoofing - Anti-spoofing score
- faceVerificationResult.confidence - Confidence score
- faceVerificationResult.ageCheckResult - Age check result
- ageCheckResult.displayName - Display name
- ageCheckResult.success - Whether check was successful
- ageCheckResult.reasons - Reasons for result
- faceVerificationResult.genderCheckResult - Gender check result
- genderCheckResult.displayName - Display name
- genderCheckResult.success - Whether check was successful
- genderCheckResult.reasons - Reasons for result
dvsResult.parsedData
- parsedData.isShuftiSuccess - Whether Shufti Pro check was successful
- parsedData.isAntiSpoofingSuccess - Whether anti-spoofing check was successful
- parsedData.isTamperingDetected - Whether tampering was detected
- parsedData.isDataFieldsTampered - Whether data fields were tampered
- parsedData.isPhotoFromDocumentTampered - Whether photo from document was tampered
- parsedData.isVeteran - Whether applicant is a veteran
- parsedData.isDonor - Whether applicant is a donor
- parsedData.isRealId - Whether document is Real ID
- parsedData.isLimitedDurationDocument - Whether document is limited duration
- parsedData.isCommercialDriversLicense - Whether CDL
- parsedData.pdfParseResult - PDF parse result
- pdfParseResult.displayName - Display name
- pdfParseResult.reason - Reasons for result
- pdfParseResult.success - Whether parse was successful
- parsedData.mrzParseResult - MRZ parse result
- mrzParseResult.displayName - Display name
- mrzParseResult.reason - Reasons for result
- mrzParseResult.success - Whether parse was successful
- parsedData.ocrParseResult - OCR parse result
- ocrParseResult.displayName - Display name
- ocrParseResult.reason - Reasons for result
- ocrParseResult.success - Whether parse was successful
- dvsResult.documentType - Document type
- dvsResult.requestId - Request ID
- dvsResult.ssn - Social security number
- dvsResult.userAgent - User agent
- dvsResult.captureMethod - Capture method
- dvsResult.facePhoto - Face photo
- dvsResult.facePhotoFromDocument - Face photo from document
- dvsResult.signature - Signature
dvsResult.request
- request.ocrVisual - Whether OCR visual enabled
- request.verifyFace - Whether face verification enabled
- request.created - Request creation timestamp
- request.documentType - Document type
- request.accountId - Account ID
- request.accountName - Account name
- request.id - Request ID
- request.captureMethod - Capture method
- request.userAgent - User agent
- request.appName - App name
- request.appVersion - App version
- request.brand - Brand
- request.deviceFamily - Device family
- request.deviceModel - Device model
- request.os - Operating system
- request.osVersion - OS version
- request.webLibVersion - Web library version
- request.status - Request status:
- 0 - Pending
- 1 - Success
- 2 - Failed
- 3 - Canceled
- 4 - Expired
- 5 - FailedAttempt
- request.content - Request content images
- content.backOrSecondImageBase64 - Back image
- content.frontImageBase64 - Front image
- content.faceImageBase64 - Face image
- request.apiVersion - API version
- dvsResult.requestIpAddress - IP address of request
dvsResult.geolocation
- geolocation.continentCode - Continent code
- geolocation.continent - Continent
- geolocation.countryCode - Country code
- geolocation.country - Country
- geolocation.stateCode - State code
- geolocation.state - State
- geolocation.city - City
- geolocation.postCode - Postal code
- geolocation.latitude - Latitude
- geolocation.longitude - Longitude
- geolocation.timeZone - Time zone
dvsResult.document
- document.abbrCountry - Country abbreviation
- document.address - Address
- document.city - City
- document.dob - Date of birth
- document.expires - Expiration date
- document.familyName - Family name
- document.firstName - First name
- document.fullName - Full name
- document.gender - Gender
- document.height - Height
- document.id - ID number
- document.state - State
- document.zip - Zip code
- mobilePhoneModel - Mobile phone model
- mobilePhoneOS - Mobile phone OS
- captureMethod - Capture method used
- requestIpAddress - IP address of attempt
- created - Timestamp of creation
- documentType - Type of document
- hasRiskEvents - Whether attempt has risk events
- status - Status of attempt
validationStatus
- validationStatus.expired - Whether document expired
- validationStatus.documentIsValid - Whether document is valid
- validationStatus.faceIsValid - Whether face is valid
- validationStatus.antiSpoofingIsValid - Whether anti-spoofing check is valid
content
- content.frontImageBase64 - Front image
- content.backOrSecondImageBase64 - Back image
- content.faceImageBase64 - Face image
- applicantId - Unique applicant ID
- attemptId - Attempt ID
/api/v2/private/Applicants/{applicantId}/Attempts
[GET] api/v2/private/Applicants/{applicantId}/Attempts
Retrieves all of an applicant's attempt by their unique ID.
Required Parameters
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
Response Body
{
"attempts": [
{
"created": "2025-11-10T21:53:19.774Z",
"documentType": "string",
"documentTypeInt": 1,
"hasRiskEvents": true,
"status": 0,
"validationStatus": {
"expired": true,
"documentIsValid": true,
"faceIsValid": true,
"antiSpoofingIsValid": true
},
"responseJson": "string",
"attemptId": 0
}
]
}
Response Fields
attempts
attempts — An array of attempt objects for the applicant.
attempts.created — The date and time the attempt was created
attempts.documentType — The type of document provided in the attempt
attempts.documentTypeInt — The integer representation of the document type provided in the attempt
attempts.hasRiskEvents — A boolean value that indicates whether the attempt has any risk events associated with it
attempts.status — The status of the attempt
- Pending = 0
- Success = 1
- Failed = 2
- Canceled = 3
- Expired = 4
- FailedAttempt = 5
attempts.validationStatus — The validation status of the attempt
- validationStatus.expired — A boolean value that indicates whether the document provided in the attempt has expired
- validationStatus.documentIsValid — A boolean value that indicates whether the document provided in the attempt is valid
- validationStatus.faceIsValid — A boolean value that indicates whether the face provided in the attempt is valid
- validationStatus.antiSpoofingIsValid — A boolean value that indicates whether the anti-spoofing check for the attempt is valid
attempts.responseJson — The raw JSON response of the attempt
attempts.attemptId — The ID of the attempt
/api/v2/private/Applicants/{applicantId}/ReNotify
[POST] api/v2/private/Applicants/{applicantId}/ReNotify
Use Case - This request will trigger re-sending the initial SMS/Email message with a link to the validation web page to an end user.
Token - secret API Token (sk_)
Required Parameters
- applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
Response Body
An HTTP 200 OK response with no body. This indicates that the re-notification has been successfully sent.
/api/v2/private/Applicants/{applicantId}/Attempts/{attemptId}/Images
[GET] api/v2/private/Applicants/{applicantId}/Attempts/{attemptId}/Images
Use Case - Retrieves all of an applicant's images by their unique ID.
Token - secret API Token (sk_)
Required Parameters
applicantId A unique ID generated on each request creation. A single applicant ID can have multiple response IDs (attempts) per instance.
attemptId A unique ID generated for each attempt made by the applicant. This ID is used to retrieve the specific attempt data. This value is also called a response ID.
Response Body
{
"backOrSecondImageBase64": "string",
"backOrSecondImageIrBase64": "string",
"backOrSecondImageUvBase64": "string",
"faceImageBase64": "string",
"frontImageBase64": "string",
"frontImageIrBase64": "string",
"frontImageUvBase64": "string",
"trackString": "string",
"ssn": "string"
}
Response Fields
- backOrSecondImageBase64 — The base64 encoded string of the back or second image of the document provided in the attempt
- backOrSecondImageIrBase64 — The base64 encoded string of the back or second image of the document in infrared (IR) format provided in the attempt
- backOrSecondImageUvBase64 — The base64 encoded string of the back or second image of the document in ultraviolet (UV) format provided in the attempt
- faceImageBase64 — The base64 encoded string of the face image provided in the attempt
- frontImageBase64 — The base64 encoded string of the front image of the document provided in the attempt
- frontImageIrBase64 — The base64 encoded string of the front image of the document in infrared (IR) format provided in the attempt
- frontImageUvBase64 — The base64 encoded string of the front image of the document in ultraviolet (UV) format provided in the attempt
- trackString — The track string of the document provided in the attempt
- ssn — The social security number (SSN) provided in the attempt