{"id":354548,"date":"2026-08-17T03:36:47","date_gmt":"2026-08-17T03:36:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/paysovra-for-woocommerce\/"},"modified":"2026-08-17T05:12:14","modified_gmt":"2026-08-17T05:12:14","slug":"paysovra-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/paysovra-for-woocommerce\/","author":23550112,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.6","stable_tag":"1.8.6","tested":"7.0.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"PaySovra \u2013 Crypto & Stablecoin Payment Gateway for WooCommerce","header_author":"PaySovra","header_description":"Accept crypto and stablecoin payments via PaySovra. Direct wallet settlement, multi-chain support.","assets_banners_color":"09111b","last_updated":"2026-08-17 05:12:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/paysovra.com\/docs\/woocommerce","header_author_uri":"https:\/\/paysovra.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.6":{"tag":"1.8.6","author":"paysovra","date":"2026-08-17 05:12:14"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3650404,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3650404,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3650380,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3650380,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.6"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1886,157818,231844,209195,9366],"plugin_category":[45],"plugin_contributors":[276050],"plugin_business_model":[],"class_list":["post-354548","plugin","type-plugin","status-publish","hentry","plugin_tags-bitcoin","plugin_tags-crypto-payments","plugin_tags-stablecoin","plugin_tags-usdc","plugin_tags-woocommerce-payment-gateway","plugin_category-ecommerce","plugin_contributors-paysovra","plugin_committers-paysovra"],"banners":{"banner":"https:\/\/ps.w.org\/paysovra-for-woocommerce\/assets\/banner-772x250.png?rev=3650380","banner_2x":"https:\/\/ps.w.org\/paysovra-for-woocommerce\/assets\/banner-1544x500.png?rev=3650380","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/paysovra-for-woocommerce\/assets\/icon-128x128.png?rev=3650404","icon_2x":"https:\/\/ps.w.org\/paysovra-for-woocommerce\/assets\/icon-256x256.png?rev=3650404","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>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.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ul>\n<li>The customer picks \"Pay with crypto\" at checkout and a secure payment window opens over your checkout page \u2014 they never leave your site.<\/li>\n<li>They choose a coin and network, and send the payment. PaySovra monitors the chain and confirms it in real time.<\/li>\n<li>Your WooCommerce order updates automatically \u2014 paid, underpaid (on hold for review), or cancelled if the payment window lapses.<\/li>\n<li>Every payment also appears in your PaySovra dashboard: order details, transaction hash, amounts received, and a full customer view across all your sales channels.<\/li>\n<\/ul>\n\n<p><strong>Why merchants choose PaySovra<\/strong><\/p>\n\n<ul>\n<li><strong>Direct settlement.<\/strong> Payments go to your own wallet addresses. PaySovra never holds your funds.<\/li>\n<li><strong>Broad coverage.<\/strong> BTC, LTC, ETH, SOL, BNB, POL, TRX, plus USDC and USDT on Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, Base, Solana, and TRON.<\/li>\n<li><strong>Order sync you can trust.<\/strong> Signed webhooks (HMAC-SHA256, replay-protected) with automatic retries update your Woo orders reliably \u2014 including underpayment and expiry outcomes, not just success.<\/li>\n<li><strong>A real payments dashboard.<\/strong> Orders, analytics, customers, invoicing, and hosted product pages are included with your PaySovra account.<\/li>\n<\/ul>\n\n<p>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.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to <a href=\"https:\/\/paysovra.com\">PaySovra<\/a>, a hosted payment\nservice, to take crypto payments. It cannot work without it, and a free\nPaySovra account is required.<\/p>\n\n<p><strong>When data is sent<\/strong><\/p>\n\n<ul>\n<li>When a customer selects \"Pay with crypto\" and places an order, your site\nsends PaySovra the order total and currency, your WooCommerce order number,\nthe item names, quantities and line totals, the customer's billing name and\nemail address, your store's web address, and the addresses PaySovra should\nreturn the customer to and notify when the payment settles.<\/li>\n<li>While the checkout page is open, your site asks PaySovra which coins and\nnetworks your account accepts, so the customer can choose one.<\/li>\n<li>After a payment, PaySovra notifies your site so the order can be updated.\nThese messages are signed and verified before they are acted on.<\/li>\n<\/ul>\n\n<p><strong>What is NOT sent<\/strong><\/p>\n\n<p>Your customer's postal address, phone number, payment card details and\nWordPress passwords are never transmitted. PaySovra is non-custodial: crypto\ngoes directly from the customer to wallet addresses you control, and PaySovra\nnever holds your funds or moves them.<\/p>\n\n<p><strong>Terms and privacy<\/strong><\/p>\n\n<ul>\n<li><a href=\"https:\/\/paysovra.com\/terms\">Terms of service<\/a><\/li>\n<li><a href=\"https:\/\/paysovra.com\/privacy\">Privacy policy<\/a><\/li>\n<li><a href=\"https:\/\/paysovra.com\/acceptable-use\">Acceptable use policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<p>The full step-by-step guide is at <a href=\"https:\/\/paysovra.com\/docs\/woocommerce\">paysovra.com\/docs\/woocommerce<\/a>, and it\nincludes a troubleshooting section for when something doesn't work. Follow that\nif anything here is unclear \u2014 it is the same seven steps in more detail.<\/p>\n\n<ol>\n<li>Create a free <a href=\"https:\/\/paysovra.com\">PaySovra account<\/a> and add at least one\nwallet address. That is where your money lands, so nothing works without it.<\/li>\n<li>Install and activate this plugin.<\/li>\n<li>In PaySovra, open Integrations. Under <strong>Integration keys<\/strong>, create a key named\n\"WooCommerce store\" and leave management access switched OFF. Copy it \u2014 it\nstarts with sk_live_ and is shown only once. (This is not your publishable\nkey, which is a different, public value used by the checkout widget.)<\/li>\n<li>On the same page, scroll to <strong>Get told when you're paid<\/strong> \u2014 this section is\nwhat other platforms call webhooks. Press <strong>Create signing secret<\/strong> and copy\nit. It starts with whsec_. Without it PaySovra sends your store nothing and\norders never leave \"Pending payment\".<\/li>\n<li>Still in that section, press <strong>Add endpoint<\/strong> and enter your store address\nfollowed by \/?wc-api=paysovra \u2014 for example\nhttps:\/\/shop.example.com\/?wc-api=paysovra. The exact address for your store\nis also printed at the bottom of the plugin's settings page.<\/li>\n<li>In WooCommerce \u2192 Settings \u2192 Payments \u2192 PaySovra, paste the integration key\ninto <strong>Integration key<\/strong> and the signing secret into <strong>Signing secret<\/strong>.<\/li>\n<li>Tick \"Enable PaySovra\", press Save changes, then place one small test order\nand confirm it moves from \"Pending payment\" to \"Processing\".<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20paysovra%20account%3F\"><h3>Do I need a PaySovra account?<\/h3><\/dt>\n<dd><p>Yes. The plugin is a connector to PaySovra's payment infrastructure \u2014 your account holds your wallet configuration, API key, and payment history. The Free plan works with this plugin.<\/p><\/dd>\n<dt id=\"where%20do%20the%20funds%20go%3F\"><h3>Where do the funds go?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"which%20coins%20can%20my%20customers%20use%3F\"><h3>Which coins can my customers use?<\/h3><\/dt>\n<dd><p>Whatever you enable in your PaySovra dashboard \u2014 the plugin's coin list follows your account settings automatically. The full universe spans 22 assets across 10 networks.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20customer%20underpays%20or%20lets%20the%20payment%20expire%3F\"><h3>What happens if a customer underpays or lets the payment expire?<\/h3><\/dt>\n<dd><p>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 \u2014 and if a payment arrives moments late, PaySovra's grace window still confirms it and marks the order paid.<\/p><\/dd>\n<dt id=\"does%20it%20support%20the%20block-based%20checkout%3F\"><h3>Does it support the block-based checkout?<\/h3><\/dt>\n<dd><p>Yes \u2014 both the classic shortcode checkout and the Cart &amp; Checkout Blocks experience, plus High-Performance Order Storage (HPOS).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Overpayments are no longer flagged to the customer with an offer to return\nthe difference. The amount paid is shown either way, so nothing is hidden,\nbut crypto refunds are manual and a few cents of rounding shouldn't create\nwork for the shop owner. The overpayment is still noted on the order.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>The order confirmation, the customer's account and WooCommerce's order\nemails now show what was actually paid \u2014 the amount, the coin and the\nnetwork, plus the transaction. Previously only the order price appeared,\nand the crypto details were recorded where only the shop owner could see\nthem.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Reopening a checkout now picks up where the customer left off. Previously,\nsomeone who paid part of the total and closed the window was shown the coin\npicker again as though nothing had happened \u2014 which stranded what they had\nalready sent and asked them to pay the full amount a second time. They now\nreturn to the same payment, showing what's still outstanding and the address\nto send it to.<\/li>\n<\/ul>\n\n<h4>1.7.8<\/h4>\n\n<ul>\n<li>Cleared everything flagged by the official WordPress Plugin Check.<\/li>\n<\/ul>\n\n<h4>1.7.7<\/h4>\n\n<ul>\n<li>Documents exactly what is sent to PaySovra, what isn't, and links to the\nterms, privacy and acceptable-use policies.<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>Declares WooCommerce as a required plugin, so WordPress prompts for it\ninstead of the gateway silently doing nothing.<\/li>\n<li>Compatibility updated for WordPress 7.0 and WooCommerce 11.<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>FIX: after changing the discount rate, checkout advertised the new rate but\nthe payment was still taken at the old one. WooCommerce reuses the same\norder across attempts, and the earlier discount was being left in place.<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>FIX: the payment method description had disappeared from checkout.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Restored the savings badge beside \"Pay with crypto\", shown whether or not\nit's selected, and the percentage for merchants who set one. The badge now\nalso fills in the exact amount payable once the cart has loaded.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>FIX: the discounted price shown at checkout could differ by a cent from the\namount actually requested. The figure was being calculated twice \u2014 once on\nthe server, once in the browser \u2014 and the two rounded fractions of a cent\ndifferently. It is now calculated once, on the server, and the checkout\nsimply displays it.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>The crypto option now shows what you'll actually pay, not just a percentage,\nand keeps it current as the cart changes.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>The saving is now shown next to \"Pay with crypto\" whether or not it's\nselected \u2014 a discount nobody sees until after choosing can't persuade\nanyone to choose.<\/li>\n<li>IMPORTANT FIX: the discount no longer alters the cart. Other gateways build\ntheir payment object from the cart total when they load \u2014 Stripe creates a\nPaymentIntent up front \u2014 so a total that moved underneath them caused\nrefused payments and blocked checkouts. A 50c basket briefly discounted left\nStripe holding 43c, under its minimum, and it stopped the sale. The cart\ntotal now never changes; the discount is applied to the order once crypto is\nactually chosen, which is also when the amount is authorised.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>FIX: the crypto discount could stay applied after switching to another\npayment method, and that gateway would then refuse the order because the\ntotal had changed under it. Selection is now read from the checkout itself\nrather than inferred, updates are serialised so a slow one can't land after\na newer one, and any discount is stripped server-side from an order that\nisn't actually being paid with crypto.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Optional crypto discount. Switch it on in the gateway settings and choose a\npercentage or a fixed amount. It applies only while crypto is the selected\npayment method and comes off if the customer switches back. Percentages are\ncapped at 50% so a mistyped value cannot give an order away.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Sends the order's line items so the payment record shows what was sold.<\/li>\n<li>The website taking payments is registered against your PaySovra account\nautomatically \u2014 no setup step, and subdomains of a site you already\nregistered don't count again.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Events for payments that aren't WooCommerce orders (hosted pages, invoices,\nthe API) no longer return an error and no longer retry.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Clearer message when a customer closes the payment window.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Updates from a superseded payment session are now ignored. Switching coins\nopens a new session, and an older one expiring could otherwise cancel an\norder while it was being paid.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fixed the Place Order button hanging after the payment window was closed \u2014\ncheckout waited on a signal the widget never sent, so the page had to be\nreloaded before you could try again.<\/li>\n<li>The customer's name is now recorded alongside their email.<\/li>\n<li>Orders link back to the matching order in your WordPress admin.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>The payment window now opens over your own checkout page. Customers pick\ntheir coin and pay without leaving your site, and are returned to your\norder-received page once it confirms.<\/li>\n<li>If the window can't open for any reason, checkout falls back to the hosted\npayment page \u2014 the customer can always pay.<\/li>\n<li>Closing the window leaves the order pending and keeps the customer on\ncheckout, instead of sending them to a thank-you page for an unpaid order.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>The coin and network picker now appears. Previously the plugin chose an\nasset before the payment existed, so the customer never saw the choice \u2014\nthe receiving address had already been fixed.<\/li>\n<li>The order total is now authorised with PaySovra server-to-server before\ncheckout opens. No price is sent from the browser, so it cannot be\naltered by the customer.<\/li>\n<li>Orders are never marked paid for less than they cost; a short payment is\nheld for review instead of releasing goods.<\/li>\n<li>Removed the \"Default Crypto Asset\" setting \u2014 the customer picks, and a\nmerchant-chosen default only suppressed that choice.<\/li>\n<li>Stores not selling in USD now hide PaySovra at checkout with an\nexplanation, rather than converting the amount incorrectly.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>FIX: the default API address pointed at a host that does not exist, so a\nfresh install failed at checkout with \"PaySovra connection failed\" until\nthe field was corrected by hand. Installs that already saved the bad value\nare repaired automatically on upgrade.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Branded payment-method icon \u2014 PaySovra now shows its mark in the payment\nproviders list and at checkout instead of a generic placeholder.<\/li>\n<li>Settings fields renamed to match the dashboard exactly: \"Integration key\"\nand \"Signing secret\". The old labels named things that existed nowhere.<\/li>\n<li>The webhook notice now says which dashboard section to paste the address\ninto, so \"webhook\" and \"Get told when you're paid\" stop being two\nunconnected vocabularies.<\/li>\n<li>Installation instructions rewritten and now point at the full guide at\nhttps:\/\/paysovra.com\/docs\/woocommerce.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Webhook signature verification aligned with PaySovra's timestamped HMAC scheme (replay-protected).<\/li>\n<li>Handles payment.underpaid and payment.expired events \u2014 orders sync on every outcome.<\/li>\n<li>Cart &amp; Checkout Blocks support.<\/li>\n<li>High-Performance Order Storage (HPOS) compatibility declared.<\/li>\n<li>Coin list now loads live from your PaySovra account (with a full static fallback).<\/li>\n<li>Overpaid payments noted on the order; paid orders can never be regressed by a late event.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: hosted payment redirect, payment.confirmed webhook, order sync.<\/li>\n<\/ul>","raw_excerpt":"Accept crypto and stablecoin payments in WooCommerce. Funds settle directly to your own wallet \u2014 no processor holds your money.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=354548"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/paysovra"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354548"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354548"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354548"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354548"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354548"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}