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.
| Setup | Who moves the money | Where it works | Approval needed |
|---|---|---|---|
| Auth + processor partner | Your processor, such as Stripe, Dwolla or Adyen | US, 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 processor | Any processor that accepts account and routing numbers | Depends on the processor | Plaid Production access |
| Plaid Transfer | Plaid | US 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:
- Enable ACH in Stripe. In the Stripe Dashboard, confirm ACH Direct Debit is turned on under payment method settings.
- 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."
- Fill in your Plaid profiles. Complete the application and company profiles so shoppers see who is asking for access.
- Create a
link_tokenwithproducts: ["auth"]and your country codes. - Open Link at checkout. Plaid recommends Account Select set to "Single select" so one account comes back.
- Exchange the token. Your server calls
/item/public_token/exchangeto get anaccess_token. - Create the Stripe token. Call
/processor/stripe/bank_account_token/createwith theaccess_tokenandaccount_id. The response holds astripe_bank_account_tokenthat starts withbtok_. - 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:
- Start a Link session so the shopper links a bank account.
- Authorize and create the transfer.
- Optionally, monitor the transfer for status updates.
- 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)).
| Tool | What it returns | Speed noted by Plaid | Billing model |
|---|---|---|---|
Balance via /signal/evaluate | Current and available balance plus a recommended action from your Signal Rules | Plaid gives /accounts/balance/get a p50 near 3 seconds and a p95 near 11 seconds | Per request |
| Signal Transaction Scores | A score for the chance the debit is returned | p95 under 2 seconds | Per request |
/accounts/get cached balance | Cached balance only | Fast, free | Free, 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:
| Event | Suggested WooCommerce status |
|---|---|
| Shopper links a bank and submits the order | On hold, awaiting payment confirmation |
| Processor or Plaid confirms the payment | Processing |
| Payment fails or is returned | Failed, and notify the shopper |
| You refund the payment | Refunded |
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:
| Rail | Refund window | Partial refunds | Source |
|---|---|---|---|
| Stripe ACH Direct Debit | 180 days | No, full refunds only | Stripe ACH docs (opens in a new tab) |
| Plaid Transfer | 180 days after the transfer was created | Yes, up to 10 refunds per transfer, total not above the original | Transfer 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:
- A Plaid Dashboard account with your
client_idand environment secrets. - An HTTPS redirect URI on the allowed list for OAuth banks.
- A public HTTPS webhook URL.
- Production access, and Transfer approval if you use Transfer.
- 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 Docs: Auth (opens in a new tab)
- Plaid Docs: Auth payment partners (opens in a new tab)
- Plaid Docs: Stripe partner integration (opens in a new tab)
- Plaid Docs: Transfer (opens in a new tab)
- Plaid Docs: Transfer refunds (opens in a new tab)
- Plaid Docs: Balance (opens in a new tab)
- Plaid Docs: Signal (opens in a new tab)
- Plaid Docs: Billing (opens in a new tab)
- WooCommerce: Payment Gateway API (opens in a new tab)
- WooCommerce: Checkout block payment method integration (opens in a new tab)
- WooCommerce: server requirements (opens in a new tab)
- Stripe Docs: ACH Direct Debit (opens in a new tab)
- Stripe pricing (opens in a new tab)
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.
- Plaid Docs: Auth, plaid.com. Checked 2026-10-23
- Plaid Docs: Auth payment partners, plaid.com. Checked 2026-10-23
- Plaid Docs: Stripe partner integration, plaid.com. Checked 2026-10-23
- Plaid Docs: Transfer, plaid.com. Checked 2026-10-23
- Plaid Docs: Transfer refunds, plaid.com. Checked 2026-10-23
- Plaid Docs: Balance, plaid.com. Checked 2026-10-23
- Plaid Docs: Signal, plaid.com. Checked 2026-10-23
- Plaid Docs: Billing, plaid.com. Checked 2026-10-23
- WooCommerce: Payment Gateway API, developer.woocommerce.com. Checked 2026-10-23
- WooCommerce: Checkout block payment method integration, developer.woocommerce.com. Checked 2026-10-23
- WooCommerce: server requirements, woocommerce.com. Checked 2026-10-23
- Stripe Docs: ACH Direct Debit, docs.stripe.com. Checked 2026-10-23
- Stripe pricing, stripe.com. Checked 2026-10-23