Skip to content
pluginloom

Guide

Plaid WooCommerce Integration: A Clear Guide

How Plaid works with WooCommerce: Auth with Stripe or another processor, Plaid Transfer, Balance and Signal checks, refunds and block checkout support.

By the PluginLoom teamLast updated 13 sources

A Plaid WooCommerce integration lets shoppers connect their bank account through Plaid Link at checkout, so your store can take bank payments or verify the account before it ships. Plaid does not move money on its own unless you use Plaid Transfer; with Plaid Auth you also need a payment processor such as Stripe. This guide compares the two setups, shows the checkout flow step by step, and lists what your WooCommerce store needs.

How does Plaid work with WooCommerce?#

Plaid connects the shopper's bank account to your store, and a payment rail then moves the money. There are two main ways to set this up, and the choice decides who sends the ACH debit.

SetupWho moves the moneyWhere it worksApproval needed
Auth + processor partnerYour processor, such as Stripe, Dwolla or AdyenUS, plus Canada through VoPay, Modern Treasury or Finix (partners page (opens in a new tab))Plaid Production access, plus your processor's own approval
Auth + your own processorAny processor that accepts account and routing numbersDepends on the processorPlaid Production access
Plaid TransferPlaidUS only (Transfer docs (opens in a new tab))An approved Transfer Application

Plaid's Auth docs (opens in a new tab) say Auth returns a checking, savings or cash management account and routing number, and that it "must be used with a payment processor, either a Plaid partner or a third party." Auth does not support credit card accounts.

What does the checkout flow look like with Auth and Stripe?#

The shopper picks bank payment, links an account in Plaid Link, and your server turns that account into a Stripe payment method. Plaid's Stripe integration page (opens in a new tab) gives the steps:

  1. Enable ACH in Stripe. In the Stripe Dashboard, confirm ACH Direct Debit is turned on under payment method settings.
  2. Connect Stripe in Plaid. In the Plaid Dashboard Integrations section, click Connect for Stripe. Plaid says this "is required so that Plaid can facilitate the creation of Stripe bank account tokens on your behalf."
  3. Fill in your Plaid profiles. Complete the application and company profiles so shoppers see who is asking for access.
  4. Create a link_token with products: ["auth"] and your country codes.
  5. Open Link at checkout. Plaid recommends Account Select set to "Single select" so one account comes back.
  6. Exchange the token. Your server calls /item/public_token/exchange to get an access_token.
  7. Create the Stripe token. Call /processor/stripe/bank_account_token/create with the access_token and account_id. The response holds a stripe_bank_account_token that starts with btok_.
  8. Use it once. Plaid says the Stripe bank account token "is a one-time use token," so create a Stripe customer from it to keep the bank details.

Two notes from the same page are easy to miss. To use Plaid with Stripe's Payment Intents API, "you will need to be manually enabled by Stripe." And for testing, Plaid Sandbox is not compatible with Stripe Sandboxes, so use Stripe test mode; Sandbox tokens always map to the Stripe test bank account 000123456789 with routing number 110000000.

What does the flow look like with Plaid Transfer?#

With Transfer, Plaid authorizes and sends the ACH debit itself, so you do not need a separate processor. The Transfer docs (opens in a new tab) list four steps:

  1. Start a Link session so the shopper links a bank account.
  2. Authorize and create the transfer.
  3. Optionally, monitor the transfer for status updates.
  4. Optionally, use Signal Transaction Scores and custom authorization rules.

Transfer supports ACH, RTP, RfP, wire and FedNow, with Same Day ACH as a fallback. It serves payers and recipients in the US only. Plaid also lists refunds, recurring transfers and Transfer UI as add-on features, and can sweep funds into your business account with a reconciliation report. You must complete the Transfer Application and be approved before going live, but you can build in Sandbox while you wait.

How should a store handle ACH risk at checkout?#

Check risk before you debit, because ACH payments can fail or be returned days after the order. Plaid offers two tools for this under its Signal family (Signal docs (opens in a new tab), Balance docs (opens in a new tab)).

ToolWhat it returnsSpeed noted by PlaidBilling model
Balance via /signal/evaluateCurrent and available balance plus a recommended action from your Signal RulesPlaid gives /accounts/balance/get a p50 near 3 seconds and a p95 near 11 secondsPer request
Signal Transaction ScoresA score for the chance the debit is returnedp95 under 2 secondsPer request
/accounts/get cached balanceCached balance onlyFast, freeFree, but Plaid calls it unsuitable when you need real-time data

Plaid says a higher Signal score "indicates a greater likelihood that the transaction will result in an ACH return," and that you turn scores into actions through a ruleset in the Dashboard. Signal scores cover US ACH only, both standard and Same Day.

For new integrations, Plaid says to include signal and auth in the products array and leave out balance when you plan to use /signal/evaluate.

Plaid also recommends pairing Auth with Identity to confirm the shopper owns the account. See our guide on bank account verification for WordPress for that step.

This guide is general information, not legal or financial advice.

When should a WooCommerce order be marked paid?#

Mark the order paid only when your payment rail confirms success, not when Link finishes. Bank debits are "delayed notification" payments. Stripe says ACH Direct Debit can take up to 4 business days to confirm success or failure (Stripe ACH docs (opens in a new tab)).

A safe order status plan:

EventSuggested WooCommerce status
Shopper links a bank and submits the orderOn hold, awaiting payment confirmation
Processor or Plaid confirms the paymentProcessing
Payment fails or is returnedFailed, and notify the shopper
You refund the paymentRefunded

In WooCommerce's Payment Gateway API (opens in a new tab), the gateway's process_payment() method updates the order and returns a result and redirect URL. Later updates from the provider arrive through a WC-API callback URL handled by woocommerce_api_{gateway_id}. For Plaid Transfer, those updates come from Plaid webhooks; for Stripe, from Stripe webhooks.

