Identity Verification
API reference for Identity Verification endpoints and webhooks
Endpoints | |
---|---|
/identity_verification/create | Create a new identity verification |
/identity_verification/get | Retrieve a previously created identity verification |
/identity_verification/list | Filter and list identity verifications |
/identity_verification/retry | Allow a user to retry an identity verification |
Webhooks | |
---|---|
STATUS_UPDATED | The status of an identity verification has been updated |
STEP_UPDATED | A step in the identity verification process has been completed |
RETRIED | An identity verification has been retried |
Endpoints
/identity_verification/create
Create a new identity verification
Create a new Identity Verification for the user specified by the client_user_id
field. The requirements and behavior of the verification are determined by the template_id
provided.
If you don't know whether the associated user already has an active Identity Verification, you can specify "is_idempotent": true
in the request body. With idempotency enabled, a new Identity Verification will only be created if one does not already exist for the associated client_user_id
and template_id
. If an Identity Verification is found, it will be returned unmodified with an 200 OK
HTTP status code.
Request fields and example
is_shareable requiredboolean A flag specifying whether you would like Plaid to expose a shareable URL for the verification being created. | |||||||||||||||||
template_id requiredstring ID of the associated Identity Verification template. | |||||||||||||||||
gave_consent requiredboolean A flag specifying whether the end user has already agreed to a privacy policy specifying that their data will be shared with Plaid for verification purposes. If gave_consent is set to true , the accept_tos step will be marked as skipped and the end user's session will start at the next step requirement.Default: false | |||||||||||||||||
user requiredobject 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.
| |||||||||||||||||
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. | |||||||||||||||||
is_idempotent boolean An optional flag specifying how you would like Plaid to handle attempts to create an Identity Verification when an Identity Verification already exists for the provided client_user_id and template_id .
If idempotency is enabled, Plaid will return the existing Identity Verification. If idempotency is disabled, Plaid will reject the request with a 400 Bad Request status code if an Identity Verification already exists for the supplied client_user_id and template_id . |
1const request: IdentityVerificationCreateRequest = {2 is_shareable: true,3 template_id: 'flwses_52xR9LKo77r1Np',4 gave_consent: true,5 user: {6 client_user_id: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',7 email_address: 'acharleston@email.com',8 phone_number: '+11234567890',9 date_of_birth: '1975-01-18',10 name: {11 given_name: 'Anna',12 family_name: 'Charleston',13 },14 address: {15 street: '100 Market Street',16 street2: 'Apt 1A',17 city: 'San Francisco',18 region: 'CA',19 postal_code: '94103',20 country: 'US',21 },22 id_number: {23 value: '123456789',24 type: 'us_ssn',25 },26 },27};28try {29 const response = await client.identityVerificationCreate(request);30} catch (error) {31 // handle error32}
Response fields and example
id string ID of the associated Identity Verification attempt. | |||||||||||||||||||||||
client_user_id string An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object. Min length: 1 Pattern: ^\S+(\s+\S+)*$ | |||||||||||||||||||||||
created_at string An ISO8601 formatted timestamp. Format: date-time | |||||||||||||||||||||||
completed_at nullable string An ISO8601 formatted timestamp. Format: date-time | |||||||||||||||||||||||
previous_attempt_id nullable 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 nullable string A shareable URL that can be sent directly to the user to complete verification | |||||||||||||||||||||||
template object The resource ID and version number of the template configuring the behavior of a given identity verification.
| |||||||||||||||||||||||
user object The identity data that was either collected from the user or provided via API in order to perform an identity verification.
| |||||||||||||||||||||||
status 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 templatefailed - The user failed one or more steps in the session and was told to contact support.expired - The Identity Verification attempt was active for more than 48 hours without being completed and was automatically marked as expired.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.Possible values: active , success , failed , expired , canceled , pending_review | |||||||||||||||||||||||
steps 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.
| |||||||||||||||||||||||
documentary_verification nullable object data, images, analysis, and results from the documentary_verification step.
| |||||||||||||||||||||||
kyc_check nullable object The outcome of the kyc_check step.
| |||||||||||||||||||||||
watchlist_screening_id nullable string ID of the associated screening. | |||||||||||||||||||||||
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "id": "idv_52xR9LKo77r1Np",3 "client_user_id": "your-db-id-3b24110",4 "created_at": "2020-07-24T03:26:02Z",5 "completed_at": "2020-07-24T03:26:02Z",6 "previous_attempt_id": "idv_42cF1MNo42r9Xj",7 "shareable_url": "https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f",8 "template": {9 "id": "idvtmp_4FrXJvfQU3zGUR",10 "version": 211 },12 "user": {13 "phone_number": "+19876543212",14 "date_of_birth": "1990-05-29",15 "ip_address": "192.0.2.42",16 "email_address": "user@example.com",17 "name": {18 "given_name": "Leslie",19 "family_name": "Knope"20 },21 "address": {22 "street": "123 Main St.",23 "street2": "Unit 42",24 "city": "Pawnee",25 "region": "IN",26 "postal_code": "46001",27 "country": "US"28 },29 "id_number": {30 "value": "123456789",31 "type": "us_ssn"32 }33 },34 "status": "success",35 "steps": {36 "accept_tos": "success",37 "verify_sms": "success",38 "kyc_check": "success",39 "documentary_verification": "success",40 "selfie_check": "success",41 "watchlist_screening": "success",42 "risk_check": "success"43 },44 "documentary_verification": {45 "status": "success",46 "documents": [47 {48 "status": "success",49 "attempt": 1,50 "images": {51 "original_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg",52 "original_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg",53 "cropped_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg",54 "cropped_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg",55 "face": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"56 },57 "extracted_data": {58 "id_number": "AB123456",59 "category": "drivers_license",60 "expiration_date": "1990-05-29",61 "issuing_country": "US"62 },63 "analysis": {64 "authenticity": "match",65 "image_quality": "high",66 "extracted_data": {67 "name": "match",68 "date_of_birth": "match",69 "expiration_date": "not_expired",70 "issuing_country": "match"71 }72 }73 }74 ]75 },76 "kyc_check": {77 "status": "success",78 "address": {79 "summary": "match",80 "po_box": "yes",81 "type": "residential"82 },83 "name": {84 "summary": "match"85 },86 "date_of_birth": {87 "summary": "match"88 },89 "id_number": {90 "summary": "match"91 },92 "phone_number": {93 "summary": "match"94 }95 },96 "watchlist_screening_id": "scr_52xR9LKo77r1Np",97 "request_id": "saKrIBuEB9qJZng"98}
Was this helpful?
/identity_verification/get
Retrieve Identity Verification
Retrieve a previously created identity verification
identity_verification/getRequest fields and example
identity_verification_id requiredstring ID of the associated Identity Verification attempt. |
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. |
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. |
1const request: IdentityVerificationGetRequest = {2 identity_verification_id: 'flwses_52xR9LKo77r1Np',3};4try {5 const response = await plaidClient.identityVerificationGet(request);6} catch (error) {7 // handle error8}
Response fields and example
id string ID of the associated Identity Verification attempt. | |||||||||||||||||||||||
client_user_id string An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object. Min length: 1 Pattern: ^\S+(\s+\S+)*$ | |||||||||||||||||||||||
created_at string An ISO8601 formatted timestamp. Format: date-time | |||||||||||||||||||||||
completed_at nullable string An ISO8601 formatted timestamp. Format: date-time | |||||||||||||||||||||||
previous_attempt_id nullable 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 nullable string A shareable URL that can be sent directly to the user to complete verification | |||||||||||||||||||||||
template object The resource ID and version number of the template configuring the behavior of a given identity verification.
| |||||||||||||||||||||||
user object The identity data that was either collected from the user or provided via API in order to perform an identity verification.
| |||||||||||||||||||||||
status 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 templatefailed - The user failed one or more steps in the session and was told to contact support.expired - The Identity Verification attempt was active for more than 48 hours without being completed and was automatically marked as expired.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.Possible values: active , success , failed , expired , canceled , pending_review | |||||||||||||||||||||||
steps 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.
| |||||||||||||||||||||||
documentary_verification nullable object data, images, analysis, and results from the documentary_verification step.
| |||||||||||||||||||||||
kyc_check nullable object The outcome of the kyc_check step.
| |||||||||||||||||||||||
watchlist_screening_id nullable string ID of the associated screening. | |||||||||||||||||||||||
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "id": "idv_52xR9LKo77r1Np",3 "client_user_id": "your-db-id-3b24110",4 "created_at": "2020-07-24T03:26:02Z",5 "completed_at": "2020-07-24T03:26:02Z",6 "previous_attempt_id": "idv_42cF1MNo42r9Xj",7 "shareable_url": "https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f",8 "template": {9 "id": "idvtmp_4FrXJvfQU3zGUR",10 "version": 211 },12 "user": {13 "phone_number": "+19876543212",14 "date_of_birth": "1990-05-29",15 "ip_address": "192.0.2.42",16 "email_address": "user@example.com",17 "name": {18 "given_name": "Leslie",19 "family_name": "Knope"20 },21 "address": {22 "street": "123 Main St.",23 "street2": "Unit 42",24 "city": "Pawnee",25 "region": "IN",26 "postal_code": "46001",27 "country": "US"28 },29 "id_number": {30 "value": "123456789",31 "type": "us_ssn"32 }33 },34 "status": "success",35 "steps": {36 "accept_tos": "success",37 "verify_sms": "success",38 "kyc_check": "success",39 "documentary_verification": "success",40 "selfie_check": "success",41 "watchlist_screening": "success",42 "risk_check": "success"43 },44 "documentary_verification": {45 "status": "success",46 "documents": [47 {48 "status": "success",49 "attempt": 1,50 "images": {51 "original_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg",52 "original_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg",53 "cropped_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg",54 "cropped_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg",55 "face": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"56 },57 "extracted_data": {58 "id_number": "AB123456",59 "category": "drivers_license",60 "expiration_date": "1990-05-29",61 "issuing_country": "US"62 },63 "analysis": {64 "authenticity": "match",65 "image_quality": "high",66 "extracted_data": {67 "name": "match",68 "date_of_birth": "match",69 "expiration_date": "not_expired",70 "issuing_country": "match"71 }72 }73 }74 ]75 },76 "kyc_check": {77 "status": "success",78 "address": {79 "summary": "match",80 "po_box": "yes",81 "type": "residential"82 },83 "name": {84 "summary": "match"85 },86 "date_of_birth": {87 "summary": "match"88 },89 "id_number": {90 "summary": "match"91 },92 "phone_number": {93 "summary": "match"94 }95 },96 "watchlist_screening_id": "scr_52xR9LKo77r1Np",97 "request_id": "saKrIBuEB9qJZng"98}
Was this helpful?
/identity_verification/list
List Identity Verifications
Filter and list Identity Verifications created by your account
identity_verification/listRequest fields and example
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. |
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. |
template_id requiredstring ID of the associated Identity Verification template. |
client_user_id requiredstring An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object. Min length: 1 Pattern: ^\S+(\s+\S+)*$ |
cursor string An identifier that determines which page of results you receive. |
1const request: ListIdentityVerificationRequest = {2 template_id: 'flwses_52xR9LKo77r1Np',3 client_user_id: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',4};5try {6 const response = await plaidClient.identityVerificationList(request);7} catch (error) {8 // handle error9}
Response fields and example
identity_verifications [object] List of Plaid sessions
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
next_cursor nullable string An identifier that determines which page of results you receive. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "identity_verifications": [3 {4 "id": "idv_52xR9LKo77r1Np",5 "client_user_id": "your-db-id-3b24110",6 "created_at": "2020-07-24T03:26:02Z",7 "completed_at": "2020-07-24T03:26:02Z",8 "previous_attempt_id": "idv_42cF1MNo42r9Xj",9 "shareable_url": "https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f",10 "template": {11 "id": "idvtmp_4FrXJvfQU3zGUR",12 "version": 213 },14 "user": {15 "phone_number": "+19876543212",16 "date_of_birth": "1990-05-29",17 "ip_address": "192.0.2.42",18 "email_address": "user@example.com",19 "name": {20 "given_name": "Leslie",21 "family_name": "Knope"22 },23 "address": {24 "street": "123 Main St.",25 "street2": "Unit 42",26 "city": "Pawnee",27 "region": "IN",28 "postal_code": "46001",29 "country": "US"30 },31 "id_number": {32 "value": "123456789",33 "type": "us_ssn"34 }35 },36 "status": "success",37 "steps": {38 "accept_tos": "success",39 "verify_sms": "success",40 "kyc_check": "success",41 "documentary_verification": "success",42 "selfie_check": "success",43 "watchlist_screening": "success",44 "risk_check": "success"45 },46 "documentary_verification": {47 "status": "success",48 "documents": [49 {50 "status": "success",51 "attempt": 1,52 "images": {53 "original_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg",54 "original_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg",55 "cropped_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg",56 "cropped_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg",57 "face": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"58 },59 "extracted_data": {60 "id_number": "AB123456",61 "category": "drivers_license",62 "expiration_date": "1990-05-29",63 "issuing_country": "US"64 },65 "analysis": {66 "authenticity": "match",67 "image_quality": "high",68 "extracted_data": {69 "name": "match",70 "date_of_birth": "match",71 "expiration_date": "not_expired",72 "issuing_country": "match"73 }74 }75 }76 ]77 },78 "kyc_check": {79 "status": "success",80 "address": {81 "summary": "match",82 "po_box": "yes",83 "type": "residential"84 },85 "name": {86 "summary": "match"87 },88 "date_of_birth": {89 "summary": "match"90 },91 "id_number": {92 "summary": "match"93 },94 "phone_number": {95 "summary": "match"96 }97 },98 "watchlist_screening_id": "scr_52xR9LKo77r1Np"99 }100 ],101 "next_cursor": "eyJkaXJlY3Rpb24iOiJuZXh0Iiwib2Zmc2V0IjoiMTU5NDM",102 "request_id": "saKrIBuEB9qJZng"103}
Was this helpful?
/identity_verification/retry
Retry an Identity Verification
Allow a customer to retry their identity verification
identity_verification/retryRequest fields and example
client_user_id requiredstring An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object. Min length: 1 Pattern: ^\S+(\s+\S+)*$ | ||||
template_id requiredstring ID of the associated Identity Verification template. | ||||
strategy requiredstring 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 fieldNote: 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 Possible values: reset , incomplete , infer , custom | ||||
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.
| ||||
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. |
1const request: IdentityVerificationRetryRequest = {2 client_user_id: 'user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d',3 template_id: 'flwses_52xR9LKo77r1Np',4 strategy: 'reset',5};6try {7 const response = await plaidClient.identityVerificationRetry(request);8} catch (error) {9 // handle error10}
Response fields and example
id string ID of the associated Identity Verification attempt. | |||||||||||||||||||||||
client_user_id string An identifier to help you connect this object to your internal systems. For example, your database ID corresponding to this object. Min length: 1 Pattern: ^\S+(\s+\S+)*$ | |||||||||||||||||||||||
created_at string An ISO8601 formatted timestamp. Format: date-time | |||||||||||||||||||||||
completed_at nullable string An ISO8601 formatted timestamp. Format: date-time | |||||||||||||||||||||||
previous_attempt_id nullable 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 nullable string A shareable URL that can be sent directly to the user to complete verification | |||||||||||||||||||||||
template object The resource ID and version number of the template configuring the behavior of a given identity verification.
| |||||||||||||||||||||||
user object The identity data that was either collected from the user or provided via API in order to perform an identity verification.
| |||||||||||||||||||||||
status 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 templatefailed - The user failed one or more steps in the session and was told to contact support.expired - The Identity Verification attempt was active for more than 48 hours without being completed and was automatically marked as expired.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.Possible values: active , success , failed , expired , canceled , pending_review | |||||||||||||||||||||||
steps 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.
| |||||||||||||||||||||||
documentary_verification nullable object data, images, analysis, and results from the documentary_verification step.
| |||||||||||||||||||||||
kyc_check nullable object The outcome of the kyc_check step.
| |||||||||||||||||||||||
watchlist_screening_id nullable string ID of the associated screening. | |||||||||||||||||||||||
request_id string A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive. |
1{2 "id": "idv_52xR9LKo77r1Np",3 "client_user_id": "your-db-id-3b24110",4 "created_at": "2020-07-24T03:26:02Z",5 "completed_at": "2020-07-24T03:26:02Z",6 "previous_attempt_id": "idv_42cF1MNo42r9Xj",7 "shareable_url": "https://flow.plaid.com/verify/idv_4FrXJvfQU3zGUR?key=e004115db797f7cc3083bff3167cba30644ef630fb46f5b086cde6cc3b86a36f",8 "template": {9 "id": "idvtmp_4FrXJvfQU3zGUR",10 "version": 211 },12 "user": {13 "phone_number": "+19876543212",14 "date_of_birth": "1990-05-29",15 "ip_address": "192.0.2.42",16 "email_address": "user@example.com",17 "name": {18 "given_name": "Leslie",19 "family_name": "Knope"20 },21 "address": {22 "street": "123 Main St.",23 "street2": "Unit 42",24 "city": "Pawnee",25 "region": "IN",26 "postal_code": "46001",27 "country": "US"28 },29 "id_number": {30 "value": "123456789",31 "type": "us_ssn"32 }33 },34 "status": "success",35 "steps": {36 "accept_tos": "success",37 "verify_sms": "success",38 "kyc_check": "success",39 "documentary_verification": "success",40 "selfie_check": "success",41 "watchlist_screening": "success",42 "risk_check": "success"43 },44 "documentary_verification": {45 "status": "success",46 "documents": [47 {48 "status": "success",49 "attempt": 1,50 "images": {51 "original_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_front.jpeg",52 "original_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/original_back.jpeg",53 "cropped_front": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_front.jpeg",54 "cropped_back": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/cropped_back.jpeg",55 "face": "https://example.plaid.com/verifications/idv_52xR9LKo77r1Np/documents/1/face.jpeg"56 },57 "extracted_data": {58 "id_number": "AB123456",59 "category": "drivers_license",60 "expiration_date": "1990-05-29",61 "issuing_country": "US"62 },63 "analysis": {64 "authenticity": "match",65 "image_quality": "high",66 "extracted_data": {67 "name": "match",68 "date_of_birth": "match",69 "expiration_date": "not_expired",70 "issuing_country": "match"71 }72 }73 }74 ]75 },76 "kyc_check": {77 "status": "success",78 "address": {79 "summary": "match",80 "po_box": "yes",81 "type": "residential"82 },83 "name": {84 "summary": "match"85 },86 "date_of_birth": {87 "summary": "match"88 },89 "id_number": {90 "summary": "match"91 },92 "phone_number": {93 "summary": "match"94 }95 },96 "watchlist_screening_id": "scr_52xR9LKo77r1Np",97 "request_id": "saKrIBuEB9qJZng"98}
Was this helpful?
Webhooks
STATUS_UPDATED
Fired when the status of an identity verification has been updated, which can be triggered via the dashboard or the API.
webhook_type string IDENTITY_VERIFICATION |
webhook_code string STATUS_UPDATED |
identity_verification_id The ID of the associated Identity Verification attempt. |
1{2 "webhook_type": "IDENTITY_VERIFICATION",3 "webhook_code": "STATUS_UPDATED",4 "identity_verification_id": "idv_52xR9LKo77r1Np"5}
Was this helpful?
STEP_UPDATED
Fired when an end user has completed a step of the Identity Verification process.
webhook_type string IDENTITY_VERIFCATION |
webhook_code string STEP_UPDATED |
identity_verification_id The ID of the associated Identity Verification attempt. |
1{2 "webhook_type": "IDENTITY_VERIFICATION",3 "webhook_code": "STEP_UPDATED",4 "identity_verification_id": "idv_52xR9LKo77r1Np"5}
Was this helpful?
RETRIED
Fired when identity verification has been retried, which can be triggered via the dashboard or the API.
webhook_type string IDENTITY_VERIFICATION |
webhook_code string RETRIED |
identity_verification_id The ID of the associated Identity Verification attempt. |
1{2 "webhook_type": "IDENTITY_VERIFICATION",3 "webhook_code": "RETRIED",4 "identity_verification_id": "idv_52xR9LKo77r1Np"5}