Plaid logo
Docs
ALL DOCS

Identity Verification

  • Introduction to Identity Verification
  • Webhooks
  • Testing in Sandbox
  • Hybrid input validation
Plaid logo
Docs
Plaid.com
Get API keys
Open nav

Introduction to Identity Verification

Verify the identity of your users for global KYC and anti-fraud.

Explore API

API Reference

View Identity Verification requests, responses, and example code

View Identity Verification API

Get started

Request Sandbox access for Identity Verification

Get started

Overview

Plaid Identity Verification lets you verify the identity of your customers and seamlessly stitches together verification methods. Using Identity Verification, you can verify identification documents, phone numbers, name, date of birth, ID numbers, addresses, and more. Identity Verification also integrates directly with Monitor for an end-to-end verification and KYC solution.

image of Plaid Link Identity Verification UI

Plaid Identity Verification can also be used together with Plaid Identity in a single workflow to provide full identity verification and fraud reduction. Identity Verification is used to verify that the user of your app is the person they claim to be, while Identity is used to confirm that the ownership information on their linked bank or credit card account matches this verified identity.

Identity Verification can be used to verify end users in any country. To integrate with Identity Verification, your company must be based in the US (support for additional countries coming soon).

Identity Verification integration process

Access to Identity Verification in the Sandbox test environment is not provided by default. To obtain Sandbox access, request product access from the Dashboard.

  1. Visit the Plaid dashboard and, in the upper-left corner, select Identity Verification and Monitor from the team selection drop-down list. If you don't see this option, you may need to talk to your Plaid Account Manager and ask them to enable this product for you, or file a Product access request.
  2. Under Identity Verification, select or create the template you want to use, click the Integration button, and copy the template_id.
    • (Optional) If you plan to integrate with Monitor, enable the Screening Program option and select the appropriate Monitor program.
  3. (Optional) Call /identity_verification/create if you already have information about your user that you can fill out on their behalf. See below for more details.
  4. Call /link/token/create. In addition to the required parameters, you will need to provide the following:
    • For identity_verification.template_id, use the template_id you copied in step 2.
    • For products, use ["identity_verification"]. Identity Verification is mutually exclusive with other products.
    • Provide user.client_user_id and optionally user.email_address. See below for details on these fields.
  5. On your web or mobile client, create an instance of Link using the link_token returned by /link/token/create; for more details, see the Link documentation.
  6. When the user has successfully completed the client-side Link flow, you will receive an onSuccess callback and be able to review the session in the dashboard.
  7. To retrieve the status of your user's verification attempt, make a call to /identity_verification/get, passing in the verification session ID. You can retrieve this session ID from the metadata in the Link callbacks, from the /identity_verification/create response, or from the Identity Verification webhooks that Plaid sends during the process.
  8. You can retrieve a list of all of your user's verification attempts by making a call to /identity_verification/list, passing in the client_user_id and the template_id.
Mobile support

Identity Verification is fully supported by Plaid's mobile SDKs. Because the end user may need to use the camera during the Identity Verification flow, your app must request certain permissions in order to fully support Identity Verification flows on mobile. For more details, see the documentation for the Android and iOS SDKs.

Client User Id

At the center of Identity Verification is the mandatory client_user_id field, which should be a unique and persistent identifier for your customer, such as the id field on your users table.

Identity Verification intelligently handles sessions being started with the same client_user_id multiple times. If your customer starts a Link session, closes it, reopens it, and reopens your Link integration, their session will resume from where they left off. Likewise, if your customer has completed their Link session in the past (by either failing verification or passing), Plaid will not serve them another session unless you've manually authorized another attempt from the dashboard or made a call to /identity_verification/retry.

Plaid indexes the client_user_id you provide, allowing you to look up users using your internal id.

If you do not want to expose your internal id to Plaid directly, you can symmetrically encrypt the identifier with a secret key that only your servers know.

Supplementing email

During /link/token/create, Identity Verification accepts email_address as an optional additional parameter. While the field is optional, we highly recommend providing it. Identity Verification will include the user's email in the Link session and perform a number of anti-fraud related checks, including analyzing social networks, abusive emails, and email address trustworthiness.

Pre-populating user information

If you already know some information about your user (such as their name, phone number, or mailing address), you can simplify the verification process by making a call to /identity_verification/create, passing in any information you know about your user, including their client_user_id. When you open up a Link session against this same user id, Identity Verification can make use of the information that you passed in, allowing your user to skip fields or entire screens.

Verification links

Identity Verification offers the option to generate verification links. These links can be used in scenarios where your user signed up for your service in a context where they could not immediately verify their identity -- for example, if they signed up in person, via a paper form. To generate a verification link, click Create verification from the Identity Verification template view in the dashboard.

Testing Identity Verification

For more information about testing Identity Verification in Sandbox, see Testing Identity Verification.

Next steps

To learn more about building with Identity Verification, see the Identity Verification API Reference.

If you're ready to launch to Production, see the Launch checklist.

Launch checklist

Recommended steps to take before launching in Production

Launch
Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Twitter
Twitter
Discord
Discord