POST /link/token/create

The /link/token/create endpoint creates a link_token, which is required as a parameter when initializing Link. Once Link has been initialized, it returns a public_token. For most Plaid products, the public_token is saved and exchanged for an access_token via /item/public_token/exchange as part of the main Link flow. For more details, see the Link flow overview.

A link_token generated by /link/token/create is also used to initialize other Link flows, such as the update mode flow for tokens with expired credentials, or the Identity Verification flow.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Request body fields

Name Type Required Description
link_customization_name String No

The name of the Link customization from the Plaid Dashboard to be applied to Link. If not specified, the default customization will be used. When using a Link customization, the language in the customization must match the language selected via the language parameter, and the countries in the customization should match the country codes selected via country_codes.

client_id String No

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.

third_party_user_token String No

A third party user token associated with the current user.

investments_auth Object No

Configuration parameters for the Investments Move product

investments_auth.manual_entry_enabled Boolean No

If true, show institutions that use the manual entry fallback flow.

Default value: false

investments_auth.rollover_401k_enabled Boolean No

If true, the fee and contribution details for 401k accounts will be returned.

Default value: false

investments_auth.stated_account_number_enabled Boolean No

If true, show institutions that use the stated account number fallback flow.

Default value: false

investments_auth.masked_number_match_enabled Boolean No

If true, show institutions that use the masked number match fallback flow.

Default value: false

hosted_link Object No

Configuration parameters for Hosted Link. To enable the session for Hosted Link, send this object in the request. It can be empty.

hosted_link.completion_redirect_uri String No

URI that Hosted Link will redirect to upon completion of the Link flow. This will only occur in Hosted Link sessions, not in other implementation methods.

hosted_link.delivery_method String No

How Plaid should deliver the Plaid Link session to the customer. Only available to customers enabled for Link Delivery (beta). To request Link Delivery access, contact your account manager. 'sms' will deliver via SMS. Must pass user.phone_number. 'email' will deliver via email. Must pass user.email_address. In the Sandbox environment, this field will be ignored; use the Production environment to test Link Delivery instead.

Possible values:

  • "email"
  • "sms"
hosted_link.is_mobile_app Boolean No

This indicates whether the client is opening hosted Link in a mobile app in an out of process web view (OOPWV) (i.e., an AsWebAuthenticationSession / SFSafariViewController or Android Custom Tab).

Default value: false

hosted_link.url_lifetime_seconds Integer No

How many seconds the link will be valid for. Must be positive. Cannot be longer than 21 days. The default lifetime is 7 days for links delivered by email, 1 day for links delivered via SMS, and 30 minutes for links not sent via Plaid Link delivery. This parameter will override the value of all three link types.

redirect_uri String No

A URI indicating the destination where a user should be forwarded after completing the Link flow; used to support OAuth authentication flows when launching Link in the browser or another app. The redirect_uri should not contain any query parameters. When used in Production, must be an https URI. To specify any subdomain, use * as a wildcard character, e.g. https://*.example.com/oauth.html. Note that any redirect URI must also be added to the Allowed redirect URIs list in the developer dashboard. If initializing on Android, android_package_name must be specified instead and redirect_uri should be left blank.

account_filters Object No

By default, Link will provide limited account filtering: it will only display Institutions that are compatible with all products supplied in the products parameter of /link/token/create, and, if auth is specified in the products array, will also filter out accounts other than checking, savings, and cash management accounts on the Account Select pane. You can further limit the accounts shown in Link by using account_filters to specify the account subtypes to be shown in Link. Only the specified subtypes will be shown. This filtering applies to both the Account Select view (if enabled) and the Institution Select view. Institutions that do not support the selected subtypes will be omitted from Link. To indicate that all subtypes should be shown, use the value "all". If the account_filters filter is used, any account type for which a filter is not specified will be entirely omitted from Link. For a full list of valid types and subtypes, see the Account schema.

The filter may or may not impact the list of accounts shown by the institution in the OAuth account selection flow, depending on the specific institution. If the user selects excluded account subtypes in the OAuth flow, these accounts will not be added to the Item. If the user selects only excluded account subtypes, the link attempt will fail and the user will be prompted to try again.

account_filters.investment Object No

