Retry an Identity Verification

POST /identity_verification/retry

Allow a customer to retry their Identity Verification

Request Body

Required

Request input for retrying an identity verification attempt

Parameters

client_user_id
required, string
A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the /link/token/create client_user_id to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
template_id
required, string
ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.
strategy
required, string
An instruction specifying what steps the new Identity Verification attempt should require the user to complete: reset - Restart the user at the beginning of the session, regardless of whether they successfully completed part of their previous session. incomplete - Start the new session at the step that the user failed in the previous session, skipping steps that have already been successfully completed. infer - If the most recent Identity Verification attempt associated with the given client_user_id has a status of failed or expired, retry using the incomplete strategy. Otherwise, use the reset strategy. custom - Start the new session with a custom configuration, specified by the value of the steps field Note: The incomplete strategy cannot be applied if the session’s failing step is screening or risk_check. The infer strategy cannot be applied if the session’s status is still active
user
object
User information collected outside of Link, most likely via your own onboarding process. Each of the following identity fields are optional: email_address phone_number date_of_birth name address id_number Specifically, these fields are optional in that they can either be fully provided (satisfying every required field in their subschema) or omitted from the request entirely by not providing the key or value. Providing these fields via the API will result in Link skipping the data collection process for the associated user. All verification steps enabled in the associated Identity Verification Template will still be run. Verification steps will either be run immediately, or once the user completes the accept_tos step, depending on the value provided to the gave_consent field.
email_address
string
A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see RFC 3696.
phone_number
string
A valid phone number in E.164 format.
date_of_birth
string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
name
object
You can use this field to pre-populate the user’s legal name; if it is provided here, they will not be prompted to enter their name in the identity verification attempt.
given_name
required, string
A string with at least one non-whitespace character, with a max length of 100 characters.
family_name
required, string
A string with at least one non-whitespace character, with a max length of 100 characters.
address
object
Home address for the user. Supported values are: not provided, address with only country code or full address. For more context on this field, see Input Validation by Country.
street
string
The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
street2
string
Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
city
string
City from the end user’s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters."
region
string
An ISO 3166-2 subdivision code. Related terms would be “state”, “province”, “prefecture”, “zone”, “subdivision”, etc.
postal_code
string
The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
country
required, string
Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
id_number
object
ID number submitted by the user, currently used only for the Identity Verification product. If the user has not submitted this data yet, this field will be null. Otherwise, both fields are guaranteed to be filled.
value
required, string
Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped. For specific format requirements by ID type, see Hybrid Input Validation.
type
required, string
A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see Hybrid Input Validation.
steps
object
Instructions for the custom retry strategy specifying which steps should be required or skipped. Note: This field must be provided when the retry strategy is custom and must be omitted otherwise. Custom retries override settings in your Plaid Template. For example, if your Plaid Template has verify_sms disabled, a custom retry with verify_sms enabled will still require the step. The selfie_check step is currently not supported on the sandbox server. Sandbox requests will silently disable the selfie_check step when provided.
verify_sms
required, boolean
A boolean field specifying whether the new session should require or skip the verify_sms step.
kyc_check
required, boolean
A boolean field specifying whether the new session should require or skip the kyc_check (Data Source Verification) step.
documentary_verification
required, boolean
A boolean field specifying whether the new session should require or skip the documentary_verification step.
selfie_check
required, boolean
A boolean field specifying whether the new session should require or skip the selfie_check step.
is_shareable
boolean
A flag specifying whether you would like Plaid to expose a shareable URL for the verification being retried. If a value for this flag is not specified, the is_shareable setting from the original verification attempt will be used.
client_id
string
Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.
secret
string
Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.

Response

A identity verification attempt represents a customer’s attempt to verify their identity, reflecting the required steps for completing the session, the results for each step, and information collected in the process.

Response Properties