How do refunds work for Plaid bank payments?#

Refunds go back through whichever rail took the payment. The limits differ:

RailRefund windowPartial refundsSource
Stripe ACH Direct Debit180 daysNo, full refunds onlyStripe ACH docs (opens in a new tab)
Plaid Transfer180 days after the transfer was createdYes, up to 10 refunds per transfer, total not above the originalTransfer refunds (opens in a new tab)

Stripe says ACH refunds take up to 3 business days, cannot be canceled, and arrive as a separate credit rather than a reversal, so tell the shopper to expect it. Stripe also warns that a refund does not stop a dispute, so confirm with the shopper to avoid a double credit. With Plaid Transfer, a refund can only be canceled before it is sent to the ACH network, and transfers that are canceled, failed or returned cannot be refunded.

Will it work with the WooCommerce Checkout block?#

It will if the payment method is built for the block. WooCommerce's block integration guide (opens in a new tab) says a gateway must register on the client with registerPaymentMethod and on the server with a class extending AbstractPaymentMethodType, registered through PaymentMethodRegistry. A gateway built only for the classic shortcode checkout will not appear in the Checkout block.

Ask any Plaid plugin vendor which checkout types they support, and test both if your store has used each.

What does your WooCommerce store need?#

Your server must meet WooCommerce's current requirements and Plaid's HTTPS rules. WooCommerce lists these for version 10.8 and later (server requirements (opens in a new tab)):

  • PHP 8.3 or greater (tested up to PHP 8.4)
  • WordPress 6.9 or greater
  • MySQL 8.0 or greater, or MariaDB 10.6 or greater
  • HTTPS support
  • A WordPress memory limit of 256 MB or greater

From Plaid you need:

  1. A Plaid Dashboard account with your client_id and environment secrets.
  2. An HTTPS redirect URI on the allowed list for OAuth banks.
  3. A public HTTPS webhook URL.
  4. Production access, and Transfer approval if you use Transfer.
  5. A processor account if you use Auth with a partner.

What will Plaid charge a WooCommerce store?#

Plaid bills you directly, and its public pricing page lists plans but no prices. Its billing docs (opens in a new tab) describe the models that matter for checkout:

  • Auth: one-time fee per Item, no matter how many API calls are made for it.
  • Balance and Signal Transaction Scores: flat fee per successful request.
  • Transfer: a one-time Auth fee per Item, a per-request Signal or Balance fee, and a fee per successful transfer, even if it is later reversed.
  • Sandbox: always free.

Your processor charges its own fees too. As listed on October 23, 2026, Stripe's pricing page shows ACH Direct Debit at 0.8% with a $5.00 cap. Our Plaid pricing guide goes deeper.

How do you add Plaid to WooCommerce with BankBridge?#

BankBridge is a WordPress plugin that connects your site to Plaid, built to work with WordPress, WooCommerce, Elementor, MemberPress and more. You connect your own Plaid account and keys, and Plaid bills you for its usage. For the WooCommerce setup, read the BankBridge WooCommerce docs after Getting started, and test everything in Sandbox first. Licenses include a year of updates and support, with a 14-day refund window and secure checkout by Stripe.

Sources#

Checked October 23, 2026.

Plaid is a trademark of Plaid Inc. BankBridge is an independent plugin and is not affiliated with or endorsed by Plaid.

Frequently asked questions

Does Plaid process WooCommerce payments by itself?

Only through Plaid Transfer, which is US only and needs an approved Transfer Application. Plaid Auth on its own does not move money. Plaid says Auth must be used with a payment processor, either a Plaid partner or a third party.

Can I use Plaid with Stripe in WooCommerce?

Yes, Stripe is a Plaid processor partner. Plaid creates a one-time Stripe bank account token (btok_) from the linked account. Plaid's docs note that using it with the Payment Intents API requires manual enablement by Stripe.

How long do ACH refunds take?

It depends on the processor. Stripe says ACH Direct Debit refunds take up to 3 business days and can be submitted up to 180 days after the payment. Plaid Transfer refunds can be issued up to 180 days after the transfer was created.

Should I check the balance before every ACH order?

Plaid recommends risk checks before ACH debits. It suggests /signal/evaluate, which can return balance data and a recommended action based on your Signal Rules.

Will a Plaid payment method show in the WooCommerce Checkout block?

Only if the gateway supports it. WooCommerce says a gateway must register on the client with registerPaymentMethod and on the server with a class extending AbstractPaymentMethodType.

Sources

The date shows when we last checked that the source still says what we say it says.

  1. Plaid Docs: Auth, plaid.com. Checked 2026-10-23
  2. Plaid Docs: Auth payment partners, plaid.com. Checked 2026-10-23
  3. Plaid Docs: Stripe partner integration, plaid.com. Checked 2026-10-23
  4. Plaid Docs: Transfer, plaid.com. Checked 2026-10-23
  5. Plaid Docs: Transfer refunds, plaid.com. Checked 2026-10-23
  6. Plaid Docs: Balance, plaid.com. Checked 2026-10-23
  7. Plaid Docs: Signal, plaid.com. Checked 2026-10-23
  8. Plaid Docs: Billing, plaid.com. Checked 2026-10-23
  9. WooCommerce: Payment Gateway API, developer.woocommerce.com. Checked 2026-10-23
  10. WooCommerce: Checkout block payment method integration, developer.woocommerce.com. Checked 2026-10-23
  11. WooCommerce: server requirements, woocommerce.com. Checked 2026-10-23
  12. Stripe Docs: ACH Direct Debit, docs.stripe.com. Checked 2026-10-23
  13. Stripe pricing, stripe.com. Checked 2026-10-23