You can accept crypto on a WooCommerce store without a plugin by renaming WooCommerce's Direct Bank Transfer method and sending the customer a Crypto Merchant invoice for each order. The order waits as On hold until the invoice is paid, and then you move it on yourself. It needs no code, but it is not an automatic checkout: the customer pays in a second step, and someone has to handle each order. Crypto Merchant charges 1% of each paid invoice, with no monthly fee.
Last checked: 6 November 2026. We wrote this from WooCommerce's documents and haven't run it on a live store, so place a test order first. If you want crypto inside an automatic checkout, you need a gateway with a WooCommerce plugin; see the alternatives we compare.
Is there a Crypto Merchant plugin for WooCommerce?
No. Crypto Merchant has no WooCommerce plugin, and nothing in this guide changes that. It uses two things that already exist: WooCommerce's Direct Bank Transfer offline method, and Crypto Merchant invoices and payment links. Your wallet keys never go on your web server, because nothing is installed there.
How does the offline method work?
| Step | Where | What happens |
|---|---|---|
| 1 | WooCommerce | The customer chooses your renamed method and places the order |
| 2 | WooCommerce | The order is On hold, and stock is reduced |
| 3 | Crypto Merchant | You create an invoice for the order total and send the customer its link |
| 4 | Crypto Merchant | The customer picks a coin and network and pays the exact amount shown |
| 5 | Crypto Merchant | The invoice becomes paid once the payment is confirmed, and the amount is credited to your balance minus the fee |
| 6 | WooCommerce | You change the order status and fulfil it |
How do I set it up in WooCommerce?
- 1Go to WooCommerce > Settings > Payments > Take offline payments. Enable Direct Bank Transfer, then open Manage.
- 2Set the Title, which customers see at checkout, for example Crypto (USDT, USDC, BTC and more).
- 3Use the Description and Instructions to say what happens next. For example: "We'll email you a secure payment link within one business day. Your order ships after the payment is confirmed. Don't send crypto to any address that isn't on that link."
- 4Add no bank accounts. WooCommerce shows account details to customers on the Order Received page and in order emails, and this method doesn't need any.
- 5In Crypto Merchant, choose the coins you accept, and set your underpayment tolerance. We recommend at least $1.
- 6Set your invoice time limit. Invoices stay open for 30 minutes by default, and you can set 15 minutes to 24 hours. A customer reading an email may not pay straight away, so a longer limit suits this setup.
- 7Place a test order. Read the checkout, the Order Received page and the order email as a customer would, and make sure nothing still talks about a bank.
What do I do for each order?
- 1In the portal, create a new payment for the order total. Put the WooCommerce order number in the order ID field, and add the customer's email. The order number is how you match the two later.
- 2Copy the invoice link and send it to the customer.
- 3Wait for the invoice to show
paid. You get an email for each payment, and the portal shows its status. - 4In WooCommerce, change the order to Processing, and to Completed once it's fulfilled. WooCommerce says that offline payments need you to confirm the payment yourself before you change the status.
What happens to stock while an order waits?
Stock is reduced as soon as the order is On hold, according to WooCommerce. Its document describes a Hold Stock time limit for Pending payment orders, and gives no such limit for On hold. So don't count on unpaid orders releasing their stock on their own: decide how long you'll wait, state it in your instructions, and cancel the orders that go past it.
What if the customer pays late or sends the wrong amount?
- Short by no more than your tolerance: the invoice counts as paid. Move the order on.
- Short by more: the invoice becomes
underpaid. The customer can send the rest to the same address or get a refund of what they sent. Keep the order On hold. - Too much: the invoice counts as paid, and the extra is held for the customer, who withdraws it from the invoice page.
- Too late: an expired invoice's address is still watched for at least 24 hours, and a late payment can still count towards it. If nothing has been sent, create a new invoice rather than reopening the conversation about the old one.
If you need to give money back after a paid order, an Admin can create a refund link in the portal. Record it in WooCommerce yourself too, because the two systems don't talk to each other.
What are the limits of this setup?
- Two steps. The customer places the order first and pays afterwards, so some orders will never be paid.
- Manual work. Someone has to create an invoice and change the order status. That is fine for a few orders a day and tiresome for hundreds.
- It uses up the method. If you also take real bank transfers, Direct Bank Transfer is already doing that job, so this setup doesn't suit your store as it stands.
- Digital products wait too. Nothing is delivered until you change the status. To deliver automatically, see how to deliver digital products after a crypto payment.
- WooCommerce's document describes this method for bank transfers and doesn't mention other uses, so we can't tell you that WooCommerce approves of this one. Your payment and legal obligations are still yours to check.
What does it cost?
Crypto Merchant charges 1% of each paid invoice, with no setup or monthly fee. Expired and cancelled invoices cost nothing.
The customer also pays a gas fee for moving their payment, shown next to the price and never more than $5. On most networks it is a few cents; USDT on Tron costs more. Tell customers about it in your instructions, because the amount they send can be a little more than the WooCommerce order total.
Moving coins later (sweeps and payouts) carries a gas fee too, from your gas balance or from the coins being moved. See pricing for the full list.
Can I automate it?
Partly, with a developer. Your server can create each invoice through the Crypto Merchant API, with the WooCommerce order number as order_id, and listen for the signed invoice.paid webhook. WooCommerce's REST API reference has an "Update an Order" operation and webhooks of its own. We haven't published or tested a ready-made connector, so treat this as a small project and read the webhook retries and reconciliation guide first. The customer still pays in a second step unless your developer also changes the checkout.
More detail: online stores with Crypto Merchant, the same approach on Shopify and how checkout works. Crypto Merchant is custodial; see custodial vs non-custodial.