A filter to apply to investment-type accounts (or brokerage-type accounts for API versions 2018-05-22 and earlier).

account_filters.investment.account_subtypes[] Array Yes

An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the Account schema.

account_filters.loan Object No

A filter to apply to loan-type accounts

account_filters.loan.account_subtypes[] Array Yes

An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the Account schema.

account_filters.other Object No

A filter to apply to other-type accounts

account_filters.other.account_subtypes[] Array Yes

An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the Account schema.

account_filters.credit Object No

A filter to apply to credit-type accounts

account_filters.credit.account_subtypes[] Array Yes

An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the Account schema.

account_filters.depository Object No

A filter to apply to depository-type accounts

account_filters.depository.account_subtypes[] Array Yes

An array of account subtypes to display in Link. If not specified, all account subtypes will be shown. For a full list of valid types and subtypes, see the Account schema.

cra_options Object No

Specifies options for initializing Link for use with Plaid Check products

cra_options.days_requested Integer Yes

The number of days of history to include in Plaid Check products. Maximum is 730; minimum is 180. If a value lower than 180 is provided, a minimum of 180 days of history will be requested.

cra_options.days_required Integer No

The minimum number of days of data required for the report to be successfully generated.

cra_options.base_report Object No

Specifies options for initializing Link for use with the Base Report product.

cra_options.base_report.client_report_id String No

Client-generated identifier, which can be used by lenders to track loan applications.

cra_options.partner_insights Object No

Specifies options for initializing Link for use with the Credit Partner Insights product.

cra_options.partner_insights.prism_products[] Array No

The specific Prism products to return. If none are passed in, then all products will be returned.

cra_options.partner_insights.prism_versions Object No

The versions of Prism products to evaluate

cra_options.partner_insights.prism_versions.firstdetect String No

The version of Prism FirstDetect. If not specified, will default to v3.

Possible values:

  • "3"
  • null
cra_options.partner_insights.prism_versions.cashscore String No

The version of Prism CashScore. If not specified, will default to v3.

Possible values:

  • "3"
  • "3_lite"
  • null
cra_options.partner_insights.prism_versions.insights String No

The version of Prism Insights. If not specified, will default to v3.

Possible values:

  • "3"
  • null
cra_options.cashflow_insights Object No

Specifies options for initializing Link for use with the Cashflow Insights product.

cra_options.cashflow_insights.plaid_check_score_version String No

The version of the Plaid Check Score

Possible values:

  • "v1.0"
  • "v2.0"
cra_options.cashflow_insights.attributes_version String No

The version of cashflow attributes

Possible values:

  • "v1.0"
cra_options.client_report_id String No

Client-generated identifier, which can be used by lenders to track loan applications.

access_tokens[] Array No

A list of access tokens associated with the items to update in Link update mode for the Assets product. Using this instead of the access_token field allows the updating of multiple items at once. This feature is in closed beta, please contact your account manager for more info.

deposit_switch Object No

(Deprecated) Specifies options for initializing Link for use with the Deposit Switch (beta) product. This field is required if deposit_switch is included in the products array.

deposit_switch.deposit_switch_id String Yes

The deposit_switch_id provided by the /deposit_switch/create endpoint.

client_name String Yes

The name of your application, as it should be displayed in Link. Maximum length of 30 characters. If a value longer than 30 characters is provided, Link will display "This Application" instead.

country_codes[] Array Yes

Specify an array of Plaid-supported country codes using the ISO-3166-1 alpha-2 country code standard. Institutions from all listed countries will be shown. For a complete mapping of supported products by country, see https://plaid.com/global/. By default, access is granted to US and CA. For Production or Limited Production access to other countries, contact Sales or your account manager.

If using Identity Verification, country_codes should be set to the country where your company is based, not the country where your user is located. For all other products, country_codes represents the location of your user's financial institution.

If Link is launched with multiple country codes, only products that you are enabled for in all countries will be used by Link. While all countries are enabled by default in Sandbox, in Production only the countries you have requested access for are shown. To request access to additional countries, file a product access Support ticket via the Plaid dashboard.

If using a Link customization, make sure the country codes in the customization match those specified in country_codes, or the customization may not be applied.

