Verify Transactions
For each verification attempt, all the necessary information is gathered in a transaction. The verifyTransactions endpoint, /environments/{{envID}}/users/{{userID}}/verifyTransactions, receives all read, status, and control requests associated with the verification attempt.
In the responses is the verificationStatus object, a list that indicates the verification types being verified by the service and the verification status of each step. The verification types are keys in the list and the verification status is the value in the list.
The verification types for a verify transaction are determined from the verify policy.
In the response is expiresAt. Transactions do not allow users an unlimited amount of time to submit verification data and complete the verify transaction. If the verify transaction is not completed before the expiresAt date and time, the transaction fails. If all required documents are collected but are still being processed when expiresAt is reached, document processing continues and the transaction either passes or fails based on the processing result. The default verify transaction timeout is 30 minutes from transaction creation.
Furthermore, data collection is also time-constrained. (Data collected, such as the images of documents and images of the user ("selfies"), are required by the verification service.) Data collection time starts when the user initiates data collection using PingOne Verify web or native SDK. If required data are not submitted by the lesser of the data collection timeout and the time remaining before expiresAt, the transaction fails. The default data collection timeout is 15 minutes from the start of data collection.
To understand the timeouts, particularly the data collection timeout, an example may help. Let us say that the verify transaction timeout is 30 minutes and the data collection timeout is 15 minutes. If the user does not begin data collection for 18 minutes, the data collection timeout becomes 12 minutes - the lesser of the data collection timeout (15 minutes) and the remaining time before expiresAt (12 minutes).
You can create a new verify policy or update an existing verify policy to use different timeouts.
Verify transaction data model
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
Object |
Optional |
Immutable |
Object containing a callback target. The first time a transaction transitions to SUCCESS or FAIL (expired transactions are ignored when they transition to FAIL), the service makes one GET request to the URL with the expected headers. |
|
Object |
Optional |
Immutable |
Object containing request header fields to include with the callback request. Can contain any number of key-value pairs where the key is a header field name and its value is the header field value, which cannot be null. Duplicate keys are not permitted. |
|
String |
Required |
Immutable |
The URL to which a callback is sent. Must use HTTPS protocol and be a valid URL. |
|
DateTime |
N/A |
Read-only |
Date and time the ID verification request was sent. |
|
String |
Required |
Immutable |
PingOne environment identifier (UUID) for user. |
|
DateTime |
N/A |
Read-only |
Date and time the ID verification expires. A null value indicates it never expires. |
|
String |
N/A |
Read-only |
Transaction identifier (UUID). |
|
String |
N/A |
Read-only |
A link to retrieve a QR code image encoded with |
|
Object |
Optional |
Mutable |
Contains redirect information for where users are redirected after document collection. Refer to redirect object. |
|
Object |
Optional |
Mutable |
Contains one or more objects that contain information used by the service: requirements object. |
|
Object |
Optional |
Mutable |
Endpoint to which notifications are sent: sendNotification object. |
|
Object |
Required |
Immutable |
Status of the transaction: transactionStatus object. |
|
DateTime |
N/A |
Read-only |
Date and time the response was received by the identity provider. Can be null. |
|
String |
Required |
Immutable |
Identifier (UUID) for the user submitting the verify transaction. |
|
String |
Optional |
Mutable |
Identifier (UUID) of the verify policy. |
|
String |
N/A |
Read-only |
A code used to identify a particular transition from the desktop web interface to the mobile web interface. |
|
String |
N/A |
Read-only |
A link to continue the transition from the desktop web interface to the mobile web interface. Refer to the note regarding query parameter options following this table. |
The webVerificationUrl has query parameter options:
-
You can append a
&dt=1query parameter towebVerificationUrl. You can offer to redirect your users to a mobile or desktop browser-based verification. By default, on laptop or desktop browsers, you present to the user a page with the QR code to continue verification on their mobile device. A&dt=1query parameter also permits verification on laptop or desktop browsers. -
You can append a
&auth=1query parameter towebVerificationUrl. When you redirect your user to the PingID app for verification, you can suppress the instruction pages. -
Deprecated - This query parameter is replaced by
messagein the redirect object. You can append a&redirectMessage=<message>query parameter towebVerificationUrl, where<message>is an unquoted, URL-encoded text string. The message appears after document collection. For example:&redirectMessage=You%27ve%20successfully%20collected%20all%20document%2e%20Return%20to%20registration. -
Deprecated - This query parameter is replaced by
urlin the redirect object. You can append a&redirectUrl=<redirect URL>query parameter towebVerificationUrl, where<redirect URL>is a URL-encoded redirect URL. The redirect URL appears after document collection. For example:&redirectUrl=https%3A%2F%2Fhome.example.com%2Fs%2Fmembership.
|
For web-based verification, PingOne Verify permits custom domains for the For more information regarding custom domains, refer to Custom Domains. |
redirect object
Used only in the request body of Create Verify Transaction and never returned by any API response.
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
String |
Required |
Mutable |
Redirect URL where the user is returned to after document collection. |
|
String |
Optional |
Mutable |
Message presented to the user after document collection for redirecting to the |
|
Boolean |
Optional |
Mutable |
Whether or not the user, after document collection, is automatically redirected to the |
Interaction of redirect.auto and redirect.message
-
If
redirect.autoistrueandredirect.messageis absent, the user is briefly presented with the message from the language pack of the environment before automatically following theredirect.url. The language pack key for this message is namedverify.label.completeRedirectDescription. -
If
redirect.autoistrue, thenredirect.messageis not permitted and causes an error if present. -
If
redirect.autoisfalse(or absent) andredirect.messageis present, the user is presented the message with a Return button to click to follow theredirect.url. -
If
redirect.autoisfalse(or absent) andredirect.messageis absent, the user is presented with a generic completion message with a Return button to click to follow theredirect.url. The language pack key for this generic message is namedverify.label.completeDescription.
requirements object
Biographic matching occurs when the Verify Policy includes governmentId and the Create Verify Transaction includes the optional biographic matching data requirements (given_name, family_name, name, address, and birth_date). If the client does not provide biographic matching data, the service performs the verifications required by the verify policy. If the client does provide biographic matching data, the service performs the verifications required by the verify policy and then compares the data extracted from the government identity document to the data provided by the client.
Identity record matching occurs when the Verify Policy includes governmentId and the Create Verify Transaction includes the optional biographic matching data requirements (given_name, family_name, name, address, and birth_date). If the identityRecordMatching configuration object has at least one field defined with a threshold and the client does not provide biographic matching data corresponding to the required fields in the identityRecordMatching configuration object, an error is returned. If the client does provide biographic matching data, the service performs the verifications required by the verify policy and then compares the data extracted from the government identity document to the data provided by the client. If name is required by the identityRecordMatching configuration object but only given_name and family_name are submitted in requirements, given_name and family_name are combined as name. If address is required by the identityRecordMatching configuration object and databasedIdentityVerification is enabled in the verify policy, but only address_city, address_state, address_street, and address_zip are submitted in requirements, then address_city, address_state, address_street, and address_zip are combined as address.
If verifyPolicy.id is a policy that includes data based identity verification, then address_city, address_state, address_street, address_zip, birth_date, family_name, given_name, and national_id_number can have only one value. For non-US-based identities, address_street_line2 and country_code also can have only one value. You can use either value or options for the single value. However, use of options with more than one value returns an error. Furthermore, if an address is needed for data based identity verification, submitting only address returns an error. For US-based identities, the service requires at minimum for verification either name (or given_name and family_name) and national_id_number, which is a Social Security Number, or name (or given_name and family_name) and birth_date. Personally identifiable information (PII) is not returned unless Social Security Number or birth date are an exact match, and given name and family name are either a partial match or an exact match. If Social Security Number is not provided in requirements when creating the transaction, it is not returned.
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
Object |
Optional |
Immutable |
Object containing address cities. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of address cities |
|
String |
Required/Optional |
Immutable |
One address city |
|
Object |
Optional |
Immutable |
Object containing address states. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of address states |
|
String |
Required/Optional |
Immutable |
One address state |
|
Object |
Optional |
Immutable |
Object containing address streets. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of address streets |
|
String |
Required/Optional |
Immutable |
One address street |
|
Object |
Optional |
Immutable |
Object containing address second lines for street. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of address second lines for street |
|
String |
Required/Optional |
Immutable |
One address second line for street |
|
Object |
Optional |
Immutable |
Object containing address postal codes. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of address postal codes |
|
String |
Required/Optional |
Immutable |
One address postal code |
|
Object |
Optional |
Immutable |
Object containing addresses. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of addresses |
|
String |
Required/Optional |
Immutable |
One address |
|
Object |
Optional |
Immutable |
Object containing the birth date. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of one birth date in YYYY-MM-DD format; more than one element is not supported. |
|
String |
Required/Optional |
Immutable |
One birth date in YYYY-MM-DD format |
|
Object |
Optional |
Immutable |
Object containing the two character country codes. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of country codes |
|
String |
Required/Optional |
Immutable |
One country code |
|
Object |
Optional |
Immutable |
Object containing email addresses. |
|
String[] |
Required |
Immutable |
An array of email addresses to send email one-time password to. |
|
String[] |
Required |
Immutable |
One address to send email one-time password to. |
|
Object |
Optional |
Immutable |
Object containing the family name. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of family names |
|
String |
Required/Optional |
Immutable |
One family name |
|
Object |
Optional |
Immutable |
Object containing given names. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of given names |
|
String |
Required/Optional |
Immutable |
One given name |
|
Object |
Optional |
Immutable |
Object containing the full name (given name and family name). Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of full names |
|
String |
Required/Optional |
Immutable |
One full name |
|
Object |
Optional |
Immutable |
Object containing national identification numbers. Can contain |
|
String[] |
Required/Optional |
Immutable |
An array of national identification numbers |
|
String |
Required/Optional |
Immutable |
One national identification number |
|
Object |
Optional |
Immutable |
Object containing a mobile phone number. Refer to Note on phone property. |
|
String |
Required |
Immutable |
An array of mobile phone numbers to send SMS text one-time password (OTP) to. |
|
String |
Required |
Immutable |
Mobile phone number to send SMS text one-time password (OTP) to. |
|
Object |
Required/Optional |
Immutable |
Object containing a reference self image. Refer to Note on referenceSelfie property |
|
String |
Required |
Immutable |
A base64-encoded reference self image. Image must be JPEG format. |
|
If the verify policy includes |
Note on phone property
When a phone number is needed, a valid phone number string must be provided in international format consisting of a leading plus sign, 1 to 3-digit country code, and 4 to 14-digit phone number, for example, +14155552671.
Always include the country code in the value you provide for the phone parameter. Phone formats across the globe are constantly expanding and changing. If the country code is not included, issues might occur with message delivery.
The following sample shows acceptable valid phone attribute formatting for the same number:
+1.5125201234
+15125201234
+1.512.520.1234
+1 (512) 520-1234
Note on referenceSelfie property
Whether a reference self image is required depends on the interaction of several properties of the verify policy referenced by verifyPolicy.id (or the default verify policy) and the verify transaction as it interacts with the user.
Optional and ignored when present if facialComparison.verify is DISABLED.
Optional and verified when facialComparison.verify is REQUIRED and governmentID.verify is REQUIRED or OPTIONAL
Required and verified when facialComparison.verify is REQUIRED or OPTIONAL and governmentID.verify is DISABLED
sendNotification object
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
String |
Optional |
Mutable |
The email address to send email verification notifications to |
|
String |
Optional |
Mutable |
The phone number to send SMS text verification notifications to. Refer to the note regarding phone numbers following the requirements object table. |
|
Object[] |
N/A |
Read-only |
Array of objects that contain the results of attempts to notify the user. Provided only in the response to Create Verify Transaction. |
|
Object |
N/A |
Read-only |
Contains information regarding why a notification failed to send. |
|
String |
N/A |
Read-only |
A short alphanumeric code identifying the error. |
|
Object[] |
N/A |
Read-only |
Array of objects that contain details of the error as provided by the source of the error. Exact format varies by source. |
|
String |
N/A |
Read-only |
Identifier (UUID) of the error message. |
|
String |
N/A |
Read-only |
A textual message explaining the error. |
|
String |
N/A |
Read-only |
Method used in the attempt to notify the user. Can be |
|
String |
N/A |
Read-only |
Identifier (UUID) of the notification that was sent. |
|
Boolean |
N/A |
Read-only |
Whether the notification was successfully sent. |
transactionStatus object
| Property | Type | Required? | Mutable? | Description |
|---|---|---|---|---|
|
Object |
Optional |
Immutable |
Present when one or more verification types fail |
|
Object |
Required |
Immutable |
Contains name-value pairs where name is the error code and value is a textual error description. Some error messages are listed in Verification error messages. |
|
String |
Required |
Immutable |
A generic descriptor of the provider. Can be |
|
String |
Required |
Immutable |
Verification type to which the message applies; refer to Verification types |
|
String |
Required |
Mutable |
Status of the transaction, an enumerated list |
|
Object |
Required |
Immutable |
Contains name-value pairs where name is a verification type and value is the status of the verification type, an enumerated list |
Transaction level status definitions
| Status | Definition |
|---|---|
APPROVED_MANUALLY |
The administrator has decided to override the result of the verification. The service providers were unable to provide a positive response but the administrator was able to peruse the physical documents. |
APPROVED_NO_REQUEST |
The administrator perused the physical documents of the user and approved the request without the need for third party verification. |
FAIL |
All of the service providers have responded and some of the results are not positive. The transactionStatus object contains error messages. |
IN_PROGRESS |
The user scanned the QR code and submitted the data. The service prepares to submit the data to third party providers. |
INITIATED |
User has started collecting documents but has not sent them to the service to be processed. |
NOT_REQUIRED |
The administrator has decided that this user does not require to be verified. |
PARTIAL |
Some, but not all, service providers have responded. The service is waiting on responses from other providers. |
REQUESTED |
The transaction is initiated but user has not scanned the QR code or submitted the data. |
SUCCESS |
All of the service providers have responded and the result of the verification is positive from all providers. |
Verification types
| Verification type | Definition |
|---|---|
Verifies the user’s email address by sending a one time password (OTP) and having the user send that to PingOne Verify. |
|
FACIAL_COMPARISON_GOVERNMENT_ID |
Accepts a new self-image (selfie) and compares it to the image on the government identity document. |
FACIAL_COMPARISON_REFERENCE_SELFIE |
Accepts a new selfie and a reference selfie and compares the two selfies. |
GOVERNMENT_ID |
Accepts a government-issued identity document, such as drivers license or passport, and verifies it with verification providers. |
IDENTITY_RECORD_MATCHING |
Accepts biographic data and verifies it to identity document data. |
LIVENESS |
Accepts a single selfie and checks it for liveness. |
PHONE |
Verifies the user’s phone number by sending an OTP and having the user send that to PingOne Verify. |
VOICE_ENROLLMENT |
Performs voice enrollment with recordings provided by the user or by PingOne Verify’s customer. |
VOICE_VERIFICATION |
Performs voice verification with 1 recording provided by the end user or by PingOne Verify’s customer. |
|
Voice verification is deprecated and will be removed on November 25, 2026. |
Verification type level status definitions
| Status | Definition |
|---|---|
DEPENDENCY_FAILED |
Another verification type already failed and this verification type is not being processed. For example, Government ID will not be verified if the Facial Comparison or Liveness check failed. |
DOCUMENT_COLLECTED |
Documents were collected but not processed. |
FAIL |
The verification type completed and the result is not positive. The |
IN_PROGRESS |
The user has submitted the data and the service will perform the verification type. |
MANUAL_INSPECTION |
For government ID only: Verification submitted for manual inspection. |
OTP_RETRYABLE |
One Time Passcode (OTP) was returned but did not match the code sent. Retries are permitted if the retry count is less than the maximum. |
OTP_SENT |
One Time Passcode (OTP) was sent to the user. |
OTP_VERIFIED |
One Time Passcode (OTP) was returned by the user and verified. |
REQUESTED |
The verification type is requested but the user has not submitted the data. |
RETRYABLE |
The verification type completed but the image submitted is unacceptable. Retries are permitted, the retry count is less than the maximum, and the transaction has not timed out. |
SKIPPED |
The |
SUCCESS |
The verification type completed and the result is positive. |
TRANSACTION_TIMED_OUT |
Transaction was not completed within the timeout period. |
Verification error messages
Errors returned vary by vendor:
Mitek errors
API errors
If the transaction receives an error for reason code 144, DOCUMENT_IMAGES_MISMATCH - Document images do not match input type, you can ask the user to retry taking a document image.
Reason |
Error Code |
Message |
100 |
INTERNAL_ERROR |
Internal Error |
101 |
NO_RECORD |
No record found |
102 |
VALIDATION_IN_PROGRESS |
Validation process has already been started |
103 |
MISSING_SHOCARD_ID |
Shocard Id is missing |
104 |
MISSING_PUBLIC_KEY |
App public key is not set |
105 |
MISSING_CLAIM |
Claim is missing |
106 |
LIMIT_EXCEEDED |
Exceeded number of validation requests |
107 |
INVALID_REQUEST |
Invalid Request |
108 |
MISSING_DATA |
Missing Shared data in request |
109 |
DECRYPTION_ERROR |
Error in decrypting data |
110 |
FACE_VALIDATION_ERROR |
Face validation failed |
111 |
DOCUMENT_VALIDATION_ERROR |
Document validation failed |
112 |
DOCUMENT_VALIDATION_MISSING_DATA_ERROR |
Document validation missing data |
113 |
DOCUMENT_VALIDATION_INTERNAL_ERROR |
Document validation internal error |
114 |
JSON_READ_ERROR |
JSON read error |
115 |
JSON_WRITE_ERROR |
JSON write error |
116 |
FAILED_GETTING_TRANS_STATUS |
Failed getting transaction status |
117 |
INVALID_TRANSACTION_STATE |
Invalid transaction state |
118 |
DOCUMENT_VALIDATION_PROVIDER_INTERNAL_ERROR |
Document validation provider internal error |
119 |
DOCUMENT_VALIDATION_PROCESSING_RESULT_ERROR |
Document validation processing result error |
120 |
VALIDATION_NOT_IN_REQUESTED_STATUS |
Validation status not in the REQUESTED STATUS |
121 |
ENVIRONMENT_COULD_NOT_BE_FOUND |
Could not find Environment |
122 |
VERIFICATION_CAPABILITIES_ERROR |
Environment does not have verification capabilities |
123 |
ORGANIZATION_COULD_NOT_BE_FOUND |
Could not find Organization |
124 |
ORGANIZATION_QUOTA_ERROR |
No organization quota |
125 |
ORGANIZATION_QUOTA_DATE_ERROR |
Current date is out of quota dates range |
126 |
MISSING_UNIQUE_TOKEN |
Missing/invalid unique token |
127 |
PUBLIC_KEY_NOT_EMPTY |
App public key has already been set |
128 |
VERIFY_STATUS_NOT_INITIATED |
verifyStatus not initiated |
129 |
VERIFY_STATUS_IS_DISABLED |
verifyStatus is disabled |
130 |
LIVENESS_VALIDATION_ERROR |
Liveness validation failed |
139 |
DUPLICATE_RECORD_ERROR |
There is an existing record |
140 |
VALIDATION_NOT_IN_THE_EXPECTED_STATUS |
Validation status not in the Expected STATUS |
141 |
DOCUMENT_AGENT_ASSIST_INTERNAL_ERROR |
Document agent assist internal error |
142 |
DOCUMENT_AGENT_ASSIST_RESULT_ERROR |
Document agent assist processing result error |
143 |
DOCUMENT_AGENT_ASSIST_REQUEST_ERROR |
Document agent assist processing result error |
144 |
DOCUMENT_IMAGES_MISMATCH |
Document images do not match input type |
145 |
DEPENDENCY_FAILED |
Verification not performed because a dependency failed |
146 |
TRANSACTION_TIMEOUT |
Transaction timeout exceeded |
147 |
DATA_COLLECTION_TIMEOUT |
Data collection timeout exceeded |
148 |
DATA_COLLECTION_ONLY_NOT_SUPPORTED |
Data collection only not supported |
149 |
EXPIRED_GOVERNMENT_ID |
Government ID is expired |
150 |
OTP_ATTEMPTS_EXCEEDED |
OTP attempts exceeded |
151 |
OTP_SESSION_EXPIRED |
OTP session expired |
152 |
OTP_DELIVERY_FAILED |
Failed to deliver OTP |
153 |
MISSING_VERIFY_CONFIG |
VerifyPolicy could not be found |
154 |
INVALID_PROVIDER_CREDENTIAL_KEY |
Invalid Credential Key |
155 |
VOICE_ENROLLMENT_FAILED |
Voice Enrollment failed |
156 |
VOICE_VERIFICATION_FAILED |
Voice Verification failed |
157 |
VOICE_ENROLLMENT_NOT_FOUND |
User has not enrolled in Voice verification |
158 |
VOICE_RECORDING_SPOOFED |
Voice recording liveness check failed |
159 |
VOICE_RECORDING_POOR_QUALITY |
Voice recording quality too poor |
160 |
VOICE_RECORDING_SPEECH_SHORT |
Voice recording speech length is too short |
161 |
VOICE_SAMPLES_DONT_MATCH |
Voice enrollment samples do not match |
162 |
VOICE_MATCH_SCORE_TOO_LOW |
Voice match score too low |
163 |
VOICE_RECORDING_CHANNEL_CONFLICT |
Voice recording channel conflict |
164 |
PHONE_VALIDATION_ERROR |
Phone validation failed |
Processing reasons for document verification (automated)
If the transaction receives an error for reason codes marked Yes in the Retry column, you can ask the user to retry taking a document image.
Reason |
Message |
Description |
Retry |
200 |
Image quality check failed. |
The image has failed image quality check. |
Yes |
201 |
The image is not sharp. |
The image is out of focus. |
Yes |
202 |
The image has glare. |
Glare was found on the document preventing extraction or authentication. |
Yes |
203 |
The image is too dark. |
The image is too dark. |
Yes |
204 |
The document on the image is too small. The amount of the image that the document takes up is too small. |
Retake Image - Try changing from portrait to landscape mode or getting closer to the image. |
Yes |
205 |
The ID document could not be found. This can be caused by the image not showing all four corners of the document. |
Retake Image - Ensure all four sides of the document are visible. |
Yes |
206 |
The type of ID document could not be determined. |
The type of document could not be identified. This could be caused by a low quality image or it could be a document that is not supported. |
Yes |
208 |
Invalid Image Type. The encoding of the image is incorrect. It is not in a format that Mitek is able to process. |
Take a new image in a supported format. |
Yes |
209 |
Image is too small The input image had a width or height less than 400 pixels. |
Take a larger image. |
Yes |
210 |
Image processing failed after resizing. The input image had a width or height greater than 2000 pixels and was resized. You will only receive this message if processing failed after resizing. |
Take a smaller image. |
Yes |
211 |
The authenticator could not run because the input image was missing |
The authenticator was not able to assess the document because the input image was missing. Ensure that at least one image of an identity document was captured and submitted in the service request. |
Yes |
212 |
The image quality of the authenticator input image was poor. |
The authenticator was not able to assess the document because the image quality was too poor. Have the consumer capture a better quality image. |
Yes |
500 |
The barcode could not be found. |
The document was classified as a type that contains a barcode but the barcode could not be found. |
|
501 |
The barcode could not be extracted. |
The barcode was found but could not be read. |
|
502 |
The barcode could not be parsed. |
The barcode was read but the resulting data was not in the expected format. |
|
503 |
The barcode could not be processed |
A problem was encountered when trying to process barcode extraction and parsing. |
|
510 |
No data could be extracted for this document. |
Data could not be extracted |
|
511 |
Data could not be extracted from the back of the document. |
Data could not be extracted from the back of the document. |
|
512 |
The front of the ID document could not be extracted. |
The front of the ID document could not be extracted. |
|
513 |
Document not supported for extraction. |
The document may or may not be classified but it is currently not supported for extraction. |
|
520 |
Data extraction was performed, but the system didn’t accept the results. |
The data was extracted, but did not pass our additional checks to ensure the extraction is accurate. |
|
600 |
The Enhanced Security Feature (ESF) was expected for this type of document and not found. The document should have contained an ESF feature but no ESF was found. |
||
601 |
Only part of the Enhanced Security Feature (ESF) was found; the ID document may have been altered. |
Only part of the Enhanced Security Feature (ESF) was found; the ID document may have been altered. |
|
602 |
Only part of the Enhanced Security Feature (ESF) was found; the ID document may have been altered. |
Only part of the Enhanced Security Feature (ESF) was found; the ID document may have been altered. |
|
603 |
The Enhanced Security Feature (ESF) was found but shows evidence of tampering. |
The Enhanced Security Feature (ESF) was found but shows evidence of tampering. |
|
610 |
The picture area could not be identified. |
The portrait on the document could not be located. |
|
611 |
The picture image quality is too low. the portrait image quality is loo low. |
Retake Image |
|
612 |
The picture image has poor exposure. The picture image has poor exposure. |
Retake Image |
|
620 |
No MRZ was found on the document. |
The document was expected to have an MRZ on it based on its classification but no MRZ could be found. |
|
621 |
The MRZ was detected but was not in the proper format. |
The MRZ was detected but was not in the proper format. |
|
630 |
The MRZ check digits are invalid. |
The MRZ check digits are invalid. |
|
650 |
The fields used to determine font consistency could not be extracted |
The fields used to determine font consistency did not return any extraction results |
|
660 |
The document does not have enough fields to perform data comparison |
Field comparison could not be performed because there were not enough fields on the document to perform a data comparison. |
|
680 |
The barcode could not be found or was only partially detected on the document. |
The PDF417 barcode, typically found on USA or Canadian driving licenses or ID cards, could not be detected. |
|
698 |
The authenticator took too long to process. |
The authenticator took longer to process than was allowed to ensure a quick Mobile Verify Auto response. |
|
699 |
The authenticator is not available for this document. |
This message is returned when an authenticity test was not applied to a document because the document doesn’t have the necessary features or some design features prevent evaluation |
|
700 |
Unavailable due to scheduled maintenance |
AAMVA or the document’s issuing jurisdiction is currently in a scheduled maintenance window. In order to avoid a billable event, this transaction was not submitted. |
|
701 |
Jurisdiction temporarily unavailable |
The document’s issuing jurisdiction is currently unable to process transactions. |
|
702 |
Jurisdiction system error |
The document’s issuing jurisdiction encountered an unknown error. |
|
703 |
Jurisdiction did not respond in a timely manner |
The document’s issuing jurisdiction did not respond in a timely manner. |
|
801 |
Document is too close to the camera |
Document Liveness could not be performed, because the document is too close to the camera. |
|
802 |
Document is too close to the image border |
Document Liveness could not be performed, because the distance between document and image border is too small. |
|
803 |
Part of the document is not present in the image |
Document Liveness could not be performed, because a part of the document is not visible in the image. |
|
804 |
Document is not detected in the image |
Document Liveness could not be performed, because the document could not be detected in the image. |
|
805 |
Document size in the image is too small |
Document Liveness could not be performed, because the document size in the image is too small. |
|
806 |
Too many documents were detected in the image |
Document Liveness could not be performed, because there are multiple documents in the image. |
|
807 |
Document Liveness temporarily unavailable |
Document Liveness service did not respond in a timely manner. |
Selfie capture
If the transaction receives an error for error codes marked Yes in the Retry column, you can ask the user to retry taking a selfie.
| Error Code | Error Message | Meaning | Retry |
|---|---|---|---|
FACE_ANGLE_TOO_LARGE |
Facial out-of-plane rotation angle is extremely large |
Facial out-of-plane rotation angle is extremely large |
Yes |
FACE_CLOSE_TO_BORDER |
Face is too close to one or more borders |
Face is too close to one or more borders. May reduce the accuracy of spoofing detection because edges of face may not be seen |
Yes |
FACE_CROPPED |
Face is cropped |
Face is cropped. May reduce the accuracy of spoofing detection because edges of face may not be seen |
Yes |
FACE_IS_OCCLUDED |
Face is occluded |
There is occlusion of a face, which impacts the accuracy of liveness. This detection is designed to work with the medical masks that cover nose and mouth, other occlusions are not guaranteed. Occlusion detection has probabilistic nature and may have errors. The threshold setting for occlusion detection may be tuned by changing face_occlusion_threshold setting. Please refer to PAD Configuration in Docker section for more information. |
Yes |
FACE_NOT_FOUND |
Failed to detect face |
Face detector can’t find face on image. Face detection has probabilistic nature and may have errors. It also has some sensitivity level and very small faces may be ignored. |
Yes |
FACE_TOO_CLOSE |
Face is too close to the camera |
A distance between face and image border is too small for preprocessing issues |
Yes |
FACE_TOO_SMALL |
Interpupillary distance is too small |
Facial area is not big enough for analysis. Interpupillary distance in pixels is below the configured value |
Yes |
Absolute face size is too small |
Facial area is not big enough for analysis. Absolute face size in pixels is below the configured value |
Yes |
|
Relative face size is too small |
Facial area is not big enough for analysis. The relative proportion of face size in the image is below the configured value |
Yes |
|
FAILED_TO_ALLOCATE |
Current |
Memory allocation error |
|
FAILED_TO_PREDICT_LANDMARKS |
Failed to predict landmarks |
Landmarks prediction error |
|
FAILED_TO_PREPROCESS_IMAGE_WHILE_DETECT |
Face detection error |
Face detection error |
|
FAILED_TO_PREPROCESS_IMAGE_WHILE_PREDICT |
Failed to preprocess image for * |
Liveness prediction error |
|
FAILED_TO_READ_IMAGE |
File decoding error |
File decoding error |
|
FAILED_TO_READ_MODEL |
Failed to read model |
Model deserializing error |
|
FAILED_TO_WRITE_IMAGE |
File encoding error |
File encoding error |
|
INVALID_CONFIG |
Field * not found in config |
Configuration file deserializing error |
|
INVALID_FUSE_MODE |
Invalid fuse mode provided |
Invalid fuse mode provided |
|
INVALID_META |
Invalid OS value provided in meta, should be one of: UNKNOWN, DESKTOP, ANDROID, IOS |
Invalid facesdk::Meta value |
|
LICENSE_ERROR |
Some error occurred during license checking |
Some error occurred during license checking |
|
NO_SUCH_OBJECT_IN_BUILD |
Object * not found |
Engine or backend is not supported by the build |
|
NULLPTR |
Empty image |
Nullptr provided |
|
TOO_MANY_FACES |
Too many faces detected |
Face detector found more than one face on image. Please, note, that very small faces may be ignored if they are below the sensitivity level. |
|
UNKNOWN |
JNI: unknown exception |
Unhandled exception in the code |
Veriff errors
If the transaction receives an error for reason codes marked Yes in the Retry column, you can ask the user to retry taking a document image.
Reason |
Message |
Retry |
105 |
Suspicious behavior |
|
204 |
Poor image quality |
|
504 |
Attempted deceit, device screen used |
|
505 |
Attempted deceit, printout used |
|
507 |
Presented document tampered, data cross reference |
|
508 |
Presented document tampered, document similarity to specimen |
|
602 |
Presented document type not supported |
|
608 |
Document front missing |
Yes |
614 |
Document front not fully in frame |
Yes |
619 |
Document data not visible |
Yes |
621 |
Document annulled or damaged |
Yes |
625 |
Unable to collect surname |
Yes |
627 |
Unable to collect date of birth |
Yes |
628 |
Unable to collect issue date |
Yes |
629 |
Unable to collect expiry date |
Yes |
630 |
Unable to collect gender |
Yes |
631 |
Unable to collect document number |
Yes |
632 |
Unable to collect personal number |
Yes |
633 |
Unable to collect nationality |
Yes |
634 |
Unable to collect home address |
Yes |
644 |
Unable to collect Identificador de Ciudadano (INE) |
Yes |
645 |
Resubmit - Unable to collect OCR (IFE) |
Yes |
647 |
Document not recognized |
Yes |
648 |
Technical issues |
Yes |
653 |
Unable to collect residence permit type |
Yes |
654 |
Unable to collect driver’s license number |
Yes |