Get Link Token
POST /link/token/get
The /link/token/get endpoint gets information about a Link session, including all callbacks fired during the session along with their metadata, including the public token. This endpoint is used with Link flows that don't provide a public token via frontend callbacks, such as the Hosted Link flow and the Multi-Item Link flow. It also can be useful for debugging purposes.
By default, this endpoint will only return complete event data for Hosted Link sessions. To use /link/token/get to retrieve event data for non-Hosted-Link sessions, contact your account manager to request that your account be enabled for Link events. If you do not have an account manager, you can submit this request via a support ticket. Enablement for Link events will also cause you to receive additional webhooks related to Link events, such as the SESSION_FINISHED and EVENTS webhook.
Request Body
Required
LinkTokenGetRequest defines the request schema for /link/token/get
Parameters
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.
link_token
link_token from a previous invocation of /link/token/create
Response
LinkTokenGetResponse defines the response schema for /link/token/get
Response Properties
link_token
link_token, which can be supplied to Link in order to initialize it and receive a public_token, which can be exchanged for an access_token.
created_at
link_token, in ISO 8601 format.
expiration
link_token, in ISO 8601 format.
link_sessions
link_token. Session data will be provided for up to six hours after the session has ended.
link_session_id
started_at
finished_at
on_success
results.item_add_result, which can support multiple public tokens in a single Link session.
public_token
metadata
institution
null.
name
'Wells Fargo'
institution_id
accounts
accounts will only include selected accounts.
id
account_id
name
mask
type
subtype
verification_status
pending_automatic_verification: The Item is pending automatic verification
pending_manual_verification: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the code.
automatically_verified: The Item has successfully been automatically verified
manually_verified: The Item has successfully been manually verified
verification_expired: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.
verification_failed: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.
unsent: The Item is pending micro-deposit verification, but Plaid has not yet sent the micro-deposit.
database_insights_pending: The Database Auth result is pending and will be available upon Auth request.
database_insights_fail: The Item’s numbers have been verified using Plaid’s data sources and have signal for being invalid and/or have no signal for being valid. Typically this indicates that the routing number is invalid, the account number does not match the account number format associated with the routing number, or the account has been reported as closed or frozen. Only returned for Auth Items created via Database Auth.
database_insights_pass: The Item’s numbers have been verified using Plaid’s data sources: the routing and account number match a routing and account number of an account recognized on the Plaid network, and the account is not known by Plaid to be frozen or closed. Only returned for Auth Items created via Database Auth.
database_insights_pass_with_caution: The Item’s numbers have been verified using Plaid’s data sources and have some signal for being valid: the routing and account number were not recognized on the Plaid network, but the routing number is valid and the account number is a potential valid account number for that routing number. Only returned for Auth Items created via Database Auth.
database_matched: (deprecated) The Item has successfully been verified using Plaid’s data sources. Only returned for Auth Items created via Database Match.
null or empty string: Neither micro-deposit-based verification nor database verification are being used for the Item.
class_type
business or personal account. This field is deprecated as Plaid no longer collects this information during the micro-deposit flow. To see whether an account is business or personal, use the holder_category field instead.
link_session_id
transfer_status
COMPLETE– The transfer was completed.INCOMPLETE– The transfer could not be completed. For help, see Troubleshooting transfers.
on_exit
error
error_code and categorized by error_type. Use these in preference to HTTP status codes to identify and handle specific errors. HTTP status codes are set and provide the broadest categorization of errors: 4xx codes are for developer- or user-related errors, and 5xx codes are for Plaid-related errors, and the status will be 2xx in non-error cases. 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
error_code
error_code_reason
null will be returned otherwise. Safe for programmatic use.
Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.
OAUTH_CONSENT_EXPIRED: The user’s access consent for this OAuth connection to this institution has expired.
OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.
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 be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.
status
documentation_url
suggested_action
metadata
institution
null.
name
Wells Fargo
institution_id
status
link_session_id
request_id
exit
error
error_code and categorized by error_type. Use these in preference to HTTP status codes to identify and handle specific errors. HTTP status codes are set and provide the broadest categorization of errors: 4xx codes are for developer- or user-related errors, and 5xx codes are for Plaid-related errors, and the status will be 2xx in non-error cases. 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
error_code
error_code_reason
null will be returned otherwise. Safe for programmatic use.
Possible values:
OAUTH_INVALID_TOKEN: The user’s OAuth connection to this institution has been invalidated.
OAUTH_CONSENT_EXPIRED: The user’s access consent for this OAuth connection to this institution has expired.
OAUTH_USER_REVOKED: The user’s OAuth connection to this institution is invalid because the user revoked their connection.
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 be provided for the error_type ASSET_REPORT_ERROR or CHECK_REPORT_ERROR. causes will also not be populated inside an error nested within a warning object.
status
documentation_url
suggested_action
metadata
institution
null.
name
Wells Fargo
institution_id
status
link_session_id
request_id
events
event_name
timestamp
event_id
event_metadata
error_code
ERROR, EXIT.
error_message
ERROR, EXIT.
error_type
ERROR, EXIT.
exit_status
EXIT.
institution_id
institution_name
institution_search_query
SEARCH_INSTITUTION.
request_id
mfa_type
SUBMIT_MFA and TRANSITION_VIEW when view_name is MFA.
view_name
TRANSITION_VIEW.
selection
phoneotp or password; if selection is used to describe the selected Auth Type Select flow, then possible values are flow_type_manual or flow_type_instant. Emitted by: MATCHED_SELECT_VERIFY_METHOD and SELECT_AUTH_TYPE.
brand_name
match_reason
returning_user or routing_number if emitted by MATCHED_SELECT_INSTITUTION. Otherwise, this will be SAVED_INSTITUTION or AUTO_SELECT_SAVED_INSTITUTION if emitted by SELECT_INSTITUTION.
routing_number
SUBMIT_ROUTING_NUMBER.
account_number_mask
account_number_mask is empty. Emitted by SUBMIT_ACCOUNT_NUMBER.
results
item_add_results
public_token
accounts
accounts will only include selected accounts.
id
account_id
name
mask
type
subtype
verification_status
pending_automatic_verification: The Item is pending automatic verification
pending_manual_verification: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the code.
automatically_verified: The Item has successfully been automatically verified
manually_verified: The Item has successfully been manually verified
verification_expired: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.
verification_failed: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.
unsent: The Item is pending micro-deposit verification, but Plaid has not yet sent the micro-deposit.
database_insights_pending: The Database Auth result is pending and will be available upon Auth request.
database_insights_fail: The Item’s numbers have been verified using Plaid’s data sources and have signal for being invalid and/or have no signal for being valid. Typically this indicates that the routing number is invalid, the account number does not match the account number format associated with the routing number, or the account has been reported as closed or frozen. Only returned for Auth Items created via Database Auth.
database_insights_pass: The Item’s numbers have been verified using Plaid’s data sources: the routing and account number match a routing and account number of an account recognized on the Plaid network, and the account is not known by Plaid to be frozen or closed. Only returned for Auth Items created via Database Auth.
database_insights_pass_with_caution: The Item’s numbers have been verified using Plaid’s data sources and have some signal for being valid: the routing and account number were not recognized on the Plaid network, but the routing number is valid and the account number is a potential valid account number for that routing number. Only returned for Auth Items created via Database Auth.
database_matched: (deprecated) The Item has successfully been verified using Plaid’s data sources. Only returned for Auth Items created via Database Match.
null or empty string: Neither micro-deposit-based verification nor database verification are being used for the Item.
class_type
business or personal account. This field is deprecated as Plaid no longer collects this information during the micro-deposit flow. To see whether an account is business or personal, use the holder_category field instead.
institution
null.
name
'Wells Fargo'
institution_id
cra_item_add_results
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. The item_id is case-sensitive.
accounts
accounts will only include selected accounts.
id
account_id
name
mask
type
subtype
verification_status
pending_automatic_verification: The Item is pending automatic verification
pending_manual_verification: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the code.
automatically_verified: The Item has successfully been automatically verified
manually_verified: The Item has successfully been manually verified
verification_expired: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.
verification_failed: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.
unsent: The Item is pending micro-deposit verification, but Plaid has not yet sent the micro-deposit.
database_insights_pending: The Database Auth result is pending and will be available upon Auth request.
database_insights_fail: The Item’s numbers have been verified using Plaid’s data sources and have signal for being invalid and/or have no signal for being valid. Typically this indicates that the routing number is invalid, the account number does not match the account number format associated with the routing number, or the account has been reported as closed or frozen. Only returned for Auth Items created via Database Auth.
database_insights_pass: The Item’s numbers have been verified using Plaid’s data sources: the routing and account number match a routing and account number of an account recognized on the Plaid network, and the account is not known by Plaid to be frozen or closed. Only returned for Auth Items created via Database Auth.
database_insights_pass_with_caution: The Item’s numbers have been verified using Plaid’s data sources and have some signal for being valid: the routing and account number were not recognized on the Plaid network, but the routing number is valid and the account number is a potential valid account number for that routing number. Only returned for Auth Items created via Database Auth.
database_matched: (deprecated) The Item has successfully been verified using Plaid’s data sources. Only returned for Auth Items created via Database Match.
null or empty string: Neither micro-deposit-based verification nor database verification are being used for the Item.
class_type
business or personal account. This field is deprecated as Plaid no longer collects this information during the micro-deposit flow. To see whether an account is business or personal, use the holder_category field instead.
institution
null.
name
'Wells Fargo'
institution_id
bank_income_results
status
APPROVED: User has approved and verified their income
NO_DEPOSITS_FOUND: We attempted, but were unable to find any income in the connected account.
USER_REPORTED_NO_INCOME: The user explicitly indicated that they don’t receive income in the connected account.
STARTED: The user began the bank income portion of the link flow.
INTERNAL_ERROR: The user encountered an internal error.
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
null.
name
'Wells Fargo'
institution_id
payroll_income_results
num_paystubs_retrieved
num_w2s_retrieved
institution
null.
name
'Wells Fargo'
institution_id
document_income_results
num_paystubs_uploaded
num_w2s_uploaded
num_bank_statements_uploaded
num_1099s_uploaded
cra_document_upload_results
num_bank_statements_uploaded
protect_results
event_id
trust_index
score
model
subscores
fraud_attributes
metadata
/link/token/create call.
initial_products
products specified in the /link/token/create call.
webhook
webhook specified in the /link/token/create call.
country_codes
country_codes specified in the /link/token/create call.
language
language specified in the /link/token/create call.
institution_data
routing_number
account_filters
account_filters specified in the original call to /link/token/create.
depository
depository-type accounts
account_subtypes
credit
credit-type accounts
account_subtypes
loan
loan-type accounts
account_subtypes
investment
investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier).
account_subtypes
redirect_uri
redirect_uri specified in the /link/token/create call.
client_name
client_name specified in the /link/token/create call.
request_id