---
title: Verification Metrics
description: For each verification transaction, you can retrieve all application events for the transaction that were generated by the verification service. Use the appEvents endpoint, /environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/appEvents to retrieve application events associated with the verification transaction.
component: pingone-api
page_id: pingone-api:verify:verification-metrics
canonical_url: https://developer.pingidentity.com/pingone-api/verify/verification-metrics.html
section_ids:
  verify-verification-metrics-object-data-model: Verification metrics object data model
  verify-additional-information-data-object: ADDITIONAL_INFORMATION data object
  verify-camera-data-object: CAMERA data object
  verify-data-capture-data-object: DATA_CAPTURE data object
  verify-device-metadata-data-object: DEVICE_METADATA data object
  verify-errors-data-object: ERRORS data object
  capture-flow-errors: Capture flow errors
  network-errors: Network errors
  other-errors: Other errors
  verify-id-capture-data-object: ID_CAPTURE data object
  verify-qr-scanner-data-object: QR_SCANNER data object
  verify-selfie-capture-data-object: SELFIE_CAPTURE data object
---

# Verification Metrics

For each verification transaction, you can retrieve all application events for the transaction that were generated by the verification service. Use the `appEvents` endpoint, `/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/appEvents` to retrieve application events associated with the verification transaction.

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

## Verification metrics object data model

When retrieving the collection of application events for a specified transaction, the application event objects described in these data model tables are contained in an `appEvents` object array.

