Adding crypto payments to WooCommerce in 10 minutes
This is the practical version. We're going from a stock WooCommerce store to accepting crypto and stablecoin payments in about ten minutes. No custom code. No backend changes.
What you'll have at the end
- Crypto and stablecoin support added to your WooCommerce checkout
- Customers can pay with BTC, ETH, USDT, USDC, and a handful of others
- Payments settle directly to a wallet you control
- Order status updates automatically when payments confirm
You'll need a WordPress site with WooCommerce active, and a wallet to receive payments to. That's it.
Step 1 — Get a PaySovra account
Sign up at paysovra.com. The free tier covers initial testing — you can be up and running before you ever pay anything.
After signup you'll have:
- An API key (under Settings → API)
- A webhook secret (under Settings → Webhook)
Keep both handy. You'll paste them into the plugin in step 3.
Step 2 — Configure your wallet
In your PaySovra dashboard, go to Settings and add the wallet addresses or extended public keys for the chains you want to support:
- Bitcoin / Litecoin: provide an extended public key (xpub). PaySovra derives fresh addresses from it without ever seeing the private key.
- EVM chains (Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, Base): provide a list of addresses you generated.
- Tron: provide a Tron address.
- Solana: provide a Solana address.
You don't need to support every chain. Pick the ones your customers are most likely to use. You can add more later.
Step 3 — Install the plugin
In your WordPress admin:
- Go to Plugins → Add New
- Search for "PaySovra"
- Install and activate
Or download from the [PaySovra plugin page] and upload manually if you prefer.
Step 4 — Connect the plugin to your account
After activation, go to WooCommerce → Settings → Payments → PaySovra.
Paste:
- API URL:
https://app.paysovra.com(or your PaySovra app URL if self-hosted) - API Key: from your PaySovra dashboard
- Webhook Secret: from your PaySovra dashboard
Save changes.
Step 5 — Set the webhook URL on PaySovra
WooCommerce gives you a webhook URL during plugin setup. It looks like:
https://your-store.com/?wc-api=paysovra
Copy it. Back in your PaySovra dashboard, paste it under Settings → Webhook URL.
This is how PaySovra tells WooCommerce a payment confirmed. Without it, your orders won't auto-update.
Step 6 — Test it
Place a test order on your store. Pick "Pay with crypto" at checkout. Choose a token and network. Send a small payment from a wallet you control.
You should see:
- The PaySovra widget shows the address and QR code
- Status moves from AWAITING → PENDING → CONFIRMED as the network confirms
- Your WooCommerce order auto-updates to "Processing" or "Completed"
If anything stalls, check:
- The webhook URL is correctly set on both sides
- Your webhook secret matches between WooCommerce and PaySovra
- The network you chose matches the network your test wallet is funded on
What happens behind the scenes
When the customer hits "Pay with crypto":
- WooCommerce calls the PaySovra API with the order total and currency
- PaySovra creates a payment session against an address from your pool
- The customer sees the QR / address / amount in the PaySovra widget
- They send the transaction. The blockchain does the moving.
- PaySovra detects the confirmation
- PaySovra sends a signed webhook to WooCommerce:
payment.confirmed - The plugin verifies the signature, marks the order paid, and runs your normal post-purchase flow
Funds are in your wallet by step 5. Steps 6 and 7 are just paperwork.
What to do next
A few common follow-ups:
Add more chains. Most stores start with Tron (low fees) and Ethereum (broad reach), then add Polygon and Solana once they see customer demand. Add chains in PaySovra dashboard settings.
Customize the checkout text. WooCommerce → Settings → Payments → PaySovra has fields for the title and description shown to customers. Default text works, but a sentence in your brand voice helps.
Set a payment tolerance. Default is 1%. If customers occasionally underpay due to FX slippage, the order still confirms within tolerance. Adjust under Settings → Payment Tolerance.
Configure overpaid behavior. Decide your refund policy in advance. PaySovra dashboard shows overpaid amounts; refunds happen via your normal off-chain process or by sending crypto back to the customer's wallet.
Common questions
Does this work with WooCommerce Subscriptions? Recurring crypto payments are on the PaySovra roadmap. The current plugin handles one-off orders.
Does the customer need to know about crypto? They need a wallet with the asset they're paying with. The widget walks them through scan-or-copy-and-send.
Can I accept crypto and credit cards on the same store? Yes. PaySovra is a payment method alongside whatever else you've configured. Customer picks at checkout.
What if the customer abandons checkout? The session expires (default 15 minutes). The address is released. Their wallet is unaffected — they never sent the transaction.
That's the whole flow. Ten minutes from a stock WooCommerce store to a crypto-accepting one. Funds in your wallet on confirmation.
PaySovra is a non-custodial crypto and stablecoin payment gateway. Multi-chain. Direct-to-wallet. Free tier available.