How to Accept Bitcoin on WooCommerce

WooCommerce is the most popular e-commerce platform in the world, powering over 30% of all online stores. If you're running a WooCommerce store and want to accept Bitcoin, BTCPay Server is the best way to do it — zero fees, non-custodial, and Lightning Network enabled.

This guide walks you through everything you need to know to start accepting Bitcoin on your WooCommerce store, from the basics to a fully working setup.

Why Accept Bitcoin on WooCommerce?

Every WooCommerce store owner knows the pain of payment processing fees. Stripe takes 2.9% + 30 cents per transaction. PayPal charges 3.49% + a fixed fee. If your store does $10,000 a month in sales, you're handing over $290 to $349 just for the privilege of getting paid. Scale that to $50,000/month and you're losing over $1,400 monthly — money that could go toward inventory, marketing, or your own pocket.

Bitcoin with BTCPay Server changes that equation entirely. There are no processing fees. Zero. The Bitcoin goes from your customer's wallet directly into yours. No intermediary takes a cut. Over a year, the savings alone can easily justify the small cost of running a BTCPay Server instance.

But cutting fees is just the start. Here's what else Bitcoin brings to your WooCommerce store:

  • No chargebacks — Bitcoin transactions are irreversible once confirmed. That means no more fraudulent disputes, no chargeback fees, and no lost merchandise from scam buyers. For merchants selling digital goods, high-value items, or anything in chargeback-prone categories, this alone is a game-changer.
  • Global reach without borders — a customer in Nigeria, Brazil, or Vietnam can pay you just as easily as someone down the street. No currency conversion, no bank approvals, no waiting days for international wire transfers to clear. Bitcoin doesn't care about borders.
  • Non-custodial payments — when you use BTCPay Server, payments go directly to your wallet. No company holds your funds. No one can freeze your account or delay your withdrawals. You're in complete control.
  • Lightning Network support — Lightning payments confirm in seconds (not the 10-60 minutes for on-chain Bitcoin) and cost your customers fractions of a cent in network fees. It's the closest thing to instant, free payments that exists.
  • Censorship resistance — if you sell legal products that traditional payment processors don't like — firearms accessories, CBD products, adult content, controversial political merchandise — Bitcoin can't be shut off by a bank's compliance department. Your payment method is as unstoppable as the network itself.

There's also a growing community of Bitcoin holders who actively seek out merchants that accept it. Adding Bitcoin as a payment option can tap into a customer base that's loyal, vocal, and willing to spend. Many Bitcoin users prefer buying from stores that accept it directly over converting to fiat first.

What You'll Need

Before you start, make sure you have:

  1. A working WooCommerce store (WordPress + WooCommerce plugin installed)
  2. A Bitcoin wallet — hardware wallet recommended (Ledger, Trezor, ColdCard)
  3. A BTCPay Server instance — this is the payment processor (more on this below)
  4. Admin access to your WordPress site

Option 1: Self-Host BTCPay Server

If you have server administration experience, you can self-host BTCPay Server. This requires:

  • A VPS with at least 2GB RAM (LunaNode, Digital Ocean, or similar)
  • Docker and Docker Compose installed
  • A domain name with DNS pointed to your server
  • SSL certificate configuration
  • Ongoing maintenance: updates, backups, Lightning channel management

The official BTCPay Server documentation at docs.btcpayserver.org covers the full self-hosting process. Expect to spend 2-4 hours on initial setup if you're comfortable with Linux servers.

Option 2: Use a Managed Service (Recommended)

If you don't want to manage servers, a managed BTCPay hosting service handles all the infrastructure for you. You get the same non-custodial, zero-fee experience without the DevOps work.

Wootoshi provides managed BTCPay Server hosting specifically designed for WooCommerce store owners. We handle the server setup, SSL, Lightning Network, wallet connection, and WooCommerce plugin integration — typically within 48 hours.

Step-by-Step: Connecting BTCPay to WooCommerce

Once you have a BTCPay Server instance running (either self-hosted or managed), here's how to connect it to your WooCommerce store:

Step 1: Create a BTCPay Store