If using the Auth features Instant Match, Instant Micro-deposits, Same-day Micro-deposits, Automated Micro-deposits, or Database Auth, country_codes must be set to ['US'].

webhook String No

The destination URL to which any webhooks should be sent. Note that webhooks for Payment Initiation (e-wallet transactions only), Transfer, Bank Transfer (including Auth micro-deposit notification webhooks), Monitor, and Identity Verification are configured via the Dashboard instead. In update mode, this field will not have an effect; to update the webhook receiver endpoint for an existing Item, use /item/webhook/update instead.

identity Object No

Identity object used to specify document upload

identity.parsing_configs[] Array No

An array of parsing configurations. Valid parsing configurations are ocr and risk_signals. If parsing configurations are omitted, defaults to ocr

identity.is_document_upload Boolean No

Used to specify whether the Link session is Identity Document Upload

identity.account_ids[] Array No

An array of account_ids. Currently can only contain one account_id. Must be populated if using Document Upload.

secret String No

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.

cashflow_report Object No

Configuration parameters for the Cashflow Report product. Currently in closed beta.

cashflow_report.days_requested Integer No

Number of days of transaction history to request in the Cashflow Report product.

Default value: 365

language String Yes

The language that Link should be displayed in. When initializing with Identity Verification, this field is not used; for more details, see Identity Verification supported languages.

Supported languages are:

  • Danish ('da')
  • Dutch ('nl')
  • English ('en')
  • Estonian ('et')
  • French ('fr')
  • German ('de')
  • Hindi ('hi')
  • Italian ('it')
  • Latvian ('lv')
  • Lithuanian ('lt')
  • Norwegian ('no')
  • Polish ('pl')
  • Portuguese ('pt')
  • Romanian ('ro')
  • Spanish ('es')
  • Swedish ('sv')
  • Vietnamese ('vi')

When using a Link customization, the language configured here must match the setting in the customization, or the customization will not be applied.

payment_initiation Object No

Specifies options for initializing Link for use with the Payment Initiation (Europe) product. This field is required if payment_initiation is included in the products array. Either payment_id or consent_id must be provided.

payment_initiation.payment_id String No

The payment_id provided by the /payment_initiation/payment/create endpoint.

payment_initiation.consent_id String No

The consent_id provided by the /payment_initiation/consent/create endpoint.

appearance_mode String No

Enum representing the desired appearance mode for Link, used to force light or dark modes or set Link to change depending on user system settings. Currently in closed beta.

Possible values:

  • "LIGHT"
  • "SYSTEM"
  • null
  • "DARK"
required_if_supported_products[] Array No

List of Plaid product(s) you wish to use only if the institution and account(s) selected by the user support the product. Institutions that do not support these products will still be shown in Link. The products will only be extracted and billed if the user selects an institution and account type that supports them.

There should be no overlap between this array and the products, optional_products, or additional_consented_products arrays. The products array must have at least one product.

For more details on using this feature, see Required if Supported Products.

user_token String No

A user token generated using /user/create. Any Item created during the Link session will be associated with the user.

employment Object No

Specifies options for initializing Link for use with the Employment product. This field is required if employment is included in the products array.

employment.employment_source_types[] Array No

The types of source employment data that users will be permitted to share. Options include bank and payroll. Currently you can only specify one of these options.

employment.bank_employment Object No

Specifies options for initializing Link for use with Bank Employment. This field is required if employment is included in the products array and bank is specified in employment_source_types.

employment.bank_employment.days_requested Integer Yes

The number of days of data to request for the Bank Employment product.

base_report Object No

Specifies options for initializing Link for use with the Base Report product. This field is required if assets is included in the products array and the client is CRA-enabled.

base_report.days_requested Integer Yes

The maximum integer number of days of history to include in the Base Report.

base_report.client_report_id String No

Client-generated identifier, which can be used by lenders to track loan applications.

financekit_supported Boolean No

If true, indicates that client supports linking FinanceKit / AppleCard items. Defaults to false.

card_switch Object No

A map containing data to pass in for the Card Switch flow.

card_switch.card_bin String Yes

The BIN (Bank Identification Number) of the card to switch.

enable_multi_item_link Boolean No

If true, enable linking multiple items in the same Link session. Defaults to false.

optional_products[] Array No

