Introduction to Identity Verification
Verify the identity of your users for global KYC and anti-fraud.
View Identity Verification requests, responses, and example code
Learn about Plaid's key concepts and run starter code
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.
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
- 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.
- Under Identity Verification, select or create the template you want to use, click the Integration button, and copy the
- (Optional) If you plan to integrate with Monitor, enable the Screening Program option and select the appropriate Monitor program.
- (Optional) Call
/identity_verification/createif you already have information about your user that you can fill out on their behalf. See below for more details.
/link/token/create. In addition to the required parameters, you will need to provide the following:
identity_verification.template_id, use the
template_idyou copied in step 2.
["identity_verification"]. Identity Verification is mutually exclusive with other products.
user.email_address. See below for details on these fields.
- On your web or mobile client, create an instance of Link using the
/link/token/create; for more details, see the Link documentation.
- When the user has successfully completed the client-side Link flow, you will receive an
onSuccesscallback and be able to review the session in the dashboard.
- 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/createresponse, or from the Identity Verification webhooks that Plaid sends during the process.
- You can retrieve a list of all of your user's verification attempts by making a call to
/identity_verification/list, passing in the
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
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.
/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.
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.
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.