id
required, string
ID of the associated Identity Verification attempt.
client_user_id
required, string
A unique ID that identifies the end user in your system. This ID can also be used to associate user-specific data from other Plaid products. Financial Account Matching requires this field and the /link/token/create client_user_id to be consistent. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.
created_at
required, string
An ISO8601 formatted timestamp.
completed_at
required, string
An ISO8601 formatted timestamp.
previous_attempt_id
required, string
The ID for the Identity Verification preceding this session. This field will only be filled if the current Identity Verification is a retry of a previous attempt.
shareable_url
required, string
A shareable URL that can be sent directly to the user to complete verification
template
required, object
The resource ID and version number of the template configuring the behavior of a given Identity Verification.
id
required, string
ID of the associated Identity Verification template. Like all Plaid identifiers, this is case-sensitive.
version
required, integer
Version of the associated Identity Verification template.
user
required, object
The identity data that was either collected from the user or provided via API in order to perform an Identity Verification.
phone_number
string
A valid phone number in E.164 format.
date_of_birth
required, string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
ip_address
required, string
An IPv4 or IPV6 address.
email_address
required, string
A valid email address. Must not have leading or trailing spaces and address must be RFC compliant. For more information, see RFC 3696.
name
required, object
The full name provided by the user. If the user has not submitted their name, this field will be null. Otherwise, both fields are guaranteed to be filled.
given_name
required, string
A string with at least one non-whitespace character, with a max length of 100 characters.
family_name
required, string
A string with at least one non-whitespace character, with a max length of 100 characters.
address
required, object
Even if an address has been collected, some fields may be null depending on the region’s addressing system. For example: Addresses from the United Kingdom will not include a region Addresses from Hong Kong will not include postal code
street
required, string
The primary street portion of an address. If an address is provided, this field will always be filled. A string with at least one non-whitespace alphabetical character, with a max length of 80 characters.
street2
required, string
Extra street information, like an apartment or suite number. If provided, a string with at least one non-whitespace character, with a max length of 50 characters.
city
required, string
City from the end user’s address. A string with at least one non-whitespace alphabetical character, with a max length of 100 characters."
region
required, string
An ISO 3166-2 subdivision code. Related terms would be “state”, “province”, “prefecture”, “zone”, “subdivision”, etc.
postal_code
required, string
The postal code for the associated address. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
country
required, string
Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
id_number
required, object
ID number submitted by the user, currently used only for the Identity Verification product. If the user has not submitted this data yet, this field will be null. Otherwise, both fields are guaranteed to be filled.
value
required, string
Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped. For specific format requirements by ID type, see Hybrid Input Validation.
type
required, string
A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see Hybrid Input Validation.
status
required, string
The status of this Identity Verification attempt. active - The Identity Verification attempt is incomplete. The user may have completed part of the session, but has neither failed or passed. success - The Identity Verification attempt has completed, passing all steps defined to the associated Identity Verification template failed - The user failed one or more steps in the session and was told to contact support. expired - The Identity Verification attempt was active for a long period of time without being completed and was automatically marked as expired. Note that sessions currently do not expire. Automatic expiration is expected to be enabled in the future. canceled - The Identity Verification attempt was canceled, either via the dashboard by a user, or via API. The user may have completed part of the session, but has neither failed or passed. pending_review - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review.
steps
required, object
Each step will be one of the following values: active - This step is the user’s current step. They are either in the process of completing this step, or they recently closed their Identity Verification attempt while in the middle of this step. Only one step will be marked as active at any given point. success - The Identity Verification attempt has completed this step. failed - The user failed this step. This can either call the user to fail the session as a whole, or cause them to fallback to another step depending on how the Identity Verification template is configured. A failed step does not imply a failed session. waiting_for_prerequisite - The user needs to complete another step first, before they progress to this step. This step may never run, depending on if the user fails an earlier step or if the step is only run as a fallback. not_applicable - This step will not be run for this session. skipped - The retry instructions that created this Identity Verification attempt specified that this step should be skipped. expired - This step had not yet been completed when the Identity Verification attempt as a whole expired. canceled - The Identity Verification attempt was canceled before the user completed this step. pending_review - The Identity Verification attempt template was configured to perform a screening that had one or more hits needing review. manually_approved - The step was manually overridden to pass by a team member in the dashboard. manually_rejected - The step was manually overridden to fail by a team member in the dashboard.
accept_tos
required, string
The status of a step in the Identity Verification process.
verify_sms
required, string
The status of a step in the Identity Verification process.
kyc_check
required, string
The status of a step in the Identity Verification process.
documentary_verification
required, string
The status of a step in the Identity Verification process.
selfie_check
required, string
The status of a step in the Identity Verification process.
watchlist_screening
required, string
The status of a step in the Identity Verification process.
risk_check
required, string
The status of a step in the Identity Verification process.
documentary_verification
required, object
Data, images, analysis, and results from the documentary_verification step. This field will be null unless steps.documentary_verification has reached a terminal state of either success or failed.
status
required, string
The outcome status for the associated Identity Verification attempt’s documentary_verification step. This field will always have the same value as steps.documentary_verification.
documents
required, array[object]
An array of documents submitted to the documentary_verification step. Each entry represents one user submission, where each submission will contain both a front and back image, or just a front image, depending on the document type. Note: Plaid will automatically let a user submit a new set of document images up to three times if we detect that a previous attempt might have failed due to user error. For example, if the first set of document images are blurry or obscured by glare, the user will be asked to capture their documents again, resulting in at least two separate entries within documents. If the overall documentary_verification is failed, the user has exhausted their retry attempts.
status
required, string
An outcome status for this specific document submission. Distinct from the overall documentary_verification.status that summarizes the verification outcome from one or more documents.
attempt
required, integer
The attempt field begins with 1 and increments with each subsequent document upload.
images
required, object
URLs for downloading original and cropped images for this document submission. The URLs are designed to only allow downloading, not hot linking, so the URL will only serve the document image for 60 seconds before expiring. The expiration time is 60 seconds after the GET request for the associated Identity Verification attempt. A new expiring URL is generated with each request, so you can always rerequest the Identity Verification attempt if one of your URLs expires.
original_front
required, string
Temporary URL that expires after 60 seconds for downloading the uncropped original image of the front of the document.
original_back
required, string
Temporary URL that expires after 60 seconds for downloading the original image of the back of the document. Might be null if the back of the document was not collected.
cropped_front
required, string
Temporary URL that expires after 60 seconds for downloading a cropped image containing just the front of the document.
cropped_back
required, string
Temporary URL that expires after 60 seconds for downloading a cropped image containing just the back of the document. Might be null if the back of the document was not collected.
face
required, string
Temporary URL that expires after 60 seconds for downloading a crop of just the user’s face from the document image. Might be null if the document does not contain a face photo.
extracted_data
required, object
Data extracted from a user-submitted document.
id_number
required, string
Alpha-numeric ID number extracted via OCR from the user’s document image.
category
required, string
The type of identity document detected in the images provided. Will always be one of the following values: drivers_license - A driver’s license issued by the associated country, establishing identity without any guarantee as to citizenship, and granting driving privileges id_card - A general national identification card, distinct from driver’s licenses as it only establishes identity passport - A travel passport issued by the associated country for one of its citizens residence_permit_card - An identity document issued by the associated country permitting a foreign citizen to temporarily reside there resident_card - An identity document issued by the associated country permitting a foreign citizen to permanently reside there visa - An identity document issued by the associated country permitting a foreign citizen entry for a short duration and for a specific purpose, typically no longer than 6 months Note: This value may be different from the ID type that the user selects within Link. For example, if they select “Driver’s License” but then submit a picture of a passport, this field will say passport
expiration_date
required, string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
issuing_country
required, string
Valid, capitalized, two-letter ISO code representing the country of this object. Must be in ISO 3166-1 alpha-2 form.
issuing_region
required, string
An ISO 3166-2 subdivision code. Related terms would be “state”, “province”, “prefecture”, “zone”, “subdivision”, etc.
date_of_birth
required, string
A date extracted from the document in the format YYYY-MM-DD (RFC 3339 Section 5.6).
address
required, object
The address extracted from the document. The address must at least contain the following fields to be a valid address: street, city, country. If any are missing or unable to be extracted, the address will be null. region, and postal_code may be null based on the addressing system. For example: Addresses from the United Kingdom will not include a region Addresses from Hong Kong will not include postal code Note: Optical Character Recognition (OCR) technology may sometimes extract incorrect data from a document.
street
required, string
The full street address extracted from the document.
city
required, string
City extracted from the document.
region
required, string
An ISO 3166-2 subdivision code extracted from the document. Related terms would be “state”, “province”, “prefecture”, “zone”, “subdivision”, etc.
postal_code
required, string
The postal code extracted from the document. Between 2 and 10 alphanumeric characters. For US-based addresses this must be 5 numeric digits.
country
required, string
Valid, capitalized, two-letter ISO code representing the country extracted from the document. Must be in ISO 3166-1 alpha-2 form.
name
object
The individual’s name extracted from the document.
given_name
required, string
A string with at least one non-whitespace character, with a max length of 100 characters.
family_name
required, string
A string with at least one non-whitespace character, with a max length of 100 characters.
analysis
required, object
High level descriptions of how the associated document was processed. If a document fails verification, the details in the analysis object should help clarify why the document was rejected.
authenticity
required, string
High level summary of whether the document in the provided image matches the formatting rules and security checks for the associated jurisdiction. For example, most identity documents have formatting rules like the following: The image of the person’s face must have a certain contrast in order to highlight skin tone The subject in the document’s image must remove eye glasses and pose in a certain way The informational fields (name, date of birth, ID number, etc.) must be colored and aligned according to specific rules Security features like watermarks and background patterns must be present So a match status for this field indicates that the document in the provided image seems to conform to the various formatting and security rules associated with the detected document.
image_quality
required, string
A high level description of the quality of the image the user submitted. For example, an image that is blurry, distorted by glare from a nearby light source, or improperly framed might be marked as low or medium quality. Poor quality images are more likely to fail OCR and/or template conformity checks. Note: By default, Plaid will let a user recapture document images twice before failing the entire session if we attribute the failure to low image quality.
extracted_data
required, object
Analysis of the data extracted from the submitted document.
name
required, string
A match summary describing the cross comparison between the subject’s name, extracted from the document image, and the name they separately provided to identity verification attempt.
date_of_birth
required, string
A match summary describing the cross comparison between the subject’s date of birth, extracted from the document image, and the date of birth they separately provided to the identity verification attempt.
expiration_date
required, string
A description of whether the associated document was expired when the verification was performed. Note: In the case where an expiration date is not present on the document or failed to be extracted, this value will be no_data.
issuing_country
required, string
A binary match indicator specifying whether the country that issued the provided document matches the country that the user separately provided to Plaid. Note: You can configure whether a no_match on issuing_country fails the documentary_verification by editing your Plaid Template.
fraud_analysis_details
object
Details about the fraud analysis performed on the document.
type_supported
required, string
The outcome of the fraud check.
portrait_presence_check
required, string
The outcome of the fraud check.
portrait_details_check
required, string
The outcome of the fraud check.
image_composition_check
required, string
The outcome of the fraud check.
integrity_check
required, string
The outcome of the fraud check.
detail_check
required, string
The outcome of the fraud check.
issue_date_check
required, string
The outcome of the fraud check, when available.
image_quality_details
object
Details about the image quality of the document.
glare_check
required, string
The outcome of the image quality check.
dimensions_check
required, string
The outcome of the image quality check.
blur_check
required, string
The outcome of the image quality check.
human_review
object
Details about the human review check, which refers to a check that is performed by a document specialist.
status
required, string
The outcome of the human review check, when available. The following values are possible: success - The document passed the check. failed - The document failed the check. no_data - The document was submitted, but the document specialist review was not completed in time.
aamva_verification
required, object
Analyzed AAMVA data for the associated hit. Note: This field is only available for U.S. driver’s licenses issued by participating states.
is_verified
required, boolean
The overall outcome of checking the associated hit against the issuing state database.
id_number
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
id_issue_date
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
id_expiration_date
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
street
required, string
The outcome of checking the associated hit against state databases. match - The field is an exact match with the state database. partial_match - The field is a partial match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
city
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
postal_code
required, string
The outcome of checking the associated hit against state databases. match - The field is an exact match with the state database. partial_match - The field is a partial match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
date_of_birth
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
gender
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
height
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
eye_color
required, string
The outcome of checking the particular field against state databases. match - The field is an exact match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
first_name
required, string
The outcome of checking the associated hit against state databases. match - The field is an exact match with the state database. partial_match - The field is a partial match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
middle_name
required, string
The outcome of checking the associated hit against state databases. match - The field is an exact match with the state database. partial_match - The field is a partial match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
last_name
required, string
The outcome of checking the associated hit against state databases. match - The field is an exact match with the state database. partial_match - The field is a partial match with the state database. no_match - The field is not an exact match with the state database. no_data - The field was unable to be checked against state databases.
redacted_at
required, string
An ISO8601 formatted timestamp.
selfie_check
required, object
Additional information for the selfie_check step. This field will be null unless steps.selfie_check has reached a terminal state of either success or failed.
status
required, string
The outcome status for the associated Identity Verification attempt’s selfie_check step. This field will always have the same value as steps.selfie_check.
selfies
required, array[object]
An array of selfies submitted to the selfie_check step. Each entry represents one user submission.
status
required, string
An outcome status for this specific selfie. Distinct from the overall selfie_check.status that summarizes the verification outcome from one or more selfies.
attempt
required, integer
The attempt field begins with 1 and increments with each subsequent selfie upload.
capture
required, object
The image or video capture of a selfie. Only one of image or video URL will be populated per selfie.
image_url
required, string
Temporary URL for downloading an image selfie capture.
video_url
required, string
Temporary URL for downloading a video selfie capture.
analysis
required, object
High level descriptions of how the associated selfie was processed. If a selfie fails verification, the details in the analysis object should help clarify why the selfie was rejected.
document_comparison
required, string
Information about the comparison between the selfie and the document (if documentary verification also ran).
liveness_check
required, string
Assessment of whether the selfie capture is of a real human being, as opposed to a picture of a human on a screen, a picture of a paper cut out, someone wearing a mask, or a deepfake.
facial_analysis
object
Analysis of the facial features of the selfie when compared to the face in the uploaded document, if one is present.
left_eye
required, string
Outcome of the facial analysis for a specific facial feature.
right_eye
required, string
Outcome of the facial analysis for a specific facial feature.
left_brow
required, string
Outcome of the facial analysis for a specific facial feature.
right_brow
required, string
Outcome of the facial analysis for a specific facial feature.
forehead
required, string
Outcome of the facial analysis for a specific facial feature.
middle_forehead
required, string
Outcome of the facial analysis for a specific facial feature.
nose
required, string
Outcome of the facial analysis for a specific facial feature.
philtrum
required, string
Outcome of the facial analysis for a specific facial feature.
mouth
required, string
Outcome of the facial analysis for a specific facial feature.
jaw
required, string
Outcome of the facial analysis for a specific facial feature.
left_cheek
required, string
Outcome of the facial analysis for a specific facial feature.
right_cheek
required, string
Outcome of the facial analysis for a specific facial feature.
kyc_check
required, object
Additional information for the kyc_check (Data Source Verification) step. This field will be null unless steps.kyc_check has reached a terminal state of either success or failed.
status
required, string
The outcome status for the associated Identity Verification attempt’s kyc_check step. This field will always have the same value as steps.kyc_check.
address
required, object
Result summary object specifying how the address field matched.
summary
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
po_box
required, string
Field describing whether the associated address is a post office box. Will be yes when a P.O. box is detected, no when Plaid confirmed the address is not a P.O. box, and no_data when Plaid was not able to determine if the address is a P.O. box.
type
required, string
Field describing whether the associated address is being used for commercial or residential purposes. Note: This value will be no_data when Plaid does not have sufficient data to determine the address’s use.
street
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
city
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
region
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
postal_code
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
international_details
object
Result summary object specifying how the address field matched for fields that are only present on an international KYC check.
building
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
county
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
district
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
house_number
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
subpremise
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
thoroughfare
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
name
required, object
Result summary object specifying how the name field matched.
summary
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
given_name
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
family_name
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
date_of_birth
required, object
Result summary object specifying how the date_of_birth field matched.
summary
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
day
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
month
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
year
string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
id_number
required, object
Result summary object specifying how the id_number field matched.
summary
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
phone_number
required, object
Result summary object specifying how the phone field matched.
summary
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
area_code
required, string
An enum indicating the match type between data provided by user and data checked against an external data source. match indicates that the provided input data was a strong match against external data. partial_match indicates the data approximately matched against external data. For example, “Knope” vs. “Knope-Wyatt” for last name. no_match indicates that Plaid was able to perform a check against an external data source and it did not match the provided input data. no_data indicates that Plaid was unable to find external data to compare against the provided input data. no_input indicates that Plaid was unable to perform a check because no information was provided for this field by the end user.
risk_check
required, object
Additional information for the risk_check step.
status
required, string
The status of a step in the Identity Verification process.
behavior
required, object
Result summary object specifying values for behavior attributes of risk check, when available.
user_interactions
required, string
Field describing the overall user interaction signals of a behavior risk check. This value represents how familiar the user is with the personal data they provide, based on a number of signals that are collected during their session. genuine indicates the user has high familiarity with the data they are providing, and that fraud is unlikely. neutral indicates some signals are present in between risky and genuine, but there are not enough clear signals to determine an outcome. risky indicates the user has low familiarity with the data they are providing, and that fraud is likely. no_data indicates there is not sufficient information to give an accurate signal.
fraud_ring_detected
required, string
Field describing the outcome of a fraud ring behavior risk check. yes indicates that fraud ring activity was detected. no indicates that fraud ring activity was not detected. no_data indicates there was not enough information available to give an accurate signal.
bot_detected
required, string
Field describing the outcome of a bot detection behavior risk check. yes indicates that automated activity was detected. no indicates that automated activity was not detected. no_data indicates there was not enough information available to give an accurate signal.
risk_level
string
Risk level for the given risk check type, when available.
email
required, object
Result summary object specifying values for email attributes of risk check.
is_deliverable
required, string
SMTP-MX check to confirm the email address exists if known.
breach_count
required, integer
Count of all known breaches of this email address if known.
first_breached_at
required, string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
last_breached_at
required, string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
domain_registered_at
required, string
A date in the format YYYY-MM-DD (RFC 3339 Section 5.6).
domain_is_free_provider
required, string
Indicates whether the email address domain is a free provider such as Gmail or Hotmail if known.
domain_is_custom
required, string
Indicates whether the email address domain is custom if known, i.e. a company domain and not free or disposable.
domain_is_disposable
required, string
Indicates whether the email domain is listed as disposable if known. Disposable domains are often used to create email addresses that are part of a fake set of user details.
top_level_domain_is_suspicious
required, string
Indicates whether the email address top level domain, which is the last part of the domain, is fraudulent or risky if known. In most cases, a suspicious top level domain is also associated with a disposable or high-risk domain.
linked_services
required, array[string]
A list of online services where this email address has been detected to have accounts or other activity.
risk_level
string
Risk level for the given risk check type.
factors
array[string]
List of factors, when available, that contribute towards the risk level of the given risk check type.
phone
required, object
Result summary object specifying values for phone attributes of risk check.
linked_services
required, array[string]
A list of online services where this phone number has been detected to have accounts or other activity.
risk_level
string
Risk level for the given risk check type.
factors
array[string]
List of factors, when available, that contribute towards the risk level of the given risk check type.
devices
required, array[object]
Array of result summary objects specifying values for device attributes of risk check.
ip_proxy_type
required, string
An enum indicating whether a network proxy is present and if so what type it is. none_detected indicates the user is not on a detectable proxy network. tor indicates the user was using a Tor browser, which sends encrypted traffic on a decentralized network and is somewhat similar to a VPN (Virtual Private Network). vpn indicates the user is on a VPN (Virtual Private Network) web_proxy indicates the user is on a web proxy server, which may allow them to conceal information such as their IP address or other identifying information. public_proxy indicates the user is on a public web proxy server, which is similar to a web proxy but can be shared by multiple users. This may allow multiple users to appear as if they have the same IP address for instance.
ip_spam_list_count
required, integer
Count of spam lists the IP address is associated with if known.
ip_timezone_offset
required, string
UTC offset of the timezone associated with the IP address.
risk_level
string
Risk level for the given risk check type.
factors
array[string]
List of factors, when available, that contribute towards the risk level of the given risk check type.
identity_abuse_signals
required, object
Result summary object capturing abuse signals related to identity abuse, e.g. stolen and synthetic identity fraud. These attributes are only available for US identities and some signals may not be available depending on what information was collected.
synthetic_identity
required, object
Field containing the data used in determining the outcome of the synthetic identity risk check. Contains the following fields: score - A score from 0 to 100 indicating the likelihood that the user is a synthetic identity.
score
required, integer
A score from 0 to 100 indicating the likelihood that the user is a synthetic identity.
risk_level
string
Risk level for the given risk check type.
first_party_synthetic_fraud
object
Field containing the data used in determining the outcome of a synthetic fraud risk check.
risk_level
required, string
Risk level for the given risk check type.
third_party_synthetic_fraud
object
Field containing the data used in determining the outcome of a synthetic fraud risk check.
risk_level
required, string
Risk level for the given risk check type.
stolen_identity
required, object
Field containing the data used in determining the outcome of the stolen identity risk check. Contains the following fields: score - A score from 0 to 100 indicating the likelihood that the user is a stolen identity.
score
required, integer
A score from 0 to 100 indicating the likelihood that the user is a stolen identity.
risk_level
string
Risk level for the given risk check type.
network
object
Result summary object specifying values for network attributes of risk check.
risk_level
required, string
Risk level for the given risk check type.
factors
required, array[string]
List of factors, when available, that contribute towards the risk level of the given risk check type.
verify_sms
required, object
Additional information for the verify_sms step.
status
required, string
The outcome status for the associated Identity Verification attempt’s verify_sms step. This field will always have the same value as steps.verify_sms.
verifications
required, array[object]
An array where each entry represents a verification attempt for the verify_sms step. Each entry represents one user-submitted phone number. Phone number edits, and in some cases error handling due to edge cases like rate limiting, may generate additional verifications.
status
required, string
The outcome status for the individual SMS verification.
attempt
required, integer
The attempt field begins with 1 and increments with each subsequent SMS verification.
phone_number
required, string
A phone number in E.164 format.
delivery_attempt_count
required, integer
The number of delivery attempts made within the verification to send the SMS code to the user. Each delivery attempt represents the user taking action from the front end UI to request creation and delivery of a new SMS verification code, or to resend an existing SMS verification code. There is a limit of 3 delivery attempts per verification.
solve_attempt_count
required, integer
The number of attempts made by the user within the verification to verify the SMS code by entering it into the front end UI. There is a limit of 3 solve attempts per verification.
initially_sent_at
required, string
An ISO8601 formatted timestamp.
last_sent_at
required, string
An ISO8601 formatted timestamp.
redacted_at
required, string
An ISO8601 formatted timestamp.
watchlist_screening_id
required, string
ID of the associated screening.
beacon_user_id
required, string
ID of the associated Beacon User.
user_id
required, string
A unique user_id generated by Plaid for the client-provided client_user_id. This field is currently in beta.
redacted_at
required, string
An ISO8601 formatted timestamp.
request_id
required, string
A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.