{"id":341308,"date":"2026-10-13T18:12:21","date_gmt":"2026-10-13T18:12:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/griffnode-for-woocommerce\/"},"modified":"2026-10-17T10:29:08","modified_gmt":"2026-10-17T10:29:08","slug":"griffnode-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/as.wordpress.org\/plugins\/griffnode-for-woocommerce\/","author":23533688,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"GriffNode Crypto Payments for WooCommerce","header_author":"GriffNode","header_description":"Accept Bitcoin, Ethereum, Litecoin, Dogecoin, Dash and USDT\/USDC\/DAI stablecoins in WooCommerce. Non-custodial - funds settle straight to your own wallet. No chargebacks.","assets_banners_color":"25234f","last_updated":"2026-10-17 10:29:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/docs.griffnode.com\/","header_author_uri":"https:\/\/griffnode.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":148,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"griffnode","date":"2026-10-13 18:11:47","revision":3744651},"1.0.3":{"tag":"1.0.3","author":"griffnode","date":"2026-10-17 10:29:08","revision":3751779}},"upgrade_notice":{"1.0.1":"<p>Important correctness fixes: wrong-currency billing on non-USD stores and orders not\nauto-completing are both fixed. Upgrade is strongly recommended for all existing installs.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3744651,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3744651,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3744651,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3744651,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The \"Pay with Cryptocurrency\" option at WooCommerce checkout with the live coin selector.","2":"GriffNode payment settings in WooCommerce (API keys and options).","3":"The hosted payment page with a BIP-21 QR code and live confirmation status."}},"plugin_section":[],"plugin_tags":[1886,157818,12611,6593,286],"plugin_category":[45],"plugin_contributors":[286536],"plugin_business_model":[],"class_list":["post-341308","plugin","type-plugin","status-publish","hentry","plugin_tags-bitcoin","plugin_tags-crypto-payments","plugin_tags-cryptocurrency","plugin_tags-payment-gateway","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-griffnode","plugin_committers-griffnode"],"banners":{"banner":"https:\/\/ps.w.org\/griffnode-for-woocommerce\/assets\/banner-772x250.png?rev=3744651","banner_2x":"https:\/\/ps.w.org\/griffnode-for-woocommerce\/assets\/banner-1544x500.png?rev=3744651","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/griffnode-for-woocommerce\/assets\/icon-128x128.png?rev=3744651","icon_2x":"https:\/\/ps.w.org\/griffnode-for-woocommerce\/assets\/icon-256x256.png?rev=3744651","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>GriffNode is a non-custodial crypto payment gateway for WooCommerce.<\/strong> Your customers pay in crypto and the money settles <strong>straight to your own wallet<\/strong> - GriffNode never holds, touches, or can freeze your funds. There are no chargebacks and no account holds.<\/p>\n\n<p>You connect your wallet's extended public key (xPub) once, and GriffNode derives a fresh receiving address for every order, so payments go customer to merchant directly. Learn how it works at <a href=\"https:\/\/griffnode.com\/\">griffnode.com<\/a> or read the full <a href=\"https:\/\/learn.griffnode.com\/how-to-accept-crypto-payments-woocommerce\">WooCommerce setup guide<\/a>.<\/p>\n\n<p><strong>Why merchants switch to crypto checkout<\/strong><\/p>\n\n<ul>\n<li><strong>Non-custodial<\/strong> - funds settle directly to your wallet, not ours. We literally cannot spend or freeze them.<\/li>\n<li><strong>No chargebacks<\/strong> - on-chain settlement is final. A customer cannot keep your product and claw back the money.<\/li>\n<li><strong>Live in minutes<\/strong> - sign up, paste your xPub, enable the gateway.<\/li>\n<li><strong>No frozen payouts<\/strong> - no processor sits between you and your revenue.<\/li>\n<li><strong>Flat monthly pricing<\/strong> - no percentage per transaction. See <a href=\"https:\/\/griffnode.com\/\">pricing<\/a> (free Starter tier, then flat plans).<\/li>\n<\/ul>\n\n<p><strong>Coins supported<\/strong><\/p>\n\n<p>Bitcoin (BTC), Ethereum (ETH), Litecoin (LTC), Dogecoin (DOGE), Dash (DASH), plus the ERC-20 stablecoins <strong>USDT, USDC and DAI<\/strong> for price-stable payments.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>A \"Pay with Cryptocurrency\" gateway at WooCommerce checkout with a live coin selector.<\/li>\n<li>Hosted, mobile-friendly payment page with a BIP-21 QR code.<\/li>\n<li>Real-time on-chain confirmation via signed webhooks (HMAC-SHA256).<\/li>\n<li>Automatic order completion the moment a payment confirms, partial-payment and expiry handling.<\/li>\n<li>HPOS (High-Performance Order Storage) compatible.<\/li>\n<li>Full REST API and SDKs (JavaScript, Python, PHP) at <a href=\"https:\/\/docs.griffnode.com\/\">docs.griffnode.com<\/a>.<\/li>\n<\/ul>\n\n<p>This plugin connects to the GriffNode API (griffnode.com) to create hosted payment sessions and receive payment webhooks; a free GriffNode account and API key are required.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin relies on the GriffNode API (<code>api.griffnode.com<\/code>), operated by GriffNode, to create\ncrypto payment sessions and to notify your store when a payment confirms. It is not optional:\nthe plugin cannot function without it.<\/p>\n\n<p><strong>What is sent, and when:<\/strong><\/p>\n\n<ul>\n<li>When a customer places an order and selects a cryptocurrency, the plugin sends the order total,\ncurrency, the selected cryptocurrency, your store's return\/cancel URLs, and the order's WooCommerce\nID\/order key and billing email to <code>https:\/\/api.griffnode.com\/transactions\/create<\/code>, authenticated\nwith your Secret Key.<\/li>\n<li>On the checkout page, your store's browser fetches the list of cryptocurrencies you've\nconfigured wallets for from <code>https:\/\/api.griffnode.com\/merchant\/cryptos<\/code>, authenticated with your\nPublishable Key (safe to expose, it grants no write access).<\/li>\n<li>GriffNode sends signed payment-status webhooks (HMAC-SHA256) back to your store's\n  ?wc-api=griffnode endpoint as the customer's payment is detected\/confirmed\/expires.<\/li>\n<\/ul>\n\n<p>See GriffNode's <a href=\"https:\/\/info.griffnode.com\/terms-of-service\">Terms of Service<\/a> and\n<a href=\"https:\/\/info.griffnode.com\/privacy-policy\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Create a free account at <a href=\"https:\/\/griffnode.com\/\">griffnode.com<\/a> and connect your wallet's xPub.<\/li>\n<li>In your GriffNode dashboard, copy your <strong>Publishable key<\/strong>, <strong>Secret key<\/strong> and <strong>Webhook secret<\/strong>.<\/li>\n<li>Install this plugin: Plugins \u2192 Add New \u2192 Upload, choose the zip, and Activate. (WooCommerce must be active.)<\/li>\n<li>Go to WooCommerce \u2192 Settings \u2192 Payments \u2192 <strong>GriffNode<\/strong> and paste your keys.<\/li>\n<li>Business plan and up: in your GriffNode dashboard, set the webhook URL to <code>https:\/\/your-store.com\/?wc-api=griffnode<\/code> and paste the Webhook secret, so orders update the moment a payment confirms. On the free Starter plan leave the Webhook secret empty: the plugin checks every open payment every 30 seconds by itself.<\/li>\n<li>Place a small test order to confirm end to end.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"are%20crypto%20payments%20reversible%3F%20can%20i%20get%20a%20chargeback%3F\"><h3>Are crypto payments reversible? Can I get a chargeback?<\/h3><\/dt>\n<dd><p>No. On-chain settlement is final, so there are no chargebacks. This is a major advantage for digital goods and high-risk categories.<\/p><\/dd>\n<dt id=\"where%20does%20the%20money%20go%3F\"><h3>Where does the money go?<\/h3><\/dt>\n<dd><p>Directly to your own wallet, every time, via the xPub you connect. GriffNode cannot custody, spend, or freeze it.<\/p><\/dd>\n<dt id=\"which%20cryptocurrencies%20can%20customers%20pay%20with%3F\"><h3>Which cryptocurrencies can customers pay with?<\/h3><\/dt>\n<dd><p>Bitcoin, Ethereum, Litecoin, Dogecoin and Dash, plus the USDT, USDC and DAI stablecoins.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Does it work with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility.<\/p><\/dd>\n<dt id=\"what%20does%20it%20cost%3F\"><h3>What does it cost?<\/h3><\/dt>\n<dd><p>GriffNode uses flat monthly pricing with no percentage per transaction, including a free Starter tier. See <a href=\"https:\/\/griffnode.com\/\">griffnode.com<\/a> for current plans.<\/p><\/dd>\n<dt id=\"where%20are%20the%20docs%3F\"><h3>Where are the docs?<\/h3><\/dt>\n<dd><p>Full API and integration docs are at <a href=\"https:\/\/docs.griffnode.com\/\">docs.griffnode.com<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Works on every GriffNode plan. Without a webhook (free Starter plan) the plugin checks all open orders every 30 seconds in one request. It does not depend on store visitors, and stops when no payment is open. With a webhook (Business plan and up) orders update instantly and the check stays on as a backstop.<\/li>\n<li>Orders are followed until their payment is final, for up to 7 days: slow confirmations, orders WooCommerce auto-cancelled (Hold stock) before the coins confirmed, and partial payments topped up later now all complete correctly.<\/li>\n<li>Coins that arrive after the payment window no longer cancel the order: it goes On hold with a note, and completes by itself once you confirm the payment in your GriffNode dashboard.<\/li>\n<li>Admin notice when status checks fail (for example a wrong Secret Key).<\/li>\n<li>Default checkout description now lists Ethereum and stablecoins.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Works in the block-based Checkout (the WooCommerce default for new stores) as well as the classic checkout.<\/li>\n<li>Display name is now \"GriffNode Crypto Payments for WooCommerce\".<\/li>\n<li>Checkout script is now enqueued (wp_enqueue_script) instead of printed inline, and re-fills the selector after WooCommerce refreshes the checkout.<\/li>\n<li>Text domain matches the plugin slug (griffnode-for-woocommerce); all user-facing strings translatable.<\/li>\n<li>Fixed the Terms of Service and Privacy Policy links in External services.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: transaction creation sent the fiat amount under the wrong field name, which the API\nsilently interpreted as USD regardless of your store's actual currency, so non-USD stores were\nbilling the wrong crypto amount on every order. Fixed.<\/li>\n<li>Fix: orders never automatically left \"Pending\" on payment, because the plugin looked for the\norder under a field the API doesn't return for this integration. Order matching is now done via\nthe checkout metadata that's actually echoed back, with the transaction id used as a\ncross-check.<\/li>\n<li>Fix: two of the API's payment-status events (overpaid, failed) were not handled at all;\noverpaid orders in particular could stay stuck \"Pending\" despite being paid. Both are now\nhandled.<\/li>\n<li>Fix: the crypto selector on checkout built its dropdown via raw HTML string concatenation;\nit's now built through the DOM API instead.<\/li>\n<li>Improvement: resubmitting checkout (double-click, back-button) now reuses an order's existing\npayment session for up to 55 minutes instead of creating a new one each time.<\/li>\n<li>Improvement: customer email is now sent as its own field so the hosted payment page can\npre-fill it, instead of only being nested in metadata.<\/li>\n<li>Improvement: the webhook endpoint now requires HTTPS.<\/li>\n<li>Docs: added the required External Services disclosure.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: non-custodial crypto payment gateway for WooCommerce (BTC, ETH, LTC, DOGE, DASH + USDT\/USDC\/DAI), hosted checkout, signed webhooks, HPOS support.<\/li>\n<\/ul>","raw_excerpt":"Accept Bitcoin, Ethereum, Litecoin, Dogecoin and stablecoins in WooCommerce. Non-custodial, no chargebacks - funds go to your own wallet.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/341308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=341308"}],"author":[{"embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/griffnode"}],"wp:attachment":[{"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=341308"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=341308"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=341308"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=341308"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=341308"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/as.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=341308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}