Description
PaySovra adds a crypto payment method to your WooCommerce checkout. Customers pay in Bitcoin, Ethereum, Solana, USDC, USDT and more across 10 networks; you receive funds directly in wallets you control.
How it works
- The customer picks “Pay with crypto” at checkout and a secure payment window opens over your checkout page — they never leave your site.
- They choose a coin and network, and send the payment. PaySovra monitors the chain and confirms it in real time.
- Your WooCommerce order updates automatically — paid, underpaid (on hold for review), or cancelled if the payment window lapses.
- Every payment also appears in your PaySovra dashboard: order details, transaction hash, amounts received, and a full customer view across all your sales channels.
Why merchants choose PaySovra
- Direct settlement. Payments go to your own wallet addresses. PaySovra never holds your funds.
- Broad coverage. BTC, LTC, ETH, SOL, BNB, POL, TRX, plus USDC and USDT on Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, Base, Solana, and TRON.
- Order sync you can trust. Signed webhooks (HMAC-SHA256, replay-protected) with automatic retries update your Woo orders reliably — including underpayment and expiry outcomes, not just success.
- A real payments dashboard. Orders, analytics, customers, invoicing, and hosted product pages are included with your PaySovra account.
PaySovra is a hosted service; a free PaySovra account is required. Payment sessions are created via the PaySovra API and the payment window is served by PaySovra over your checkout page.
External services
This plugin connects to PaySovra, a hosted payment
service, to take crypto payments. It cannot work without it, and a free
PaySovra account is required.
When data is sent
- When a customer selects “Pay with crypto” and places an order, your site
sends PaySovra the order total and currency, your WooCommerce order number,
the item names, quantities and line totals, the customer’s billing name and
email address, your store’s web address, and the addresses PaySovra should
return the customer to and notify when the payment settles. - While the checkout page is open, your site asks PaySovra which coins and
networks your account accepts, so the customer can choose one. - After a payment, PaySovra notifies your site so the order can be updated.
These messages are signed and verified before they are acted on.
What is NOT sent
Your customer’s postal address, phone number, payment card details and
WordPress passwords are never transmitted. PaySovra is non-custodial: crypto
goes directly from the customer to wallet addresses you control, and PaySovra
never holds your funds or moves them.
Terms and privacy
Installation
The full step-by-step guide is at paysovra.com/docs/woocommerce, and it
includes a troubleshooting section for when something doesn’t work. Follow that
if anything here is unclear — it is the same seven steps in more detail.
- Create a free PaySovra account and add at least one
wallet address. That is where your money lands, so nothing works without it. - Install and activate this plugin.
- In PaySovra, open Integrations. Under Integration keys, create a key named
“WooCommerce store” and leave management access switched OFF. Copy it — it
starts with sk_live_ and is shown only once. (This is not your publishable
key, which is a different, public value used by the checkout widget.) - On the same page, scroll to Get told when you’re paid — this section is
what other platforms call webhooks. Press Create signing secret and copy
it. It starts with whsec_. Without it PaySovra sends your store nothing and
orders never leave “Pending payment”. - Still in that section, press Add endpoint and enter your store address
followed by /?wc-api=paysovra — for example
https://shop.example.com/?wc-api=paysovra. The exact address for your store
is also printed at the bottom of the plugin’s settings page. - In WooCommerce Settings Payments PaySovra, paste the integration key
into Integration key and the signing secret into Signing secret. - Tick “Enable PaySovra”, press Save changes, then place one small test order
and confirm it moves from “Pending payment” to “Processing”.
FAQ
-
Do I need a PaySovra account?
-
Yes. The plugin is a connector to PaySovra’s payment infrastructure — your account holds your wallet configuration, API key, and payment history. The Free plan works with this plugin.
-
Where do the funds go?
-
Directly to wallet addresses you configure in your PaySovra dashboard. PaySovra is non-custodial: it detects and confirms payments on-chain but never takes possession of your money.
-
Which coins can my customers use?
-
Whatever you enable in your PaySovra dashboard — the plugin’s coin list follows your account settings automatically. The full universe spans 22 assets across 10 networks.
-
What happens if a customer underpays or lets the payment expire?
-
Underpaid orders move to “on hold” with a note showing exactly how much arrived, so you can decide. Expired sessions cancel the Woo order automatically — and if a payment arrives moments late, PaySovra’s grace window still confirms it and marks the order paid.
-
Does it support the block-based checkout?
-
Yes — both the classic shortcode checkout and the Cart & Checkout Blocks experience, plus High-Performance Order Storage (HPOS).
Reviews
There are no reviews for this plugin.
Contributors & Developers
“PaySovra – Crypto & Stablecoin Payment Gateway for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “PaySovra – Crypto & Stablecoin Payment Gateway for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.8.2
- Overpayments are no longer flagged to the customer with an offer to return
the difference. The amount paid is shown either way, so nothing is hidden,
but crypto refunds are manual and a few cents of rounding shouldn’t create
work for the shop owner. The overpayment is still noted on the order.
1.8.1
- The order confirmation, the customer’s account and WooCommerce’s order
emails now show what was actually paid — the amount, the coin and the
network, plus the transaction. Previously only the order price appeared,
and the crypto details were recorded where only the shop owner could see
them.
1.8.0
- Reopening a checkout now picks up where the customer left off. Previously,
someone who paid part of the total and closed the window was shown the coin
picker again as though nothing had happened — which stranded what they had
already sent and asked them to pay the full amount a second time. They now
return to the same payment, showing what’s still outstanding and the address
to send it to.
1.7.8
- Cleared everything flagged by the official WordPress Plugin Check.
1.7.7
- Documents exactly what is sent to PaySovra, what isn’t, and links to the
terms, privacy and acceptable-use policies.
1.7.6
- Declares WooCommerce as a required plugin, so WordPress prompts for it
instead of the gateway silently doing nothing. - Compatibility updated for WordPress 7.0 and WooCommerce 11.
1.7.5
- FIX: after changing the discount rate, checkout advertised the new rate but
the payment was still taken at the old one. WooCommerce reuses the same
order across attempts, and the earlier discount was being left in place.
1.7.4
- FIX: the payment method description had disappeared from checkout.
1.7.3
- Restored the savings badge beside “Pay with crypto”, shown whether or not
it’s selected, and the percentage for merchants who set one. The badge now
also fills in the exact amount payable once the cart has loaded.
1.7.2
- FIX: the discounted price shown at checkout could differ by a cent from the
amount actually requested. The figure was being calculated twice — once on
the server, once in the browser — and the two rounded fractions of a cent
differently. It is now calculated once, on the server, and the checkout
simply displays it.
1.7.1
- The crypto option now shows what you’ll actually pay, not just a percentage,
and keeps it current as the cart changes.
1.7.0
- The saving is now shown next to “Pay with crypto” whether or not it’s
selected — a discount nobody sees until after choosing can’t persuade
anyone to choose. - IMPORTANT FIX: the discount no longer alters the cart. Other gateways build
their payment object from the cart total when they load — Stripe creates a
PaymentIntent up front — so a total that moved underneath them caused
refused payments and blocked checkouts. A 50c basket briefly discounted left
Stripe holding 43c, under its minimum, and it stopped the sale. The cart
total now never changes; the discount is applied to the order once crypto is
actually chosen, which is also when the amount is authorised.
1.6.1
- FIX: the crypto discount could stay applied after switching to another
payment method, and that gateway would then refuse the order because the
total had changed under it. Selection is now read from the checkout itself
rather than inferred, updates are serialised so a slow one can’t land after
a newer one, and any discount is stripped server-side from an order that
isn’t actually being paid with crypto.
1.6.0
- Optional crypto discount. Switch it on in the gateway settings and choose a
percentage or a fixed amount. It applies only while crypto is the selected
payment method and comes off if the customer switches back. Percentages are
capped at 50% so a mistyped value cannot give an order away.
1.5.0
- Sends the order’s line items so the payment record shows what was sold.
- The website taking payments is registered against your PaySovra account
automatically — no setup step, and subdomains of a site you already
registered don’t count again.
1.4.4
- Events for payments that aren’t WooCommerce orders (hosted pages, invoices,
the API) no longer return an error and no longer retry.
1.4.3
- Clearer message when a customer closes the payment window.
1.4.2
- Updates from a superseded payment session are now ignored. Switching coins
opens a new session, and an older one expiring could otherwise cancel an
order while it was being paid.
1.4.1
- Fixed the Place Order button hanging after the payment window was closed —
checkout waited on a signal the widget never sent, so the page had to be
reloaded before you could try again. - The customer’s name is now recorded alongside their email.
- Orders link back to the matching order in your WordPress admin.
1.4.0
- The payment window now opens over your own checkout page. Customers pick
their coin and pay without leaving your site, and are returned to your
order-received page once it confirms. - If the window can’t open for any reason, checkout falls back to the hosted
payment page — the customer can always pay. - Closing the window leaves the order pending and keeps the customer on
checkout, instead of sending them to a thank-you page for an unpaid order.
1.3.0
- The coin and network picker now appears. Previously the plugin chose an
asset before the payment existed, so the customer never saw the choice —
the receiving address had already been fixed. - The order total is now authorised with PaySovra server-to-server before
checkout opens. No price is sent from the browser, so it cannot be
altered by the customer. - Orders are never marked paid for less than they cost; a short payment is
held for review instead of releasing goods. - Removed the “Default Crypto Asset” setting — the customer picks, and a
merchant-chosen default only suppressed that choice. - Stores not selling in USD now hide PaySovra at checkout with an
explanation, rather than converting the amount incorrectly.
1.2.1
- FIX: the default API address pointed at a host that does not exist, so a
fresh install failed at checkout with “PaySovra connection failed” until
the field was corrected by hand. Installs that already saved the bad value
are repaired automatically on upgrade.
1.2.0
- Branded payment-method icon — PaySovra now shows its mark in the payment
providers list and at checkout instead of a generic placeholder. - Settings fields renamed to match the dashboard exactly: “Integration key”
and “Signing secret”. The old labels named things that existed nowhere. - The webhook notice now says which dashboard section to paste the address
into, so “webhook” and “Get told when you’re paid” stop being two
unconnected vocabularies. - Installation instructions rewritten and now point at the full guide at
https://paysovra.com/docs/woocommerce.
1.1.0
- Webhook signature verification aligned with PaySovra’s timestamped HMAC scheme (replay-protected).
- Handles payment.underpaid and payment.expired events — orders sync on every outcome.
- Cart & Checkout Blocks support.
- High-Performance Order Storage (HPOS) compatibility declared.
- Coin list now loads live from your PaySovra account (with a full static fallback).
- Overpaid payments noted on the order; paid orders can never be regressed by a late event.
1.0.0
- Initial release: hosted payment redirect, payment.confirmed webhook, order sync.
