{"id":340669,"date":"2026-07-18T02:40:18","date_gmt":"2026-07-18T02:40:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/stabledeliver-crypto-payments\/"},"modified":"2026-10-24T17:41:25","modified_gmt":"2026-10-24T17:41:25","slug":"stabledeliver-crypto-payments","status":"publish","type":"plugin","link":"https:\/\/ja.wordpress.org\/plugins\/stabledeliver-crypto-payments\/","author":23532896,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"StableDeliver Crypto Payments for WooCommerce","header_author":"StableDeliver","header_description":"Accept USDT, USDC and BTC on WooCommerce \u2014 non-custodial, verified on-chain, funds go straight to your own wallet. WooCommerce completes the order after the payment is confirmed.","assets_banners_color":"0b1b17","last_updated":"2026-10-24 17:41:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/stabledeliver.com\/wordpress-crypto-payments","header_author_uri":"https:\/\/stabledeliver.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":303,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"stabledeliver1","date":"2026-07-18 02:40:05","revision":3612148},"1.1.0":{"tag":"1.1.0","author":"stabledeliver1","date":"2026-07-18 08:43:18","revision":3612406},"1.2.0":{"tag":"1.2.0","author":"stabledeliver1","date":"2026-07-18 16:16:06","revision":3612788},"1.2.1":{"tag":"1.2.1","author":"stabledeliver1","date":"2026-10-24 17:41:25","revision":3763578}},"upgrade_notice":{"1.2.1":"<p>Documentation and compatibility metadata only. No functional changes \u2014 upgrading is optional.<\/p>","1.2.0":"<p>Webhook setup is now automatic: paste your API key and save, and the plugin registers its webhook and signing secret for you. Existing manual setups keep working.<\/p>","1.1.0":"<p>The gateway now charges your exact WooCommerce order total (quantity, coupons, tax, shipping) instead of a fixed product price, and supports multi-item carts. After updating, confirm your receiving asset\/network in your StableDeliver dashboard.<\/p>","1.0.1":"<p>Text-domain fix for translation loading; no functional changes.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3612147,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3612147,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3612147,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3612147,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.1.0","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3612147,"resolution":"1","location":"assets","locale":"","width":2000,"height":1352},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3612147,"resolution":"2","location":"assets","locale":"","width":2240,"height":1679},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3612147,"resolution":"3","location":"assets","locale":"","width":1560,"height":1492}},"screenshots":{"1":"The \"Pay with Crypto (USDT \/ USDC \/ BTC)\" option at WooCommerce checkout.","2":"Gateway settings: API key and webhook signing secret.","3":"The crypto payment details (chain, asset, amount, transaction) on the order screen."}},"plugin_section":[],"plugin_tags":[21057,12611,6593,204245,286],"plugin_category":[45],"plugin_contributors":[272119],"plugin_business_model":[],"class_list":["post-340669","plugin","type-plugin","status-publish","hentry","plugin_tags-crypto","plugin_tags-cryptocurrency","plugin_tags-payment-gateway","plugin_tags-usdt","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-stabledeliver1","plugin_committers-stabledeliver1"],"banners":{"banner":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/banner-772x250.png?rev=3612147","banner_2x":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/banner-1544x500.png?rev=3612147","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/icon-128x128.png?rev=3612147","icon_2x":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/icon-256x256.png?rev=3612147","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/screenshot-1.png?rev=3612147","caption":"The \"Pay with Crypto (USDT \/ USDC \/ BTC)\" option at WooCommerce checkout."},{"src":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/screenshot-2.png?rev=3612147","caption":"Gateway settings: API key and webhook signing secret."},{"src":"https:\/\/ps.w.org\/stabledeliver-crypto-payments\/assets\/screenshot-3.png?rev=3612147","caption":"The crypto payment details (chain, asset, amount, transaction) on the order screen."}],"raw_content":"<!--section=description-->\n<p>Tested with WordPress 7.1 and WooCommerce 11.2 \u2014 classic checkout, Blocks checkout and High-Performance Order Storage (HPOS).<\/p>\n\n<p>Let your WooCommerce customers pay in stablecoins and Bitcoin \u2014 and get paid straight to your own wallet.<\/p>\n\n<ul>\n<li><strong>You keep full control of your funds (non-custodial).<\/strong> Every payment goes directly from the buyer to your own wallet address. StableDeliver never holds your money and never has your keys.<\/li>\n<li><strong>Charges your exact order total.<\/strong> The buyer pays what WooCommerce calculated \u2014 quantity, coupons, tax and shipping included. There is no fixed per-product price and no surprises, and multi-item carts are fully supported.<\/li>\n<li><strong>No percentage of your sales.<\/strong> StableDeliver never takes a cut of the payment itself \u2014 the crypto lands in your wallet in full.<\/li>\n<li><strong>The order completes itself.<\/strong> Once the payment is confirmed on-chain, WooCommerce completes the order and releases the product through its own flow. Your fulfilment, emails and downloads work exactly as they do today.<\/li>\n<li><strong>Try it with no money.<\/strong> Test mode lets you run real end-to-end orders using a test key \u2014 no chain calls, no funds \u2014 while you set everything up.<\/li>\n<li><strong>Stablecoins and Bitcoin, on the network you choose.<\/strong> Accept USDT \/ USDC on Ethereum, Polygon, BNB Smart Chain, Arbitrum and Tron, or BTC on Bitcoin. You choose which network and asset you receive in from your StableDeliver dashboard; buyers pay in the network you configure.<\/li>\n<\/ul>\n\n<p>Buyers pay on a secure StableDeliver checkout and return to your WooCommerce order-received page. You need a free StableDeliver account (https:\/\/stabledeliver.com) to get an API key.<\/p>\n\n<p><strong>Under the hood:<\/strong> the gateway works on both the classic and WooCommerce Blocks checkout, is compatible with High-Performance Order Storage (HPOS), and is confirmed to your site by a webhook signed with HMAC-SHA256 (with anti-replay and de-duplication) \u2014 a forged, stale or duplicated webhook can never complete an order. Before an order completes, the plugin also checks the paid total against the WooCommerce order total and holds any mismatch for review rather than completing it.<\/p>\n\n<h3>External service<\/h3>\n\n<p>This plugin connects to <strong>StableDeliver<\/strong> (https:\/\/stabledeliver.com), an external service, to create payment orders and verify cryptocurrency payments on-chain. StableDeliver performs the substantive work of this gateway: it confirms the exact on-chain transfer to the seller's own wallet (non-custodial settlement) and, once verified, triggers fulfilment on your site via a signed webhook.<\/p>\n\n<p><strong>What is sent, and when:<\/strong> when a buyer chooses crypto at checkout, the plugin sends the order total, currency and an order reference (your WooCommerce order ID) to the StableDeliver API to create a checkout. It then receives a signed webhook when the payment is verified. No customer payment credentials, card numbers, private keys or seed phrases are handled by this plugin.<\/p>\n\n<ul>\n<li>Terms of Use: https:\/\/stabledeliver.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/stabledeliver.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin (upload the ZIP from Plugins \u2192 Add New \u2192 Upload, or drop it in <code>\/wp-content\/plugins\/<\/code>) and activate it.<\/li>\n<li>In your StableDeliver dashboard, add the wallet(s) you want to receive in and choose your default <strong>receiving asset + network<\/strong> (Dashboard \u2192 Wallets). That is the network buyers will pay you in. If you hold wallets on more than one network you <strong>must<\/strong> set a default, or StableDeliver cannot tell which one to charge in and checkout reports that receiving is not configured.<\/li>\n<li>In the StableDeliver dashboard \u2192 <strong>Settings \u2192 Developers<\/strong>, create an API key (start with a <strong>test<\/strong> key).<\/li>\n<li>In WordPress: <strong>WooCommerce \u2192 Settings \u2192 Payments<\/strong>, enable <strong>Pay with Crypto (USDT \/ USDC \/ BTC)<\/strong>, click <strong>Manage<\/strong>, paste your <strong>API key<\/strong>, and <strong>Save<\/strong>. The plugin registers its own webhook and fills in the signing secret automatically \u2014 you'll see \u201cWebhook connected\u201d. There is no webhook to create by hand and no secret to copy. Your site must be served over <strong>HTTPS on a publicly routable address<\/strong>: StableDeliver will not deliver webhooks to plain HTTP or to a private or local address, so orders on a staging or intranet-only site stay pending.<\/li>\n<li>Place a test order to confirm everything works. With a test key you can complete the order from your StableDeliver dashboard \/ the API <code>simulate_payment<\/code> call \u2014 WooCommerce will complete the order.<\/li>\n<\/ol>\n\n<p>If you prefer to wire the webhook by hand, an <strong>Advanced<\/strong> section in the gateway settings still lets you set the endpoint URL and signing secret manually.<\/p>\n\n<p>Your store currency must be one StableDeliver supports (currently USD). On an unsupported currency the gateway stays hidden at checkout and shows an admin notice explaining why. Tagging a WooCommerce product with a StableDeliver product ID is optional (fulfilment linkage for your own records) and never affects the amount charged.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20much%20is%20the%20buyer%20charged%3F\"><h3>How much is the buyer charged?<\/h3><\/dt>\n<dd><p>Your exact WooCommerce order total \u2014 quantity, coupons, tax and shipping are all included. The amount is converted to the crypto asset at the live rate when the order is created and frozen for that order.<\/p><\/dd>\n<dt id=\"is%20this%20custodial%3F%20do%20you%20hold%20my%20money%3F\"><h3>Is this custodial? Do you hold my money?<\/h3><\/dt>\n<dd><p>No. Payments go straight from the buyer to your own wallet address. StableDeliver only verifies the on-chain payment and notifies your site.<\/p><\/dd>\n<dt id=\"which%20coins%20and%20chains%20can%20i%20accept%3F\"><h3>Which coins and chains can I accept?<\/h3><\/dt>\n<dd><p>USDT and USDC on Ethereum, Polygon, BNB Smart Chain, Arbitrum and Tron; BTC on Bitcoin. You choose which network and asset you receive in from your StableDeliver dashboard.<\/p><\/dd>\n<dt id=\"which%20store%20currencies%20are%20supported%3F\"><h3>Which store currencies are supported?<\/h3><\/dt>\n<dd><p>StableDeliver currently prices orders in USD. If your store uses another currency the gateway hides itself at checkout and tells you why in the admin, so a buyer is never charged the wrong amount.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20blocks%20checkout%3F\"><h3>Does it work with the Blocks checkout?<\/h3><\/dt>\n<dd><p>Yes. The gateway registers on both the classic checkout and the WooCommerce Blocks checkout.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is it compatible with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility and reads\/writes orders through the WooCommerce order API.<\/p><\/dd>\n<dt id=\"checkout%20says%20%22receiving%20not%20configured%22%20%E2%80%94%20what%20does%20that%20mean%3F\"><h3>Checkout says \"receiving not configured\" \u2014 what does that mean?<\/h3><\/dt>\n<dd><p>Your StableDeliver account has active wallets on more than one network and no default receiving network chosen, so there is no single answer to \"which coin, on which chain?\". Set your default receiving asset and network under Dashboard \u2192 Wallets and the gateway works immediately. No payment is ever taken while this is unresolved.<\/p><\/dd>\n<dt id=\"my%20order%20stays%20pending%20after%20the%20buyer%20paid.%20what%20is%20wrong%3F\"><h3>My order stays pending after the buyer paid. What is wrong?<\/h3><\/dt>\n<dd><p>The webhook could not reach your site. StableDeliver only delivers to an HTTPS URL on a publicly routable address, so a local, staging or intranet-only site will never receive one. Check the webhook status in the gateway settings and save again to re-register.<\/p><\/dd>\n<dt id=\"can%20i%20run%20this%20alongside%20the%20stabledeliver%20plugin%20for%20easy%20digital%20downloads%3F\"><h3>Can I run this alongside the StableDeliver plugin for Easy Digital Downloads?<\/h3><\/dt>\n<dd><p>That combination has not been tested, and the two plugins answer on the same webhook path, so run one or the other on a site.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20stabledeliver%20is%20unreachable%20at%20checkout%3F\"><h3>What happens if StableDeliver is unreachable at checkout?<\/h3><\/dt>\n<dd><p>The buyer gets a clear error and no payment is taken. The order is never silently completed.<\/p><\/dd>\n<dt id=\"how%20is%20the%20webhook%20secured%3F\"><h3>How is the webhook secured?<\/h3><\/dt>\n<dd><p>Every webhook is signed with HMAC-SHA256 over the raw body and a timestamp. The plugin rejects any request with an invalid signature or an out-of-window timestamp, and de-duplicates repeated events so a retried webhook can never complete an order twice. It also confirms the paid total matches the order total before completing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Documentation only \u2014 no functional changes. Confirms compatibility with WordPress 7.1 and WooCommerce 11.2, and documents the receiving-network prerequisite and the HTTPS\/publicly-routable requirement for webhook delivery.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>One-step webhook setup. Paste your API key and save \u2014 the plugin registers its own webhook endpoint with StableDeliver and fills in the signing secret automatically, showing a \"Webhook connected\" status. No manual webhook creation and no secret copy-paste.<\/li>\n<li>Manual webhook setup (endpoint URL + signing secret) is still available under an Advanced section as a fallback.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Charge the WooCommerce order total. The gateway now charges the exact order total \u2014 quantity, coupons, tax and shipping included \u2014 instead of a fixed per-product price. This corrects earlier behaviour where the charge came from a mapped product's fixed price and could differ from the cart total.<\/li>\n<li>Multi-item carts are now supported (the previous one-item-per-order limit is removed).<\/li>\n<li>The StableDeliver product mapping is now optional (fulfilment linkage only) and never sets the price.<\/li>\n<li>The gateway hides itself at checkout when the store currency isn't supported, with an admin notice explaining why \u2014 never a mischarge.<\/li>\n<li>Before completing an order, the plugin verifies the paid total matches the WooCommerce order total; a mismatch is held for review and never completed.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: align the plugin text domain with the approved plugin slug (stabledeliver-crypto-payments) so translations load correctly. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: WooCommerce gateway (classic + Blocks checkout), HPOS compatibility, hosted checkout redirect, signed-webhook fulfilment, test mode, per-product mapping, on-chain details on the order screen.<\/li>\n<\/ul>","raw_excerpt":"Accept USDT, USDC and BTC on WooCommerce. Non-custodial, charged at your exact order total, straight to your own wallet, auto-completed on payment.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=340669"}],"author":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/stabledeliver1"}],"wp:attachment":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340669"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340669"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340669"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340669"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340669"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}