List of Plaid product(s) that will enhance the consumer's use case, but that your app can function without. Plaid will attempt to fetch data for these products on a best-effort basis, and failure to support these products will not affect Item creation.

There should be no overlap between this array and the products, required_if_supported_products, or additional_consented_products arrays. The products array must have at least one product.

For more details on using this feature, see Optional Products.

android_package_name String No

The name of your app's Android package. Required if using the link_token to initialize Link on Android. Any package name specified here must also be added to the Allowed Android package names setting on the developer dashboard. When creating a link_token for initializing Link on other platforms, android_package_name must be left blank and redirect_uri should be used instead.

payment_configuration Object No

Specifies options for initializing Link for use with the Pay By Bank flow. This is an optional field to configure the user experience, and currently requires the amount field to be set.

payment_configuration.description String No

The description of the transfer that provides the payment context. The max length is 256.

payment_configuration.amount String Yes

The amount of the transfer (decimal string with two digits of precision e.g. "10.00").

auth Object No

Specifies options for initializing Link for use with the Auth product. This field can be used to enable or disable extended Auth flows for the resulting Link session. Omitting any field will result in a default that can be configured by your account manager. The default behavior described in the documentation is the default behavior that will apply if you have not requested your account manager to apply a different default. If you have enabled the Dashboard Account Verification pane, the settings enabled there will override any settings in this object.

auth.same_day_microdeposits_enabled Boolean No

Specifies whether the Link session is enabled for the Same Day Micro-deposits flow. Default behavior is false.

auth.instant_microdeposits_enabled Boolean No

Specifies whether the Link session is enabled for the Instant Micro-deposits flow. Default behavior for Plaid teams created after November 2023 is false; default behavior for Plaid teams created before that date is true.

auth.instant_match_enabled Boolean No

Specifies whether the Link session is enabled for the Instant Match flow. Instant Match is enabled by default. Instant Match can be disabled by setting this field to false.

auth.database_match_enabled Boolean No

Database Match has been deprecated and replaced with Database Auth. Use the Account Verification Dashboard to enable Database Auth.

auth.auth_type_select_enabled Boolean No

Specifies whether Auth Type Select is enabled for the Link session, allowing the end user to choose between linking via a credentials-based flow (i.e. Instant Auth, Instant Match, Automated Micro-deposits) or a manual flow that does not require login (all other Auth flows) prior to selecting their financial institution. Default behavior is false.

auth.automated_microdeposits_enabled Boolean No

Specifies whether the Link session is enabled for the Automated Micro-deposits flow. Default behavior is false.

auth.flow_type String No

This field has been deprecated in favor of auth_type_select_enabled.

Possible values:

  • "FLEXIBLE_AUTH"
auth.database_insights_enabled Boolean No

Database Insights has been deprecated and replaced with Database Auth. Use the Account Verification Dashboard to enable Database Auth.

auth.sms_microdeposits_verification_enabled Boolean No

Specifies whether the Link session is enabled for SMS micro-deposits verification. Default behavior is true.

auth.reroute_to_credentials String No

Specifies what type of Reroute to Credentials pane should be used in the Link session for the Same Day Micro-deposits flow. Default behavior is OPTIONAL.

Possible values:

  • "OFF"
  • "OPTIONAL"
  • "FORCED"
products[] Array No

List of Plaid product(s) you wish to use. If launching Link in update mode, should be omitted (unless you are using update mode to add Income or Assets to an Item); required otherwise.

balance is not a valid value, the Balance product does not require explicit initialization and will automatically be initialized when any other product is initialized.

If launching Link with CRA products, cra_base_reports is required and must be included in the products array.

The products specified here will determine which institutions will be available to your users in Link. Only institutions that support all requested products can be selected; a if a user attempts to select an institution that does not support a listed product, a "Connectivity not supported" error message will appear in Link. To maximize the number of institutions available, initialize Link with the minimal product set required for your use case.

Additional products can be included via the optional_products or required_if_supported_products fields. Products can also be initialized by calling the endpoint after obtaining an access token; this may require the product to be listed in the additional_consented_products array. For details, see Choosing when to initialize products.

Note that, unless you have opted to disable Instant Match support, institutions that support Instant Match will also be shown in Link if auth is specified as a product, even though these institutions do not contain auth in their product array.

