Updated 6 Nov 2026
WooCommerce crypto payment gateway
Plaxswap Crypto Payments for WooCommerce is a free plugin on WordPress.org. Your customer pays in Bitcoin, USDT or another coin on our hosted checkout, and WooCommerce marks the order paid once the plugin has verified the payment.
Plugin details
- Price
- Free on WordPress.org
- Version
- 1.0.2, from 9 Nov 2026. First published 25 Oct 2026
- Needs
- WordPress 6.8, WooCommerce 9.0 and PHP 7.4 with OpenSSL, or newer
- Tested up to
- WordPress 7.1 and WooCommerce 11.2
- Checkout
- Checkout Block and classic checkout
- Platform fee
- 1.5% of each payment, paid by your customer and shown at checkout. The plugin adds nothing on top
- Time to pay
- 60 minutes, set by the plugin
- Short payments
- It counts as paid if your customer sent at least 99.5% of the amount
- Payment size
- From about $1 to about $500,000. The checkout shows the limit for each coin
Set up the plugin
- Open a merchant account. Sign in with Google or Telegram, finish the business setup and turn on your authenticator app.
- In WordPress, open Plugins, then Add New Plugin. Search for Plaxswap Crypto Payments, install it and activate it. WooCommerce has to be active.
- Open WooCommerce, then Settings, Payments and Plaxswap.
- In your merchant dashboard, open Developers, then API keys, and create a test key. It starts with pxs_test_. Paste it into Merchant API key.
- Copy the callback URL the plugin shows. In the dashboard, open Developers, then Webhooks, paste that exact address and choose Save. Choose Make a new secret and copy it into Webhook signing secret. It starts with whsec_ and is shown only once.
- Tick Show at checkout, leave Test mode on and choose Save changes. Saving checks your key and account, and nothing changes if they don't match.
- Choose Send test under Webhooks and check that it shows Delivered.
- While signed in as a store admin or shop manager, place a test order. Other visitors don't see the option in test mode. Use the buttons on the test checkout to act out a paid payment, then an expired one, and check what the order does.
- When that works, create a live key, which starts with pxs_live_. Paste it in, turn off Test mode and save. Live payments need HTTPS on your store.
What happens to a WooCommerce order
The plugin never trusts a customer returning to your store, or a notification alone. A signed webhook makes it ask our API about the payment, and it checks the payment ID, mode, amount, currency and order reference before it changes the order.
| Payment | Order status | What it means |
|---|---|---|
| Waiting for the customer to pay | On hold | Nothing to ship yet. |
| Seen on the network, still confirming | On hold | The note on the order says it is waiting for verification. |
| Part of the amount arrived | On hold | The order stays unpaid, and the customer can pay the rest from the payment link. |
| Paid and verified | Paid, normally Processing | WooCommerce handles stock and emails as it does for any paid order. |
| Expired or failed | Failed | The order isn't fulfilled. |
| Cancelled before payment | Cancelled | The order isn't fulfilled. |
| Paid late, or after the order closed | No automatic change | A note asks you to review the payment before you complete the order. |
If a webhook is missed, the plugin checks unpaid orders about every five minutes while WordPress scheduled tasks are running, for up to 30 days. You can also choose Refresh Plaxswap payment in the order actions at any time.
What your customer sees
Your customer chooses Crypto · Plaxswap at checkout and places the order. You can change that name and its description in the settings. They then go to our hosted payment page, pick a coin and network, and see the exact amount, the address, a QR code and every charge before they send anything. They can follow the confirmations on that page.
There are 29 coin and network choices across 16 coins: BTC, ETH, USDT, USDC, SOL, TRX, BNB, LTC, DOGE, BCH, XRP, GRAM, AVAX, POL, DAI and DASH. The list comes from the gateway, so the plugin never needs updating when it changes. See the USDT networks or the full coin list.
What a $100 order costs
Your customer sends about $101.50 in the coin they chose, plus the network fee. About $100 in that coin reaches your merchant balance. When you withdraw, you pay our 0.3% fee and the network fee, both shown before you approve. Prices count one to one for USDT, USDC and DAI when your store is in USD, and other currencies convert at the current rate. Every cost is on the fees page.
Swapping coins inside your merchant account costs 0.3% on the same network, 0.5% for the same coin on another network and 0.7% for another coin on another network, plus the network fee.
Withdrawals are instant once your address is set up: the payout starts as soon as you approve it with your authenticator code or a passkey, and the network then confirms it as usual. A new address can be used 24 hours after you add it. A first withdrawal of $500 or more to an address is reviewed by our team. Withdrawals also pause for 24 hours after a security change or a sign-in from a new device.
Limits to know first
- It handles one-off orders. Subscriptions and automatic renewals aren't supported.
- Refunds aren't automatic, and a crypto payment can't be reversed. Marking an order Refunded doesn't send any coins.
- You receive the coin your customer paid with. There's no setting for one payout coin.
- A store on localhost can't receive our webhooks, so a live store needs a public HTTPS address.
- The plugin can't withdraw your funds. It holds an API key and signing secret, encrypted with your WordPress security salts. If you restore a backup with different salts, enter them again.
- Our merchant terms bar gambling, adult content and financial services unless you're licensed for them where you operate. We can ask for business details and can pause withdrawals until they are approved.
- Payments are closed in 15 countries under sanctions or that we treat as high risk. See the country list. Tax and payment rules depend on your country, so check them where you operate.
Data the plugin sends
The plugin sends us the order amount and currency, an order reference, a description with your store name and order number, and the links to return to your store. Your customer's billing email is sent only if you turn that on, and it's off by default. The checkout also sees your customer's own browser request. Our privacy page has the rest.
If something goes wrong
| What you see | What to check |
|---|---|
| Plaxswap isn't at checkout | Enable it and save valid credentials. In test mode, sign in as a store admin or shop manager. In live mode, the store needs HTTPS, and the store currency must be on the list on this page. |
| The API key is rejected | Copy the full key. A pxs_test_ key needs Test mode on, and a pxs_live_ key needs it off. |
| Settings won't save | Check outbound HTTPS from your server, finish your merchant setup, and use the signing secret from the same account. |
| A payment stays on hold | Open the payment page to see its confirmations. Then check Webhooks in your dashboard, and choose Refresh Plaxswap payment in the order actions. |
| The customer came back but the order is unpaid | Coming back to your store doesn't prove payment. The order updates once the payment is verified. |
| Webhooks don't arrive | The callback URL has to be public HTTPS. Maintenance mode, a login wall or a firewall can block it. |
Still stuck? Contact support with your plugin version, WooCommerce version and the payment reference. Never send an API key, signing secret, recovery phrase or authenticator code.
Questions
Is the plugin free?
Yes. The plugin is free on WordPress.org. Plaxswap charges a 1.5% platform fee on each payment, which your customer pays, and a 0.3% fee plus the network fee when you withdraw.
Can I receive everything in USDT?
Not automatically. This plugin credits your merchant balance in the coin and network the customer paid with, and has no setting for one payout coin. You can swap to USDT inside your merchant account afterwards, or use the API, which can name a coin.
Does it work with the Checkout Block?
Yes. It works with the Checkout Block and the classic checkout, and it declares support for WooCommerce's High-Performance Order Storage.
Which store currencies work?
67 currencies: USD, EUR, GBP, BRL, MXN, ARS, NGN, ZAR, JPY, AED, AUD, BDT, BGN, BHD, BOB, CAD, CHF, CLP, CNY, COP, CRC, CZK, DKK, DOP, EGP, GEL, GHS, GTQ, HKD, HUF, IDR, ILS, INR, ISK, JMD, KES, KRW, KWD, KZT, LKR, MAD, MYR, NOK, NZD, OMR, PEN, PHP, PKR, PLN, PYG, QAR, RON, RSD, SAR, SEK, SGD, THB, TRY, TTD, TWD, TZS, UAH, UGX, UYU, VND, XAF, XOF. If your store uses another currency, the payment option doesn't appear.
Does marking an order Refunded send the coins back?
No. That only changes the status in WooCommerce. Arrange the refund yourself from your balance or your own wallet, or ask support.
What happens if a payment arrives late?
Coins that arrive up to 24 hours late still reach your balance, marked late. The plugin won't complete the order for you. It adds a note asking you to review the payment first.
What happens if I deactivate or delete the plugin?
Your settings, encrypted credentials and payment history on orders stay in WordPress. Your merchant account stays open too. To cut off the store's access, revoke its key under API keys in your dashboard.
Related
Read how to accept crypto payments on a website, see the crypto payment gateway, or build your own checkout with the API docs. The plugin itself is on WordPress.org.