| Property         | Type   | Required? | Mutable?  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ---------------- | ------ | --------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `collectionDate` | String | N/A       | Read-only | Date that the application event was collected                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `data`           | Object | N/A       | Read-only | Contains the application event objects where the key is the type of application event; refer to [ADDITIONAL\_INFORMATION](#verify-additional-information-data-object), [CAMERA](#verify-camera-data-object), [DATA\_CAPTURE](#verify-data-capture-data-object), [DEVICE\_METADATA](#verify-device-metadata-data-object), [ERRORS](#verify-errors-data-object), [ID\_CAPTURE](#verify-id-capture-data-object), [QR\_SCANNER](#verify-qr-scanner-data-object), or [SELFIE\_CAPTURE](#verify-selfie-capture-data-object) |
| `id`             | String | N/A       | Read-only | Identifier (UUID) of the application event                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

### ADDITIONAL\_INFORMATION data object

| Property                       | Type   | Required? | Mutable?  | Description                                                                                                        |
| ------------------------------ | ------ | --------- | --------- | ------------------------------------------------------------------------------------------------------------------ |
| `custom_app_theme`             | String | N/A       | Read-only | Whether or not the SDK is using a custom AppTheme; can be `TRUE` or `FALSE`                                        |
| `document_submission_complete` | String | N/A       | Read-only | Epoch seconds of when submission completed                                                                         |
| `sdk_initialization_type`      | String | N/A       | Read-only | How the SDK was initialized, from a QR code (`qrScanner`) or a string from an already parsed QR code (`qrString`)  |
| `sdk_initialization`           | String | N/A       | Read-only | Epoch seconds of when SDK initialized                                                                              |
| `sdk_resuming_flow`            | String | N/A       | Read-only | Whether or not the SDK dropped a previous session and is resuming from where it left off; can be `TRUE` or `FALSE` |

### CAMERA data object

| Property               | Type   | Required? | Mutable?  | Description                                                                            |
| ---------------------- | ------ | --------- | --------- | -------------------------------------------------------------------------------------- |
| `config_flash_enabled` | String | N/A       | Read-only | Whether or not the camera's flash is enabled; can be `TRUE` or `FALSE`                 |
| `config_focus_mode`    | String | N/A       | Read-only | Camera focus mode; can be `AUTO_FOCUS`, `CONTINUOUS_FOCUS`, `MANUAL_FOCUS`             |
| `config_resolution`    | String | N/A       | Read-only | Resolution of the camera preview                                                       |
| `permission_granted`   | String | N/A       | Read-only | Whether or not the user granted permission to use the camera; can be `TRUE` or `FALSE` |

### DATA\_CAPTURE data object

| Property         | Type    | Required? | Mutable?  | Description                                                                                                                            |
| ---------------- | ------- | --------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `number_of_otps` | Integer | N/A       | Read-only | Count of one time passwords (OTP) sent                                                                                                 |
| `otp_canceled`   | String  | N/A       | Read-only | Whether or not the user canceled a one time password (OTP) attempt; can be `email_TRUE`, `email_FALSE`, `phone_TRUE`, or `phone_FALSE` |
| `otp_result`     | String  | N/A       | Read-only | Whether or not a one time password (OTP) attempt succeeded; can be `email_TRUE`, `email_FALSE`, `phone_TRUE`, or `phone_FALSE`         |
| `otp_start`      | String  | N/A       | Read-only | Epoch seconds of when one time password (OTP) collection started                                                                       |
| `otp_stop`       | String  | N/A       | Read-only | Epoch seconds of when one time password (OTP) collection ended                                                                         |
| `otp_timeout`    | String  | N/A       | Read-only | Whether or not a one time password (OTP) attempt timed out; can be `email_TRUE`, `email_FALSE`, `phone_TRUE`, or `phone_FALSE`         |
| `otp_tries`      | Integer | N/A       | Read-only | Count of one time password (OTP) attempts                                                                                              |
| `requirements`   | String  | N/A       | Read-only | Whether or not data capture was required; can be `email_TRUE`, `email_FALSE`, `phone_TRUE`, or `phone_FALSE`                           |
| `skipped`        | String  | N/A       | Read-only | Whether or not the user skipped one time password (OTP) capture; can be `email_TRUE`, `email_FALSE`, `phone_TRUE`, or `phone_FALSE`    |
| `start`          | String  | N/A       | Read-only | Epoch seconds of when selection of email or SMS for a one time password (OTP) started                                                  |
| `stop`           | String  | N/A       | Read-only | Epoch seconds of when selection of email or SMS for a one time password (OTP) ended                                                    |

### DEVICE\_METADATA data object

| Property              | Type   | Required? | Mutable?  | Description                                                                                                   |
| --------------------- | ------ | --------- | --------- | ------------------------------------------------------------------------------------------------------------- |
| `app_package`         | String | N/A       | Read-only | Bundle identifier or application package (URI) embedding the SDK                                              |
| `browser`             | String | N/A       | Read-only | Name of the browser; can be `Chrome`, `Firefox`, `Safari`, `Opera`, `Edge`, or `Other`                        |
| `device_manufacturer` | String | N/A       | Read-only | Manufacturer of the device used for the transaction, if applicable, such as `Apple` or `Samsung`              |
| `device_model`        | String | N/A       | Read-only | Model of the device used for the transaction, if applicable, such as `iPhone14` or `GalaxyS22`                |
| `device_type`         | String | N/A       | Read-only | Type of device used for the transaction; can be `IOS`, `ANDROID`, `MOBILE_WEB`, or `DESKTOP_WEB`              |
| `os_version`          | String | N/A       | Read-only | Version of the operating system on the device used for the transaction, if applicable, such as `14.3` or `13` |
| `sdk_version`         | String | N/A       | Read-only | Version of the SDK                                                                                            |
| `user_agent`          | String | N/A       | Read-only | User-Agent HTTP header returned by the browser                                                                |

### ERRORS data object

#### Capture flow errors

| Property                               | Type    | Required? | Mutable?  | Description                                                                              |
| -------------------------------------- | ------- | --------- | --------- | ---------------------------------------------------------------------------------------- |
| `camera_permission_not_granted`        | String  | N/A       | Read-only | Whether or not the user refused to grant permission to use the camera; always `TRUE`     |
| `config_flash_enabled`                 | String  | N/A       | Read-only | Whether or not the camera's flash is enabled; can be `TRUE` or `FALSE`                   |
| `config_focus_mode`                    | String  | N/A       | Read-only | Camera focus mode; can be `AUTO_FOCUS`, `CONTINUOUS_FOCUS`, `MANUAL_FOCUS`               |
| `config_resolution`                    | String  | N/A       | Read-only | Resolution of the camera preview                                                         |
| `data_mismatch_between_front_and_back` | Integer | N/A       | Read-only | Count of occurrences of data mismatch between front and back                             |
| `id_capture_camera_start_error`        | String  | N/A       | Read-only | Text of any camera start errors returned by the service during identity document capture |
| `id_flashlight_glare`                  | Integer | N/A       | Read-only | Count of occurrences of glare from the camera flash on the identity document             |
| `id_full_side_not_visible`             | Integer | N/A       | Read-only | Count of occurrences where the full side of the identity document was not visible        |
| `id_too_far`                           | Integer | N/A       | Read-only | Count of occurrences where the identity document was too far from the camera             |
| `id_type_categorization_error`         | String  | N/A       | Read-only | Text of any type categorization errors returned by the service                           |
| `id_type_unsupported`                  | String  | N/A       | Read-only | Whether or not the camera's flash is enabled; always `TRUE`                              |
| `selfie_camera_start_error`            | String  | N/A       | Read-only | Text of any camera start errors returned by the service during selfie capture            |
| `selfie_face_not_aligned_x_axis`       | Integer | N/A       | Read-only | Count of occurrences where the face was turned too far left or right                     |
| `selfie_face_not_aligned_y_axis`       | Integer | N/A       | Read-only | Count of occurrences where the face was turned too far up or down                        |
| `selfie_face_not_aligned_z_axis`       | Integer | N/A       | Read-only | Count of occurrences where the face was tipped too far clockwise or counterclockwise     |
| `selfie_face_too_close`                | Integer | N/A       | Read-only | Count of occurrences where the face was too close to the camera                          |
| `selfie_face_too_far`                  | Integer | N/A       | Read-only | Count of occurrences where the face was too far from the camera                          |
| `selfie_multiple_faces`                | Integer | N/A       | Read-only | Count of occurrences where multiple faces were discerned in the image                    |
| `selfie_no_face_present`               | Integer | N/A       | Read-only | Count of occurrences where no faces were discernible in the image                        |

#### Network errors

| Property       | Type   | Required? | Mutable?  | Description                            |
| -------------- | ------ | --------- | --------- | -------------------------------------- |
| `network_lost` | String | N/A       | Read-only | Epoch seconds of when network was lost |

#### Other errors

| Property          | Type   | Required? | Mutable?  | Description                                                                                                    |
| ----------------- | ------ | --------- | --------- | -------------------------------------------------------------------------------------------------------------- |
| `sdk_error`       | String | N/A       | Read-only | Description of uncategorized errors from the SDK with the epoch seconds of when the error occurred             |
| `app_event_error` | String | N/A       | Read-only | Description of errors while initializing an app event object with the epoch seconds of when the error occurred |

### ID\_CAPTURE data object

| Property                 | Type    | Required? | Mutable?  | Description                                                                                                                                                                                                                                                                                                                  |
| ------------------------ | ------- | --------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `barcode_captured`       | String  | N/A       | Read-only | Epoch seconds of when capture of the barcode of the identity document ended                                                                                                                                                                                                                                                  |
| `camera_params`          | String  | N/A       | Read-only | Camera parameters used for capture such as focus mode, resolution, and face detection service                                                                                                                                                                                                                                |
| `canceled`               | String  | N/A       | Read-only | Whether or not the user canceled identity document capture; can be `TRUE` or `FALSE`                                                                                                                                                                                                                                         |
| `classification`         | String  | N/A       | Read-only | Classification of the identity document; can be `Driver License` or `Passport`                                                                                                                                                                                                                                               |
| `image_#NUMBER_has_face` | String  | N/A       | Read-only | Whether or not the image (where `#NUMBER` is the page number of the image) has a face; can be `TRUE` or `FALSE`                                                                                                                                                                                                              |
| `image_#NUMBER_score`    | Double  | N/A       | Read-only | Identity document image (where `#NUMBER` is the page number of the image) quality score in the range of 0 to 1                                                                                                                                                                                                               |
| `image_#NUMBER_size`     | String  | N/A       | Read-only | Resolution of the identity document image (where `#NUMBER` is the page number of the image)                                                                                                                                                                                                                                  |
| `image_blurred`          | String  | N/A       | Read-only | Whether or not the image is blurry; can be `TRUE` or `FALSE`                                                                                                                                                                                                                                                                 |
| `mrz_captured`           | String  | N/A       | Read-only | Epoch seconds of when capture of the machine readable zone (MRZ) of the identity document ended                                                                                                                                                                                                                              |
| `page_captured`          | String  | N/A       | Read-only | Page number and epoch seconds, separated by an underscore, for when capture of an identity document image ended. Those with front and back images have pages 1 and 2, such as `1_1650507635` and `2_1650507657`. For passports, when capturing more than one page, page numbers are sequential until all pages are captured. |
| `skipped`                | String  | N/A       | Read-only | Whether or not the user skipped identity document capture; can be `TRUE` or `FALSE`                                                                                                                                                                                                                                          |
| `start`                  | String  | N/A       | Read-only | Epoch seconds of when identity document capture started                                                                                                                                                                                                                                                                      |
| `stop`                   | String  | N/A       | Read-only | Epoch seconds of when identity document capture ended                                                                                                                                                                                                                                                                        |
| `timeout`                | String  | N/A       | Read-only | Epoch seconds of when identity document capture timed out                                                                                                                                                                                                                                                                    |
| `total_images`           | Integer | N/A       | Read-only | Count of captured pages of the identity document                                                                                                                                                                                                                                                                             |
| `vendor`                 | String  | N/A       | Read-only | Vendor used for capturing the identity document; can be `MicroBlink`, `Mitek`, or `Ping`                                                                                                                                                                                                                                     |

### QR\_SCANNER data object

| Property   | Type   | Required? | Mutable?  | Description                                                                   |
| ---------- | ------ | --------- | --------- | ----------------------------------------------------------------------------- |
| `canceled` | String | N/A       | Read-only | Whether or not QR scanning was canceled by the user; can be `TRUE` or `FALSE` |
| `result`   | String | N/A       | Read-only | Result of scanning a QR code; can be `VALID` OR `INVALID`                     |
| `start`    | String | N/A       | Read-only | Start time for scanning a QR code                                             |
| `stop`     | String | N/A       | Read-only | Stop time for scanning a QR code                                              |

### SELFIE\_CAPTURE data object

| Property                     | Type    | Required? | Mutable?  | Description                                                                                           |
| ---------------------------- | ------- | --------- | --------- | ----------------------------------------------------------------------------------------------------- |
| `canceled`                   | String  | N/A       | Read-only | Whether or not the user canceled selfie capture; can be `TRUE` or `FALSE`                             |
| `face_detection_service`     | String  | N/A       | Read-only | Service used for capturing the selfie; can be `VisionKit`, `CoreImage`, or `FirebaseMLKit`            |
| `liveness_check_requested`   | String  | N/A       | Read-only | Whether or not the SDK requested a liveness check; can be `TRUE` or `FALSE`                           |
| `number_of_selfies_captured` | Integer | N/A       | Read-only | Count of captured selfies                                                                             |
| `original_selfie_size`       | String  | N/A       | Read-only | Resolution of the selfie image                                                                        |
| `selfie_face_size`           | String  | N/A       | Read-only | Percentage size of the face in the final captured selfie (includes the percent sign, %)               |
| `selfie_pitch_angle`         | Integer | N/A       | Read-only | Pitch angle in degrees (rotation around x-axis) where the face was turned left or right               |
| `selfie_roll_angle`          | Integer | N/A       | Read-only | Roll angle in degrees (rotation around y-axis) where the face was turned up or down                   |
| `selfie_score`               | Double  | N/A       | Read-only | Selfie image quality score in the range of 0 to 1                                                     |
| `selfie_yaw_angle`           | Integer | N/A       | Read-only | Yaw angle in degrees (rotation around z-axis) where the face was tipped clockwise or counterclockwise |
| `skipped`                    | String  | N/A       | Read-only | Whether or not the user skipped selfie capture; can be `TRUE` or `FALSE`                              |
| `start`                      | String  | N/A       | Read-only | Epoch seconds of when selfie capture started                                                          |
| `stop`                       | String  | N/A       | Read-only | Epoch seconds of when selfie capture ended                                                            |
| `timeout`                    | String  | N/A       | Read-only | Epoch seconds of when identity document capture timed out                                             |
| `vendor`                     | String  | N/A       | Read-only | Vendor used for capturing the selfie; can be `MicroBlink`, `Mitek`, or `Ping`                         |