In Production, you will be billed for each product that you specify when initializing Link. Note that a product cannot be removed from an Item once the Item has been initialized with that product. To stop billing on an Item for subscription-based products, such as Liabilities, Investments, and Transactions, remove the Item via /item/remove.

additional_consented_products[] Array No

List of additional Plaid product(s) you wish to collect consent for to support your use case. These products will not be billed until you start using them by calling the relevant endpoints.

balance is not a valid value, the Balance product does not require explicit initialization and will automatically have consent collected.

Institutions that do not support these products will still be shown in Link.

There should be no overlap between this array and the products or required_if_supported_products arrays.

If you include signal in additional_consented_products, you will need to call /signal/prepare before calling /signal/evaluate for the first time on an Item in order to get the most accurate results. For more details, see Using /signal/prepare.

transactions Object No

Configuration parameters for the Transactions product

transactions.days_requested Integer No

The maximum number of days of transaction history to request for the Transactions product. The more transaction history is requested, the longer the historical update poll will take. The default value is 90 days. If a value under 30 is provided, a minimum of 30 days of history will be requested. Once Transactions has been added to an Item, this value cannot be updated.

Customers using Recurring Transactions should request at least 180 days of history for optimal results.

Default value: 90

income_verification Object No

Specifies options for initializing Link for use with the Income product. This field is required if income_verification is included in the products array.

income_verification.stated_income_sources[] Array No

A list of user stated income sources

income_verification.stated_income_sources[].category String No

The income category for a specified income source

Possible values:

  • "OTHER"
  • "BANK_INTEREST"
  • "SALARY"
  • "MILITARY"
  • "LONG_TERM_DISABILITY"
  • "GIG_ECONOMY"
  • "CHILD_SUPPORT"
  • "RENTAL"
  • "UNEMPLOYMENT"
  • "CASH"
  • "RETIREMENT"
income_verification.stated_income_sources[].employer String No

The employer corresponding to an income source specified by the user

income_verification.stated_income_sources[].pay_per_cycle Number No

The income amount paid per cycle for a specified income source

income_verification.stated_income_sources[].pay_frequency String No

The pay frequency of a specified income source

Possible values:

  • "SEMI_MONTHLY"
  • "UNKNOWN"
  • "WEEKLY"
  • "MONTHLY"
  • "BIWEEKLY"
income_verification.stated_income_sources[].pay_type String No

The pay type - GROSS, NET, or UNKNOWN for a specified income source

Possible values:

  • "GROSS"
  • "NET"
  • "UNKNOWN"
income_verification.stated_income_sources[].pay_annual Number No

The income amount paid annually for a specified income source

income_verification.income_verification_id String No

The income_verification_id of the verification instance, as provided by /income/verification/create. Replaced by the user token.

income_verification.access_tokens[] Array No

An array of access tokens corresponding to Items that a user has previously connected with. Data from these institutions will be cross-referenced with document data received during the Document Income flow to help verify that the uploaded documents are accurate. If the transactions product was not initialized for these Items during link, it will be initialized after this Link session.

This field should only be used with the payroll income source type.

income_verification.payroll_income Object No

Specifies options for initializing Link for use with Payroll Income (including Document Income). Further customization options for Document Income, such as customizing which document types may be uploaded, are also available via the Link Customization pane in the Dashboard. (Requires Production enablement.)

income_verification.payroll_income.parsing_config[] Array No

The types of analysis to enable for document uploads. If this field is not provided, then docs will undergo OCR parsing only.

income_verification.payroll_income.item_id_to_update String No

Uniquely identify a payroll income Item to update with. This field is only relevant for participants in the Payroll Income Refresh beta.

income_verification.payroll_income.is_update_mode Boolean No

An identifier to indicate whether the income verification Link token will be used for update mode. This field is only relevant for participants in the Payroll Income Refresh beta.

Default value: false

income_verification.payroll_income.flow_types[] Array No

The types of payroll income verification to enable for the Link session. If none are specified, then users will see both document and digital payroll income.

income_verification.asset_report_id String No

The asset_report_id of an asset report associated with the user, as provided by /asset_report/create. Providing an asset_report_id is optional and can be used to verify the user through a streamlined flow. If provided, the bank linking flow will be skipped.