Log into your BTCPay Server dashboard and create a new store. Give it a name that matches your WooCommerce store. Connect your Bitcoin wallet by providing your wallet's extended public key (xpub) — this allows BTCPay to generate unique payment addresses without ever having access to your private keys.

Step 2: Install the WooCommerce Plugin

In your WordPress admin panel, go to Plugins → Add New and search for "BTCPay for WooCommerce V2". Install and activate the plugin.

Step 3: Generate API Credentials

In your BTCPay Server dashboard, go to Account → Manage Account → API Keys. Generate a new API key with the necessary permissions for WooCommerce integration.

Step 4: Configure the Plugin

In your WordPress admin, go to WooCommerce → Settings → Payments. Find "BTCPay Server" and enter your BTCPay Server URL and API key. Test the connection to make sure everything works.

Step 5: Test a Payment

Place a test order on your store and select Bitcoin as the payment method. You should see a BTCPay checkout page with a Bitcoin address and QR code. Send a small amount to verify the payment flow works end-to-end.

If you have Lightning enabled, test a Lightning payment too. The checkout page should show both an on-chain Bitcoin address and a Lightning invoice. Verify that the order status in WooCommerce updates automatically after payment — that confirms your API connection and webhooks are working correctly.

Self-Hosting vs Managed BTCPay Hosting

At this point you have two paths for running BTCPay Server, and the right choice depends on your technical comfort level and how you want to spend your time.

Self-hosting means running BTCPay Server on your own VPS. The server costs are modest — typically $10-20/month for a VPS from a provider like LunaNode, Digital Ocean, or Hetzner. But you're responsible for everything: initial Docker setup, domain and SSL configuration, keeping the software updated, monitoring your Lightning node, managing channel liquidity, and fixing things when they break. If you're a developer or sysadmin who enjoys this kind of work, self-hosting gives you maximum control and the satisfaction of running your own infrastructure. Our LunaNode setup guide walks through the entire process step by step.

Managed hosting gives you the exact same non-custodial BTCPay setup — you still hold your own keys, you still pay zero processing fees — but someone else keeps the server running, handles updates, manages SSL certificates, and ensures uptime. You don't need to SSH into a server or troubleshoot Docker containers at midnight.

For most WooCommerce store owners, managed hosting is the practical choice. Your time is better spent growing your business than babysitting a Linux server. That's exactly why Wootoshi exists — we handle the entire infrastructure layer so you can focus on selling products and collecting Bitcoin.

Common Issues & Troubleshooting

Most problems fall into a few common categories. Here's what to check when things aren't working:

  • Plugin can't connect to BTCPay Server — check that your BTCPay URL is correct and includes https://. Also verify there are no trailing slashes or extra spaces in the URL field. If you're self-hosting, make sure your server's firewall allows incoming connections on port 443.
  • Payments not detected — make sure your wallet's xpub is correctly configured in BTCPay. If you copy-pasted it, check for extra whitespace at the beginning or end. Also verify that the wallet derivation scheme matches your wallet software (most modern wallets use SegWit (P2WPKH)).
  • Lightning payments failing — the most common cause is insufficient inbound liquidity on your Lightning node. You need other nodes to open channels to you, or you can use a service like Lightning Loop to acquire inbound capacity. Check your channel balances in the BTCPay Lightning dashboard.
  • SSL errors — your BTCPay Server must have a valid SSL certificate. If you're self-hosting with Let's Encrypt, make sure your domain's DNS A record points to your server's IP address and that port 80 is open for the ACME challenge.
  • Orders stuck as "pending" after payment — this usually means the callback from BTCPay to WooCommerce isn't working. Check that your WordPress site URL is reachable from your BTCPay Server. Some hosting providers block incoming webhook requests — check with your host or whitelist your BTCPay Server's IP.
  • Checkout page shows "store not configured" — this means BTCPay can't find a wallet for the store. Go to your BTCPay dashboard, open the store settings, and verify that a Bitcoin wallet (and optionally Lightning) is set up and enabled.
  • Plugin conflicts in WordPress — security plugins like Wordfence or Sucuri can sometimes block the API communication between WooCommerce and BTCPay Server. If you've verified everything else is correct, try temporarily disabling security plugins to isolate the issue, then whitelist BTCPay's API endpoints.

