How to Accept Crypto Payments on WooCommerce (USDT Checkout)
WooCommerce has no crypto checkout out of the box. Here are the three ways to add one — payment links, a gateway plugin or a custom integration — how orders should move from pending to processing, and what to test before you go live.

To accept crypto payments on WooCommerce, you connect your store to a crypto payment gateway so that "Pay with crypto" appears at checkout. When a customer chooses it, the store creates an invoice at the gateway, sends the customer to a hosted payment page, and a signed webhook marks the order as paid once the transaction is confirmed on-chain.
WooCommerce does not include a crypto option out of the box, so the question is how you add it. This guide compares the three practical ways, explains how order statuses should behave and lists what to test before real customers pay.
Three ways to add crypto to WooCommerce
| Method | How it works | Best for |
|---|---|---|
| Payment links | You create an invoice in the gateway panel and send the link; you mark the order paid by hand | Low volume, custom orders, testing demand |
| Gateway plugin | A WooCommerce payment method that creates invoices and updates orders automatically | Most stores — fully automatic checkout |
| Custom integration | Your developer calls the gateway API from a small plugin or theme code | Stores with custom checkout flows or special rules |
How the automatic checkout flow works
- Customer chooses crypto — at checkout they pick "Pay with crypto (USDT)" and place the order.
- Store creates an invoice — WooCommerce sends the order total, currency and order ID to the gateway API.
- Redirect to the payment page — the customer sees the exact amount, a QR code, the network and a countdown.
- Customer pays — from any wallet or exchange; the amount is locked for the invoice lifetime.
- Webhook updates the order — after confirmation, a signed callback tells the store to move the order to Processing.
- Customer returns — they land on the order received page and get the usual WooCommerce email.
For the signature checks and retry logic behind step five, read our guide to crypto payment webhooks.
Order statuses: what should happen when
| Gateway event | WooCommerce status | What to do |
|---|---|---|
| Invoice created | Pending payment | Hold stock for the invoice lifetime |
| Transaction seen, waiting for confirmations | On hold (optional) | Do not ship yet |
| Confirmed | Processing | Fulfil the order |
| Underpaid | On hold | Let the customer pay the rest or contact them |
| Expired or cancelled | Cancelled | Release the stock |
Checkout details that matter
- Lead with USDT — stablecoins remove price risk for both sides; most customers who pay in crypto already hold USDT. See stablecoin payments for e-commerce.
- Name the network — "USDT (TRC20)" is clearer than "crypto"; fees differ a lot between networks.
- Explain the wait — a short note such as "confirmed in a few minutes" reduces abandoned payments.
- Keep the store currency — price in USD or EUR as usual; the gateway converts at checkout.
Test before you go live
- A small real payment — pay a low-value order yourself and watch it move to Processing.
- An expired invoice — let one run out and check that the order is cancelled and stock released.
- An underpayment — send slightly less and confirm the order stays on hold.
- Webhook security — a request with a wrong signature must not change any order.
WooCommerce with mistKET
mistKET gives you hosted USDT invoices, a REST API and signed webhooks. You do not need a developer: our team connects mistKET to your WordPress/WooCommerce store for free — we set up invoice creation, the redirect to the hosted payment page and the webhook that marks orders as paid, then run a test payment with you. We never ask for your store admin password. Prefer to build it yourself? Start with how to accept crypto payments on a website. Check fees, sign in at the merchant panel or apply on Telegram at @mistnetwork.