income_verification.bank_income Object No

Specifies options for initializing Link for use with Bank Income. This field is required if income_verification is included in the products array and bank is specified in income_source_types.

income_verification.bank_income.days_requested Integer Yes

The number of days of data to request for the Bank Income product

income_verification.bank_income.enable_multiple_items Boolean No

Whether to enable multiple Items to be added in the Link session. This setting is deprecated and has been replaced by the more general enable_multi_item_link setting, which supports all products.

Default value: false

income_verification.income_source_types[] Array No

The types of source income data that users will be permitted to share. Options include bank and payroll. Currently you can only specify one of these options.

user Object Yes

An object specifying information about the end user who will be linking their account.

user.email_address_verified_time String No

The date and time the email address was verified in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ). This was previously an optional field used in the returning user experience. This field is no longer required to enable the returning user experience.

Only pass a verification time for an email address that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.

Example: 2020-01-01T00:00:00Z

user.ssn String No

Deprecated and not currently used, use the id_number field instead.

user.date_of_birth String No

To be provided in the format "yyyy-mm-dd". Can be used to prefill Link fields when used with Identity Verification.

user.email_address String No

The user's email address. Can be used to prefill Link fields when used with Identity Verification.

user.phone_number_verified_time String No

The date and time the phone number was verified in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ). This was previously an optional field used in the returning user experience. This field is no longer required to enable the returning user experience.

Only pass a verification time for a phone number that you have verified. If you have performed verification but don’t have the time, you may supply a signal value of the start of the UNIX epoch.

Example: 2020-01-01T00:00:00Z

user.legal_name String No

The user's full legal name, used for micro-deposit based verification flows. For a small number of customers on legacy flows, providing this field is required to enable micro-deposit-based flows. For all other customers, this field is optional. Providing the user's name in this field when using micro-deposit-based verification will streamline the end user experience, as the user will not be prompted to enter their name during the Link flow; Plaid will use the provided legal name instead.

user.client_user_id String Yes

A unique ID representing the end user. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id. It is currently used as a means of searching logs for the given user in the Plaid Dashboard.

user.phone_number String No

The user's phone number in E.164 format. If supplied, will be used when applicable to prefill phone number fields in Link for the returning user flow and the Identity Verification flow.

statements Object No

Specifies options for initializing Link for use with the Statements product. This field is required for the statements product.

statements.start_date String Yes

The start date for statements, in ISO 8601 "YYYY-MM-DD" format, e.g. "2020-10-30".

statements.end_date String Yes

The end date for statements, in ISO 8601 "YYYY-MM-DD" format, e.g. "2020-10-30". You can request up to two years of data.

consumer_report_permissible_purpose String No

Describes the reason you are generating a Consumer Report for this user. This parameter is required if you want to generate a Consumer Report for the user automatically after the Link session. If you omit this parameter during Link token creation, you can later call the /cra/check_report/create endpoint to generate a report.

ACCOUNT_REVIEW_CREDIT: In connection with a consumer credit transaction for the review or collection of an account pursuant to FCRA Section 604(a)(3)(A).

ACCOUNT_REVIEW_NON_CREDIT: For a legitimate business need of the information to review a non-credit account provided primarily for personal, family, or household purposes to determine whether the consumer continues to meet the terms of the account pursuant to FCRA Section 604(a)(3)(F)(2).

EMPLOYMENT: For employment purposes pursuant to FCRA 604(a)(3)(B), including hiring, retention and promotion purposes.

EXTENSION_OF_CREDIT: In connection with a credit transaction initiated by and involving the consumer pursuant to FCRA Section 604(a)(3)(A).

LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING: For a legitimate business need in connection with a business transaction initiated by the consumer primarily for personal, family, or household purposes in connection with a property rental assessment pursuant to FCRA Section 604(a)(3)(F)(i).

LEGITIMATE_BUSINESS_NEED_OTHER: For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).

WRITTEN_INSTRUCTION_PREQUALIFICATION: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application’s profile to make an offer to the consumer.

WRITTEN_INSTRUCTION_OTHER: In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), such as when an individual agrees to act as a guarantor or assumes personal liability for a consumer, business, or commercial loan.

