# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for The Plaid API version: 1.0.0 extends: openapi/plaid-plaid-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-24' generator: build-phrasing.py label: Generated by API Evangelist operations: 265 - target: $.paths['/asset_report/create'].post update: x-apievangelist-phrasing: intent: Create an Asset Report effect: write questions: - Can I generate an Asset Report of a borrower's bank accounts for underwriting? - How many days of account history can an Asset Report cover? - Why isn't my new Asset Report available right after I request it? instructions: - text: Create an Asset Report covering {days_requested} days of history. slots: days_requested: requestBody.days_requested - text: Start an Asset Report for items {access_tokens} with {days_requested} days of history. slots: access_tokens: requestBody.access_tokens days_requested: requestBody.days_requested method: generated generated: '2026-09-24' - target: $.paths['/asset_report/get'].post update: x-apievangelist-phrasing: intent: Retrieve an Asset Report as JSON effect: read questions: - Where do I fetch a finished Asset Report as JSON? - Can the JSON Asset Report include transaction insights? - Is there a faster version of an Asset Report that skips some data? instructions: - text: Get the JSON Asset Report for token {asset_report_token}. slots: asset_report_token: requestBody.asset_report_token - text: Fetch Asset Report {asset_report_token} with insights set to {include_insights}. slots: asset_report_token: requestBody.asset_report_token include_insights: requestBody.include_insights method: generated generated: '2026-09-24' - target: $.paths['/asset_report/pdf/get'].post update: x-apievangelist-phrasing: intent: Download an Asset Report as a PDF effect: read questions: - Can I get an Asset Report as a PDF for an underwriter? - What do I need before I can download the PDF version of an Asset Report? instructions: - text: Download the PDF of Asset Report {asset_report_token}. slots: asset_report_token: requestBody.asset_report_token - text: Save a PDF copy of the asset report {asset_report_token} for the loan file. slots: asset_report_token: requestBody.asset_report_token method: generated generated: '2026-09-24' - target: $.paths['/asset_report/refresh'].post update: x-apievangelist-phrasing: intent: Refresh an existing Asset Report effect: write questions: - How do I get up-to-date data on an Asset Report I created weeks ago? - Does refreshing an Asset Report change the original report? instructions: - text: Refresh Asset Report {asset_report_token} into a new report. slots: asset_report_token: requestBody.asset_report_token - text: Build a refreshed version of Asset Report {asset_report_token} with {days_requested} days of history. slots: asset_report_token: requestBody.asset_report_token days_requested: requestBody.days_requested method: generated generated: '2026-09-24' - target: $.paths['/asset_report/filter'].post update: x-apievangelist-phrasing: intent: Exclude accounts from an Asset Report effect: write questions: - Can I leave some of a user's accounts out of an Asset Report? - What happens to the original Asset Report when I filter out accounts? instructions: - text: Filter Asset Report {asset_report_token} to exclude accounts {account_ids_to_exclude}. slots: asset_report_token: requestBody.asset_report_token account_ids_to_exclude: requestBody.account_ids_to_exclude - text: Drop account {account_ids_to_exclude} from asset report {asset_report_token}. slots: account_ids_to_exclude: requestBody.account_ids_to_exclude asset_report_token: requestBody.asset_report_token method: generated generated: '2026-09-24' - target: $.paths['/asset_report/remove'].post update: x-apievangelist-phrasing: intent: Delete an Asset Report effect: destructive questions: - Is there a way to permanently delete an Asset Report? - Does removing an Asset Report also invalidate its audit copies? instructions: - text: Delete Asset Report {asset_report_token}. slots: asset_report_token: requestBody.asset_report_token - text: Invalidate the asset report token {asset_report_token} so it can no longer be used. slots: asset_report_token: requestBody.asset_report_token method: generated generated: '2026-09-24' - target: $.paths['/asset_report/audit_copy/create'].post update: x-apievangelist-phrasing: intent: Share an Asset Report audit copy with an auditor effect: write questions: - How do I give a lender or auditor their own copy of an Asset Report? - Can I send an Asset Report straight to a Day 1 Certainty auditor? instructions: - text: Create an audit copy of Asset Report {asset_report_token} for auditor {auditor_id}. slots: asset_report_token: requestBody.asset_report_token auditor_id: requestBody.auditor_id - text: Make a shareable audit copy token from asset report {asset_report_token}. slots: asset_report_token: requestBody.asset_report_token method: generated generated: '2026-09-24' - target: $.paths['/asset_report/audit_copy/get'].post update: x-apievangelist-phrasing: intent: Retrieve an Asset Report audit copy effect: read questions: - As an auditor, how do I read an Asset Report someone shared with me? - What token do I need to open a shared Asset Report audit copy? instructions: - text: Get the Asset Report behind audit copy {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token - text: Open the shared audit copy {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token method: generated generated: '2026-09-24' - target: $.paths['/asset_report/audit_copy/remove'].post update: x-apievangelist-phrasing: intent: Revoke an Asset Report audit copy effect: destructive questions: - How do I stop an auditor from accessing an Asset Report I shared? - Does removing an audit copy cut off third parties holding its token? instructions: - text: Remove Asset Report audit copy {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token - text: Revoke third-party access granted through audit copy token {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token method: generated generated: '2026-09-24' - target: $.paths['/cra/base_report/get'].post update: x-apievangelist-phrasing: intent: Retrieve a consumer Base Report effect: read questions: - How do I pull the Base Report for a user in Plaid Check? - What do I pass to read a consumer's Base Report? instructions: - text: Get the Base Report for user token {user_token}. slots: user_token: requestBody.user_token - text: Retrieve the latest consumer Base Report for {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/cra/base_report/create'].post update: x-apievangelist-phrasing: intent: Create a consumer Base Report effect: write questions: - How do I generate a Base Report from a user's most recently linked bank? - Do I have to state a permissible purpose when creating a Base Report? - Which webhook tells me a new Base Report is ready? instructions: - text: Create a Base Report for {user_token} with {days_requested} days of history for purpose {consumer_report_permissible_purpose}, notifying {webhook}. slots: user_token: requestBody.user_token days_requested: requestBody.days_requested consumer_report_permissible_purpose: requestBody.consumer_report_permissible_purpose webhook: requestBody.webhook - text: Generate a new consumer Base Report for user {user_token} and send the ready webhook to {webhook}. slots: user_token: requestBody.user_token webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/credit/audit_copy_token/update'].post update: x-apievangelist-phrasing: intent: Add reports to an audit copy token effect: write questions: - Can I add more reports to an audit copy token I already shared? - What happens if an audit copy token already holds a report of the same type? instructions: - text: Add report tokens {report_tokens} to audit copy token {audit_copy_token}. slots: report_tokens: requestBody.report_tokens audit_copy_token: requestBody.audit_copy_token - text: Update audit copy {audit_copy_token} so it includes the reports {report_tokens}. slots: audit_copy_token: requestBody.audit_copy_token report_tokens: requestBody.report_tokens method: generated generated: '2026-09-24' - target: $.paths['/cra/bank_income/get'].post update: x-apievangelist-phrasing: intent: Retrieve a CRA bank income report effect: read questions: - How do I read the bank income report for a user after income verification? - Where do I get the bank accounts used to verify someone's income? instructions: - text: Get the CRA bank income report for {user_token}. slots: user_token: requestBody.user_token - text: Show the income verification bank data for user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/cra/bank_income/create'].post update: x-apievangelist-phrasing: intent: Create a CRA bank income report effect: write questions: - How do I start a consumer report that verifies income from bank deposits? - Can I choose how many days of bank history an income report uses? instructions: - text: Create a CRA bank income report for {user_token} over {days_requested} days. slots: user_token: requestBody.user_token days_requested: requestBody.days_requested - text: Start income verification for {user_token} and send the completion webhook to {webhook}. slots: user_token: requestBody.user_token webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/cra/partner_insights/get'].post update: x-apievangelist-phrasing: intent: Retrieve cash flow insights for a user effect: read questions: - How do I get cash flow insights from the accounts a user linked for income checks? - Are partner cash flow insights available per user? instructions: - text: Get partner cash flow insights for {user_token}. slots: user_token: requestBody.user_token - text: Pull the cash flow insights report for user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/cra/loans/applications/register'].post update: x-apievangelist-phrasing: intent: Register loan applications and decisions effect: write questions: - How do I tell Plaid Check which loan applications I approved or declined? - Can I report lending decisions back after using a consumer report? instructions: - text: Register the loan applications and decisions {applications}. slots: applications: requestBody.applications - text: 'Record these credit decisions as registered applications: {applications}.' slots: applications: requestBody.applications method: generated generated: '2026-09-24' - target: $.paths['/cra/loans/register'].post update: x-apievangelist-phrasing: intent: Register loans to their applicants effect: write questions: - How do I link funded loans to the applicants they were issued to? - What do I send when a new loan is originated for a consumer report user? instructions: - text: Register loans {loans} to their applicants. slots: loans: requestBody.loans - text: Associate the originated loans {loans} with their borrowers. slots: loans: requestBody.loans method: generated generated: '2026-09-24' - target: $.paths['/cra/loans/update'].post update: x-apievangelist-phrasing: intent: Update registered loan status and payments effect: write questions: - How do I report payment history on a loan I already registered? - Can I change the status of a registered loan? instructions: - text: Update the status and payment history of registered loans {loans}. slots: loans: requestBody.loans - text: Send the latest repayment data for loans {loans}. slots: loans: requestBody.loans method: generated generated: '2026-09-24' - target: $.paths['/cra/loans/unregister'].post update: x-apievangelist-phrasing: intent: Unregister loans that reached a final status effect: write questions: - How do I tell Plaid a loan is paid off and won't get more updates? - What should I do when a registered loan reaches its final status? instructions: - text: Unregister loans {loans} as final. slots: loans: requestBody.loans - text: Mark loans {loans} closed out with no further updates expected. slots: loans: requestBody.loans method: generated generated: '2026-09-24' - target: $.paths['/consumer_report/pdf/get'].post update: x-apievangelist-phrasing: intent: Download consumer reports as a PDF effect: read questions: - Can I get a consumer's Base and Bank Income reports as a single PDF? - What format does the consumer report PDF come back in? instructions: - text: Download the consumer report PDF for {user_token}. slots: user_token: requestBody.user_token - text: Get every existing CRA report for user {user_token} in PDF form. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/statements/list'].post update: x-apievangelist-phrasing: intent: List bank statements for an Item effect: read questions: - Which bank statements are available for a linked account? - Can I list all statements Plaid has pulled for an Item? instructions: - text: List all statements for item {access_token}. slots: access_token: requestBody.access_token - text: Show the available bank statements on {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/statements/download'].post update: x-apievangelist-phrasing: intent: Download a single bank statement PDF effect: read questions: - How do I download one bank statement as a PDF? - How can I verify a downloaded statement wasn't altered? instructions: - text: Download statement {statement_id} from item {access_token}. slots: statement_id: requestBody.statement_id access_token: requestBody.access_token - text: Fetch the PDF for bank statement {statement_id} using {access_token}. slots: statement_id: requestBody.statement_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/statements/refresh'].post update: x-apievangelist-phrasing: intent: Refresh statements for a date range effect: write questions: - Can I ask Plaid to pull new statements for a specific date range? - How do I trigger an on-demand statement extraction? instructions: - text: Refresh statements for {access_token} from {start_date} to {end_date}. slots: access_token: requestBody.access_token start_date: requestBody.start_date end_date: requestBody.end_date - text: Pull fresh bank statements between {start_date} and {end_date} for item {access_token}. slots: start_date: requestBody.start_date end_date: requestBody.end_date access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/item/activity/list'].post update: x-apievangelist-phrasing: intent: List a user's consent history effect: read questions: - How do I see the history of consent events for a user's bank connection? - Can I page through past consent changes on an Item? instructions: - text: List consent events for item {access_token}. slots: access_token: requestBody.access_token - text: Show the next {count} consent activity entries after cursor {cursor}. slots: count: requestBody.count cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/item/application/list'].post update: x-apievangelist-phrasing: intent: List a user's connected applications effect: read questions: - Which apps has a user connected to their bank account? - How do I show a user every application with access to their data? instructions: - text: List the connected applications for {access_token}. slots: access_token: requestBody.access_token - text: Show me which apps can access my linked bank data. method: generated generated: '2026-09-24' - target: $.paths['/item/application/unlink'].post update: x-apievangelist-phrasing: intent: Unlink a user's connected application effect: destructive questions: - How do I cut off an app's access to a user's bank data immediately? - What does a user have to do after an application is unlinked? instructions: - text: Unlink application {application_id} from item {access_token}. slots: application_id: requestBody.application_id access_token: requestBody.access_token - text: Revoke app {application_id}'s access to the data on {access_token}. slots: application_id: requestBody.application_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/item/application/scopes/update'].post update: x-apievangelist-phrasing: intent: Change an application's data access scopes effect: write questions: - Can a consumer change which accounts and products an app can see? - How do I update the product access a connected application has? instructions: - text: Update application {application_id} on {access_token} to scopes {scopes} in context {context}. slots: application_id: requestBody.application_id access_token: requestBody.access_token scopes: requestBody.scopes context: requestBody.context - text: Narrow what app {application_id} can see to {scopes}, context {context}, on item {access_token}. slots: application_id: requestBody.application_id scopes: requestBody.scopes context: requestBody.context access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/application/get'].post update: x-apievangelist-phrasing: intent: Look up a Plaid application's details effect: read questions: - As a bank, how do I find out about an app that my customers connect through Plaid? - What information is available about a Plaid client application? instructions: - text: Get details for application {application_id}. slots: application_id: requestBody.application_id - text: Look up the Plaid client behind app {application_id}. slots: application_id: requestBody.application_id method: generated generated: '2026-09-24' - target: $.paths['/item/get'].post update: x-apievangelist-phrasing: intent: Check the status of an Item effect: read questions: - How do I check whether a linked bank connection is healthy? - Where do I see an Item's error state and enabled products? instructions: - text: Get the status of item {access_token}. slots: access_token: requestBody.access_token - text: Check if the bank connection {access_token} needs attention. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/profile/get'].post update: x-apievangelist-phrasing: intent: Retrieve a user's permissioned profile effect: read questions: - How do I read the identity and item tokens a user shared through their profile? - What does a profile token give me access to? instructions: - text: Get the profile for {profile_token}. slots: profile_token: requestBody.profile_token - text: Read the identity data and access tokens behind profile {profile_token}. slots: profile_token: requestBody.profile_token method: generated generated: '2026-09-24' - target: $.paths['/auth/get'].post update: x-apievangelist-phrasing: intent: Get account and routing numbers effect: read questions: - How do I get a user's account and routing numbers to set up ACH? - Which accounts return bank numbers from Auth, checking and savings only? instructions: - text: Get the account and routing numbers for {access_token}. slots: access_token: requestBody.access_token - text: Pull auth data for item {access_token} so I can set up a transfer. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/transactions/get'].post update: x-apievangelist-phrasing: intent: Get transactions for a date range effect: read questions: - How do I fetch a user's transactions between two dates? - Is the date-range transactions endpoint still recommended for new builds? instructions: - text: Get transactions for {access_token} from {start_date} to {end_date}. slots: access_token: requestBody.access_token start_date: requestBody.start_date end_date: requestBody.end_date - text: Use the older date-range endpoint to pull activity on {access_token} between {start_date} and {end_date}. slots: access_token: requestBody.access_token start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/transactions/refresh'].post update: x-apievangelist-phrasing: intent: Refresh transactions on demand effect: write questions: - Can I force Plaid to check for new transactions right now? - What happens after I trigger an on-demand transaction refresh? instructions: - text: Refresh transactions for item {access_token}. slots: access_token: requestBody.access_token - text: Trigger an immediate extraction of the newest transactions on {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/transactions/recurring/get'].post update: x-apievangelist-phrasing: intent: Find recurring expenses and deposits effect: read questions: - How do I detect a user's subscriptions and recurring bills? - Can I find regular paychecks in a user's deposits? - Can I limit recurring stream detection to certain accounts? instructions: - text: Get the recurring transaction streams for {access_token}. slots: access_token: requestBody.access_token - text: Find recurring inflows and outflows on accounts {account_ids} of item {access_token}. slots: account_ids: requestBody.account_ids access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/transactions/sync'].post update: x-apievangelist-phrasing: intent: Sync incremental transaction updates effect: read questions: - What's the recommended way to keep a user's transactions up to date? - How do I get only the transactions added, modified or removed since my last pull? - How many transaction updates can I get per sync page? instructions: - text: Sync transactions for {access_token} starting from cursor {cursor}. slots: access_token: requestBody.access_token cursor: requestBody.cursor - text: Pull the first full batch of transaction changes for item {access_token}. slots: access_token: requestBody.access_token - text: Get up to {count} transaction updates for {access_token} after cursor {cursor}. slots: count: requestBody.count access_token: requestBody.access_token cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/transactions/enrich'].post update: x-apievangelist-phrasing: intent: Enrich my own raw transaction data effect: read questions: - Can Plaid clean up and categorize transactions that didn't come from Plaid? - How do I add merchant names and categories to my own banking transactions? instructions: - text: 'Enrich these {account_type} account transactions: {transactions}.' slots: account_type: requestBody.account_type transactions: requestBody.transactions - text: Add merchant and category data to my locally held transactions {transactions} from {account_type} accounts. slots: transactions: requestBody.transactions account_type: requestBody.account_type method: generated generated: '2026-09-24' - target: $.paths['/institutions/get'].post update: x-apievangelist-phrasing: intent: List all supported institutions effect: read questions: - Which banks does Plaid support in a given country? - How do I page through the full list of supported financial institutions? instructions: - text: List {count} supported institutions in {country_codes} starting at offset {offset}. slots: count: requestBody.count country_codes: requestBody.country_codes offset: requestBody.offset - text: Page through every supported bank in {country_codes}, {count} at a time from {offset}. slots: country_codes: requestBody.country_codes count: requestBody.count offset: requestBody.offset method: generated generated: '2026-09-24' - target: $.paths['/institutions/search'].post update: x-apievangelist-phrasing: intent: Search institutions by name effect: read questions: - How do I find a bank by name to check it's supported? - Can I search institutions that support a specific product? - How many results does an institution search return at most? instructions: - text: Search institutions named {query} in {country_codes}. slots: query: requestBody.query country_codes: requestBody.country_codes - text: Find banks matching {query} in {country_codes} that support {products}. slots: query: requestBody.query country_codes: requestBody.country_codes products: requestBody.products method: generated generated: '2026-09-24' - target: $.paths['/institutions/get_by_id'].post update: x-apievangelist-phrasing: intent: Get one institution's details by ID effect: read questions: - How do I look up details for a bank when I already have its institution ID? - Can I see which products a specific institution supports? instructions: - text: Get institution {institution_id} in {country_codes}. slots: institution_id: requestBody.institution_id country_codes: requestBody.country_codes - text: Show the details Plaid has on bank ID {institution_id} for {country_codes}. slots: institution_id: requestBody.institution_id country_codes: requestBody.country_codes method: generated generated: '2026-09-24' - target: $.paths['/item/remove'].post update: x-apievangelist-phrasing: intent: Remove a linked Item effect: destructive questions: - Can I disconnect a user's bank and stop being billed for it? - What happens to processor tokens when an Item is removed? instructions: - text: Remove item {access_token}. slots: access_token: requestBody.access_token - text: Disconnect the linked bank {access_token} and invalidate its tokens. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/accounts/get'].post update: x-apievangelist-phrasing: intent: List accounts on a linked Item effect: read questions: - What bank accounts did a user link? - Does the accounts list include closed accounts? - Are balances from the accounts list real-time or cached? instructions: - text: List the accounts on {access_token}. slots: access_token: requestBody.access_token - text: Show the active accounts and cached balances for item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/categories/get'].post update: x-apievangelist-phrasing: intent: Get the legacy transaction category list effect: read questions: - Where do I get the full list of Plaid transaction categories? - Is the legacy category taxonomy still recommended? instructions: - text: Get the list of transaction categories. - text: Download the older category hierarchy used on transactions. method: generated generated: '2026-09-24' - target: $.paths['/sandbox/processor_token/create'].post update: x-apievangelist-phrasing: intent: Create a Sandbox processor token effect: write questions: - How do I test a processor integration without going through Link? - Can I get a test processor token for any institution in Sandbox? instructions: - text: Create a Sandbox processor token for institution {institution_id}. slots: institution_id: requestBody.institution_id - text: Make a test Item at {institution_id} and give me its processor token. slots: institution_id: requestBody.institution_id method: generated generated: '2026-09-24' - target: $.paths['/sandbox/public_token/create'].post update: x-apievangelist-phrasing: intent: Create a Sandbox test Item effect: write questions: - How do I create a test bank connection in Sandbox without the Link UI? - Which products can a Sandbox test Item start with? instructions: - text: Create a Sandbox public token at {institution_id} with products {initial_products}. slots: institution_id: requestBody.institution_id initial_products: requestBody.initial_products - text: Spin up a test Item for institution {institution_id} initialized for {initial_products}. slots: institution_id: requestBody.institution_id initial_products: requestBody.initial_products method: generated generated: '2026-09-24' - target: $.paths['/sandbox/item/fire_webhook'].post update: x-apievangelist-phrasing: intent: Fire a test webhook in Sandbox effect: write questions: - How do I test that my server handles Plaid webhooks correctly? - Which webhook codes can I trigger for a Sandbox Item? instructions: - text: Fire webhook {webhook_code} for Sandbox item {access_token}. slots: webhook_code: requestBody.webhook_code access_token: requestBody.access_token - text: Send a test {webhook_type} webhook with code {webhook_code} for {access_token}. slots: webhook_type: requestBody.webhook_type webhook_code: requestBody.webhook_code access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/accounts/balance/get'].post update: x-apievangelist-phrasing: intent: Get real-time account balances effect: read questions: - Can I check a user's live balance before pulling money? - Why are balances here fresher than the regular accounts list? instructions: - text: Get real-time balances for {access_token}. slots: access_token: requestBody.access_token - text: Force a live balance check on every account in item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/identity/get'].post update: x-apievangelist-phrasing: intent: Get account holder identity data effect: read questions: - How do I get the name, email and address the bank has on file for an account owner? - Which identity fields are guaranteed to come back from the bank? instructions: - text: Get identity data for {access_token}. slots: access_token: requestBody.access_token - text: Show the account holder names, phones and addresses on item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/identity/documents/uploads/get'].post update: x-apievangelist-phrasing: intent: Get identity from uploaded documents effect: read questions: - How do I retrieve identity data a user supplied by uploading documents? - Where do document-uploaded identity results come back? instructions: - text: Get document-uploaded identity for {access_token}. slots: access_token: requestBody.access_token - text: Retrieve the identity documents a user uploaded on item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/identity/match'].post update: x-apievangelist-phrasing: intent: Score identity data against bank records effect: read questions: - How do I check that the name and address a user gave me match their bank's records? - What does the identity match score tell me? instructions: - text: Match user details {user} against the account holder on {access_token}. slots: user: requestBody.user access_token: requestBody.access_token - text: Get an identity match score for item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/identity/refresh'].post update: x-apievangelist-phrasing: intent: Refresh identity data on demand effect: write questions: - Can I force Plaid to fetch the latest identity info from the bank? - Is refreshing identity data required or optional? instructions: - text: Refresh identity data for {access_token}. slots: access_token: requestBody.access_token - text: Start an on-demand identity extraction for item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/dashboard_user/get'].post update: x-apievangelist-phrasing: intent: Retrieve a dashboard user effect: read questions: - How do I look up one of my team's Plaid Dashboard users? - What details can I see about a dashboard user? instructions: - text: Get dashboard user {dashboard_user_id}. slots: dashboard_user_id: requestBody.dashboard_user_id - text: Show the Dashboard account details for {dashboard_user_id}. slots: dashboard_user_id: requestBody.dashboard_user_id method: generated generated: '2026-09-24' - target: $.paths['/dashboard_user/list'].post update: x-apievangelist-phrasing: intent: List dashboard users on my account effect: read questions: - Who on my team has access to the Plaid Dashboard? - Can I page through all dashboard users on my account? instructions: - text: List all dashboard users. - text: Continue listing dashboard users from cursor {cursor}. slots: cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/identity_verification/create'].post update: x-apievangelist-phrasing: intent: Start an Identity Verification effect: write questions: - Can I start a KYC identity check for a new customer? - Do I need the user's consent before creating an identity verification? - What decides which steps an identity verification runs? instructions: - text: Create an identity verification for {client_user_id} using template {template_id}, shareable {is_shareable}, consent given {gave_consent}. slots: client_user_id: requestBody.client_user_id template_id: requestBody.template_id is_shareable: requestBody.is_shareable gave_consent: requestBody.gave_consent - text: Start KYC on template {template_id} for user {user}, consent {gave_consent}, shareable link {is_shareable}. slots: template_id: requestBody.template_id user: requestBody.user gave_consent: requestBody.gave_consent is_shareable: requestBody.is_shareable method: generated generated: '2026-09-24' - target: $.paths['/identity_verification/get'].post update: x-apievangelist-phrasing: intent: Retrieve an Identity Verification effect: read questions: - How do I check the result of a customer's identity verification? - Can I see which verification steps passed or failed? instructions: - text: Get identity verification {identity_verification_id}. slots: identity_verification_id: requestBody.identity_verification_id - text: Show the outcome of KYC session {identity_verification_id}. slots: identity_verification_id: requestBody.identity_verification_id method: generated generated: '2026-09-24' - target: $.paths['/identity_verification/list'].post update: x-apievangelist-phrasing: intent: List Identity Verifications for a user effect: read questions: - How do I see every identity verification attempt for one customer? - Can I filter identity verifications by template? instructions: - text: List identity verifications for {client_user_id} on template {template_id}. slots: client_user_id: requestBody.client_user_id template_id: requestBody.template_id - text: Show all KYC attempts by user {client_user_id} under template {template_id}, from cursor {cursor}. slots: client_user_id: requestBody.client_user_id template_id: requestBody.template_id cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/identity_verification/retry'].post update: x-apievangelist-phrasing: intent: Let a customer retry identity verification effect: write questions: - Can I let a customer try their identity verification again after failing? - Can a retry reset only certain verification steps? instructions: - text: Retry identity verification for {client_user_id} on template {template_id} with strategy {strategy}. slots: client_user_id: requestBody.client_user_id template_id: requestBody.template_id strategy: requestBody.strategy - text: Give user {client_user_id} another KYC attempt on {template_id}, rerunning steps {steps} using strategy {strategy}. slots: client_user_id: requestBody.client_user_id template_id: requestBody.template_id steps: requestBody.steps strategy: requestBody.strategy method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/create'].post update: x-apievangelist-phrasing: intent: Screen a business against watchlists effect: write questions: - Can I check a company against sanctions and watchlists? - Will a business I screen keep being monitored after the first check? instructions: - text: Screen the business {search_terms} against entity watchlists. slots: search_terms: requestBody.search_terms - text: Create an entity watchlist screening for company {search_terms} tied to customer {client_user_id}. slots: search_terms: requestBody.search_terms client_user_id: requestBody.client_user_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/get'].post update: x-apievangelist-phrasing: intent: Retrieve an entity watchlist screening effect: read questions: - How do I check the status of a sanctions screening on a business? - What does an entity screening record contain? instructions: - text: Get entity screening {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id - text: Show the business watchlist check {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/history/list'].post update: x-apievangelist-phrasing: intent: List edit history of an entity screening effect: read questions: - How do I audit changes made to a business screening over time? - Why is the change history empty for a company screening? instructions: - text: List the change history of entity screening {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id - text: Show past edits to business screening {entity_watchlist_screening_id}, newest first. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/hit/list'].post update: x-apievangelist-phrasing: intent: List watchlist hits for a business effect: read questions: - Which watchlist matches came up for a company I screened? - How do I page through potential sanctions hits on a business? instructions: - text: List hits for entity screening {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id - text: Show the potential watchlist matches found for business {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/list'].post update: x-apievangelist-phrasing: intent: List entity screenings in a program effect: read questions: - How do I list all businesses screened under one watchlist program? - Can I filter business screenings by status or assigned reviewer? instructions: - text: List entity screenings in program {entity_watchlist_program_id}. slots: entity_watchlist_program_id: requestBody.entity_watchlist_program_id - text: Show {status} business screenings assigned to {assignee} in program {entity_watchlist_program_id}. slots: status: requestBody.status assignee: requestBody.assignee entity_watchlist_program_id: requestBody.entity_watchlist_program_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/program/get'].post update: x-apievangelist-phrasing: intent: Get an entity watchlist program effect: read questions: - How do I see which watchlists a business screening program checks? - Where are the settings for an entity screening program? instructions: - text: Get entity watchlist program {entity_watchlist_program_id}. slots: entity_watchlist_program_id: requestBody.entity_watchlist_program_id - text: Show the configuration of business screening program {entity_watchlist_program_id}. slots: entity_watchlist_program_id: requestBody.entity_watchlist_program_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/program/list'].post update: x-apievangelist-phrasing: intent: List entity watchlist programs effect: read questions: - What business screening programs do I have set up? - Can I list every program used to screen companies? instructions: - text: List my entity watchlist programs. - text: Show the business screening programs after cursor {cursor}. slots: cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/review/create'].post update: x-apievangelist-phrasing: intent: Review hits on an entity screening effect: write questions: - How do I record which watchlist hits on a business are real and which are false positives? - Can I add a comment when I clear matches on a company screening? instructions: - text: 'Review entity screening {entity_watchlist_screening_id}: confirm {confirmed_hits}, dismiss {dismissed_hits}.' slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id confirmed_hits: requestBody.confirmed_hits dismissed_hits: requestBody.dismissed_hits - text: File a compliance review on business screening {entity_watchlist_screening_id} dismissing {dismissed_hits}, confirming {confirmed_hits}, noting {comment}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id dismissed_hits: requestBody.dismissed_hits confirmed_hits: requestBody.confirmed_hits comment: requestBody.comment method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/review/list'].post update: x-apievangelist-phrasing: intent: List reviews of an entity screening effect: read questions: - Who reviewed the watchlist hits on a business and what did they decide? - How do I see past compliance reviews for a company screening? instructions: - text: List reviews for entity screening {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id - text: Show the compliance decisions recorded on business screening {entity_watchlist_screening_id}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/entity/update'].post update: x-apievangelist-phrasing: intent: Update an entity screening effect: write questions: - How do I reassign or change the status of a business screening? - Can I correct a company's details on an existing screening? instructions: - text: Update entity screening {entity_watchlist_screening_id} to status {status}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id status: requestBody.status - text: Assign business screening {entity_watchlist_screening_id} to reviewer {assignee}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id assignee: requestBody.assignee - text: Change the company details on entity screening {entity_watchlist_screening_id} to {search_terms}. slots: entity_watchlist_screening_id: requestBody.entity_watchlist_screening_id search_terms: requestBody.search_terms method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/create'].post update: x-apievangelist-phrasing: intent: Screen a person against watchlists effect: write questions: - Is it possible to check a customer against sanctions and PEP lists? - What information do I need to screen an individual? instructions: - text: Screen the person {search_terms} against watchlists. slots: search_terms: requestBody.search_terms - text: Create an individual watchlist screening for {search_terms} as customer {client_user_id}. slots: search_terms: requestBody.search_terms client_user_id: requestBody.client_user_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/get'].post update: x-apievangelist-phrasing: intent: Retrieve an individual watchlist screening effect: read questions: - Where do I find a person's watchlist screening result? - Can I see the current status of a customer's sanctions check? instructions: - text: Get individual screening {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id - text: Show the person's watchlist check {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/history/list'].post update: x-apievangelist-phrasing: intent: List edit history of a person's screening effect: read questions: - How do I see what changed on a customer's watchlist screening? - Does an unedited person screening have any history? instructions: - text: List the change history of individual screening {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id - text: Show past edits to person screening {watchlist_screening_id} in reverse order. slots: watchlist_screening_id: requestBody.watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/hit/list'].post update: x-apievangelist-phrasing: intent: List watchlist hits for a person effect: read questions: - Which sanctions or PEP matches did Plaid find for a customer? - How do I page through potential hits on an individual screening? instructions: - text: List hits for individual screening {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id - text: Show the potential watchlist matches found for person {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/list'].post update: x-apievangelist-phrasing: intent: List individual screenings in a program effect: read questions: - How do I list every person screened under a watchlist program? - Can I filter people screenings to the ones awaiting review? instructions: - text: List individual screenings in program {watchlist_program_id}. slots: watchlist_program_id: requestBody.watchlist_program_id - text: Show people screenings with status {status} for reviewer {assignee} in program {watchlist_program_id}. slots: status: requestBody.status assignee: requestBody.assignee watchlist_program_id: requestBody.watchlist_program_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/program/get'].post update: x-apievangelist-phrasing: intent: Get an individual watchlist program effect: read questions: - Which lists does my program for screening people check against? - Where do I see the settings of an individual screening program? instructions: - text: Get individual watchlist program {watchlist_program_id}. slots: watchlist_program_id: requestBody.watchlist_program_id - text: Show how person screening program {watchlist_program_id} is configured. slots: watchlist_program_id: requestBody.watchlist_program_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/program/list'].post update: x-apievangelist-phrasing: intent: List individual watchlist programs effect: read questions: - What programs do I have for screening individual customers? - Can I see all my people screening programs in one list? instructions: - text: List my individual watchlist programs. - text: Show the person screening programs after cursor {cursor}. slots: cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/review/create'].post update: x-apievangelist-phrasing: intent: Review hits on a person's screening effect: write questions: - How do I clear false-positive sanctions hits on a customer? - Can I confirm some matches on a person's screening and dismiss others? instructions: - text: 'Review individual screening {watchlist_screening_id}: confirm {confirmed_hits}, dismiss {dismissed_hits}.' slots: watchlist_screening_id: requestBody.watchlist_screening_id confirmed_hits: requestBody.confirmed_hits dismissed_hits: requestBody.dismissed_hits - text: Record a compliance decision on person screening {watchlist_screening_id}, dismissing {dismissed_hits} and confirming {confirmed_hits} with note {comment}. slots: watchlist_screening_id: requestBody.watchlist_screening_id dismissed_hits: requestBody.dismissed_hits confirmed_hits: requestBody.confirmed_hits comment: requestBody.comment method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/review/list'].post update: x-apievangelist-phrasing: intent: List reviews of a person's screening effect: read questions: - How do I see who reviewed a customer's watchlist hits? - Can I audit past review decisions on an individual screening? instructions: - text: List reviews for individual screening {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id - text: Show the review decisions logged against person screening {watchlist_screening_id}. slots: watchlist_screening_id: requestBody.watchlist_screening_id method: generated generated: '2026-09-24' - target: $.paths['/watchlist_screening/individual/update'].post update: x-apievangelist-phrasing: intent: Update an individual screening effect: write questions: - How do I correct a customer's details on their watchlist screening? - Can I assign a person's screening to a specific reviewer? instructions: - text: Update individual screening {watchlist_screening_id} to status {status}. slots: watchlist_screening_id: requestBody.watchlist_screening_id status: requestBody.status - text: Assign person screening {watchlist_screening_id} to {assignee} for review. slots: watchlist_screening_id: requestBody.watchlist_screening_id assignee: requestBody.assignee - text: Replace the search details on individual screening {watchlist_screening_id} with {search_terms}. slots: watchlist_screening_id: requestBody.watchlist_screening_id search_terms: requestBody.search_terms method: generated generated: '2026-09-24' - target: $.paths['/beacon/account_risk/v1/evaluate'].post update: x-apievangelist-phrasing: intent: Evaluate the risk of a linked bank account effect: read questions: - How do I check whether a newly linked bank account looks risky or fraudulent? - Can I pass device data when assessing a bank account's risk? instructions: - text: Evaluate account risk for item {access_token}. slots: access_token: requestBody.access_token - text: Run a Beacon risk check on {access_token} for reason {evaluation_reason}. slots: access_token: requestBody.access_token evaluation_reason: requestBody.evaluation_reason method: generated generated: '2026-09-24' - target: $.paths['/beacon/user/create'].post update: x-apievangelist-phrasing: intent: Create and scan a Beacon user effect: write questions: - How do I check a new signup against the Beacon fraud network? - What checks run when I add a user to a Beacon program? instructions: - text: Create Beacon user {client_user_id} in program {program_id} with details {user}. slots: client_user_id: requestBody.client_user_id program_id: requestBody.program_id user: requestBody.user - text: Scan applicant {user} against Beacon program {program_id} as {client_user_id}. slots: user: requestBody.user program_id: requestBody.program_id client_user_id: requestBody.client_user_id method: generated generated: '2026-09-24' - target: $.paths['/beacon/user/get'].post update: x-apievangelist-phrasing: intent: Get a Beacon user and fraud status effect: read questions: - How do I see whether a Beacon user was flagged by fraud or duplicate checks? - What information comes back for a Beacon user? instructions: - text: Get Beacon user {beacon_user_id}. slots: beacon_user_id: requestBody.beacon_user_id - text: Show the fraud check status for Beacon user {beacon_user_id}. slots: beacon_user_id: requestBody.beacon_user_id method: generated generated: '2026-09-24' - target: $.paths['/beacon/user/review'].post update: x-apievangelist-phrasing: intent: Set a Beacon user's review status effect: write questions: - How do I clear or reject a Beacon user after manual review? - Are there rules on which Beacon status changes are allowed? instructions: - text: Set Beacon user {beacon_user_id} to status {status}. slots: beacon_user_id: requestBody.beacon_user_id status: requestBody.status - text: Mark reviewed Beacon user {beacon_user_id} as {status}. slots: beacon_user_id: requestBody.beacon_user_id status: requestBody.status method: generated generated: '2026-09-24' - target: $.paths['/beacon/report/create'].post update: x-apievangelist-phrasing: intent: Report fraud for a Beacon user effect: write questions: - How do I report that a user committed fraud to the Beacon network? - Can I include the amount lost when filing a fraud report? instructions: - text: File a {type} fraud report for Beacon user {beacon_user_id} dated {fraud_date}. slots: type: requestBody.type beacon_user_id: requestBody.beacon_user_id fraud_date: requestBody.fraud_date - text: Report {fraud_amount} lost to {type} fraud by Beacon user {beacon_user_id} on {fraud_date}. slots: fraud_amount: requestBody.fraud_amount type: requestBody.type beacon_user_id: requestBody.beacon_user_id fraud_date: requestBody.fraud_date method: generated generated: '2026-09-24' - target: $.paths['/beacon/report/list'].post update: x-apievangelist-phrasing: intent: List fraud reports I filed on a Beacon user effect: read questions: - How do I see the fraud reports my team created for a user? - Does the report list include reports other companies filed? instructions: - text: List Beacon reports I created for user {beacon_user_id}. slots: beacon_user_id: requestBody.beacon_user_id - text: Show my own fraud reports on Beacon user {beacon_user_id} from cursor {cursor}. slots: beacon_user_id: requestBody.beacon_user_id cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/beacon/report_syndication/list'].post update: x-apievangelist-phrasing: intent: List network fraud reports matching a user effect: read questions: - Has anyone else in the Beacon network reported fraud on this user? - How do I see fraud reports syndicated to one of my users? instructions: - text: List report syndications for Beacon user {beacon_user_id}. slots: beacon_user_id: requestBody.beacon_user_id - text: Show network-shared fraud reports that matched Beacon user {beacon_user_id}. slots: beacon_user_id: requestBody.beacon_user_id method: generated generated: '2026-09-24' - target: $.paths['/beacon/report/get'].post update: x-apievangelist-phrasing: intent: Get a Beacon fraud report effect: read questions: - How do I look up a fraud report I filed by its ID? - What details are stored on a Beacon report? instructions: - text: Get Beacon report {beacon_report_id}. slots: beacon_report_id: requestBody.beacon_report_id - text: Open fraud report {beacon_report_id}. slots: beacon_report_id: requestBody.beacon_report_id method: generated generated: '2026-09-24' - target: $.paths['/beacon/report_syndication/get'].post update: x-apievangelist-phrasing: intent: Get a syndicated Beacon fraud report effect: read questions: - How do I read the details of a fraud report shared from the network? - What does a report syndication record point to? instructions: - text: Get report syndication {beacon_report_syndication_id}. slots: beacon_report_syndication_id: requestBody.beacon_report_syndication_id - text: Show the network fraud report behind syndication {beacon_report_syndication_id}. slots: beacon_report_syndication_id: requestBody.beacon_report_syndication_id method: generated generated: '2026-09-24' - target: $.paths['/beacon/user/update'].post update: x-apievangelist-phrasing: intent: Update a Beacon user's identity data effect: write questions: - How do I update a Beacon user's address or phone number? - Does changing a Beacon user's details rerun the fraud checks? instructions: - text: Update Beacon user {beacon_user_id} with identity data {user}. slots: beacon_user_id: requestBody.beacon_user_id user: requestBody.user - text: Correct the PII on Beacon user {beacon_user_id} to {user} and rescan. slots: beacon_user_id: requestBody.beacon_user_id user: requestBody.user method: generated generated: '2026-09-24' - target: $.paths['/beacon/duplicate/get'].post update: x-apievangelist-phrasing: intent: Get a Beacon duplicate user pair effect: read questions: - How do I see two Beacon users flagged as possible duplicates? - What does a Beacon duplicate record compare? instructions: - text: Get Beacon duplicate {beacon_duplicate_id}. slots: beacon_duplicate_id: requestBody.beacon_duplicate_id - text: Compare the two similar user records in duplicate {beacon_duplicate_id}. slots: beacon_duplicate_id: requestBody.beacon_duplicate_id method: generated generated: '2026-09-24' - target: $.paths['/identity_verification/autofill/create'].post update: x-apievangelist-phrasing: intent: Autofill an Identity Verification effect: write questions: - Can Plaid prefill a user's identity details from their phone number and birth date? - How do I speed up KYC by autofilling the user's information? instructions: - text: Autofill identity verification {identity_verification_id}. slots: identity_verification_id: requestBody.identity_verification_id - text: Try to prefill the KYC details on session {identity_verification_id}. slots: identity_verification_id: requestBody.identity_verification_id method: generated generated: '2026-09-24' - target: $.paths['/beacon/user/history/list'].post update: x-apievangelist-phrasing: intent: List a Beacon user's change history effect: read questions: - How do I see every change made to a Beacon user over time? - Can I page through a Beacon user's past revisions? instructions: - text: List history for Beacon user {beacon_user_id}. slots: beacon_user_id: requestBody.beacon_user_id - text: Show earlier revisions of Beacon user {beacon_user_id}, newest first. slots: beacon_user_id: requestBody.beacon_user_id method: generated generated: '2026-09-24' - target: $.paths['/processor/auth/get'].post update: x-apievangelist-phrasing: intent: Get account and routing numbers as a processor effect: read questions: - As a payment processor, how do I get the account and routing number behind a processor token? - Which account types return bank numbers to a processor? instructions: - text: Get auth numbers for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Look up the routing and account number behind {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/account/get'].post update: x-apievangelist-phrasing: intent: Get the account behind a processor token effect: read questions: - Which bank account does a processor token point to? - Is the balance on a processor token's account cached or live? instructions: - text: Get the account for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Show the cached account details tied to {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/transactions/get'].post update: x-apievangelist-phrasing: intent: Get transactions by date range as a processor effect: read questions: - As a processor, how do I pull a user's transactions for a date window? - Which account types return transactions through a processor token? instructions: - text: Get transactions for processor token {processor_token} from {start_date} to {end_date}. slots: processor_token: requestBody.processor_token start_date: requestBody.start_date end_date: requestBody.end_date - text: Use the older date-range processor endpoint for {processor_token} between {start_date} and {end_date}. slots: processor_token: requestBody.processor_token start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/processor/transactions/sync'].post update: x-apievangelist-phrasing: intent: Sync transaction updates for a processor token effect: read questions: - As a processor, how do I keep transactions current with a cursor? - What replaces the date-range transactions call for processors? instructions: - text: Sync transactions for processor token {processor_token} from cursor {cursor}. slots: processor_token: requestBody.processor_token cursor: requestBody.cursor - text: Get the first page of transaction changes for {processor_token}. slots: processor_token: requestBody.processor_token - text: Fetch {count} incremental updates on {processor_token} after {cursor}. slots: count: requestBody.count processor_token: requestBody.processor_token cursor: requestBody.cursor method: generated generated: '2026-09-24' - target: $.paths['/processor/transactions/refresh'].post update: x-apievangelist-phrasing: intent: Refresh transactions for a processor token effect: write questions: - Can a processor force a fresh pull of the newest transactions? - Is the processor transactions refresh required? instructions: - text: Refresh transactions for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Kick off an on-demand transaction extraction for {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/transactions/recurring/get'].post update: x-apievangelist-phrasing: intent: Find recurring streams for a processor token effect: read questions: - As a processor, how do I spot subscriptions and paychecks on an account? - Can a processor get recurring inflow and outflow summaries? instructions: - text: Get recurring transaction streams for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Summarize the regular deposits and bills on {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/signal/evaluate'].post update: x-apievangelist-phrasing: intent: Score ACH return risk as a processor effect: read questions: - As a processor, how do I check how likely an ACH debit is to be returned? - What risk tier and signals come back for a planned transfer? instructions: - text: Evaluate ACH transaction {client_transaction_id} for {amount} on processor token {processor_token}. slots: client_transaction_id: requestBody.client_transaction_id amount: requestBody.amount processor_token: requestBody.processor_token - text: Get a Signal return-risk score for a {amount} debit from {processor_token}, reference {client_transaction_id}. slots: amount: requestBody.amount processor_token: requestBody.processor_token client_transaction_id: requestBody.client_transaction_id method: generated generated: '2026-09-24' - target: $.paths['/processor/signal/decision/report'].post update: x-apievangelist-phrasing: intent: Report a Signal decision as a processor effect: write questions: - After scoring, how does a processor tell Plaid whether it went ahead with the ACH? - Can I report how long funds were held on a processed transfer? instructions: - text: 'Report that transaction {client_transaction_id} on {processor_token} was initiated: {initiated}.' slots: client_transaction_id: requestBody.client_transaction_id processor_token: requestBody.processor_token initiated: requestBody.initiated - text: 'Send the processor decision for {client_transaction_id} on {processor_token}: initiated {initiated}, held {days_funds_on_hold} days.' slots: client_transaction_id: requestBody.client_transaction_id processor_token: requestBody.processor_token initiated: requestBody.initiated days_funds_on_hold: requestBody.days_funds_on_hold method: generated generated: '2026-09-24' - target: $.paths['/processor/signal/return/report'].post update: x-apievangelist-phrasing: intent: Report an ACH return as a processor effect: write questions: - As a processor, how do I tell Plaid a scored ACH payment came back? - Does reporting returns improve the Signal model? instructions: - text: Report return {return_code} on transaction {client_transaction_id} for processor token {processor_token}. slots: return_code: requestBody.return_code client_transaction_id: requestBody.client_transaction_id processor_token: requestBody.processor_token - text: Log that processor payment {client_transaction_id} on {processor_token} was returned with code {return_code} at {returned_at}. slots: client_transaction_id: requestBody.client_transaction_id processor_token: requestBody.processor_token return_code: requestBody.return_code returned_at: requestBody.returned_at method: generated generated: '2026-09-24' - target: $.paths['/processor/signal/prepare'].post update: x-apievangelist-phrasing: intent: Opt a processor token into Signal effect: write questions: - How do I improve Signal scores for a processor token that wasn't set up with Signal? - What happens if I skip preparing a processor token for Signal? instructions: - text: Prepare processor token {processor_token} for Signal. slots: processor_token: requestBody.processor_token - text: Opt {processor_token} into Signal data collection. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/bank_transfer/create'].post update: x-apievangelist-phrasing: intent: Create a bank transfer as a processor effect: write questions: - As a processor, how do I start an ACH bank transfer? - Which networks and currencies can a processor bank transfer use? instructions: - text: Create a {type} bank transfer of {amount} {iso_currency_code} over {network} on {processor_token} for {user}, described {description}, key {idempotency_key}. slots: type: requestBody.type amount: requestBody.amount iso_currency_code: requestBody.iso_currency_code network: requestBody.network processor_token: requestBody.processor_token user: requestBody.user description: requestBody.description idempotency_key: requestBody.idempotency_key - text: As processor, move {amount} {iso_currency_code} via {network} ({type}) for {user} on {processor_token}, memo {description}, key {idempotency_key}. slots: amount: requestBody.amount iso_currency_code: requestBody.iso_currency_code network: requestBody.network type: requestBody.type user: requestBody.user processor_token: requestBody.processor_token description: requestBody.description idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/processor/liabilities/get'].post update: x-apievangelist-phrasing: intent: Get loan and credit details as a processor effect: read questions: - As a processor, how do I read a user's loan or credit card details? - Which countries have liabilities data through a processor token? instructions: - text: Get liabilities for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Show the loan and credit card balances behind {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/identity/get'].post update: x-apievangelist-phrasing: intent: Get account holder identity as a processor effect: read questions: - As a processor, how do I get the account owner's name and address? - What identity fields can a processor token return? instructions: - text: Get identity data for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Show the account owner's names, emails and addresses via {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/identity/match'].post update: x-apievangelist-phrasing: intent: Score identity match as a processor effect: read questions: - As a processor, can I check that a customer's details match the bank's records? - What match scores does a processor identity match return? instructions: - text: Get an identity match score for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Compare user details {user} to the bank's owner info on {processor_token}. slots: user: requestBody.user processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/balance/get'].post update: x-apievangelist-phrasing: intent: Get real-time balance as a processor effect: read questions: - As a processor, how do I check a live balance before debiting? - Does the processor balance call hit the bank in real time? instructions: - text: Get the real-time balance for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Force a live balance refresh on {processor_token}. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/item/webhook/update'].post update: x-apievangelist-phrasing: intent: Change an Item's webhook URL effect: write questions: - How do I point a linked Item's webhooks to a new URL? - Will I get a confirmation webhook after changing the URL? instructions: - text: Update the webhook for item {access_token} to {webhook}. slots: access_token: requestBody.access_token webhook: requestBody.webhook - text: Send future notifications for {access_token} to {webhook}. slots: access_token: requestBody.access_token webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/item/access_token/invalidate'].post update: x-apievangelist-phrasing: intent: Rotate an Item's access token effect: destructive questions: - What should I do to rotate an access token I think leaked? - Do Plaid access tokens expire on their own? instructions: - text: Invalidate access token {access_token} and issue a new one. slots: access_token: requestBody.access_token - text: Rotate the credential {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/webhook_verification_key/get'].post update: x-apievangelist-phrasing: intent: Get the key to verify webhook signatures effect: read questions: - How do I verify that a webhook really came from Plaid? - Where do I get the public key named in a webhook's JWT header? instructions: - text: Get webhook verification key {key_id}. slots: key_id: requestBody.key_id - text: Fetch the signing public key with ID {key_id} so I can check a webhook JWT. slots: key_id: requestBody.key_id method: generated generated: '2026-09-24' - target: $.paths['/liabilities/get'].post update: x-apievangelist-phrasing: intent: Get loan and credit card details effect: read questions: - How do I get a user's student loan, mortgage and credit card details? - Is liabilities data available outside the US? instructions: - text: Get liabilities for item {access_token}. slots: access_token: requestBody.access_token - text: Show the due dates and APRs on the loans and cards in {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/recipient/create'].post update: x-apievangelist-phrasing: intent: Create a payment recipient effect: write questions: - How do I add a payee before initiating a payment in Europe or the UK? - Can a recipient use a UK sort code instead of an IBAN? instructions: - text: Create a payment recipient named {name} with IBAN {iban}. slots: name: requestBody.name iban: requestBody.iban - text: Add payee {name} with BACS details {bacs} at address {address}. slots: name: requestBody.name bacs: requestBody.bacs address: requestBody.address method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/payment/reverse'].post update: x-apievangelist-phrasing: intent: Refund a settled payment effect: destructive questions: - How do I refund a payment that settled into my Plaid virtual account? - Can I refund only part of an initiated payment? instructions: - text: Reverse payment {payment_id} with reference {reference}, key {idempotency_key}. slots: payment_id: requestBody.payment_id reference: requestBody.reference idempotency_key: requestBody.idempotency_key - text: Refund {amount} of settled payment {payment_id}, reference {reference}, idempotency key {idempotency_key}. slots: amount: requestBody.amount payment_id: requestBody.payment_id reference: requestBody.reference idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/recipient/get'].post update: x-apievangelist-phrasing: intent: Get a payment recipient effect: read questions: - How do I look up the bank details of a payee I already created? - What details are stored on a payment recipient? instructions: - text: Get payment recipient {recipient_id}. slots: recipient_id: requestBody.recipient_id - text: Show the account details on payee {recipient_id}. slots: recipient_id: requestBody.recipient_id method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/recipient/list'].post update: x-apievangelist-phrasing: intent: List payment recipients effect: read questions: - Which payees have I set up for payment initiation? - Can I see every payment recipient I created? instructions: - text: List my payment recipients. - text: Show all payees I've added for bank payments. method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/payment/create'].post update: x-apievangelist-phrasing: intent: Create a payment to a recipient effect: write questions: - How do I start a bank payment to a recipient in the UK or Europe? - Can I set up a recurring standing order instead of a one-time payment? instructions: - text: Create a payment of {amount} to recipient {recipient_id} with reference {reference}. slots: amount: requestBody.amount recipient_id: requestBody.recipient_id reference: requestBody.reference - text: Set up a standing order of {amount} to {recipient_id} on schedule {schedule}, reference {reference}. slots: amount: requestBody.amount recipient_id: requestBody.recipient_id schedule: requestBody.schedule reference: requestBody.reference method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/payment/token/create'].post update: x-apievangelist-phrasing: intent: Create a payment token (deprecated) effect: write questions: - Is the old payment token flow still available to new customers? - What is the legacy payment token used for with Link? instructions: - text: Create a legacy payment token for payment {payment_id}. slots: payment_id: requestBody.payment_id - text: Use the deprecated token endpoint to open Link for payment {payment_id}. slots: payment_id: requestBody.payment_id method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/consent/create'].post update: x-apievangelist-phrasing: intent: Create a payment consent effect: write questions: - How do I get a user's standing permission to make payments on their behalf? - What limits can I put on a payment consent? - What status does a new payment consent start in? instructions: - text: Create a payment consent to recipient {recipient_id} with scopes {scopes}, constraints {constraints}, reference {reference}. slots: recipient_id: requestBody.recipient_id scopes: requestBody.scopes constraints: requestBody.constraints reference: requestBody.reference - text: Set up variable recurring payment consent for {recipient_id} capped by {constraints}, scopes {scopes}, reference {reference}. slots: recipient_id: requestBody.recipient_id constraints: requestBody.constraints scopes: requestBody.scopes reference: requestBody.reference method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/consent/get'].post update: x-apievangelist-phrasing: intent: Check a payment consent's status effect: read questions: - Has the user authorised the payment consent I created? - How do I see a consent's recipient and limits? instructions: - text: Get payment consent {consent_id}. slots: consent_id: requestBody.consent_id - text: Check whether consent {consent_id} is authorised. slots: consent_id: requestBody.consent_id method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/consent/revoke'].post update: x-apievangelist-phrasing: intent: Revoke a payment consent effect: destructive questions: - How do I cancel a payment consent so no more payments can be made? - Can a revoked payment consent be used again? instructions: - text: Revoke payment consent {consent_id}. slots: consent_id: requestBody.consent_id - text: Cancel consent {consent_id} to stop future payments. slots: consent_id: requestBody.consent_id method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/consent/payment/execute'].post update: x-apievangelist-phrasing: intent: Make a payment using a consent effect: write questions: - How do I charge a user under a consent they already granted? - Do consent payments need an idempotency key? instructions: - text: Execute a payment of {amount} under consent {consent_id} with key {idempotency_key}. slots: amount: requestBody.amount consent_id: requestBody.consent_id idempotency_key: requestBody.idempotency_key - text: Pay {amount} using consent {consent_id}, reference {reference}, idempotency key {idempotency_key}. slots: amount: requestBody.amount consent_id: requestBody.consent_id reference: requestBody.reference idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/sandbox/item/reset_login'].post update: x-apievangelist-phrasing: intent: Force a Sandbox Item into login-required effect: write questions: - How do I test Link update mode in Sandbox? - Can I simulate an expired bank login? instructions: - text: Reset login on Sandbox item {access_token}. slots: access_token: requestBody.access_token - text: Put test item {access_token} into ITEM_LOGIN_REQUIRED. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/sandbox/item/set_verification_status'].post update: x-apievangelist-phrasing: intent: Set micro-deposit verification status in Sandbox effect: write questions: - How do I test automated micro-deposit verification in Sandbox? - Can I make a Sandbox account's verification pass or expire? instructions: - text: Set verification status of account {account_id} on {access_token} to {verification_status}. slots: account_id: requestBody.account_id access_token: requestBody.access_token verification_status: requestBody.verification_status - text: Simulate micro-deposit result {verification_status} for Sandbox account {account_id} in item {access_token}. slots: verification_status: requestBody.verification_status account_id: requestBody.account_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/item/public_token/exchange'].post update: x-apievangelist-phrasing: intent: Exchange a public token for an access token effect: write questions: - What do I do with the public token Link gives me after a user connects their bank? - How long is a Link public token valid before I must exchange it? instructions: - text: Exchange public token {public_token} for an access token. slots: public_token: requestBody.public_token - text: Turn the Link onSuccess token {public_token} into a permanent access token. slots: public_token: requestBody.public_token method: generated generated: '2026-09-24' - target: $.paths['/item/public_token/create'].post update: x-apievangelist-phrasing: intent: Create a public token for an Item (deprecated) effect: write questions: - Can I still create a public token from an existing access token? - What replaced the old public token flow for update mode? instructions: - text: Create a public token from access token {access_token}. slots: access_token: requestBody.access_token - text: Use the deprecated endpoint to get a Link public token for item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/user/create'].post update: x-apievangelist-phrasing: intent: Create a user token for an end user effect: write questions: - How do I create a Plaid user before starting an income or consumer report flow? - Should I create more than one user token per customer? instructions: - text: Create a user token for {client_user_id}. slots: client_user_id: requestBody.client_user_id - text: Register end user {client_user_id} with consumer report identity {consumer_report_user_identity}. slots: client_user_id: requestBody.client_user_id consumer_report_user_identity: requestBody.consumer_report_user_identity method: generated generated: '2026-09-24' - target: $.paths['/user/update'].post update: x-apievangelist-phrasing: intent: Update a user's consumer report identity effect: write questions: - How do I change the identity details stored on an existing user token? - What happens if I update a user token that doesn't exist? instructions: - text: Update user {user_token} with identity {consumer_report_user_identity}. slots: user_token: requestBody.user_token consumer_report_user_identity: requestBody.consumer_report_user_identity - text: Correct the consumer report identity on existing user token {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/sessions/get'].post update: x-apievangelist-phrasing: intent: List a user's completed Link sessions effect: read questions: - How do I see the results of every Link session a user finished? - Where can I check what happened in a user's income verification sessions? instructions: - text: Get the Link sessions for user {user_token}. slots: user_token: requestBody.user_token - text: Show the completed Link flow results for {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/payment/get'].post update: x-apievangelist-phrasing: intent: Check an initiated payment's status effect: read questions: - How do I find out whether a bank payment I initiated went through? - Can I see the amount and recipient of a payment I created? instructions: - text: Get payment {payment_id}. slots: payment_id: requestBody.payment_id - text: Check the status of initiated payment {payment_id}. slots: payment_id: requestBody.payment_id method: generated generated: '2026-09-24' - target: $.paths['/payment_initiation/payment/list'].post update: x-apievangelist-phrasing: intent: List initiated payments effect: read questions: - Which bank payments have I initiated so far? - Can I list only payments made under one consent? - How many payments come back by default? instructions: - text: List my {count} most recent initiated payments. slots: count: requestBody.count - text: Show payments made under consent {consent_id}. slots: consent_id: requestBody.consent_id method: generated generated: '2026-09-24' - target: $.paths['/investments/holdings/get'].post update: x-apievangelist-phrasing: intent: Get investment holdings effect: read questions: - How do I see the stocks and funds a user holds in their brokerage account? - Which account types return investment holdings? instructions: - text: Get investment holdings for {access_token}. slots: access_token: requestBody.access_token - text: Show the securities and positions held in item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/investments/transactions/get'].post update: x-apievangelist-phrasing: intent: Get investment transactions for a date range effect: read questions: - How do I pull buys, sells and dividends from a user's investment accounts? - How far back can investment transaction history go? instructions: - text: Get investment transactions for {access_token} from {start_date} to {end_date}. slots: access_token: requestBody.access_token start_date: requestBody.start_date end_date: requestBody.end_date - text: List brokerage trades on item {access_token} between {start_date} and {end_date}. slots: access_token: requestBody.access_token start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/investments/refresh'].post update: x-apievangelist-phrasing: intent: Refresh investment data on demand effect: write questions: - Can I force an update of a user's holdings and investment transactions? - Is refreshing investments data optional? instructions: - text: Refresh investments data for {access_token}. slots: access_token: requestBody.access_token - text: Start an on-demand pull of the newest holdings on item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/investments/auth/get'].post update: x-apievangelist-phrasing: intent: Get data to authorize a holdings transfer effect: read questions: - What data do I need to move a user's brokerage holdings to another account? - How do I get account numbers for an investment account transfer? instructions: - text: Get investments auth data for {access_token}. slots: access_token: requestBody.access_token - text: Pull the details needed to transfer holdings out of item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/processor/token/create'].post update: x-apievangelist-phrasing: intent: Create a processor token for a partner effect: write questions: - How do I share a user's linked account with a payment processor partner? - Which processors can receive a Plaid processor token? instructions: - text: Create a processor token for {processor} on account {account_id} of {access_token}. slots: processor: requestBody.processor account_id: requestBody.account_id access_token: requestBody.access_token - text: Hand account {account_id} from item {access_token} to partner {processor}. slots: account_id: requestBody.account_id access_token: requestBody.access_token processor: requestBody.processor method: generated generated: '2026-09-24' - target: $.paths['/processor/token/permissions/set'].post update: x-apievangelist-phrasing: intent: Restrict a processor's product access effect: write questions: - Can I limit which Plaid products a processor can use on my user's account? - By default, what can a processor access with a token? instructions: - text: Limit processor token {processor_token} to products {products}. slots: processor_token: requestBody.processor_token products: requestBody.products - text: Set the allowed products on {processor_token} to {products}. slots: processor_token: requestBody.processor_token products: requestBody.products method: generated generated: '2026-09-24' - target: $.paths['/processor/token/permissions/get'].post update: x-apievangelist-phrasing: intent: See a processor token's product permissions effect: read questions: - Which products is a processor allowed to call with a given token? - What does an empty products list mean on a processor token? instructions: - text: Get permissions for processor token {processor_token}. slots: processor_token: requestBody.processor_token - text: Show which products {processor_token} can access. slots: processor_token: requestBody.processor_token method: generated generated: '2026-09-24' - target: $.paths['/processor/token/webhook/update'].post update: x-apievangelist-phrasing: intent: Change a processor token's webhook URL effect: write questions: - As a processor, how do I point a token's webhooks to a new URL? - Is there a confirmation after a processor updates its webhook? instructions: - text: Update the webhook for processor token {processor_token} to {webhook}. slots: processor_token: requestBody.processor_token webhook: requestBody.webhook - text: Route {processor_token} notifications to {webhook}. slots: processor_token: requestBody.processor_token webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/processor/stripe/bank_account_token/create'].post update: x-apievangelist-phrasing: intent: Create a one-time bank account token for payments effect: write questions: - How do I get a single-use bank account token for my card-and-ACH payments partner integration? - Can a partner bank account token be reused? instructions: - text: Create a one-time bank account token for account {account_id} on {access_token}. slots: account_id: requestBody.account_id access_token: requestBody.access_token - text: Generate a single-use btok for account {account_id} in item {access_token}. slots: account_id: requestBody.account_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/processor/apex/processor_token/create'].post update: x-apievangelist-phrasing: intent: Create an Apex processor token effect: write questions: - How do I connect a linked account to Apex Clearing? - What token does the Apex integration need? instructions: - text: Create an Apex token for account {account_id} on {access_token}. slots: account_id: requestBody.account_id access_token: requestBody.access_token - text: Send account {account_id} from item {access_token} to Apex. slots: account_id: requestBody.account_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/deposit_switch/create'].post update: x-apievangelist-phrasing: intent: Create a direct deposit switch effect: write questions: - How do I help a user move their paycheck direct deposit to a new account? - Which account receives the switched direct deposit? instructions: - text: Create a deposit switch into account {target_account_id} of {target_access_token}. slots: target_account_id: requestBody.target_account_id target_access_token: requestBody.target_access_token - text: Start moving a user's payroll deposit to account {target_account_id} on item {target_access_token} in {country_code}. slots: target_account_id: requestBody.target_account_id target_access_token: requestBody.target_access_token country_code: requestBody.country_code method: generated generated: '2026-09-24' - target: $.paths['/item/import'].post update: x-apievangelist-phrasing: intent: Import an Item from Plaid Exchange effect: write questions: - How do I create an Item without Link using my Plaid Exchange integration? - What user credentials does an Item import need? instructions: - text: Import an item for products {products} with user auth {user_auth}. slots: products: requestBody.products user_auth: requestBody.user_auth - text: Create an access token through Plaid Exchange using {user_auth}, enabling {products}. slots: user_auth: requestBody.user_auth products: requestBody.products method: generated generated: '2026-09-24' - target: $.paths['/deposit_switch/token/create'].post update: x-apievangelist-phrasing: intent: Create a Link token for a deposit switch effect: write questions: - How do I open Link so a user can finish their direct deposit switch? - How long does a deposit switch token last? instructions: - text: Create a deposit switch token for {deposit_switch_id}. slots: deposit_switch_id: requestBody.deposit_switch_id - text: Get a one-time token to launch Link for deposit switch {deposit_switch_id}. slots: deposit_switch_id: requestBody.deposit_switch_id method: generated generated: '2026-09-24' - target: $.paths['/link/profile/eligibility/check'].post update: x-apievangelist-phrasing: intent: Check if a user's saved profile is eligible effect: read questions: - Can I tell whether a returning user's saved Plaid profile meets my requirements? - How do I check profile eligibility by phone number? instructions: - text: Check profile eligibility for user {user} in Link session {link_session_id}. slots: user: requestBody.user link_session_id: requestBody.link_session_id - text: See whether the phone number in {user} has a qualifying saved profile for session {link_session_id}. slots: user: requestBody.user link_session_id: requestBody.link_session_id method: generated generated: '2026-09-24' - target: $.paths['/link/token/create'].post update: x-apievangelist-phrasing: intent: Create a Link token to launch Link effect: write questions: - What do I need to initialize Plaid Link in my app? - Can I set a webhook and redirect URI when creating a Link token? - How do I open Link in update mode for an existing Item? instructions: - text: Create a Link token for {client_name} in {language} for {country_codes} and user {user}. slots: client_name: requestBody.client_name language: requestBody.language country_codes: requestBody.country_codes user: requestBody.user - text: Make a {language} link_token for app {client_name}, user {user}, countries {country_codes}, products {products}. slots: language: requestBody.language client_name: requestBody.client_name user: requestBody.user country_codes: requestBody.country_codes products: requestBody.products - text: Create an update-mode Link token for {access_token}, app {client_name}, {language}, {country_codes}, user {user}. slots: access_token: requestBody.access_token client_name: requestBody.client_name language: requestBody.language country_codes: requestBody.country_codes user: requestBody.user method: generated generated: '2026-09-24' - target: $.paths['/link/token/get'].post update: x-apievangelist-phrasing: intent: Inspect a Link token effect: read questions: - How do I debug a Link token I created earlier? - Can I see the Link sessions and results tied to a link_token? instructions: - text: Get details for Link token {link_token}. slots: link_token: requestBody.link_token - text: Look up how {link_token} was configured and what happened with it. slots: link_token: requestBody.link_token method: generated generated: '2026-09-24' - target: $.paths['/link/oauth/correlation_id/exchange'].post update: x-apievangelist-phrasing: intent: Exchange an OAuth correlation ID for a Link token effect: read questions: - After an OAuth redirect in a payment flow, how do I recover the Link token? - Where does the link_correlation_id come from? instructions: - text: Exchange correlation ID {link_correlation_id} for its Link token. slots: link_correlation_id: requestBody.link_correlation_id - text: Recover the link_token for OAuth redirect {link_correlation_id}. slots: link_correlation_id: requestBody.link_correlation_id method: generated generated: '2026-09-24' - target: $.paths['/deposit_switch/get'].post update: x-apievangelist-phrasing: intent: Retrieve a deposit switch effect: read questions: - How do I see how a user split their paycheck in a direct deposit switch? - Can I check whether a deposit switch completed? instructions: - text: Get deposit switch {deposit_switch_id}. slots: deposit_switch_id: requestBody.deposit_switch_id - text: Show the payroll allocation and state of switch {deposit_switch_id}. slots: deposit_switch_id: requestBody.deposit_switch_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/get'].post update: x-apievangelist-phrasing: intent: Retrieve a transfer effect: read questions: - What's the current status of a Plaid Transfer I sent? - Can I tell whether a transfer is still cancellable? instructions: - text: Get transfer {transfer_id}. slots: transfer_id: requestBody.transfer_id - text: Show the status of transfer {transfer_id} for originator {originator_client_id}. slots: transfer_id: requestBody.transfer_id originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/recurring/get'].post update: x-apievangelist-phrasing: intent: Retrieve a recurring transfer effect: read questions: - How do I see the schedule and status of a recurring transfer? - Which transfers has a recurring transfer created so far? instructions: - text: Get recurring transfer {recurring_transfer_id}. slots: recurring_transfer_id: requestBody.recurring_transfer_id - text: Show the schedule for repeating transfer {recurring_transfer_id}. slots: recurring_transfer_id: requestBody.recurring_transfer_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/get'].post update: x-apievangelist-phrasing: intent: Retrieve a legacy bank transfer effect: read questions: - How do I check a bank transfer made with the older Bank Transfers product? - Where do I see details of a legacy bank_transfer? instructions: - text: Get bank transfer {bank_transfer_id}. slots: bank_transfer_id: requestBody.bank_transfer_id - text: Look up legacy bank transfer {bank_transfer_id}. slots: bank_transfer_id: requestBody.bank_transfer_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/authorization/create'].post update: x-apievangelist-phrasing: intent: Authorize a transfer before creating it effect: write questions: - What must I do before creating a Plaid Transfer? - Why might a transfer authorization be declined? - Can I authorize a wire as well as ACH? instructions: - text: Authorize a {type} of {amount} over {network} from account {account_id} on {access_token} for {user}. slots: type: requestBody.type amount: requestBody.amount network: requestBody.network account_id: requestBody.account_id access_token: requestBody.access_token user: requestBody.user - text: Check if a {amount} {network} {type} for {user} on account {account_id} of {access_token} is approved. slots: amount: requestBody.amount network: requestBody.network type: requestBody.type user: requestBody.user account_id: requestBody.account_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/transfer/authorization/cancel'].post update: x-apievangelist-phrasing: intent: Cancel an unused transfer authorization effect: destructive questions: - Can I cancel a transfer authorization I no longer need? - When is a transfer authorization no longer cancellable? instructions: - text: Cancel transfer authorization {authorization_id}. slots: authorization_id: requestBody.authorization_id - text: Void unused authorization {authorization_id}. slots: authorization_id: requestBody.authorization_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/balance/get'].post update: x-apievangelist-phrasing: intent: Get a balance held with Plaid (deprecated) effect: read questions: - Is the old Plaid-held balance endpoint still supported? - How did I view my prefunded balance before Plaid Ledger? instructions: - text: Get the deprecated transfer balance. - text: Show the {type} balance held with Plaid for originator {originator_client_id} using the old endpoint. slots: type: requestBody.type originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/capabilities/get'].post update: x-apievangelist-phrasing: intent: Check RTP eligibility for an account effect: read questions: - Can this user's bank account receive instant RTP payments? - How do I test real-time payment eligibility in Sandbox? instructions: - text: Check RTP capabilities for account {account_id} on {access_token}. slots: account_id: requestBody.account_id access_token: requestBody.access_token - text: See if account {account_id} in item {access_token} supports instant payouts. slots: account_id: requestBody.account_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/transfer/configuration/get'].post update: x-apievangelist-phrasing: intent: View transfer product configuration effect: read questions: - What are my transfer limits and configuration? - Can I see the transfer settings for one of my originators? instructions: - text: Get my transfer configuration. - text: Show transfer configuration for originator {originator_client_id}. slots: originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/ledger/get'].post update: x-apievangelist-phrasing: intent: View Plaid Ledger balance effect: read questions: - How much money is available in my Plaid Ledger? - Can I see the ledger balance for a specific originator? instructions: - text: Get my Plaid Ledger balance. - text: Show the ledger balance for originator {originator_client_id}. slots: originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/ledger/distribute'].post update: x-apievangelist-phrasing: intent: Move ledger balance between platform and originator effect: write questions: - As a platform, how do I move funds from my ledger to an originator's ledger? - Does moving money between ledgers need an idempotency key? instructions: - text: Distribute {amount} from ledger {from_client_id} to {to_client_id} with key {idempotency_key}. slots: amount: requestBody.amount from_client_id: requestBody.from_client_id to_client_id: requestBody.to_client_id idempotency_key: requestBody.idempotency_key - text: Shift {amount} of available balance from {from_client_id} to originator {to_client_id}, noting {description}, key {idempotency_key}. slots: amount: requestBody.amount from_client_id: requestBody.from_client_id to_client_id: requestBody.to_client_id description: requestBody.description idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/transfer/ledger/deposit'].post update: x-apievangelist-phrasing: intent: Deposit funds into Plaid Ledger effect: write questions: - Can I top up my Plaid Ledger balance from my bank? - Which network can I use to fund my ledger? instructions: - text: Deposit {amount} into my Plaid Ledger over {network} with key {idempotency_key}. slots: amount: requestBody.amount network: requestBody.network idempotency_key: requestBody.idempotency_key - text: Fund the ledger with {amount} from funding account {funding_account_id} via {network}, key {idempotency_key}. slots: amount: requestBody.amount funding_account_id: requestBody.funding_account_id network: requestBody.network idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/transfer/ledger/withdraw'].post update: x-apievangelist-phrasing: intent: Withdraw funds from Plaid Ledger effect: write questions: - How do I pull money out of my Plaid Ledger to my bank? - Can I withdraw ledger funds to a specific funding account? instructions: - text: Withdraw {amount} from my Plaid Ledger over {network} with key {idempotency_key}. slots: amount: requestBody.amount network: requestBody.network idempotency_key: requestBody.idempotency_key - text: Sweep {amount} out of the ledger to funding account {funding_account_id} via {network}, key {idempotency_key}. slots: amount: requestBody.amount funding_account_id: requestBody.funding_account_id network: requestBody.network idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/transfer/originator/funding_account/update'].post update: x-apievangelist-phrasing: intent: Update an originator's funding account effect: write questions: - How do I change the bank account an originator uses to fund transfers? - Can a platform update an originator's funding account? instructions: - text: Update originator {originator_client_id}'s funding account to {funding_account}. slots: originator_client_id: requestBody.originator_client_id funding_account: requestBody.funding_account - text: Switch the funding bank for originator {originator_client_id} to {funding_account}. slots: originator_client_id: requestBody.originator_client_id funding_account: requestBody.funding_account method: generated generated: '2026-09-24' - target: $.paths['/transfer/metrics/get'].post update: x-apievangelist-phrasing: intent: View transfer usage metrics effect: read questions: - How much transfer volume have I used against my limits? - Where can I see return rates and usage for Plaid Transfer? instructions: - text: Get my transfer usage metrics. - text: Show transfer metrics for originator {originator_client_id}. slots: originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/create'].post update: x-apievangelist-phrasing: intent: Create a transfer from an authorization effect: write questions: - How do I actually move money once a transfer is authorized? - What description shows on the user's bank statement for a transfer? instructions: - text: Create a transfer from authorization {authorization_id} on account {account_id} of {access_token}, described {description}. slots: authorization_id: requestBody.authorization_id account_id: requestBody.account_id access_token: requestBody.access_token description: requestBody.description - text: Execute authorized transfer {authorization_id} for {amount} from {account_id} on {access_token} with memo {description}. slots: authorization_id: requestBody.authorization_id amount: requestBody.amount account_id: requestBody.account_id access_token: requestBody.access_token description: requestBody.description method: generated generated: '2026-09-24' - target: $.paths['/transfer/recurring/create'].post update: x-apievangelist-phrasing: intent: Create a recurring transfer effect: write questions: - How do I set up a weekly or monthly ACH debit? - Is recurring transfer available to Transfer UI customers? instructions: - text: Create a recurring {type} of {amount} via {network} on {schedule} for {account_id} on {access_token}, user {user}, memo {description}, key {idempotency_key}. slots: type: requestBody.type amount: requestBody.amount network: requestBody.network schedule: requestBody.schedule account_id: requestBody.account_id access_token: requestBody.access_token user: requestBody.user description: requestBody.description idempotency_key: requestBody.idempotency_key - text: Schedule {amount} {type} on {schedule} via {network} from {account_id} ({access_token}) for {user}, {description}, key {idempotency_key}. slots: amount: requestBody.amount type: requestBody.type schedule: requestBody.schedule network: requestBody.network account_id: requestBody.account_id access_token: requestBody.access_token user: requestBody.user description: requestBody.description idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/create'].post update: x-apievangelist-phrasing: intent: Create a legacy bank transfer effect: write questions: - How do I start a transfer with the older Bank Transfers product? - Does a legacy bank transfer require an idempotency key? instructions: - text: Create a legacy {type} bank transfer, {amount} {iso_currency_code} via {network}, {account_id} on {access_token}, {user}, {description}, {idempotency_key}. slots: type: requestBody.type amount: requestBody.amount iso_currency_code: requestBody.iso_currency_code network: requestBody.network account_id: requestBody.account_id access_token: requestBody.access_token user: requestBody.user description: requestBody.description idempotency_key: requestBody.idempotency_key - text: Use the old bank_transfer API to send {amount} {iso_currency_code} {type} on {network}, {account_id}/{access_token}, {user}, {description}, {idempotency_key}. slots: amount: requestBody.amount iso_currency_code: requestBody.iso_currency_code type: requestBody.type network: requestBody.network account_id: requestBody.account_id access_token: requestBody.access_token user: requestBody.user description: requestBody.description idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/transfer/list'].post update: x-apievangelist-phrasing: intent: List transfers effect: read questions: - What transfers have I made with Plaid Transfer, and what state are they in? - Can I list transfers within a date range? instructions: - text: List my transfers. - text: List transfers from {start_date} to {end_date}, {count} at a time from offset {offset}. slots: start_date: requestBody.start_date end_date: requestBody.end_date count: requestBody.count offset: requestBody.offset method: generated generated: '2026-09-24' - target: $.paths['/transfer/recurring/list'].post update: x-apievangelist-phrasing: intent: List recurring transfers effect: read questions: - What recurring transfers do I have set up? - Can I page through recurring transfers created in a time window? instructions: - text: List my recurring transfers. - text: Show recurring transfers created between {start_time} and {end_time}. slots: start_time: requestBody.start_time end_time: requestBody.end_time method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/list'].post update: x-apievangelist-phrasing: intent: List legacy bank transfers effect: read questions: - How do I list transfers made with the older Bank Transfers product? - Can I filter legacy bank transfers by direction? instructions: - text: List my legacy bank transfers. - text: Show {direction} bank transfers from {start_date} to {end_date} using the old API. slots: direction: requestBody.direction start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/transfer/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a transfer effect: destructive questions: - Can I stop a Plaid Transfer after I've created it? - How do I know if a transfer can still be cancelled? instructions: - text: Cancel transfer {transfer_id}. slots: transfer_id: requestBody.transfer_id - text: Stop pending transfer {transfer_id} before it's sent. slots: transfer_id: requestBody.transfer_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/recurring/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a recurring transfer effect: destructive questions: - How do I stop a recurring ACH schedule? - What happens to scheduled transfers when I cancel a recurring transfer? instructions: - text: Cancel recurring transfer {recurring_transfer_id}. slots: recurring_transfer_id: requestBody.recurring_transfer_id - text: End the repeating payment schedule {recurring_transfer_id}. slots: recurring_transfer_id: requestBody.recurring_transfer_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a legacy bank transfer effect: destructive questions: - Can I cancel a transfer made with the older Bank Transfers product? - When is a legacy bank transfer cancelable? instructions: - text: Cancel bank transfer {bank_transfer_id}. slots: bank_transfer_id: requestBody.bank_transfer_id - text: Stop legacy bank_transfer {bank_transfer_id}. slots: bank_transfer_id: requestBody.bank_transfer_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/event/list'].post update: x-apievangelist-phrasing: intent: List transfer events effect: read questions: - How do I see when my transfers were posted, settled or returned? - Can I filter transfer events by type or sweep? instructions: - text: List transfer events for transfer {transfer_id}. slots: transfer_id: requestBody.transfer_id - text: Show {event_types} transfer events from {start_date} to {end_date}. slots: event_types: requestBody.event_types start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/event/list'].post update: x-apievangelist-phrasing: intent: List legacy bank transfer events effect: read questions: - How do I track events on transfers from the older Bank Transfers product? - Can I see micro-deposit events for Auth here? instructions: - text: List events for legacy bank transfer {bank_transfer_id}. slots: bank_transfer_id: requestBody.bank_transfer_id - text: Show {event_types} bank_transfer events between {start_date} and {end_date} on the old API. slots: event_types: requestBody.event_types start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/transfer/event/sync'].post update: x-apievangelist-phrasing: intent: Sync transfer events after an event ID effect: read questions: - How do I make sure I never miss a transfer event? - How many transfer events can I fetch per sync call? instructions: - text: Sync transfer events after event {after_id}. slots: after_id: requestBody.after_id - text: Get the next {count} transfer events following ID {after_id}. slots: count: requestBody.count after_id: requestBody.after_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/event/sync'].post update: x-apievangelist-phrasing: intent: Sync legacy bank transfer events effect: read questions: - How do I stream events from the older Bank Transfers product without gaps? - Can I sync micro-deposit bank transfer events by event ID? instructions: - text: Sync legacy bank transfer events after {after_id}. slots: after_id: requestBody.after_id - text: Fetch up to {count} bank_transfer events since event {after_id} from the old API. slots: count: requestBody.count after_id: requestBody.after_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/sweep/get'].post update: x-apievangelist-phrasing: intent: Retrieve a transfer sweep effect: read questions: - How do I see the details of a sweep that moved my transfer funds? - What does a Plaid Transfer sweep record show? instructions: - text: Get transfer sweep {sweep_id}. slots: sweep_id: requestBody.sweep_id - text: Show the settlement sweep {sweep_id} for my transfers. slots: sweep_id: requestBody.sweep_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/sweep/get'].post update: x-apievangelist-phrasing: intent: Retrieve a legacy bank transfer sweep effect: read questions: - How do I look up a sweep from the older Bank Transfers product? - Where do I find a legacy bank transfer sweep by ID? instructions: - text: Get legacy bank transfer sweep {sweep_id}. slots: sweep_id: requestBody.sweep_id - text: Look up bank_transfer sweep {sweep_id} on the old API. slots: sweep_id: requestBody.sweep_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/sweep/list'].post update: x-apievangelist-phrasing: intent: List transfer sweeps effect: read questions: - How do I list the sweeps that settled my transfers? - Can I filter sweeps by status, amount or the transfer they include? instructions: - text: List my transfer sweeps. - text: Show sweeps with status {status} between {start_date} and {end_date}. slots: status: requestBody.status start_date: requestBody.start_date end_date: requestBody.end_date - text: Find the sweep that included transfer {transfer_id}. slots: transfer_id: requestBody.transfer_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/sweep/list'].post update: x-apievangelist-phrasing: intent: List legacy bank transfer sweeps effect: read questions: - How do I list sweeps from the older Bank Transfers product? - Can I filter legacy sweeps by origination account? instructions: - text: List my legacy bank transfer sweeps. - text: Show bank_transfer sweeps from {start_time} to {end_time} for origination account {origination_account_id}. slots: start_time: requestBody.start_time end_time: requestBody.end_time origination_account_id: requestBody.origination_account_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/balance/get'].post update: x-apievangelist-phrasing: intent: Get legacy Bank Transfers account balance effect: read questions: - What's the available balance in my Bank Transfers account? - When do debit transfers show up in my legacy bank transfer balance? instructions: - text: Get my Bank Transfers balance. - text: Show the available balance on origination account {origination_account_id} in the old Bank Transfers product. slots: origination_account_id: requestBody.origination_account_id method: generated generated: '2026-09-24' - target: $.paths['/bank_transfer/migrate_account'].post update: x-apievangelist-phrasing: intent: Migrate known account numbers into Bank Transfers effect: write questions: - Can I use account and routing numbers I already have with the older Bank Transfers product instead of Link? - What can't a migrated legacy Item be used for? instructions: - text: Migrate {account_type} account {account_number} at routing {routing_number} into Bank Transfers. slots: account_type: requestBody.account_type account_number: requestBody.account_number routing_number: requestBody.routing_number - text: Create a legacy bank_transfer Item from account {account_number}, routing {routing_number}, type {account_type}. slots: account_number: requestBody.account_number routing_number: requestBody.routing_number account_type: requestBody.account_type method: generated generated: '2026-09-24' - target: $.paths['/transfer/migrate_account'].post update: x-apievangelist-phrasing: intent: Migrate known account numbers into Transfer effect: write questions: - How do I use Plaid Transfer with account and routing numbers I collected myself? - Do I need a wire routing number to send wires to a migrated account? instructions: - text: Migrate {account_type} account {account_number}, routing {routing_number}, into Transfer. slots: account_type: requestBody.account_type account_number: requestBody.account_number routing_number: requestBody.routing_number - text: Set up a Transfer Item for account {account_number} with ACH routing {routing_number} and wire routing {wire_routing_number}, type {account_type}. slots: account_number: requestBody.account_number routing_number: requestBody.routing_number wire_routing_number: requestBody.wire_routing_number account_type: requestBody.account_type method: generated generated: '2026-09-24' - target: $.paths['/transfer/intent/create'].post update: x-apievangelist-phrasing: intent: Create a transfer intent for Transfer UI effect: write questions: - How do I let Plaid's hosted Transfer UI collect a payment? - Can the Transfer UI both pay out and collect? instructions: - text: Create a {mode} transfer intent for {amount} for {user}, described {description}. slots: mode: requestBody.mode amount: requestBody.amount user: requestBody.user description: requestBody.description - text: Start Transfer UI to {mode} {amount} with {user}, memo {description}, network {network}. slots: mode: requestBody.mode amount: requestBody.amount user: requestBody.user description: requestBody.description network: requestBody.network method: generated generated: '2026-09-24' - target: $.paths['/transfer/intent/get'].post update: x-apievangelist-phrasing: intent: Retrieve a transfer intent effect: read questions: - How do I check what happened with a Transfer UI session? - Did the transfer intent lead to an authorized transfer? instructions: - text: Get transfer intent {transfer_intent_id}. slots: transfer_intent_id: requestBody.transfer_intent_id - text: Show the outcome of Transfer UI intent {transfer_intent_id}. slots: transfer_intent_id: requestBody.transfer_intent_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/repayment/list'].post update: x-apievangelist-phrasing: intent: List guarantee repayments effect: read questions: - How do I see the repayments Plaid made for guaranteed transfer returns? - In what order are repayments listed? instructions: - text: List my transfer repayments. - text: Show repayments between {start_date} and {end_date}. slots: start_date: requestBody.start_date end_date: requestBody.end_date method: generated generated: '2026-09-24' - target: $.paths['/transfer/repayment/return/list'].post update: x-apievangelist-phrasing: intent: List returns included in a repayment effect: read questions: - Which returned transfers were batched into a given repayment? - Do the returns in a repayment add up to its amount? instructions: - text: List returns in repayment {repayment_id}. slots: repayment_id: requestBody.repayment_id - text: Show the returned transfers covered by repayment {repayment_id}. slots: repayment_id: requestBody.repayment_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/originator/create'].post update: x-apievangelist-phrasing: intent: Create a transfer originator effect: write questions: - As a platform, how do I add a new business customer who will send transfers? - What do I get back when I create an originator? instructions: - text: Create an originator for {company_name}. slots: company_name: requestBody.company_name - text: Onboard business {company_name} as a new transfer originator. slots: company_name: requestBody.company_name method: generated generated: '2026-09-24' - target: $.paths['/transfer/questionnaire/create'].post update: x-apievangelist-phrasing: intent: Get a hosted onboarding link for an originator effect: write questions: - How do I send an originator to a Plaid-hosted form for their due diligence? - Where does the originator land after finishing the onboarding questionnaire? instructions: - text: Create an onboarding questionnaire URL for originator {originator_client_id} returning to {redirect_uri}. slots: originator_client_id: requestBody.originator_client_id redirect_uri: requestBody.redirect_uri - text: Generate the hosted due diligence page for {originator_client_id}, redirecting to {redirect_uri}. slots: originator_client_id: requestBody.originator_client_id redirect_uri: requestBody.redirect_uri method: generated generated: '2026-09-24' - target: $.paths['/transfer/diligence/submit'].post update: x-apievangelist-phrasing: intent: Submit due diligence for an originator effect: write questions: - Can I submit an originator's KYB information through the API instead of the hosted UI? - What happens after I submit transfer diligence for a customer? instructions: - text: Submit diligence {originator_diligence} for originator {originator_client_id}. slots: originator_diligence: requestBody.originator_diligence originator_client_id: requestBody.originator_client_id - text: Send business verification details {originator_diligence} on behalf of {originator_client_id}. slots: originator_diligence: requestBody.originator_diligence originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/diligence/document/upload'].post update: x-apievangelist-phrasing: intent: Upload a diligence document for an originator effect: write questions: - How do I upload a supporting document for an originator's onboarding? - What request format does the diligence document upload need? instructions: - text: Upload {file} as {purpose} for originator {originator_client_id}. slots: file: requestBody.file purpose: requestBody.purpose originator_client_id: requestBody.originator_client_id - text: Attach document {file} with purpose {purpose} to {originator_client_id}'s diligence. slots: file: requestBody.file purpose: requestBody.purpose originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/originator/get'].post update: x-apievangelist-phrasing: intent: Check an originator's onboarding status effect: read questions: - Has my business customer finished transfer onboarding? - Where do I see an originator's diligence status? instructions: - text: Get originator {originator_client_id}. slots: originator_client_id: requestBody.originator_client_id - text: Check onboarding progress for originator {originator_client_id}. slots: originator_client_id: requestBody.originator_client_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/originator/list'].post update: x-apievangelist-phrasing: intent: List originators and onboarding status effect: read questions: - How do I see onboarding status for all my originators at once? - Can I page through my list of originators? instructions: - text: List all my originators. - text: Show {count} originators starting at offset {offset}. slots: count: requestBody.count offset: requestBody.offset method: generated generated: '2026-09-24' - target: $.paths['/transfer/refund/create'].post update: x-apievangelist-phrasing: intent: Refund a transfer effect: write questions: - How do I refund money I collected with Plaid Transfer? - How old can a transfer be and still be refunded? - How soon is a transfer refund processed? instructions: - text: Refund {amount} of transfer {transfer_id} with key {idempotency_key}. slots: amount: requestBody.amount transfer_id: requestBody.transfer_id idempotency_key: requestBody.idempotency_key - text: Send {amount} back to the payer of transfer {transfer_id}, idempotency key {idempotency_key}. slots: amount: requestBody.amount transfer_id: requestBody.transfer_id idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/transfer/refund/get'].post update: x-apievangelist-phrasing: intent: Retrieve a transfer refund effect: read questions: - How do I check the status of a refund on a transfer? - What does a transfer refund record include? instructions: - text: Get refund {refund_id}. slots: refund_id: requestBody.refund_id - text: Check where transfer refund {refund_id} stands. slots: refund_id: requestBody.refund_id method: generated generated: '2026-09-24' - target: $.paths['/transfer/refund/cancel'].post update: x-apievangelist-phrasing: intent: Cancel a transfer refund effect: destructive questions: - Can I cancel a refund before it goes out? - When is it too late to cancel a transfer refund? instructions: - text: Cancel refund {refund_id}. slots: refund_id: requestBody.refund_id - text: Stop transfer refund {refund_id} before it's submitted to the network. slots: refund_id: requestBody.refund_id method: generated generated: '2026-09-24' - target: $.paths['/sandbox/bank_transfer/simulate'].post update: x-apievangelist-phrasing: intent: Simulate a legacy bank transfer event effect: write questions: - How do I test a bank transfer being posted or failing in Sandbox? - Can I simulate a failure reason on a legacy bank transfer? instructions: - text: Simulate event {event_type} on Sandbox bank transfer {bank_transfer_id}. slots: event_type: requestBody.event_type bank_transfer_id: requestBody.bank_transfer_id - text: Make test bank_transfer {bank_transfer_id} fail with {event_type} and reason {failure_reason}. slots: bank_transfer_id: requestBody.bank_transfer_id event_type: requestBody.event_type failure_reason: requestBody.failure_reason method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/sweep/simulate'].post update: x-apievangelist-phrasing: intent: Simulate a transfer sweep in Sandbox effect: write questions: - How do I test sweeps settling my transfers in Sandbox? - What happens to swept transfers when I simulate a sweep? instructions: - text: Simulate a transfer sweep in Sandbox. - text: Run a Sandbox sweep on test clock {test_clock_id}. slots: test_clock_id: requestBody.test_clock_id method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/simulate'].post update: x-apievangelist-phrasing: intent: Simulate a transfer event in Sandbox effect: write questions: - How do I test a transfer being posted, settled or returned in Sandbox? - Does simulating a transfer event also fire a webhook? instructions: - text: Simulate {event_type} on Sandbox transfer {transfer_id}. slots: event_type: requestBody.event_type transfer_id: requestBody.transfer_id - text: Mark test transfer {transfer_id} as {event_type} with failure reason {failure_reason}. slots: transfer_id: requestBody.transfer_id event_type: requestBody.event_type failure_reason: requestBody.failure_reason method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/refund/simulate'].post update: x-apievangelist-phrasing: intent: Simulate a refund event in Sandbox effect: write questions: - How do I test a transfer refund posting or failing in Sandbox? - Can I simulate a refund event on a test clock? instructions: - text: Simulate {event_type} on Sandbox refund {refund_id}. slots: event_type: requestBody.event_type refund_id: requestBody.refund_id - text: Make test refund {refund_id} go to {event_type} with reason {failure_reason}. slots: refund_id: requestBody.refund_id event_type: requestBody.event_type failure_reason: requestBody.failure_reason method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/ledger/simulate_available'].post update: x-apievangelist-phrasing: intent: Make pending ledger balance available in Sandbox effect: write questions: - How do I turn pending ledger funds into available funds while testing? - Does simulating available balance apply to all originators? instructions: - text: Convert pending ledger balance to available in Sandbox. - text: Release pending Sandbox ledger funds on test clock {test_clock_id}. slots: test_clock_id: requestBody.test_clock_id method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/ledger/deposit/simulate'].post update: x-apievangelist-phrasing: intent: Simulate a ledger deposit event in Sandbox effect: write questions: - How do I test a ledger deposit settling or failing? - Which sweep does a simulated ledger deposit event apply to? instructions: - text: Simulate {event_type} on ledger deposit sweep {sweep_id}. slots: event_type: requestBody.event_type sweep_id: requestBody.sweep_id - text: Make Sandbox deposit sweep {sweep_id} fail as {event_type} because {failure_reason}. slots: sweep_id: requestBody.sweep_id event_type: requestBody.event_type failure_reason: requestBody.failure_reason method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/ledger/withdraw/simulate'].post update: x-apievangelist-phrasing: intent: Simulate a ledger withdrawal event in Sandbox effect: write questions: - How do I test a ledger withdrawal going through in Sandbox? - Can I simulate a failed withdrawal from my ledger? instructions: - text: Simulate {event_type} on ledger withdrawal sweep {sweep_id}. slots: event_type: requestBody.event_type sweep_id: requestBody.sweep_id - text: Fail Sandbox withdrawal sweep {sweep_id} with event {event_type} and reason {failure_reason}. slots: sweep_id: requestBody.sweep_id event_type: requestBody.event_type failure_reason: requestBody.failure_reason method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/repayment/simulate'].post update: x-apievangelist-phrasing: intent: Trigger a repayment in Sandbox effect: write questions: - How do I test repayments for returned guaranteed transfers? - What goes into a simulated repayment? instructions: - text: Simulate a repayment in Sandbox. - text: Create a test repayment covering all unreimbursed guaranteed returns. method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/fire_webhook'].post update: x-apievangelist-phrasing: intent: Fire a Transfer events webhook in Sandbox effect: write questions: - How do I test my handler for transfer event webhooks? - Which webhook does the Sandbox transfer trigger send? instructions: - text: Fire a TRANSFER_EVENTS_UPDATE webhook to {webhook}. slots: webhook: requestBody.webhook - text: Send a test transfer events notification to URL {webhook}. slots: webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/test_clock/create'].post update: x-apievangelist-phrasing: intent: Create a Sandbox test clock effect: write questions: - How do I simulate the passage of time for recurring transfers? - Can I start a test clock at a specific virtual time? instructions: - text: Create a test clock. - text: Create a Sandbox test clock starting at {virtual_time}. slots: virtual_time: requestBody.virtual_time method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/test_clock/advance'].post update: x-apievangelist-phrasing: intent: Advance a Sandbox test clock effect: write questions: - How do I move a test clock forward to trigger scheduled transfers? - Can I jump a test clock to a chosen time? instructions: - text: Advance test clock {test_clock_id} to {new_virtual_time}. slots: test_clock_id: requestBody.test_clock_id new_virtual_time: requestBody.new_virtual_time - text: Move Sandbox clock {test_clock_id} forward to {new_virtual_time}. slots: test_clock_id: requestBody.test_clock_id new_virtual_time: requestBody.new_virtual_time method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/test_clock/get'].post update: x-apievangelist-phrasing: intent: Get a Sandbox test clock effect: read questions: - What virtual time is my test clock at? - How do I look up a single test clock? instructions: - text: Get test clock {test_clock_id}. slots: test_clock_id: requestBody.test_clock_id - text: Show the current virtual time of clock {test_clock_id}. slots: test_clock_id: requestBody.test_clock_id method: generated generated: '2026-09-24' - target: $.paths['/sandbox/transfer/test_clock/list'].post update: x-apievangelist-phrasing: intent: List Sandbox test clocks effect: read questions: - What test clocks exist in my Sandbox? - Can I list test clocks within a virtual time range? instructions: - text: List my test clocks. - text: List test clocks with virtual time between {start_virtual_time} and {end_virtual_time}. slots: start_virtual_time: requestBody.start_virtual_time end_virtual_time: requestBody.end_virtual_time method: generated generated: '2026-09-24' - target: $.paths['/sandbox/payment_profile/reset_login'].post update: x-apievangelist-phrasing: intent: Reset a Payment Profile login in Sandbox effect: write questions: - How do I test update mode for a Payment Profile? - Can I make a Sandbox Payment Profile's login invalid? instructions: - text: Reset login for payment profile {payment_profile_token}. slots: payment_profile_token: requestBody.payment_profile_token - text: Force Sandbox Payment Profile {payment_profile_token} into a login-required state. slots: payment_profile_token: requestBody.payment_profile_token method: generated generated: '2026-09-24' - target: $.paths['/employers/search'].post update: x-apievangelist-phrasing: intent: Search employers for Deposit Switch effect: read questions: - How do I check if a user's employer is supported for switching direct deposit? - Can I look up an employer by name? instructions: - text: Search employers named {query} for products {products}. slots: query: requestBody.query products: requestBody.products - text: Find employer {query} in the {products} employer database. slots: query: requestBody.query products: requestBody.products method: generated generated: '2026-09-24' - target: $.paths['/income/verification/create'].post update: x-apievangelist-phrasing: intent: Start an income verification (deprecated) effect: write questions: - How did the older income verification flow get started? - Can I use a precheck ID when starting the legacy income verification? instructions: - text: Create a legacy income verification notifying {webhook}. slots: webhook: requestBody.webhook - text: Start deprecated income verification with precheck {precheck_id} and webhook {webhook}. slots: precheck_id: requestBody.precheck_id webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/income/verification/paystubs/get'].post update: x-apievangelist-phrasing: intent: Get paystub data from income verification effect: read questions: - How do I read the paystub details from the older income verification? - When is paystub data available after verification? instructions: - text: Get paystubs for income verification {income_verification_id}. slots: income_verification_id: requestBody.income_verification_id - text: Pull the verified paystub data on item {access_token} via the deprecated endpoint. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/income/verification/documents/download'].post update: x-apievangelist-phrasing: intent: Download income verification source documents effect: read questions: - Can I download the original paystubs or tax forms a user provided for income verification? - Can I download just one of the source documents? instructions: - text: Download documents for income verification {income_verification_id}. slots: income_verification_id: requestBody.income_verification_id - text: Download source document {document_id} from income verification {income_verification_id}. slots: document_id: requestBody.document_id income_verification_id: requestBody.income_verification_id method: generated generated: '2026-09-24' - target: $.paths['/income/verification/taxforms/get'].post update: x-apievangelist-phrasing: intent: Get tax form data from income verification effect: read questions: - How do I read W-2 or tax form data from the older income verification? - Is tax form data returned before verification completes? instructions: - text: Get tax forms for income verification {income_verification_id}. slots: income_verification_id: requestBody.income_verification_id - text: Pull the verified tax document data on item {access_token} using the deprecated endpoint. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/income/verification/precheck'].post update: x-apievangelist-phrasing: intent: Precheck digital income verification eligibility effect: read questions: - Can I check whether a user is likely to succeed at digital income verification before opening Link? - What details help the income precheck? instructions: - text: Precheck income verification for user {user} at employer {employer}. slots: user: requestBody.user employer: requestBody.employer - text: Check digital income eligibility for {user} with payroll provider {payroll_institution}. slots: user: requestBody.user payroll_institution: requestBody.payroll_institution method: generated generated: '2026-09-24' - target: $.paths['/employment/verification/get'].post update: x-apievangelist-phrasing: intent: Get verified employment summary (deprecated) effect: read questions: - How did I get a user's verified employers with the older employment endpoint? - What replaced the deprecated employment verification call? instructions: - text: Get employment verification for {access_token}. slots: access_token: requestBody.access_token - text: List payroll-verified employers on item {access_token} using the deprecated endpoint. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/deposit_switch/alt/create'].post update: x-apievangelist-phrasing: intent: Create a deposit switch without Plaid Exchange effect: write questions: - Can I start a direct deposit switch without a Plaid Exchange integration? - What account and user details does the alternative deposit switch need? instructions: - text: Create an alt deposit switch to account {target_account} for user {target_user}. slots: target_account: requestBody.target_account target_user: requestBody.target_user - text: Start a payroll switch into {target_account} for {target_user} in {country_code} without Plaid Exchange. slots: target_account: requestBody.target_account target_user: requestBody.target_user country_code: requestBody.country_code method: generated generated: '2026-09-24' - target: $.paths['/credit/audit_copy_token/create'].post update: x-apievangelist-phrasing: intent: Create an audit copy token for reports effect: write questions: - How do I share Asset and Income Reports with a GSE lender? - Can one audit copy token cover multiple report types? instructions: - text: Create an audit copy token for reports {report_tokens}. slots: report_tokens: requestBody.report_tokens - text: Bundle report tokens {report_tokens} into one shareable audit copy. slots: report_tokens: requestBody.report_tokens method: generated generated: '2026-09-24' - target: $.paths['/credit/audit_copy_token/remove'].post update: x-apievangelist-phrasing: intent: Remove a credit audit copy token effect: destructive questions: - How do I revoke an audit copy token I shared for income or asset reports? - Does removing a credit audit copy token cut off third parties? instructions: - text: Remove credit audit copy token {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token - text: Invalidate the shared income and asset audit copy {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token method: generated generated: '2026-09-24' - target: $.paths['/credit/asset_report/freddie_mac/get'].post update: x-apievangelist-phrasing: intent: Get an Asset Report in Freddie Mac format effect: read questions: - Can I get an Asset Report formatted for Freddie Mac? - What token do I use to pull the Freddie Mac Asset Report? instructions: - text: Get the Freddie Mac Asset Report for audit copy {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token - text: Pull asset data in Freddie Mac JSON using {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token method: generated generated: '2026-09-24' - target: $.paths['/credit/freddie_mac/reports/get'].post update: x-apievangelist-phrasing: intent: Get Freddie Mac VOA and VOE reports effect: read questions: - How do I get Verification of Assets and Employment reports for Freddie Mac? - Does the Freddie Mac reports call include employment verification? instructions: - text: Get Freddie Mac VOA and VOE reports for {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token - text: Retrieve verification of assets and employment for audit copy {audit_copy_token}. slots: audit_copy_token: requestBody.audit_copy_token method: generated generated: '2026-09-24' - target: $.paths['/beta/credit/v1/bank_employment/get'].post update: x-apievangelist-phrasing: intent: Get employment reports from bank data effect: read questions: - Can I verify a user's employer from their bank deposits? - How do I get the bank-derived employment report for a user? instructions: - text: Get bank employment reports for {user_token}. slots: user_token: requestBody.user_token - text: Show employers detected in the bank transactions of user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/bank_income/get'].post update: x-apievangelist-phrasing: intent: Get Bank Income reports for a user effect: read questions: - How do I retrieve the Bank Income report for a user in the income product? - Can I get more than one Bank Income report for a user? instructions: - text: Get Bank Income for user {user_token}. slots: user_token: requestBody.user_token - text: Show income streams derived from linked bank accounts for {user_token} in Plaid Income. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/bank_income/pdf/get'].post update: x-apievangelist-phrasing: intent: Download a Bank Income report as a PDF effect: read questions: - Can I get a user's latest Bank Income report as a PDF? - Which Bank Income report does the PDF download return? instructions: - text: Download the Bank Income PDF for {user_token}. slots: user_token: requestBody.user_token - text: Save the most recent bank income report for user {user_token} as a PDF. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/bank_income/refresh'].post update: x-apievangelist-phrasing: intent: Refresh a user's Bank Income data effect: write questions: - How do I update a user's Bank Income report with newer transactions? - Can I re-run Bank Income without sending the user back through Link? instructions: - text: Refresh Bank Income for {user_token}. slots: user_token: requestBody.user_token - text: Regenerate the bank income report data for user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/bank_income/webhook/update'].post update: x-apievangelist-phrasing: intent: Subscribe a user to income change webhooks effect: write questions: - Can I be notified automatically when a user's income changes significantly? - Are users subscribed to income webhooks by default? instructions: - text: Set income webhooks for {user_token} to {enable_webhooks}. slots: user_token: requestBody.user_token enable_webhooks: requestBody.enable_webhooks - text: 'Turn proactive bank income notifications for user {user_token} on or off: {enable_webhooks}.' slots: user_token: requestBody.user_token enable_webhooks: requestBody.enable_webhooks method: generated generated: '2026-09-24' - target: $.paths['/credit/payroll_income/parsing_config/update'].post update: x-apievangelist-phrasing: intent: Update document income parsing configuration effect: write questions: - Can I change how uploaded income documents are parsed for a user? - How do I set the parsing configuration for document income verification? instructions: - text: Update the parsing config for {user_token} to {parsing_config}. slots: user_token: requestBody.user_token parsing_config: requestBody.parsing_config - text: Set document parsing {parsing_config} for user {user_token} on item {item_id}. slots: parsing_config: requestBody.parsing_config user_token: requestBody.user_token item_id: requestBody.item_id method: generated generated: '2026-09-24' - target: $.paths['/credit/bank_statements/uploads/get'].post update: x-apievangelist-phrasing: intent: Get parsed data from uploaded bank statements effect: read questions: - How do I read the data from bank statements a user uploaded for Document Income? - Do I need Document Parsing enabled to get uploaded statement data? instructions: - text: Get uploaded bank statement data for {user_token}. slots: user_token: requestBody.user_token - text: Show the parsed statements user {user_token} uploaded during Document Income. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/payroll_income/get'].post update: x-apievangelist-phrasing: intent: Get a user's payroll income effect: read questions: - How do I get a user's pay history from their payroll provider or uploaded paystubs? - Does payroll income include data from documents the user uploaded? instructions: - text: Get payroll income for {user_token}. slots: user_token: requestBody.user_token - text: Show the pay periods and earnings verified for user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/payroll_income/risk_signals/get'].post update: x-apievangelist-phrasing: intent: Check uploaded income documents for fraud effect: read questions: - Can I tell if a paystub a user uploaded was tampered with? - What risk score comes back for an uploaded income document? instructions: - text: Get document fraud signals for {user_token}. slots: user_token: requestBody.user_token - text: Score the pay documents uploaded by user {user_token} for tampering. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/payroll_income/precheck'].post update: x-apievangelist-phrasing: intent: Precheck payroll income verification eligibility effect: read questions: - Will a user's employer work with digital payroll income verification? - What should I pass to improve the income precheck result? instructions: - text: Precheck payroll income for {user_token} at employer {employer}. slots: user_token: requestBody.user_token employer: requestBody.employer - text: See whether user {user_token} with payroll provider {payroll_institution} is supported before opening Link. slots: user_token: requestBody.user_token payroll_institution: requestBody.payroll_institution method: generated generated: '2026-09-24' - target: $.paths['/credit/employment/get'].post update: x-apievangelist-phrasing: intent: Get a user's verified employment effect: read questions: - How do I confirm where a user works from their payroll account? - What employment details does the payroll check return? instructions: - text: Get employment information for {user_token}. slots: user_token: requestBody.user_token - text: List the payroll-verified employers of user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/payroll_income/refresh'].post update: x-apievangelist-phrasing: intent: Refresh digital payroll income effect: write questions: - How do I pull the latest paystubs for a user I already verified? - Can I refresh a digital payroll income verification? instructions: - text: Refresh payroll income for {user_token}. slots: user_token: requestBody.user_token - text: Re-pull the payroll data connected by user {user_token}. slots: user_token: requestBody.user_token method: generated generated: '2026-09-24' - target: $.paths['/credit/relay/create'].post update: x-apievangelist-phrasing: intent: Share reports with a partner via relay token effect: write questions: - How do I share an Asset Report with another Plaid customer like a lender? - Is the relayed report a copy or the same Asset Report? instructions: - text: Create a relay token for reports {report_tokens} to client {secondary_client_id}. slots: report_tokens: requestBody.report_tokens secondary_client_id: requestBody.secondary_client_id - text: Relay {report_tokens} to partner {secondary_client_id} and notify {webhook}. slots: report_tokens: requestBody.report_tokens secondary_client_id: requestBody.secondary_client_id webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/credit/relay/get'].post update: x-apievangelist-phrasing: intent: Retrieve reports shared through a relay token effect: read questions: - As a partner, how do I read a report someone relayed to me? - Can I include insights when reading a relayed report? instructions: - text: Get the {report_type} report for relay token {relay_token}. slots: report_type: requestBody.report_type relay_token: requestBody.relay_token - text: Open the relayed {report_type} report at {relay_token} with insights {include_insights}. slots: report_type: requestBody.report_type relay_token: requestBody.relay_token include_insights: requestBody.include_insights method: generated generated: '2026-09-24' - target: $.paths['/credit/relay/pdf/get'].post update: x-apievangelist-phrasing: intent: Download a relayed report as a PDF effect: read questions: - Can a partner download a report shared with them as a PDF? - Which report types can be fetched as PDF through a relay? instructions: - text: Download the {report_type} PDF for relay token {relay_token}. slots: report_type: requestBody.report_type relay_token: requestBody.relay_token - text: Get a PDF copy of the relayed {report_type} report via {relay_token}. slots: report_type: requestBody.report_type relay_token: requestBody.relay_token method: generated generated: '2026-09-24' - target: $.paths['/credit/relay/refresh'].post update: x-apievangelist-phrasing: intent: Refresh a relayed report effect: write questions: - As a partner, can I get updated data on a report someone relayed to me? - Does refreshing a relayed report reuse the original settings? instructions: - text: Refresh the {report_type} report on relay token {relay_token}. slots: report_type: requestBody.report_type relay_token: requestBody.relay_token - text: Create a newer {report_type} report from relay {relay_token} and notify {webhook}. slots: report_type: requestBody.report_type relay_token: requestBody.relay_token webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/credit/relay/remove'].post update: x-apievangelist-phrasing: intent: Revoke a relay token effect: destructive questions: - How do I stop a partner from accessing reports I relayed? - Does removing a relay token delete the original report? instructions: - text: Remove relay token {relay_token}. slots: relay_token: requestBody.relay_token - text: Cut off the partner's access granted by {relay_token}. slots: relay_token: requestBody.relay_token method: generated generated: '2026-09-24' - target: $.paths['/sandbox/bank_transfer/fire_webhook'].post update: x-apievangelist-phrasing: intent: Fire a legacy Bank Transfers webhook in Sandbox effect: write questions: - How do I test my webhook handler for the older Bank Transfers product? - Can I trigger a bank transfers webhook on demand? instructions: - text: Fire a Bank Transfers webhook to {webhook}. slots: webhook: requestBody.webhook - text: Send a test legacy bank_transfer notification to {webhook}. slots: webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/sandbox/income/fire_webhook'].post update: x-apievangelist-phrasing: intent: Fire a payroll or document income webhook effect: write questions: - How do I test Payroll Income webhooks in Sandbox? - Can I simulate a document income verification status change? instructions: - text: Fire income webhook {webhook_code} for item {item_id} to {webhook}. slots: webhook_code: requestBody.webhook_code item_id: requestBody.item_id webhook: requestBody.webhook - text: Send test payroll webhook {webhook_code} with status {verification_status} for {item_id} to {webhook}. slots: webhook_code: requestBody.webhook_code verification_status: requestBody.verification_status item_id: requestBody.item_id webhook: requestBody.webhook method: generated generated: '2026-09-24' - target: $.paths['/sandbox/bank_income/fire_webhook'].post update: x-apievangelist-phrasing: intent: Fire a Bank Income webhook in Sandbox effect: write questions: - How do I test Bank Income refresh or change webhooks? - Can I override the URL a Sandbox bank income webhook goes to? instructions: - text: Fire bank income webhook {webhook_code} with fields {webhook_fields}. slots: webhook_code: requestBody.webhook_code webhook_fields: requestBody.webhook_fields - text: Send test Bank Income {webhook_code} carrying {webhook_fields} to {webhook_override}. slots: webhook_code: requestBody.webhook_code webhook_fields: requestBody.webhook_fields webhook_override: requestBody.webhook_override method: generated generated: '2026-09-24' - target: $.paths['/sandbox/oauth/select_accounts'].post update: x-apievangelist-phrasing: intent: Select accounts for the Sandbox OAuth bank effect: write questions: - How do I pick accounts when testing the Platypus OAuth institution? - Can I save account selection for a Sandbox OAuth connection? instructions: - text: Select accounts {accounts} for OAuth state {oauth_state_id}. slots: accounts: requestBody.accounts oauth_state_id: requestBody.oauth_state_id - text: Save Platypus OAuth account choices {accounts} for {oauth_state_id}. slots: accounts: requestBody.accounts oauth_state_id: requestBody.oauth_state_id method: generated generated: '2026-09-24' - target: $.paths['/signal/evaluate'].post update: x-apievangelist-phrasing: intent: Score ACH return risk on a linked account effect: read questions: - How likely is an ACH debit from a user's linked account to bounce? - Can I use a risk profile when scoring a planned ACH payment? instructions: - text: Evaluate a {amount} ACH debit {client_transaction_id} from account {account_id} on {access_token}. slots: amount: requestBody.amount client_transaction_id: requestBody.client_transaction_id account_id: requestBody.account_id access_token: requestBody.access_token - text: Score return risk for payment {client_transaction_id} of {amount} on item {access_token}, account {account_id}, profile {risk_profile_key}. slots: client_transaction_id: requestBody.client_transaction_id amount: requestBody.amount access_token: requestBody.access_token account_id: requestBody.account_id risk_profile_key: requestBody.risk_profile_key method: generated generated: '2026-09-24' - target: $.paths['/signal/decision/report'].post update: x-apievangelist-phrasing: intent: Report whether you initiated a scored ACH effect: write questions: - After a Signal score, how do I report whether I went ahead with the payment? - Should I report my decision if I use Plaid Transfer? instructions: - text: 'Report decision for transaction {client_transaction_id}: initiated {initiated}.' slots: client_transaction_id: requestBody.client_transaction_id initiated: requestBody.initiated - text: Tell Signal I initiated {client_transaction_id} ({initiated}) with outcome {decision_outcome}. slots: client_transaction_id: requestBody.client_transaction_id initiated: requestBody.initiated decision_outcome: requestBody.decision_outcome method: generated generated: '2026-09-24' - target: $.paths['/signal/return/report'].post update: x-apievangelist-phrasing: intent: Report an ACH return to Signal effect: write questions: - How do I tell Plaid a payment I scored with Signal was returned? - Which return code do I send when reporting an ACH return? instructions: - text: Report return code {return_code} for transaction {client_transaction_id}. slots: return_code: requestBody.return_code client_transaction_id: requestBody.client_transaction_id - text: Log that ACH {client_transaction_id} came back as {return_code} on {returned_at}. slots: client_transaction_id: requestBody.client_transaction_id return_code: requestBody.return_code returned_at: requestBody.returned_at method: generated generated: '2026-09-24' - target: $.paths['/signal/prepare'].post update: x-apievangelist-phrasing: intent: Opt an Item into Signal effect: write questions: - How do I start Signal data collection on an Item that wasn't linked with Signal? - Is it harmful to prepare an Item that already has Signal? instructions: - text: Prepare item {access_token} for Signal. slots: access_token: requestBody.access_token - text: Opt linked item {access_token} into Signal scoring. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/wallet/create'].post update: x-apievangelist-phrasing: intent: Create an e-wallet effect: write questions: - How do I open a virtual e-wallet for payouts? - Which currency does a new e-wallet hold? instructions: - text: Create an e-wallet in {iso_currency_code}. slots: iso_currency_code: requestBody.iso_currency_code - text: Open a new {iso_currency_code} virtual account wallet. slots: iso_currency_code: requestBody.iso_currency_code method: generated generated: '2026-09-24' - target: $.paths['/wallet/get'].post update: x-apievangelist-phrasing: intent: Get an e-wallet and its balance effect: read questions: - What's the current balance of my e-wallet? - How do I look up one e-wallet's details? instructions: - text: Get e-wallet {wallet_id}. slots: wallet_id: requestBody.wallet_id - text: Show the balance of wallet {wallet_id}. slots: wallet_id: requestBody.wallet_id method: generated generated: '2026-09-24' - target: $.paths['/wallet/list'].post update: x-apievangelist-phrasing: intent: List e-wallets effect: read questions: - Which e-wallets do I have? - Can I list only e-wallets in one currency? instructions: - text: List my e-wallets. - text: List {iso_currency_code} e-wallets, {count} per page. slots: iso_currency_code: requestBody.iso_currency_code count: requestBody.count method: generated generated: '2026-09-24' - target: $.paths['/wallet/transaction/execute'].post update: x-apievangelist-phrasing: intent: Pay out from an e-wallet effect: write questions: - How do I send money from my e-wallet to a counterparty? - How do I avoid sending a duplicate e-wallet payout? instructions: - text: Pay {amount} from wallet {wallet_id} to {counterparty}, reference {reference}, key {idempotency_key}. slots: amount: requestBody.amount wallet_id: requestBody.wallet_id counterparty: requestBody.counterparty reference: requestBody.reference idempotency_key: requestBody.idempotency_key - text: Debit e-wallet {wallet_id} by {amount} to credit {counterparty} with reference {reference} and idempotency key {idempotency_key}. slots: wallet_id: requestBody.wallet_id amount: requestBody.amount counterparty: requestBody.counterparty reference: requestBody.reference idempotency_key: requestBody.idempotency_key method: generated generated: '2026-09-24' - target: $.paths['/wallet/transaction/get'].post update: x-apievangelist-phrasing: intent: Get an e-wallet transaction effect: read questions: - How do I check the status of a single e-wallet payout? - What details are on an e-wallet transaction? instructions: - text: Get e-wallet transaction {transaction_id}. slots: transaction_id: requestBody.transaction_id - text: Show the status of wallet payment {transaction_id}. slots: transaction_id: requestBody.transaction_id method: generated generated: '2026-09-24' - target: $.paths['/wallet/transaction/list'].post update: x-apievangelist-phrasing: intent: List an e-wallet's transactions effect: read questions: - How do I see recent transactions in one of my e-wallets? - In what order are e-wallet transactions returned? instructions: - text: List transactions for wallet {wallet_id}. slots: wallet_id: requestBody.wallet_id - text: Show the latest {count} payments in e-wallet {wallet_id}. slots: count: requestBody.count wallet_id: requestBody.wallet_id method: generated generated: '2026-09-24' - target: $.paths['/beta/transactions/v1/enhance'].post update: x-apievangelist-phrasing: intent: Enhance raw transactions (beta) effect: read questions: - Is there a beta endpoint to enhance transaction data I send directly? - What does the beta transaction enhance product add? instructions: - text: Enhance {account_type} transactions {transactions} with the beta endpoint. slots: account_type: requestBody.account_type transactions: requestBody.transactions - text: Run the beta enhancer over raw {account_type} records {transactions}. slots: account_type: requestBody.account_type transactions: requestBody.transactions method: generated generated: '2026-09-24' - target: $.paths['/beta/transactions/rules/v1/create'].post update: x-apievangelist-phrasing: intent: Create a transaction category rule effect: write questions: - Can I make certain transactions always land in a category I choose? - Where do my custom categorization rules take effect? instructions: - text: Create a rule on {access_token} categorizing {rule_details} as {personal_finance_category}. slots: access_token: requestBody.access_token rule_details: requestBody.rule_details personal_finance_category: requestBody.personal_finance_category - text: Always file transactions matching {rule_details} under {personal_finance_category} for item {access_token}. slots: rule_details: requestBody.rule_details personal_finance_category: requestBody.personal_finance_category access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/beta/transactions/rules/v1/list'].post update: x-apievangelist-phrasing: intent: List transaction category rules effect: read questions: - Which categorization rules have I set up for an Item? - How do I review custom transaction rules? instructions: - text: List transaction rules for {access_token}. slots: access_token: requestBody.access_token - text: Show the custom category rules on item {access_token}. slots: access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/beta/transactions/rules/v1/remove'].post update: x-apievangelist-phrasing: intent: Remove a transaction category rule effect: destructive questions: - How do I delete a categorization rule I no longer want? - Can I remove one transaction rule without affecting others? instructions: - text: Remove rule {rule_id} from {access_token}. slots: rule_id: requestBody.rule_id access_token: requestBody.access_token - text: Delete category rule {rule_id} on item {access_token}. slots: rule_id: requestBody.rule_id access_token: requestBody.access_token method: generated generated: '2026-09-24' - target: $.paths['/beta/transactions/user_insights/v1/get'].post update: x-apievangelist-phrasing: intent: Get user insights from enriched transactions effect: read questions: - Can I get spending insights about a user from transactions I enriched? - What do I need to have done before requesting transaction user insights? instructions: - text: Get transaction insights for user {client_user_id}. slots: client_user_id: requestBody.client_user_id - text: Show beta user insights built from enriched data for {client_user_id}. slots: client_user_id: requestBody.client_user_id method: generated generated: '2026-09-24' - target: $.paths['/payment_profile/create'].post update: x-apievangelist-phrasing: intent: Create a payment profile effect: write questions: - How do I create a payment profile before linking a user's account for transfers? - What do I do with a payment profile token after creating it? instructions: - text: Create a payment profile. - text: Make a new payment profile token for a returning Transfer user. method: generated generated: '2026-09-24' - target: $.paths['/payment_profile/get'].post update: x-apievangelist-phrasing: intent: Get a payment profile's status effect: read questions: - Is a payment profile ready to use for transfers? - How do I check the status of a payment profile? instructions: - text: Get payment profile {payment_profile_token}. slots: payment_profile_token: requestBody.payment_profile_token - text: Check whether profile {payment_profile_token} is ready for transfers. slots: payment_profile_token: requestBody.payment_profile_token method: generated generated: '2026-09-24' - target: $.paths['/payment_profile/remove'].post update: x-apievangelist-phrasing: intent: Remove a payment profile effect: destructive questions: - How do I delete a payment profile so it can't be used anymore? - Can a removed payment profile still create transfers? instructions: - text: Remove payment profile {payment_profile_token}. slots: payment_profile_token: requestBody.payment_profile_token - text: Retire profile {payment_profile_token} so no more transfers can use it. slots: payment_profile_token: requestBody.payment_profile_token method: generated generated: '2026-09-24' - target: $.paths['/partner/customer/create'].post update: x-apievangelist-phrasing: intent: Create an end customer as a reseller effect: write questions: - As a Plaid reseller, how do I onboard a new end customer? - What business details are required to create an end customer? instructions: - text: Create end customer {company_name}, legal entity {legal_entity_name}, website {website}, app {application_name}, address {address}. slots: company_name: requestBody.company_name legal_entity_name: requestBody.legal_entity_name website: requestBody.website application_name: requestBody.application_name address: requestBody.address - text: Onboard reseller client {company_name}, diligence attested {is_diligence_attested}, bank addendum done {is_bank_addendum_completed}. slots: company_name: requestBody.company_name is_diligence_attested: requestBody.is_diligence_attested is_bank_addendum_completed: requestBody.is_bank_addendum_completed - text: Set up end customer {company_name} with app {application_name} for products {products}. slots: company_name: requestBody.company_name application_name: requestBody.application_name products: requestBody.products method: generated generated: '2026-09-24' - target: $.paths['/partner/customer/get'].post update: x-apievangelist-phrasing: intent: Get a reseller's end customer effect: read questions: - As a reseller, how do I look up one of my end customers? - What status does an end customer have? instructions: - text: Get end customer {end_customer_client_id}. slots: end_customer_client_id: requestBody.end_customer_client_id - text: Show details for reseller client {end_customer_client_id}. slots: end_customer_client_id: requestBody.end_customer_client_id method: generated generated: '2026-09-24' - target: $.paths['/partner/customer/enable'].post update: x-apievangelist-phrasing: intent: Enable an end customer in Production effect: write questions: - How do I move a reseller end customer into Production? - When can I turn on Production access for an end customer? instructions: - text: Enable end customer {end_customer_client_id} in Production. slots: end_customer_client_id: requestBody.end_customer_client_id - text: Turn on live API access for reseller client {end_customer_client_id}. slots: end_customer_client_id: requestBody.end_customer_client_id method: generated generated: '2026-09-24' - target: $.paths['/partner/customer/remove'].post update: x-apievangelist-phrasing: intent: Remove a reseller's end customer effect: destructive questions: - How do I remove an end customer and deactivate its API keys? - Can I remove an end customer that's already in Production? instructions: - text: Remove end customer {end_customer_client_id}. slots: end_customer_client_id: requestBody.end_customer_client_id - text: Deactivate reseller client {end_customer_client_id} and its keys. slots: end_customer_client_id: requestBody.end_customer_client_id method: generated generated: '2026-09-24' - target: $.paths['/partner/customer/oauth_institutions/get'].post update: x-apievangelist-phrasing: intent: Get an end customer's OAuth bank registrations effect: read questions: - Which OAuth banks is my reseller end customer registered with? - How do I track an end customer's OAuth institution registration status? instructions: - text: Get OAuth institution registrations for {end_customer_client_id}. slots: end_customer_client_id: requestBody.end_customer_client_id - text: Show OAuth bank enablement status for reseller client {end_customer_client_id}. slots: end_customer_client_id: requestBody.end_customer_client_id method: generated generated: '2026-09-24' - target: $.paths['/link_delivery/create'].post update: x-apievangelist-phrasing: intent: Create a Hosted Link session effect: write questions: - Can I send users a Plaid-hosted Link page instead of embedding Link? - What do I need to start a Hosted Link session? instructions: - text: Create a Hosted Link session for Link token {link_token}. slots: link_token: requestBody.link_token - text: Deliver a hosted Link URL built from {link_token}. slots: link_token: requestBody.link_token method: generated generated: '2026-09-24' - target: $.paths['/link_delivery/get'].post update: x-apievangelist-phrasing: intent: Get a Hosted Link session's status effect: read questions: - Did the user finish the Hosted Link session I sent them? - How do I check the status of a Hosted Link delivery? instructions: - text: Get Hosted Link session {link_delivery_session_id}. slots: link_delivery_session_id: requestBody.link_delivery_session_id - text: Check whether hosted session {link_delivery_session_id} was completed. slots: link_delivery_session_id: requestBody.link_delivery_session_id method: generated generated: '2026-09-24' - target: $.paths['/fdx/notifications'].post update: x-apievangelist-phrasing: intent: Receive an FDX event notification effect: write questions: - How does a data provider send FDX event notifications to Plaid? - Which fields does an FDX notification require? instructions: - text: Send FDX notification {notificationId} of type {type} in category {category}, sent {sentOn}, payload {notificationPayload}. slots: notificationId: requestBody.notificationId type: requestBody.type category: requestBody.category sentOn: requestBody.sentOn notificationPayload: requestBody.notificationPayload - text: Deliver a {category} FDX event {type} with id {notificationId} at {sentOn} carrying {notificationPayload}. slots: category: requestBody.category type: requestBody.type notificationId: requestBody.notificationId sentOn: requestBody.sentOn notificationPayload: requestBody.notificationPayload method: generated generated: '2026-09-24'