Ongoing Maintenance Tips

Once your Bitcoin checkout is live, it doesn't require much ongoing work. But a few regular habits will keep everything running smoothly:

  • Keep BTCPay Server updated. New releases fix bugs, patch security vulnerabilities, and add features. If you're self-hosting, run the update script periodically (btcpay-update.sh). Managed hosts like Wootoshi handle this for you automatically.
  • Monitor Lightning channel balances. If you accept Lightning payments, check your channel balances at least weekly. Channels with no remaining inbound capacity can't receive payments. Rebalance or open new channels as needed to maintain receiving capacity.
  • Regularly test the checkout flow. Place a small test order every month or so to make sure the entire payment flow still works — from cart to checkout to BTCPay payment page to order confirmation. Plugin updates on either side can occasionally break things.
  • Back up your wallet keys. This should go without saying, but make sure your Bitcoin wallet seed phrase is stored securely offline in at least two separate physical locations. If you lose your seed phrase, you lose access to all received Bitcoin — permanently. No one can recover it for you.
  • Monitor the Bitcoin mempool during high-fee periods. When the Bitcoin network is congested, on-chain transaction fees spike. If your customers are paying on-chain (not Lightning), they might underpay the fee and their transaction could get stuck. BTCPay Server allows you to configure invoice expiry times and fee rate policies to handle this. During high-fee periods, encouraging customers to use Lightning is the best approach.
  • Review your BTCPay Server logs periodically. The logs can reveal issues before they become customer-facing problems — failed webhook deliveries, wallet synchronization errors, or Lightning channel force-closes. A quick check every couple of weeks goes a long way.

BTCPay Server vs Alternatives

BTCPay Server isn't the only way to accept Bitcoin on WooCommerce. There are several payment processors competing for your attention. But once you compare them side by side, the choice becomes pretty clear.

BTCPay Server

Open-source, non-custodial, and completely free. Bitcoin goes directly from your customer to your wallet — no middleman, no fees, no permission needed. BTCPay supports both on-chain Bitcoin and Lightning Network payments, gives you a full payment processing dashboard, and integrates natively with WooCommerce through an official plugin. Because it's open source, the code is publicly auditable and community-maintained. Nobody can shut it down or change the terms on you.

Coinbase Commerce

Coinbase Commerce is custodial — Coinbase holds your crypto until you withdraw it. They charge a 1% processing fee on every transaction. Because your funds sit on their platform, Coinbase can freeze your account, require additional verification, or change their terms at any time. They've done all of these things before. There's also no Lightning Network support, so your customers are stuck paying higher on-chain fees and waiting longer for confirmations.

BitPay

BitPay requires full KYC (identity verification) before you can even start accepting payments. They charge a 1% processing fee and only support a limited set of settlement currencies. BitPay has a track record of restricting merchant categories they don't approve of. They auto-convert your Bitcoin to fiat by default, and their closed-source platform means you have no visibility into how it works under the hood. No Lightning Network support either.

CoinGate

CoinGate is another custodial option. They hold your funds and offer auto-conversion to fiat or stablecoins. Processing fees are around 1%, and like any custodial service, they can freeze accounts or change policies. CoinGate does support a wider range of altcoins, but if you're focused on Bitcoin, that's not much of an advantage.

Why BTCPay Wins for WooCommerce

WooCommerce is built on open-source software (WordPress), and BTCPay Server shares that same philosophy. The WooCommerce plugin is mature, well-maintained, and designed specifically for this integration. You get zero processing fees, full self-sovereignty over your funds, Lightning Network support for fast payments, and no risk of account freezes. The only trade-off is setup complexity — which is exactly what managed hosting services like Wootoshi exist to solve.

Prefer we handle all of this?

Wootoshi sets up and manages your BTCPay Server so you can accept Bitcoin on WooCommerce without touching a server. Setup takes 48 hours, starts at $9/month.

Get Started with Wootoshi
← Back to Wootoshi · View Pricing · FAQ