Possible values:

  • "WRITTEN_INSTRUCTION_PREQUALIFICATION"
  • "ACCOUNT_REVIEW_CREDIT"
  • "ACCOUNT_REVIEW_NON_CREDIT"
  • "LEGITIMATE_BUSINESS_NEED_TENANT_SCREENING"
  • "EXTENSION_OF_CREDIT"
  • "WRITTEN_INSTRUCTION_OTHER"
  • "LEGITIMATE_BUSINESS_NEED_OTHER"
  • "EMPLOYMENT"
transfer Object No

Specifies options for initializing Link for use with the Transfer product.

transfer.intent_id String No

The id returned by the /transfer/intent/create endpoint.

transfer.authorization_id String No

The id returned by the /transfer/authorization/create endpoint. Used to indicate Link session to complete required user action in order to make a decision for the authorization. If set, access_token can be omitted.

transfer.payment_profile_token String No

The payment_profile_token returned by the /payment_profile/create endpoint.

investments Object No

Configuration parameters for the Investments product

investments.allow_unverified_crypto_wallets Boolean No

If true, allow self-custody crypto wallets to be added without requiring signature verification. Defaults to false.

investments.allow_manual_entry Boolean No

If true, allow users to manually enter Investments account and holdings information. Defaults to false.

institution_id String No

Used for certain Europe-only configurations, as well as certain legacy use cases in other regions.

cra_enabled Boolean No

If true, request a CRA connection. Defaults to false.

institution_data Object No

A map containing data used to highlight institutions in Link.

institution_data.routing_number String No

The routing number of the bank to highlight in Link. Note: in rare cases, a single routing number can be associated with multiple institutions, e.g. due to a brokerage using another institution to manage ACH on its sweep accounts. If this happens, the bank will not be highlighted in Link even if the routing number is provided.

access_token String No

The access_token associated with the Item to update or reference, used when updating, modifying, or accessing an existing access_token. Used when launching Link in update mode, when completing the Same-day (manual) Micro-deposit flow, or (optionally) when initializing Link for a returning user as part of the Transfer UI flow.

credit_partner_insights Object No

Specifies options for initializing Link for use with the Credit Partner Insights product.

credit_partner_insights.days_requested Integer No

The maximum integer number of days of history to compute Credit Partner Insights. Defaults to 180 if not specified

credit_partner_insights.prism_products[] Array No

The specific Prism products to return. If none are passed in, then all products will be returned.

eu_config Object No

Configuration parameters for EU flows

eu_config.headless Boolean No

If true, open Link without an initial UI. Defaults to false.

update Object No

Specifies options for initializing Link for update mode.

update.item_ids[] Array No

An array of item_ids associated with the user to be updated in update mode. If empty or null, this field will default to initializing update mode for the most recent unhealthy Item associated with the user. A user_token must also be provided to use this field.

update.user Boolean No

If true, a user_token must also be provided, and Link will open in update mode for the given user.

Default value: false

update.reauthorization_enabled Boolean No

By default, Plaid will enable the reauthorization flow during update mode for an Item enabled for Data Transparency Messaging if the Item expires within six months. During a reauthorization flow, an end user will review Plaid's end user privacy policy, use case and data scope consents, and account access consents; they may also be required to log in to their financial institution's OAuth flow. After the end user successfully completes the reauthorization flow, the Item's expiration date will be extended to 12 months from the time that the reauthorization took place. This field allows you to optionally override the default reauthorization scheduling logic to either forcibly enable or disable the reauthorization flow for a given update mode session. This field does not impact the flow for Items at institutions in the EU or UK.

update.account_selection_enabled Boolean No

If true, enables update mode with Account Select for institutions in the US and Canada that do not use OAuth, or that use OAuth but do not have their own account selection flow. For institutions in the US that have an OAuth account selection flow (i.e. most OAuth-enabled institutions), update mode with Account Select will always be enabled, regardless of the value of this field.

Default value: false

identity_verification Object No

Specifies option for initializing Link for use with the Identity Verification product.

identity_verification.gave_consent Boolean No

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 value: false

identity_verification.consent Boolean No

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 value: false

identity_verification.template_id String Yes

ID of the associated Identity Verification template.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.