How to Accept Bitcoin Payments on WooCommerce
WooCommerce has no native crypto support, and most Bitcoin plugins route the payment through a custodial processor that holds your coins until payout. The PayCryptoHost plugin does the opposite: it creates a hosted invoice for each order and derives a fresh receiving address from your own xPub, so the customer pays your wallet directly and WooCommerce just listens for the webhook.
- Integration method
- Plugin
- Time needed
- About 15 minutes
- Skill level
- Beginner
Before you start
- •A free PayCryptoHost account.
- •Your Bitcoin extended public key (xPub / zPub) from a wallet you control — Sparrow, Electrum, BlueWallet, Trezor or Ledger all export one.
- •Admin access to your store or billing panel.
- •WordPress 6.0+ with WooCommerce 8.0+ installed.
An extended public key only lets software watch addresses and derive new ones — it can never move funds. Never paste a private key or seed phrase anywhere, including here.
Step-by-step setup
- 1
Create your API key
In PayCryptoHost open Dashboard → API keys and generate a key. Copy it once — it is only shown at creation time.
- 2
Add your xPub
Go to Profile → Bitcoin settings and paste your extended public key. PayCryptoHost verifies it derives valid addresses before saving, and never asks for a private key or seed phrase.
- 3
Install the plugin
Download the PayCryptoHost plugin from your dashboard, then in WordPress go to Plugins → Add New → Upload Plugin, choose the zip and activate it.
- 4
Connect the plugin
Open WooCommerce → Settings → Payments → PayCryptoHost, paste the API key, and save. The plugin pings the API and shows a green connected state when the key is valid.
- 5
Set order status mapping
Choose what happens when a payment is detected and when it confirms. The default maps a detected payment to Processing and a confirmed payment to Completed, which is what most stores want.
- 6
Place a test order
Run a small real order (a few dollars of BTC) end to end. Watch the order flip to Processing when the transaction hits the mempool, then Completed on confirmation.
What you get
- •Customers pay in BTC, ETH or USDT and you keep custody of every payment.
- •Orders update automatically from webhooks — no manual reconciliation.
- •Prices stay in your store currency; the crypto rate is locked at checkout.
- •No monthly plugin fee and no rolling reserve on your revenue.
Troubleshooting
Orders stay in Pending after the customer pays
Your site is not receiving webhooks. Check that the store URL is publicly reachable over HTTPS and that a security plugin or firewall is not blocking POST requests to the WooCommerce API endpoint.
The gateway does not appear at checkout
WooCommerce hides gateways that fail their availability check. Confirm the API key is saved and that your account has a verified xPub — without one there is no address to derive.
Frequently asked questions
Does the WooCommerce Bitcoin plugin hold my funds?
No. Each order gets a unique address derived from your own xPub, so the payment goes from your customer straight to your wallet. PayCryptoHost never has a balance to withhold.
Can I accept USDT on WooCommerce too?
Yes. Enable the coins you want in your PayCryptoHost settings and the hosted invoice lets the customer choose at checkout.
What happens if a customer underpays?
The invoice records the shortfall and notifies you with both the USD and BTC amounts. You decide whether to release the order or request the difference.
Ready to take your first crypto payment?
Create an account, add your xPub, and send a test invoice — most merchants are live the same day.
Other platform guides
See all platform integrations, browse industry guides, or compare us against other gateways.