PingOne

Verification flow

When using the PingOne Verify IdP Adapter through the PingFederate authentication application programming interface (API), the following flow is used for verification requests.

Identity verification

A flow diagram that shows the verification flow with the PingFederate authentication API
  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