The Plaid Sandbox connector lets your AI agent act in each user's Plaid Sandbox account. Each user connects their own Plaid Sandbox API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 32 tools.
- Tools
- 32
- What they doRead · write · destructive
- 17 · 12 · 317 read12 write3 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Plaid Sandbox connection
In AgentKit > Connections, create a Plaid Sandbox connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
Plaid Sandbox connections use your Plaid client ID and Sandbox secret, and call Plaid’s Sandbox environment (
sandbox.plaid.com) with test banks and test data. When you’re ready for real bank data, use the Plaid connector with your Production secret.-
Copy your Plaid keys
In the Plaid Dashboard, open Developers > Keys and copy your client ID and your Sandbox secret. The client ID is the same in every Plaid environment; the secret is not.
-
Create the connection
In the Scalekit dashboard, go to AgentKit > Connections > Create Connection, find Plaid Sandbox and click Create. The connection name is the
connection_nameyour code passes. -
Add a connected account
To test, open the connection, click the Connected Accounts tab > Add Account, enter the user’s identifier, such as
user_123, and fill in Client ID and Sandbox Secret.In production, each user opens the authorization link and enters the same fields there.
-
Create a test Item and get its access token
Most tools take an Item’s
access_tokenas input. An Item is one end user’s login at a bank. In Sandbox, create one without Plaid Link:- Call
plaidsandbox_sandbox_public_token_createwithinstitution_idset toins_109508(First Platypus Bank, a test bank) and the products you want to test ininitial_products, such as["transactions"]. - Pass the returned
public_tokentoplaidsandbox_item_public_token_exchange. It returns the Item’saccess_tokenanditem_id. - Pass the
access_tokenon later tool calls, such asplaidsandbox_accounts_get.
Keep
initial_productsto the one or two products you’re testing. Creating an Item with many products can take long enough for the call to fail; if it does, retry with fewer products. - Call
To test the same Link flow your app runs in Production, create a Link token with
plaidsandbox_link_token_create, open Plaid Link with it and sign in with Plaid’s test credentialsuser_good/pass_good.-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'plaidsandbox'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Plaid Sandbox:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'plaidsandbox_accounts_balance_get',toolInput: { access_token: 'YOUR_ACCESS_TOKEN' },})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "plaidsandbox"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Plaid Sandbox:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={"access_token":"YOUR_ACCESS_TOKEN"},tool_name="plaidsandbox_accounts_balance_get",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Plaid Sandbox credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolplaidsandbox_accounts_balance_getGet real-time balances for an Item's accounts by fetching fresh data from the institution.Read-onlyGet Real-Time Balances
Get real-time balances for an Item's accounts by fetching fresh data from the institution. Returns accounts with balances (available, current, limit, iso_currency_code, last_updated_datetime) and item. Use plaidsandbox_accounts_balance_get before moving money or whenever balances must be current. Each call is billed and usually takes under 10 seconds, sometimes 30 or more. Use plaidsandbox_accounts_get for free cached balances.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit the accounts returned to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
min_last_updated_datetimestring- Oldest acceptable balance time, ISO 8601 (YYYY-MM-DDTHH:mm:ssZ). Only needed for institutions that do not return real-time balances (for example Capital One); Plaid returns an error if its balance is older. Example: 2026-10-20T00:00:00Z.
plaidsandbox_accounts_getList the active accounts on an Item, with balances cached from Plaid's last update.Read-onlyGet Accounts
List the active accounts on an Item, with balances cached from Plaid's last update. Returns accounts (account_id, name, official_name, mask, type, subtype, and balances with available, current, limit and iso_currency_code) and item. Use plaidsandbox_accounts_get for account ids, names and types; it is free. Use plaidsandbox_accounts_balance_get when balances must be real-time.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit the accounts returned to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
plaidsandbox_auth_getGet the account and routing numbers of an Item's checking, savings and cash management accounts.Read-onlyGet Auth (Account and Routing Numbers)
Get the account and routing numbers of an Item's checking, savings and cash management accounts. Returns numbers (ach with account and routing numbers for US accounts, eft for Canada, international with IBAN and BIC, bacs for the UK), accounts with balances, and item. Use plaidsandbox_auth_get to set up ACH or other bank transfers. The Item must have the auth product. Use plaidsandbox_accounts_get when you only need account names and masks.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit results to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
plaidsandbox_identity_getGet the account holder information that the institution has on file for an Item's accounts.Read-onlyGet Identity
Get the account holder information that the institution has on file for an Item's accounts. Returns accounts, each with owners holding names, emails, phone_numbers and addresses (only names are always present), and item. Use plaidsandbox_identity_get to read who owns an account. Use plaidsandbox_identity_match to score data you already have against the bank's records without reading it.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit results to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
plaidsandbox_identity_matchScore how well a name, phone number, email address and postal address match the account holder data at the institution.Read-onlyMatch Identity
Score how well a name, phone number, email address and postal address match the account holder data at the institution. Returns accounts, each with legal_name, phone_number, email_address and address match scores from 0 to 100 (plus flags such as is_nickname_match and is_postal_code_match), and item. Use plaidsandbox_identity_match to verify that a user owns an account. Provide at least one of the identity fields. Use plaidsandbox_identity_get to read the bank-held data itself.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit matching to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
addressobject- The user's address with street, city, region, postal_code and country (ISO-3166-1 alpha-2). Example: {"street": "2992 Cameron Road", "city": "Malakoff", "region": "NY", "postal_code": "14236", "country": "US"}.
email_addressstring- The user's email address. Example: accountholder0@example.com.
legal_namestring- The user's full legal name. Example: Alberta Bobbeth Charleson.
phone_numberstring- The user's phone number in E.164 format, +{country code}{number}. Example: +14157452130.
plaidsandbox_institutions_getList the financial institutions Plaid supports in the given countries, page by page.Read-onlyList Institutions
List the financial institutions Plaid supports in the given countries, page by page. Returns institutions (institution_id, name, products, country_codes, routing_numbers, oauth, and url, logo and primary_color when include_optional_metadata is true) and total. Use plaidsandbox_institutions_get to page through or filter all institutions by product, routing number or OAuth. Use plaidsandbox_institutions_search to find a bank by name and plaidsandbox_institutions_get_by_id when you have its id.
Inputs
country_codesarrayrequired- Countries to include institutions from, as ISO-3166-1 alpha-2 codes. Plaid supports US, CA, GB and several EU countries. Example: ["US"].
countinteger- Institutions to return per page, 1 to 500. Defaults to 100 in this tool.default
100 include_optional_metadataboolean- Set to true to also return each institution's url, logo (base64 PNG) and primary_color. Defaults to false.
oauthboolean- Set to true for only institutions with an OAuth login flow, or false for only those without. Leave empty for both.
offsetinteger- Number of institutions to skip, for paging. Defaults to 0. Example: 100.default
0 productsarray- Only return institutions that support all of these products. Example: ["transactions", "auth"].
routing_numbersarray- Only return institutions that match all of these 9-digit routing numbers. Example: ["011000138"].
plaidsandbox_institutions_get_by_idGet one institution's details by its Plaid institution_id, including institutions no longer supported for new connections.Read-onlyGet Institution
Get one institution's details by its Plaid institution_id, including institutions no longer supported for new connections. Returns institution (institution_id, name, products, country_codes, routing_numbers, oauth, connection_availability, and with the options its url, logo, primary_color and per-product health status). Use plaidsandbox_institutions_get_by_id with the institution_id of an Item from plaidsandbox_item_get. Use plaidsandbox_institutions_search to find an id by name.
Inputs
country_codesarrayrequired- Countries to include the institution from, as ISO-3166-1 alpha-2 codes. Plaid supports US, CA, GB and several EU countries. Example: ["US"].
institution_idstringrequired- The Plaid institution_id, case-sensitive. Find it in plaidsandbox_item_get or plaidsandbox_institutions_search. Example: ins_109508.
include_optional_metadataboolean- Set to true to also return the institution's url, logo (base64 PNG) and primary_color. Defaults to false.
include_statusboolean- Set to true to also return the institution's current health per product (status). Defaults to false.
plaidsandbox_institutions_searchSearch the institutions Plaid supports for new connections by name, returning up to 10 matches.Read-onlySearch Institutions
Search the institutions Plaid supports for new connections by name, returning up to 10 matches. Returns institutions with institution_id, name, products, country_codes, routing_numbers and oauth (plus url, logo and primary_color when include_optional_metadata is true). Use plaidsandbox_institutions_search to find a bank's institution_id from its name. Use plaidsandbox_institutions_get to page through all institutions.
Inputs
country_codesarrayrequired- Countries to include institutions from, as ISO-3166-1 alpha-2 codes. Plaid supports US, CA, GB and several EU countries. Example: ["US"].
querystringrequired- Text to match against institution names. Example: Chase.
include_optional_metadataboolean- Set to true to also return each institution's url, logo (base64 PNG) and primary_color. Defaults to false.
oauthboolean- Set to true for only institutions with an OAuth login flow, or false for only those without. Leave empty for both.
productsarray- Only return institutions that support all of these products. Leave empty for any product. Example: ["transactions"].
plaidsandbox_investments_holdings_getGet the positions held in an Item's investment accounts.Read-onlyGet Investment Holdings
Get the positions held in an Item's investment accounts. Returns holdings (account_id, security_id, quantity, institution_price, institution_value, cost_basis), securities (security_id, name, ticker_symbol, type, close_price), accounts and item. Use plaidsandbox_investments_holdings_get for a current portfolio snapshot; join holdings to securities on security_id. Use plaidsandbox_investments_transactions_get for buys, sells and dividends over time.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit holdings to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
plaidsandbox_investments_transactions_getGet the investment transactions (buys, sells, dividends, fees, transfers) of an Item between two dates, up to 24 months back.Read-onlyGet Investment Transactions
Get the investment transactions (buys, sells, dividends, fees, transfers) of an Item between two dates, up to 24 months back. Returns investment_transactions (newest first, with type, subtype, quantity, price, amount, fees and security_id), securities, accounts, item and total_investment_transactions. Use plaidsandbox_investments_transactions_get for investment activity; raise offset by count until you have total_investment_transactions. Use plaidsandbox_transactions_sync for bank and credit card transactions.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
end_datestringrequired- Latest transaction date to return, YYYY-MM-DD. Example: 2026-10-21.
start_datestringrequired- Earliest transaction date to return, YYYY-MM-DD. Example: 2025-10-21.
account_idsarray- Limit transactions to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
async_updateboolean- Only for Items that were not linked with investments. Set to true to return immediately and get a HISTORICAL_UPDATE webhook when data is ready, instead of waiting for the extraction. Defaults to false.
countinteger- Transactions to return per page, 1 to 500. Defaults to 100.default
100 offsetinteger- Number of transactions to skip, for paging. Defaults to 0. Example: 100.default
0
plaidsandbox_item_getGet the status and metadata of one linked Item, which is a user's login at one financial institution.Read-onlyGet Item
Get the status and metadata of one linked Item, which is a user's login at one financial institution. Returns item (item_id, institution_id, institution_name, webhook, products, billed_products, available_products, consented_products, consent_expiration_time and any error) and status with the last successful and failed update per product. Use plaidsandbox_item_get to check an Item's health, products or error state, for example ITEM_LOGIN_REQUIRED. Use plaidsandbox_accounts_get for the Item's accounts and plaidsandbox_institutions_get_by_id for its institution.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
plaidsandbox_liabilities_getGet loan and credit card details for an Item's credit and loan accounts.Read-onlyGet Liabilities
Get loan and credit card details for an Item's credit and loan accounts. Returns liabilities with credit (APRs, minimum payment, last statement balance, next payment due date), mortgage and student loan details, plus accounts and item. Use plaidsandbox_liabilities_get for debts, interest rates and payment due dates. The Item must have the liabilities product. Use plaidsandbox_accounts_balance_get for real-time balances only.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit results to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
plaidsandbox_link_token_getGet a Link session's configuration and results by its link_token.Read-onlyGet Link Token
Get a Link session's configuration and results by its link_token. Returns link_token, created_at, expiration, metadata (products, country_codes, webhook, client_name) and link_sessions with each session's events and results, including any public_token. Use plaidsandbox_link_token_get with Hosted Link or Multi-Item Link, where your app gets no onSuccess callback, then pass the public_token to plaidsandbox_item_public_token_exchange. For other Link flows, Plaid must enable full session data on your account.
Inputs
link_tokenstringrequired- A link_token from plaidsandbox_link_token_create. Example: link-sandbox-af1a0311-da53-4636-b754-dd15cc058176.
plaidsandbox_statements_listList the bank statements Plaid holds for an Item's accounts.Read-onlyList Statements
List the bank statements Plaid holds for an Item's accounts. Returns accounts (account_id, account_name, account_mask, account_type, account_subtype), each with statements (statement_id, date_posted, month, year), plus item_id, institution_id and institution_name. Use plaidsandbox_statements_list to see which monthly statements are available. Use plaidsandbox_statements_refresh to fetch statements for another date range. The Item must have the statements product; this connector does not download statement PDFs.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
plaidsandbox_transactions_getGet an Item's transactions between two dates, page by page.Read-onlyGet Transactions
Get an Item's transactions between two dates, page by page. Returns transactions (newest first, with transaction_id, account_id, amount, date, name, merchant_name, pending and personal_finance_category), total_transactions, accounts and item. Use plaidsandbox_transactions_get for a one-off date-range lookup; raise offset by count until you have total_transactions. Use plaidsandbox_transactions_sync to keep a local copy up to date.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
end_datestringrequired- Latest transaction date to return, YYYY-MM-DD. Example: 2026-10-21.
start_datestringrequired- Earliest transaction date to return, YYYY-MM-DD. Example: 2026-01-01.
account_idsarray- Limit transactions to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
countinteger- Transactions to return per page, 1 to 500. Defaults to 100.default
100 days_requestedinteger- Days of transaction history (1 to 730) to request when this call is what adds Transactions to the Item. Ignored if the Item already has Transactions. Plaid defaults to 90.
include_original_descriptionboolean- Set to true to also return each transaction's raw, unparsed description from the institution (original_description). Defaults to false.
offsetinteger- Number of transactions to skip, for paging. Defaults to 0. Example: 100.default
0 personal_finance_category_versionstring- Version of Plaid's personal finance category taxonomy to return: v1 or v2. Leave empty for the version your Plaid account is set to. Example: v2.one of
v1v2
plaidsandbox_transactions_recurring_getGet the recurring deposits and payments, such as salary, subscriptions and bills, that Plaid detects on an Item's accounts.Read-onlyGet Recurring Transactions
Get the recurring deposits and payments, such as salary, subscriptions and bills, that Plaid detects on an Item's accounts. Returns inflow_streams and outflow_streams, each with stream_id, account_id, description, merchant_name, frequency, average_amount, last_amount, first_date, last_date, predicted_next_date, is_active, status and transaction_ids, plus updated_datetime. Use plaidsandbox_transactions_recurring_get for subscription, income or bill analysis. Use plaidsandbox_transactions_sync for individual transactions. Needs the Recurring Transactions add-on and an Item whose transaction history has finished loading; 180 or more days of history gives the best results.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idsarray- Limit streams to these account_ids, from plaidsandbox_accounts_get. Leave empty for all of the Item's accounts. Plaid returns an error if an id does not belong to the Item. Example: ["BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"].
personal_finance_category_versionstring- Version of Plaid's personal finance category taxonomy to return: v1 or v2. Leave empty for the version your Plaid account is set to. Example: v2.one of
v1v2
plaidsandbox_transactions_syncGet an Item's transaction changes since a cursor: transactions added, modified and removed.Read-onlySync Transactions
Get an Item's transaction changes since a cursor: transactions added, modified and removed. Returns added and modified transactions (transaction_id, account_id, amount, iso_currency_code, date, name, merchant_name, pending, personal_finance_category), removed transaction ids, next_cursor, has_more and transactions_update_status. Use plaidsandbox_transactions_sync to load history and then stay up to date: leave cursor empty on the first call, pass next_cursor each time, and repeat while has_more is true. Use plaidsandbox_transactions_get for a fixed date range. Right after linking, results can be empty until transactions_update_status reaches INITIAL_UPDATE_COMPLETE or HISTORICAL_UPDATE_COMPLETE; call again later.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idstring- Only return changes for this one account_id, from plaidsandbox_accounts_get. The cursor then tracks only that account. Example: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp.
countinteger- Maximum transaction updates to return per call, 1 to 500. Defaults to 100.default
100 cursorstring- next_cursor from the previous call. Leave empty on the first call to get the full history. Store the latest cursor to fetch only new changes next time. Example: eyJsYXN0X2FjY291bnRfdXBkYXRlIjoiMjAyNi0xMC0yMFQwMDowMDowMFoifQ.
days_requestedinteger- Days of transaction history (1 to 730) to request when this call is what adds Transactions to the Item. Ignored if the Item already has Transactions. Plaid defaults to 90.
include_original_descriptionboolean- Set to true to also return each transaction's raw, unparsed description from the institution (original_description). Defaults to false.
personal_finance_category_versionstring- Version of Plaid's personal finance category taxonomy to return: v1 or v2. Leave empty for the version your Plaid account is set to. Example: v2.one of
v1v2
plaidsandbox_investments_refreshAsk Plaid to fetch an Item's newest investment holdings and transactions from the institution now.WriteRefresh Investments
Ask Plaid to fetch an Item's newest investment holdings and transactions from the institution now. Returns only request_id. If anything changed, Plaid fires HOLDINGS and INVESTMENTS_TRANSACTIONS DEFAULT_UPDATE webhooks. Use plaidsandbox_investments_refresh when a user expects a very recent trade, then read it with plaidsandbox_investments_holdings_get or plaidsandbox_investments_transactions_get. It is a separately billed add-on, not every institution supports it, and the Item must have investments.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
plaidsandbox_item_public_token_exchangeExchange a public_token from Plaid Link for the permanent access_token of the new Item.WriteExchange Public Token
Exchange a public_token from Plaid Link for the permanent access_token of the new Item. Returns access_token and item_id. Store both: every product tool needs the access_token, and webhooks name the Item by item_id. Use plaidsandbox_item_public_token_exchange once per Link success, right after Link returns a public_token. A public_token expires after 30 minutes and can be exchanged only once. In Sandbox, get a public_token without Link from plaidsandbox_sandbox_public_token_create.
Inputs
public_tokenstringrequired- The public_token from Plaid Link's onSuccess callback, plaidsandbox_link_token_get, or plaidsandbox_sandbox_public_token_create. It starts with public-sandbox- and expires 30 minutes after Link returns it. Example: public-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d.
plaidsandbox_item_webhook_updateSet or remove the webhook URL that Plaid notifies about one Item.WriteUpdate Item Webhook
Set or remove the webhook URL that Plaid notifies about one Item. Returns the updated item, including its webhook. Plaid then sends a WEBHOOK_UPDATE_ACKNOWLEDGED webhook to the new URL. Use plaidsandbox_item_webhook_update to point an existing Item at a new endpoint, or leave webhook empty to remove it. For new Items, set the webhook in plaidsandbox_link_token_create instead.
- Idempotent
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
webhookstring- The new HTTPS webhook URL for the Item. Leave empty to remove the Item's webhook. Example: https://example.com/plaid/webhook.
plaidsandbox_link_token_createCreate a link_token that your app uses to open Plaid Link, either to connect a new Item or to open update mode for an existing one.WriteCreate Link Token
Create a link_token that your app uses to open Plaid Link, either to connect a new Item or to open update mode for an existing one. Returns link_token and its expiration (4 hours for a new Item, 30 minutes for update mode), plus hosted_link_url when hosted_link is set. Use plaidsandbox_link_token_create before each Link session. Pass access_token, and no products, to open update mode, which repairs an Item in ITEM_LOGIN_REQUIRED or adds accounts. Use plaidsandbox_link_token_get to read the session's results afterwards.
Inputs
client_namestringrequired- Your application's name as Link should show it, up to 30 characters. Longer names show as "This Application". Example: Acme Budget.
client_user_idstringrequired- Your own stable, unique id for the end user, up to 128 characters. Do not use personal data such as an email address or phone number. Sent as user.client_user_id. Example: user-8231.
country_codesarrayrequired- Countries to include institutions shown in Link from, as ISO-3166-1 alpha-2 codes. Plaid supports US, CA, GB and several EU countries. Example: ["US"].
access_tokenstring- An existing Item's access_token, to open Link in update mode for that Item, for example to fix ITEM_LOGIN_REQUIRED or add accounts. Leave products empty when you set this. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_filtersobject- Limit which account types and subtypes the user can pick in Link. Keys are account types (depository, credit, loan, investment, other), each with an account_subtypes list. Example: {"depository": {"account_subtypes": ["checking", "savings"]}}.
additional_consented_productsarray- Products the user consents to now so you can add them later without sending the user through Link again. They are not billed until you use them. Example: ["liabilities"].
android_package_namestring- Your Android app's package name, required when Link runs on Android. Must be registered in the Plaid Dashboard. Example: com.example.budget.
hosted_linkobject- Set this to use Hosted Link, where Plaid hosts the Link page and returns hosted_link_url; an empty object {} is enough. Optional keys: completion_redirect_uri (where to send the user afterwards), url_lifetime_seconds (how long the URL stays valid) and is_mobile_app. Example: {"completion_redirect_uri": "https://example.com/plaid/done", "url_lifetime_seconds": 3600}.
languagestring- Language Link is shown in, as a two-letter code such as en, fr, es or de. Defaults to en. Example: en.one of
danlenetfrdehthiitlvltnbplptroessvvidefaulten link_customization_namestring- Name of a Link customization from the Plaid Dashboard to apply. Defaults to the default customization. Example: default.
optional_productsarray- Products to add if supported, billed only when you first call them. Example: ["auth"].
productsarray- Products the new Item must support; Link only shows institutions that support all of them, and they are billed once the Item is created. Common values: transactions, auth, identity, investments, liabilities, statements. Leave empty in update mode (when access_token is set). Example: ["transactions"].
redirect_uristring- Where Link sends the user back after an OAuth bank login. Must be registered in the Plaid Dashboard under Allowed redirect URIs. Required for OAuth institutions when Link runs in a browser or iOS app. Example: https://example.com/plaid/oauth-return.
required_if_supported_productsarray- Products to add when the institution supports them; Link still shows institutions that do not. Example: ["identity"].
statementsobject- Required when statements is one of the products: the date range of statements to fetch, as start_date and end_date (YYYY-MM-DD, up to two years). Example: {"start_date": "2025-01-01", "end_date": "2025-12-31"}.
transactions_days_requestedinteger- Days of transaction history (1 to 730) to request when transactions is one of the products. Plaid defaults to 90. Request at least 180 for recurring transactions. Sent as transactions.days_requested. Example: 365.
updateobject- Update mode options. Set account_selection_enabled to true to let the user add or remove accounts on the Item. Example: {"account_selection_enabled": true}.
user_idstring- A user_id from plaidsandbox_user_create. Required for Plaid Check, Income, Multi-Item Link and Plaid Protect; leave empty for other products. Example: usr_8c3ZbDBYjaqUXZ.
webhookstring- HTTPS URL that Plaid sends this Item's webhooks to. Example: https://example.com/plaid/webhook.
plaidsandbox_sandbox_item_fire_webhookSend a test webhook for a Sandbox Item, such as TRANSACTIONS SYNC_UPDATES_AVAILABLE or ITEM NEW_ACCOUNTS_AVAILABLE.WriteFire Sandbox Webhook
Send a test webhook for a Sandbox Item, such as TRANSACTIONS SYNC_UPDATES_AVAILABLE or ITEM NEW_ACCOUNTS_AVAILABLE. Returns webhook_fired, true on success. Plaid delivers the webhook to the URL set on the Item. Use plaidsandbox_sandbox_item_fire_webhook to test your webhook handler. The Item needs a webhook URL first: set it with plaidsandbox_item_webhook_update or when creating the Item.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
webhook_codestringrequired- Webhook to fire. DEFAULT_UPDATE needs webhook_type AUTH, IDENTITY, TRANSACTIONS, INVESTMENTS_TRANSACTIONS, LIABILITIES or HOLDINGS. SYNC_UPDATES_AVAILABLE and RECURRING_TRANSACTIONS_UPDATE are TRANSACTIONS webhooks; NEW_ACCOUNTS_AVAILABLE, PENDING_DISCONNECT, USER_PERMISSION_REVOKED, USER_ACCOUNT_REVOKED, LOGIN_REPAIRED and ERROR are ITEM webhooks. Example: SYNC_UPDATES_AVAILABLE.one of
DEFAULT_UPDATENEW_ACCOUNTS_AVAILABLESMS_MICRODEPOSITS_VERIFICATIONAUTHORIZATION_GRANTEDUSER_PERMISSION_REVOKEDUSER_ACCOUNT_REVOKEDPENDING_DISCONNECTRECURRING_TRANSACTIONS_UPDATELOGIN_REPAIREDSYNC_UPDATES_AVAILABLEPRODUCT_READYERROR new_transactionsinteger- Value of new_transactions in a TRANSACTIONS DEFAULT_UPDATE webhook. Only valid for that webhook. Defaults to 0. Example: 5.
webhook_typestring- Product the webhook is about. Needed with DEFAULT_UPDATE; Plaid infers it for most other codes. Example: TRANSACTIONS.one of
AUTHHOLDINGSINVESTMENTS_TRANSACTIONSITEMLIABILITIESTRANSACTIONSASSETSIDENTITY
plaidsandbox_sandbox_item_reset_loginForce a Sandbox Item into the ITEM_LOGIN_REQUIRED error state, as if the user's bank login stopped working.WriteReset Sandbox Item Login
Force a Sandbox Item into the ITEM_LOGIN_REQUIRED error state, as if the user's bank login stopped working. Returns reset_login, true on success. If the Item has a webhook, Plaid also fires an ITEM_LOGIN_REQUIRED webhook. Use plaidsandbox_sandbox_item_reset_login to test how your app spots a broken Item (plaidsandbox_item_get shows the error) and repairs it with Link update mode (plaidsandbox_link_token_create with access_token).
- Idempotent
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
plaidsandbox_sandbox_item_set_verification_statusSet the micro-deposit verification status of one account on a Sandbox Item to automatically_verified or verification_expired.WriteSet Sandbox Verification Status
Set the micro-deposit verification status of one account on a Sandbox Item to automatically_verified or verification_expired. Returns only request_id. Use plaidsandbox_sandbox_item_set_verification_status to simulate the end of the Automated Micro-deposits Auth flow. The account must have been linked through that flow and be pending_automatic_verification.
- Idempotent
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
account_idstringrequired- The account_id to update, from plaidsandbox_accounts_get. Example: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp.
verification_statusstringrequired- Status to set: automatically_verified or verification_expired. Example: automatically_verified.one of
automatically_verifiedverification_expired
plaidsandbox_sandbox_public_token_createCreate a test Item in Sandbox without running Plaid Link, and get its public_token.WriteCreate Sandbox Item
Create a test Item in Sandbox without running Plaid Link, and get its public_token. Returns public_token, which plaidsandbox_item_public_token_exchange turns into an access_token. Use plaidsandbox_sandbox_public_token_create to set up test data: pick an institution such as ins_109508 (First Platypus Bank) and the products to start with. The default test login is user_good / pass_good; use user_custom with a JSON configuration as the password for custom accounts and transactions.
Inputs
initial_productsarrayrequired- Products to initialize the Item with. Example: ["transactions", "auth", "identity"].
institution_idstringrequired- Sandbox institution to create the Item at. Example: ins_109508 (First Platypus Bank, a non-OAuth test bank that supports most products).
override_passwordstring- Sandbox test password. Defaults to pass_good. With override_username user_custom, pass the custom user's JSON configuration as a string here. Example: pass_good.
override_usernamestring- Sandbox test username. Defaults to user_good. Use user_transactions_dynamic for transactions that change over time, user_custom to define accounts and data in override_password, or the name of a custom user from the Plaid Dashboard. Example: user_good.
statements_end_datestring- Latest statement date to load, YYYY-MM-DD, when statements is an initial product. Set together with statements_start_date. Sent as options.statements.end_date. Example: 2026-09-30.
statements_start_datestring- Earliest statement date to load, YYYY-MM-DD, when statements is an initial product. Set together with statements_end_date. Sent as options.statements.start_date. Example: 2025-10-01.
transactions_days_requestedinteger- Days of transaction history (1 to 730) to create when transactions is an initial product. Plaid defaults to 90. Sent as options.transactions.days_requested. Example: 365.
user_idstring- A user_id from plaidsandbox_user_create, for products that need a Plaid user (such as Plaid Check). Leave empty otherwise. Example: usr_8c3ZbDBYjaqUXZ.
webhookstring- Webhook URL to set on the new Item. Example: https://example.com/plaid/webhook.
plaidsandbox_sandbox_transactions_createAdd up to 10 custom transactions to a Sandbox Item.WriteCreate Sandbox Transactions
Add up to 10 custom transactions to a Sandbox Item. Returns only request_id. The transactions then appear in plaidsandbox_transactions_sync and plaidsandbox_transactions_get. Use plaidsandbox_sandbox_transactions_create to test categorization, alerts or budgeting against known data. Dates must be today or up to 730 days in the past.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
transactionsarrayrequired- One to 10 transactions to add. Each needs date_transacted and date_posted (YYYY-MM-DD, not in the future), amount (positive for money out, negative for money in) and description; iso_currency_code defaults to USD and account_id defaults to the Item's checking account. Example: [{"date_transacted": "2026-10-20", "date_posted": "2026-10-21", "amount": 12.5, "description": "sk-test coffee"}].
plaidsandbox_statements_refreshAsk Plaid to fetch an Item's statements for a date range from the institution.WriteRefresh Statements
Ask Plaid to fetch an Item's statements for a date range from the institution. Returns only request_id. Plaid fires a STATEMENTS_REFRESH_COMPLETE webhook when it finishes. Use plaidsandbox_statements_refresh to load statements Plaid does not hold yet, up to two years back, then list them with plaidsandbox_statements_list. The Item must have the statements product.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
end_datestringrequired- End of the statement date range, YYYY-MM-DD, at most two years after start_date. Example: 2026-09-30.
start_datestringrequired- Start of the statement date range, YYYY-MM-DD. Example: 2025-10-01.
plaidsandbox_transactions_refreshAsk Plaid to fetch an Item's newest transactions from the institution now, on top of its regular daily updates.WriteRefresh Transactions
Ask Plaid to fetch an Item's newest transactions from the institution now, on top of its regular daily updates. Returns only request_id. If anything changed, Plaid fires a SYNC_UPDATES_AVAILABLE webhook (DEFAULT_UPDATE or TRANSACTIONS_REMOVED for transactions/get users). Use plaidsandbox_transactions_refresh when a user expects a very recent transaction, then read it with plaidsandbox_transactions_sync. It is a separately billed add-on that Plaid must enable, and the Item must have transactions.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
plaidsandbox_user_createCreate a Plaid user for one of your end users, which Plaid Check, Income, Multi-Item Link and Plaid Protect need before Link.WriteCreate User
Create a Plaid user for one of your end users, which Plaid Check, Income, Multi-Item Link and Plaid Protect need before Link. Returns user_id (and user_token for integrations that started before December 10, 2025). Use plaidsandbox_user_create once per end user, then pass user_id to plaidsandbox_link_token_create. Auth, Balance, Identity, Transactions and Investments do not need it. Use plaidsandbox_user_remove to delete the user.
Inputs
client_user_idstringrequired- Your own stable, unique id for the end user, up to 128 characters. Do not use personal data such as an email address or phone number. Example: user-8231.
end_customerstring- For Plaid Check resellers only: your end customer's id, up to 128 characters. Example: customer-42.
identityobject- The user's identity: name (given_name, family_name), date_of_birth (YYYY-MM-DD), emails, phone_numbers (E.164), addresses and optional id_numbers. Plaid Check consumer reports need every field except id_numbers. Example: {"name": {"given_name": "Carmen", "family_name": "Berzatto"}, "date_of_birth": "1987-01-31", "emails": [{"data": "carmen@example.com", "primary": true}], "phone_numbers": [{"data": "+13125551212", "primary": true}], "addresses": [{"street_1": "3200 W Armitage Ave", "city": "Chicago", "region": "IL", "postal_code": "60657", "country": "US", "primary": true}]}.
with_upgraded_userboolean- Only for integrations that used /user/create before December 10, 2025: set to true to opt in to the new User APIs and get a user_id. Leave empty otherwise.
plaidsandbox_item_access_token_invalidateRotate an Item's access_token: Plaid issues a new token and invalidates the old one immediately.DestructiveRotate Access Token
Rotate an Item's access_token: Plaid issues a new token and invalidates the old one immediately. Returns new_access_token. Use plaidsandbox_item_access_token_invalidate when a token may be exposed. Store new_access_token right away, because the old token stops working at once. Use plaidsandbox_item_remove to disconnect the Item entirely.
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
plaidsandbox_item_removeRemove an Item and permanently invalidate its access_token and any processor tokens made from it.DestructiveRemove Item
Remove an Item and permanently invalidate its access_token and any processor tokens made from it. Returns only request_id. Use plaidsandbox_item_remove when a user disconnects a bank or is offboarded. It also ends subscription billing for Transactions, Liabilities and Investments on the Item. Use plaidsandbox_item_access_token_invalidate to rotate the token but keep the Item.
- Idempotent
Inputs
access_tokenstringrequired- The Item's access_token, returned by plaidsandbox_item_public_token_exchange after the end user links an account with Plaid Link. It starts with access-sandbox-. Example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6.
reason_codestring- Why the Item is being removed: FRAUD_FIRST_PARTY (the account owner committed fraud), FRAUD_FALSE_IDENTITY (the connection used a false or stolen identity), FRAUD_ABUSE, FRAUD_OTHER, CONNECTION_IS_NON_FUNCTIONAL or OTHER. Optional. Example: OTHER.one of
FRAUD_FIRST_PARTYFRAUD_FALSE_IDENTITYFRAUD_ABUSEFRAUD_OTHERCONNECTION_IS_NON_FUNCTIONALOTHER reason_notestring- Free-text detail about the removal reason. Do not include personal data such as an email address or phone number. Example: User closed their account in our app.
plaidsandbox_user_removeDelete a Plaid user and every Item linked to it.DestructiveRemove User
Delete a Plaid user and every Item linked to it. Returns only request_id. Use plaidsandbox_user_remove to offboard a user made with plaidsandbox_user_create. Pass user_id, or user_token for older integrations. Use plaidsandbox_item_remove to remove a single Item.
- Idempotent
Inputs
user_idstring- The user_id from plaidsandbox_user_create. Provide this or user_token. Example: usr_8c3ZbDBYjaqUXZ.
user_tokenstring- The user_token from plaidsandbox_user_create, for integrations that started before December 10, 2025. Provide this or user_id. Example: user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d.
No tools match.