---
title: Verify Documents
description: "For each verification transaction, you can read documents (such as the images of documents and images of the user, \"selfies\") submitted to the transaction for a short time. The documents endpoint, /environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/documents, receives all requests for documents associated with the verification transaction. This endpoint returns the data regardless of whether the transaction is ever submitted for verification."
component: pingone-api
page_id: pingone-api:verify:verify-documents
canonical_url: https://developer.pingidentity.com/pingone-api/verify/verify-documents.html
section_ids:
  assigning-admin-roles-and-permissions-to-this-service: Assigning admin roles and permissions to this service
  verify-all-verify-documents-data-model: All verify documents data model
  verify-specific-verify-document-data-model: Specific verify document data model
  verify-verify-document-data-model: Verify document data model
  verify-document-types-and-values: Document types and values
---

# Verify Documents

For each verification transaction, you can read documents (such as the images of documents and images of the user, "selfies") submitted to the transaction for a short time. The `documents` endpoint, `/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/documents`, receives all requests for documents associated with the verification transaction. This endpoint returns the data regardless of whether the transaction is ever submitted for verification.

Only those with an Identity Data Admin role are permitted to use the `documents` endpoint.

Documents are retained for 30 minutes after creating or updating the document (submitted with the requests [Create Verification Document](verify-documents/create-verification-documents.html) or [Update Verification Document](verify-documents/update-verification-documents.html) or collected by the end user in the Universal Capture frontend) or until manually deleted with [Delete Verification Document](verify-documents/delete-verification-document.html). Until removed, any number of GET or PUT requests to the documents endpoint can be successfully performed.

|   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | The document types accepted by a verify transaction is determined by the verify transaction's `requirements` object and the verify policy identified by the verify transaction's `verifyPolicy.id`. If a document is unacceptable, an error is returned that is similar to:```none
{
    "id": "05f2cbb8-bd1b-41b1-abf0-d5fc4fc4c875",
    "code": "INVALID_DATA",
    "message": "The request could not be completed. One or more validation errors were in the request.",
    "details": [
        {
            "code": "INVALID_VALUE",
            "target": "type",
            "message": "invalid document type for transaction"
        }
    ]
}
``` |

## Assigning admin roles and permissions to this service

Admin role assignments determine access to PingOne APIs. When assigning admin roles to this service, refer to [PingOne Permissions by Service](../platform/reference/roles-and-permissions-in-pingone/permissions-by-service.html) for the service-specific permissions.

You can also choose to assign admin roles based on particular service resources. Refer to [PingOne Permissions by Resource](../platform/reference/roles-and-permissions-in-pingone/permissions-by-resource.html) when assigning admin roles per service resources.

Admin assignments to roles are set by:

* [Automatic assignment for some roles](../platform/roles/predefined-roles.html#automatic-role-assignment).

* [Group Role Assignments](../platform/group-role-assignments/group-role-assignments.html).

* [User Role Assignments](../platform/users/user-role-assignments.html).

Refer to [Roles Management](../platform/roles.html) for more information.

## All verify documents data model

When [all verify documents](verify-documents/read-all-verification-documents.html) for a verification transaction are requested, the [verify document](#verify-verify-document-data-model) for each verification type of the most recent retry appears in a `documents` array in the response. The verify document data model for each verification type of earlier retries appear in a `previousAttempts` array in the response.

| Property           | Type      | Required? | Mutable?  | Description                                                                                                                              |
| ------------------ | --------- | --------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `_embedded`        | Object    | N/A       | Read-only | Container for returned data.                                                                                                             |
| `documents`        | Object\[] | N/A       | Read-only | Array of [verifiedData objects](#verify-verify-document-data-model) for each verification type for the most recent verification attempt. |
| `previousAttempts` | Object\[] | N/A       | Read-only | Array of [verifiedData objects](#verify-verify-document-data-model) for each verification type for unacceptable verification attempts.   |
| `size`             | Integer   | N/A       | Read-only | The number of objects returned in `documents`.                                                                                           |

## Specific verify document data model

When [specific verify document](verify-documents/read-one-verification-document.html) for a verification type within a verification transaction are requested, the [verify document data model](#verify-verify-document-data-model) appears as the response, regardless of which retry attempt it is.

## Verify document data model

| Property               | Type    | Required? | Mutable?  | Description                                                                                                      |
| ---------------------- | ------- | --------- | --------- | ---------------------------------------------------------------------------------------------------------------- |
| `environment.id`       | String  | Required  | Immutable | PingOne environment identifier (UUID) for user                                                                   |
| `id`                   | String  | N/A       | Read-only | Document identifier (UUID)                                                                                       |
| `retry.attempt`        | Integer | N/A       | Read-only | Number of the retry attempt when submitting images.                                                              |
| `source.provider`      | String  | Required  | Immutable | Provider of the documents. Can be `END_USER`, `AUTHENTICATED_CLIENT`.                                            |
| `status`               | String  | N/A       | Read-only | Status of the document. Can be `COLLECTED` or `PROCESSED`.                                                       |
| `type`                 | String  | Required  | Immutable | Type of document in `value`. Refer to [Document types and values](#verify-document-types-and-values).            |
| `user.id`              | String  | Required  | Immutable | Identifier (UUID) for the user submitting the verify transaction                                                 |
| `value`                | String  | Required  | Immutable | Document, for the format of the document refer to [Document types and values](#verify-document-types-and-values) |
| `verifyTransaction.id` | String  | Required  | Immutable | Identifier (UUID) for the verify transaction                                                                     |

### Document types and values

| Document Type           | Value                                                                                         |
| ----------------------- | --------------------------------------------------------------------------------------------- |
| Credential Verification | W3C Verifiable Credential or ISO 18013 Mobile driving license (mDL) or Mobile document (mDoc) |
| Document Back           | Base64 encoded JPEG                                                                           |
| Document Front          | Base64 encoded JPEG                                                                           |
| Driver License Back     | Base64 encoded JPEG                                                                           |
| Driver License Code     | decoded text from the PDF417 barcode                                                          |
| Driver License Front    | Base64 encoded JPEG                                                                           |
| Email                   | textual email address                                                                         |
| Passport Card Back      | Base64 encoded JPEG                                                                           |
| Passport Card Front     | Base64 encoded JPEG                                                                           |
| Passport Front          | Base64 encoded JPEG                                                                           |
| Phone                   | textual phone number                                                                          |
| Selfie                  | Base64 encoded JPEG                                                                           |
| Voice Input             | Base64 encoded LPCM WAV voice recording submitted for verification                            |
| Voice Sample            | Base64 encoded LPCM WAV voice recording submitted for enrollment                              |

|   |                                                                            |
| - | -------------------------------------------------------------------------- |
|   | Voice verification is deprecated and will be removed on November 25, 2026. |

|   |                                                                                                                                                                                                     |
| - | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Voice recordings must be sampled at 16 KHz when submitted from reading [voice phrases (deprecated)](verify-voice-phrases.html) or at 8 KHz when submitted from longer, text-independent recordings. |
