Skip to main content

Overview

Plaid is a financial API platform that enables secure connections to bank accounts and financial institutions. With Plaid integrated into the system, you can accept payments directly from customer bank accounts via Plaid’s ACH (Automated Clearing House) network and other payment rails. Plaid’s robust identity verification and bank linkage capabilities make it ideal for merchants looking to offer bank account transfers as a payment method while maintaining high security and fraud prevention standards.

Sign-up

To set up Plaid, you’ll need to create a Plaid account:
  1. Visit the Plaid Dashboard and sign up for an account
  2. Complete the onboarding process and verify your business information
  3. Once approved, you’ll have access to your API credentials in the Plaid dashboard
  4. For testing, Plaid provides a sandbox environment where you can test transactions without using real bank credentials

Credentials

When setting up Plaid in the dashboard, you’ll need to configure the following credentials obtained from your Plaid account:
  • Client ID - A unique identifier for your Plaid app. You can find this in the Plaid Dashboard under Dashboard -> Keys -> Client ID. This credential is used to identify your app when making requests to Plaid’s API.
  • Secret - A confidential credential used to authenticate API requests from your backend to Plaid. You can find this in the Plaid Dashboard under Dashboard -> Keys -> Secret. This secret should be treated like a password and never exposed in client-side code. The system securely stores this on your behalf.
Please note that Plaid provides separate sandbox (for testing) and production (for live transactions) credentials. Ensure you’re using the correct set for each environment.

Supported connectors

Once you’ve linked a customer’s bank account through Plaid Link, you need to configure a bank payment connector to process the actual ACH transactions. The system currently supports the following connectors for processing Plaid-linked bank payments:
  • Plaid (Transfer) - Process payments directly through Plaid’s Transfer API
  • Adyen - Process ACH payments through the Adyen bank connector
You’ll need to set up at least one of these connectors in the dashboard to complete transactions after a customer has successfully linked their bank account.

Settings

Plaid offers several feature toggles that allow you to control which verification and validation services are used during payment processing. These settings determine what products are included when merchants generate Link tokens, and how the system handles transactions. One-time verification (initial transaction only):
  • Run Identity if required
    • Link token: Adds identity to the Plaid Link token products when enabled.
    • Processing: Performed on the initial transaction. If the customer provided their account ID and account holder name, identity fetching is skipped. If that information is missing, the system checks if the item has access to use identity. If yes, identity data is fetched from Plaid. If identity is not available for the item and buyer details were not provided, the transaction fails.
  • Run Identity Match if available
    • Link token: Adds identity_match to the Plaid Link token products when enabled.
    • Processing: Performed on the initial transaction. If the item has access to identity_match and buyer details were provided in the transaction, the system verifies the provided buyer information (including name, billing details, IP address, and user agent) against the identity data on file and declines if there’s a mismatch. If identity_match is not enabled for the item, processing continues (this indicates the merchant intentionally made identity matching optional when requesting a Link token).
Per-transaction verification (all transactions including recurring):
  • Run Signal if available
    • Link token: Adds signal (fraud detection) to the Plaid Link token products when enabled.
    • Processing: Performed on every transaction. At transaction time, if signal is available to the item, the system runs the fraud risk check and declines if it fails. Signal is evaluated independently for each transaction regardless of prior results, as the risk profile of each transaction is unique. If Signal is not available, processing continues (this indicates the merchant intentionally made Signal optional when requesting a Link token).
  • Run Balance Check if available
    • Processing: Performed on every transaction. At transaction time, if balance is available to be run on the item, the system verifies that the account has sufficient funds by multiplying the available balance by a risk multiplier (default: 1.5x) and checking if this amount is sufficient to cover the transaction. The transaction declines if the check fails. This multiplier can be adjusted per instance upon request. If balance is not enabled for the item or the merchant, processing continues (this indicates the merchant intentionally made balance checks optional when requesting a Link token).
  • Enable Transfer
    • When enabled, transfer is added to the Plaid Link token products, enabling customers to see the Transfer UI flow where they confirm the payment amount within Plaid Link. When turned off, the Transfer UI is not shown, though the Transfer API may still be accessible in your backend if: (1) your Plaid account has Transfer enabled, (2) the linked account type is compatible (checking/savings), (3) the financial institution supports Plaid Transfer, and (4) for OAuth banks, the user granted appropriate payment permissions during authentication. If any of these conditions aren’t met, you’ll need to use a different bank connector.
    • Signal and balance checks: When using Plaid Transfer as your payment connector, running Signal and Balance Check may be redundant. These verification checks are typically executed as part of the Plaid Transfer transaction call itself. This setting is particularly useful when you’re using a different processor (such as Adyen) to handle the actual bank payment processing, where Plaid is primarily used for account linkage and initial verification.
Understanding Plaid Products: the products array controls the Link UI and what data is pre-fetched, but doesn’t strictly prevent API access to other products. You may be able to use API endpoints for products not included in the Link token, depending on account compatibility, institution support, and your Plaid account permissions.

Customize enabled products

You maintain full control over these settings. When creating a Plaid session via the API, you can pass custom products, additional_consented_products, optional_products, and other Plaid Link parameters. These API values override the dashboard settings, giving you flexibility to adjust features on a per-transaction basis.

Next steps

Once you’ve configured your Plaid connection, you’re ready to integrate payments into your app:
  • Integration - Learn how to process a payment with Plaid, including creating Link tokens, rendering Plaid Link, and creating transactions.
  • Recurring Payments - Learn how to vault payment methods and process recurring charges without collecting a new Plaid Link token.
  • Signal setup - Configure Plaid Signal rulesets and the ruleset-key used for evaluation.

Testing

Plaid provides a comprehensive Sandbox environment for testing your integration without using real bank credentials or processing live transactions. Use your Plaid Sandbox Client ID and Secret in the dashboard, then test the integration flow using Plaid’s test credentials. For detailed information on test credentials, specialized testing scenarios, and sandbox capabilities, see the Plaid Sandbox documentation.

Limitations

Transaction settlement reporting varies depending on the bank payment connector used to process the payment (for example, Plaid Transfer or Adyen). Each connector has its own settlement schedule and processing times. Partial refunds are not supported for unsettled transactions. If you need to refund a Plaid transaction before it has settled, you must refund the full transaction amount. Once a transaction has settled, partial refunds become available and can be processed as needed.