Item endpoints
API reference for retrieving and deleting Items
Endpoints | |
---|---|
/item/get | Retrieve an Item |
/item/remove | Remove an Item |
/item/webhook/update | Update a webhook URL |
See also | |
---|---|
/sandbox/public_token/create | Create a test Item (Sandbox only) |
/sandbox/item/reset_login | Force an Item into an error state (Sandbox only) |
/sandbox/item/set_verification_status | Set verification status (Sandbox only) |
/sandbox/item/fire_webhook | Fire a test webhook (Sandbox only) |
/item/access_token/invalidate | Rotate an access token without deleting the Item |
Webhooks | |
---|---|
ERROR | Item has entered an error state |
LOGIN_REPAIRED | Item has healed from ITEM_LOGIN_REQUIRED without update mode |
NEW_ACCOUNTS_AVAILABLE | New account detected for an Item |
PENDING_EXPIRATION | Item access is about to expire |
USER_PERMISSION_REVOKED | The user has revoked access to an Item |
USER_ACCOUNT_REVOKED | The user has revoked access to an account |
WEBHOOK_UPDATE_ACKNOWLEDGED | Item webhook URL updated |
SESSION_FINISHED | The user has completed a Hosted Link session |
Endpoints
For Item endpoints related to Item tokens, see Token endpoints.
/item/get
Retrieve an Item
Returns information about the status of an Item.
item/getRequest fields and example
client_id
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
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.access_token
1const request: ItemGetRequest = {2 access_token: accessToken,3};4try {5 const response = await plaidClient.itemGet(request);6 const item = response.data.item;7 const status = response.data.status;8} catch (error) {9 // handle error10}
Response fields and example
item
item_id
item_id
is always unique; linking the same account at the same institution twice will result in two Items with different item_id
values. Like all Plaid identifiers, the item_id
is case-sensitive.institution_id
null
for Items created via Same Day Micro-deposits.webhook
error
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
available_products
billed_products
.assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
billed_products
available_products
. Note - billed_products
is populated in all environments but only requests in Production are billed. Also note that products that are billed on a pay-per-call basis rather than a pay-per-Item basis, such as balance
, will not appear here.assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
products
billed_products
field. For some products, it is possible for the product to be added to an Item but not yet billed (e.g. Assets, before /asset_report/create
has been called, or Auth or Identity when added as Optional Products but before their endpoints have been called), in which case the product may appear in products
but not in billed_products
.assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
consented_products
assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
consent_expiration _time
ITEM_LOGIN_REQUIRED
error state. To circumvent the ITEM_LOGIN_REQUIRED
error and maintain continuous consent, the end user can reauthenticate via Link’s update mode in advance of the consent expiration time.Note - This is only relevant for certain OAuth-based institutions. For all other institutions, this field will be null.
date-time
update_type
background
- Item can be updated in the backgrounduser_present_required
- Item requires user interaction to be updatedbackground
, user_present_required
status
investments
last_successful_update
date-time
last_failed_update
date-time
transactions
last_successful_update
date-time
last_failed_update
date-time
last_webhook
request_id
1{2 "item": {3 "available_products": [4 "balance",5 "auth"6 ],7 "billed_products": [8 "identity",9 "transactions"10 ],11 "error": null,12 "institution_id": "ins_109508",13 "item_id": "Ed6bjNrDLJfGvZWwnkQlfxwoNz54B5C97ejBr",14 "update_type": "background",15 "webhook": "https://plaid.com/example/hook",16 "consent_expiration_time": null17 },18 "status": {19 "transactions": {20 "last_successful_update": "2019-02-15T15:52:39Z",21 "last_failed_update": "2019-01-22T04:32:00Z"22 },23 "last_webhook": {24 "sent_at": "2019-02-15T15:53:00Z",25 "code_sent": "DEFAULT_UPDATE"26 }27 },28 "request_id": "m8MDnv9okwxFNBV"29}
Was this helpful?
/item/remove
Remove an Item
The /item/remove
endpoint allows you to remove an Item. Once removed, the access_token
, as well as any processor tokens or bank account tokens associated with the Item, is no longer valid and cannot be used to access any data that was associated with the Item.
Note that in the Development environment, issuing an /item/remove
request will not decrement your live credential count. To increase your credential account in Development, contact Support.
Also note that for certain OAuth-based institutions, an Item removed via /item/remove
may still show as an active connection in the institution's OAuth permission manager.
API versions 2019-05-29 and earlier return a removed
boolean as part of the response.
Request fields and example
client_id
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
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.access_token
1const request: ItemRemoveRequest = {2 access_token: accessToken,3};4try {5 const response = await plaidClient.itemRemove(request);6 // The Item was removed, access_token is now invalid7} catch (error) {8 // handle error9}1011// The Item was removed, access_token is now invalid
Response fields and example
request_id
1{2 "request_id": "m8MDnv9okwxFNBV"3}
Was this helpful?
/item/webhook/update
Update Webhook URL
The POST /item/webhook/update
allows you to update the webhook URL associated with an Item. This request triggers a WEBHOOK_UPDATE_ACKNOWLEDGED
webhook to the newly specified webhook URL.
Request fields and example
client_id
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
secret
. The secret
is required and may be provided either in the PLAID-SECRET
header or as part of a request body.access_token
webhook
null
.1// Update the webhook associated with an Item2const request: ItemWebhookUpdateRequest = {3 access_token: accessToken,4 webhook: 'https://example.com/updated/webhook',5};6try {7 const response = await plaidClient.itemWebhookUpdate(request);8 // A successful response indicates that the webhook has been9 // updated. An acknowledgement webhook will also be fired.10 const item = response.data.item;11} catch (error) {12 // handle error13}
Response fields and example
item
item_id
item_id
is always unique; linking the same account at the same institution twice will result in two Items with different item_id
values. Like all Plaid identifiers, the item_id
is case-sensitive.institution_id
null
for Items created via Same Day Micro-deposits.webhook
error
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
available_products
billed_products
.assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
billed_products
available_products
. Note - billed_products
is populated in all environments but only requests in Production are billed. Also note that products that are billed on a pay-per-call basis rather than a pay-per-Item basis, such as balance
, will not appear here.assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
products
billed_products
field. For some products, it is possible for the product to be added to an Item but not yet billed (e.g. Assets, before /asset_report/create
has been called, or Auth or Identity when added as Optional Products but before their endpoints have been called), in which case the product may appear in products
but not in billed_products
.assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
consented_products
assets
, auth
, balance
, identity
, identity_match
, investments
, investments_auth
, liabilities
, payment_initiation
, identity_verification
, transactions
, credit_details
, income
, income_verification
, deposit_switch
, standing_orders
, transfer
, employment
, recurring_transactions
, signal
, statements
, processor_payments
, processor_identity
consent_expiration _time
ITEM_LOGIN_REQUIRED
error state. To circumvent the ITEM_LOGIN_REQUIRED
error and maintain continuous consent, the end user can reauthenticate via Link’s update mode in advance of the consent expiration time.Note - This is only relevant for certain OAuth-based institutions. For all other institutions, this field will be null.
date-time
update_type
background
- Item can be updated in the backgrounduser_present_required
- Item requires user interaction to be updatedbackground
, user_present_required
request_id
1{2 "item": {3 "available_products": [4 "balance",5 "identity",6 "payment_initiation",7 "transactions"8 ],9 "billed_products": [10 "assets",11 "auth"12 ],13 "consent_expiration_time": null,14 "error": null,15 "institution_id": "ins_117650",16 "item_id": "DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6",17 "update_type": "background",18 "webhook": "https://www.genericwebhookurl.com/webhook"19 },20 "request_id": "vYK11LNTfRoAMbj"21}
Was this helpful?
Webhooks
Webhooks are used to communicate changes to an Item, such as an updated webhook, or errors encountered with an Item. The error typically requires user action to resolve, such as when a user changes their password. All Item webhooks have a webhook_type
of ITEM
.
ERROR
Fired when an error is encountered with an Item. The error can be resolved by having the user go through Link’s update mode.
webhook_type
ITEM
webhook_code
ERROR
item_id
item_id
of the Item associated with this webhook, warning, or errorerror
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
environment
development
, sandbox
, production
1{2 "webhook_type": "ITEM",3 "webhook_code": "ERROR",4 "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",5 "error": {6 "display_message": null,7 "error_code": "ITEM_LOGIN_REQUIRED",8 "error_message": "the login details of this item have changed (credentials, MFA, or required user action) and a user login is required to update this information. use Link's update mode to restore the item to a good state",9 "error_type": "ITEM_ERROR",10 "status": 40011 },12 "environment": "production"13}
Was this helpful?
LOGIN_REPAIRED
Fired when an Item has exited the ITEM_LOGIN_REQUIRED
state without the user having gone through the update mode flow in your app (this can happen if the user completed the update mode in a different app). If you have messaging that tells the user to complete the update mode flow, you should silence this messaging upon receiving the LOGIN_REPAIRED
webhook.
webhook_type
ITEM
webhook_code
LOGIN_REPAIRED
item_id
item_id
of the Item associated with this webhook, warning, or errorenvironment
development
, sandbox
, production
1{2 "webhook_type": "ITEM",3 "webhook_code": "LOGIN_REPAIRED",4 "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",5 "environment": "production"6}
Was this helpful?
NEW_ACCOUNTS_AVAILABLE
Fired when Plaid detects a new account for Items created or updated with Account Select v2. Upon receiving this webhook, you can prompt your users to share new accounts with you through Account Select v2 update mode.
webhook_type
ITEM
webhook_code
NEW_ACCOUNTS_AVAILABLE
item_id
item_id
of the Item associated with this webhook, warning, or errorerror
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
environment
development
, sandbox
, production
1{2 "webhook_type": "ITEM",3 "webhook_code": "NEW_ACCOUNTS_AVAILABLE",4 "item_id": "gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ",5 "error": null,6 "environment": "production"7}
Was this helpful?
PENDING_EXPIRATION
Fired when an Item’s access consent is expiring in 7 days. Some Items have explicit expiration times and we try to relay this when possible to reduce service disruption. This can be resolved by having the user go through Link’s update mode.
webhook_type
ITEM
webhook_code
PENDING_EXPIRATION
item_id
item_id
of the Item associated with this webhook, warning, or errorconsent_expiration _time
date-time
environment
development
, sandbox
, production
1{2 "webhook_type": "ITEM",3 "webhook_code": "PENDING_EXPIRATION",4 "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",5 "consent_expiration_time": "2020-01-15T13:25:17.766Z",6 "environment": "production"7}
Was this helpful?
USER_PERMISSION_REVOKED
The USER_PERMISSION_REVOKED
webhook may be fired when an end user has used either the my.plaid.com portal or the financial institution’s OAuth consent portal to revoke the permission that they previously granted to access an Item. This webhook is not guaranteed to always be fired upon consent revocation, since some institutions’ consent portals do not trigger this webhook. Once access to an Item has been revoked, it cannot be restored. If the user subsequently returns to your application, a new Item must be created for the user.
Note that when using ACH flows with Chase Items specifically, the account number provided by Plaid will no longer work for creating transfers once user permission has been revoked. If you receive this webhook for a Chase Item, you should not create any new ACH transfers for that Item, as they will be returned.
webhook_type
ITEM
webhook_code
USER_PERMISSION_REVOKED
item_id
item_id
of the Item associated with this webhook, warning, or errorerror
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
environment
development
, sandbox
, production
1{2 "webhook_type": "ITEM",3 "webhook_code": "USER_PERMISSION_REVOKED",4 "error": {5 "error_code": "USER_PERMISSION_REVOKED",6 "error_message": "the holder of this account has revoked their permission for your application to access it",7 "error_type": "ITEM_ERROR",8 "status": 4009 },10 "item_id": "gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ",11 "environment": "production"12}
Was this helpful?
USER_ACCOUNT_REVOKED
The USER_ACCOUNT_REVOKED
webhook is fired when an end user has revoked access to their account on the Data Provider's portal. This webhook is currently sent only for Chase Items, but may be sent in the future for other financial institutions that allow account-level permissions revocation through their portals.
If you are using Auth and receive this webhook for a Chase Item, this webhook indicates that the TAN associated with the revoked account is no longer valid and cannot be used to create new transfers. You should not create new ACH transfers for the account that was revoked until access has been re-granted.
You can request the user to re-grant access to their account by sending them through update mode. Alternatively, they may re-grant access directly through the Data Provider's portal.
After the user has re-granted access, Auth customers should call the auth endpoint again to obtain the new TAN.
webhook_type
ITEM
webhook_code
USER_ACCOUNT_REVOKED
item_id
item_id
of the Item associated with this webhook, warning, or erroraccount_id
error
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
environment
development
, sandbox
, production
1{2 "webhook_type": "`ITEM`",3 "webhook_code": "USER_ACCOUNT_REVOKED",4 "error": {5 "error_code": "ACCESS_NOT_GRANTED",6 "error_message": "the user has revoked the account permissions for your application to access it",7 "error_type": "ITEM_ERROR",8 "status": 4009 },10 "item_id": "gAXlMgVEw5uEGoQnnXZ6tn9E7Mn3LBc4PJVKZ",11 "account_id": "BxBXxLj1m4HMXBm9WZJyUg9XLd4rKEhw8Pb1J",12 "environment": "production"13}
Was this helpful?
WEBHOOK_UPDATE_ACKNOWLEDGED
Fired when an Item's webhook is updated. This will be sent to the newly specified webhook.
webhook_type
ITEM
webhook_code
WEBHOOK_UPDATE_ACKNOWLEDGED
item_id
item_id
of the Item associated with this webhook, warning, or errornew_webhook_url
error
error_type
. In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Plaid-related issues. An Item with a non-null
error object will only be part of an API response when calling /item/get
to view Item status. Otherwise, error fields will be null
if no error has occurred; if an error has occurred, an error code will be returned instead.error_type
INVALID_REQUEST
, INVALID_RESULT
, INVALID_INPUT
, INSTITUTION_ERROR
, RATE_LIMIT_EXCEEDED
, API_ERROR
, ITEM_ERROR
, ASSET_REPORT_ERROR
, RECAPTCHA_ERROR
, OAUTH_ERROR
, PAYMENT_ERROR
, BANK_TRANSFER_ERROR
, INCOME_VERIFICATION_ERROR
, MICRODEPOSITS_ERROR
error_code
error_message
display_message
null
if the error is not related to user action.This may change over time and is not safe for programmatic use.
request_id
causes
causes
will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified.causes
will only be provided for the error_type
ASSET_REPORT_ERROR
. causes
will also not be populated inside an error nested within a warning
object.status
documentation_url
suggested_action
environment
development
, sandbox
, production
1{2 "webhook_type": "ITEM",3 "webhook_code": "WEBHOOK_UPDATE_ACKNOWLEDGED",4 "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",5 "error": null,6 "new_webhook_url": "https://plaid.com/example/webhook",7 "environment": "production"8}
Was this helpful?
SESSION_FINISHED
Contains the state of a completed Link session, along with the public token if available.
webhook_type
LINK
webhook_code
SESSION_FINISHED
status
link_session_id
link_token
public_token
environment
development
, sandbox
, production
1{2 "webhook_type": "LINK",3 "webhook_code": "SESSION_FINISHED",4 "status": "SUCCESS",5 "link_session_id": "356dbb28-7f98-44d1-8e6d-0cec580f3171",6 "link_token": "link-sandbox-af1a0311-da53-4636-b754-dd15cc058176",7 "public_token": "public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d",8 "environment": "sandbox"9}