---
title: Verification flow
description: When using the PingOne Verify IdP Adapter through the PingFederate authentication application programming interface (API), the following flow is used for verification requests.
component: pingone
page_id: pingone:pingone_verify_integration_kit_11:pf_p1_verify_ik_verification_flow_11
canonical_url: https://docs.pingidentity.com/integrations/pingone/pingone_verify_integration_kit_11/pf_p1_verify_ik_verification_flow_11.html
revdate: July 3, 2024
section_ids:
  identity-verification: Identity verification
---

# Verification flow

When using the PingOne Verify IdP Adapter through the PingFederate authentication application programming interface (API) *(tooltip: \<div class="paragraph">
\<p>A specification of interactions available for building software to access an application or service.\</p>
\</div>)*, the following flow is used for verification requests.

## Identity verification

![A flow diagram that shows the verification flow with the PingFederate authentication API](_images/cmm1618412883865.png)

1. The user completes first-factor authentication or begins the registration flow. ID verification begins when using the PingOne Verify IdP Adapter is triggered in the PingFederate authentication or registration flow.

2. PingFederate returns a status of `ID_VERIFICATION_REQUIRED` in the response to the API client and provides a QR code and a verification code.

3. The API client displays the QR code and verification code to the user.

4. The user completes the ID verification process in the verification app.

5. The API client invokes the poll action.

6. PingFederate returns the status of `ID_VERIFICATION_IN_PROGRESS` to the API client.

7. The poll action repeats until one of the following statuses occurs:

   * `ID_VERIFICATION_REQUIRED`

     * Verification failed, but a retry is allowed

     * The user can complete (or retry) the verification process with the provided QR code and verification code

     * There are two options available to the API client:

       1. Continue polling by calling `poll` and wait for the status to change

       2. Cancel the verification request by calling `cancelAuthentication`

   * `ID_VERIFICATION_FAILED`

     * Verification failed, and a retry is not allowed

     * The authentication request is cancelled

   * `ID_VERIFICATION_TIMED_OUT`

     * Verification timed out

     * There are two options available to the API client:

       1. Retry by calling `retryVerification`

       2. Cancel the verification request by calling `cancelAuthentication`

   * `ID_VERIFICATION_COMPLETED`

     * Verification succeeded

     * The API client continues the flow by calling `continueAuthentication`

     * PingFederate returns the transaction status and user data to the API client
