{"id":361458,"date":"2026-09-02T06:54:48","date_gmt":"2026-09-02T06:54:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bitcoin-and-lightning-payments-for-fluentcart\/"},"modified":"2026-09-02T07:00:50","modified_gmt":"2026-09-02T07:00:50","slug":"bitcoin-payments-for-fluentcart","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bitcoin-payments-for-fluentcart\/","author":23557896,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Bitcoin and Lightning Payments for FluentCart","header_author":"BTC2B Group","header_description":"Accept Bitcoin and Lightning payments in FluentCart via your self-hosted BTCPay Server - redirect checkout with webhook confirmation.","assets_banners_color":"70747b","last_updated":"2026-09-02 07:00:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/btc2bgroup\/btcpay-fluentcart","header_author_uri":"https:\/\/btc2bgroup.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"btc2bgroup","date":"2026-09-02 07:00:50","revision":3677301}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3677288,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3677288,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3677288,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3677288,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3677288,"resolution":"1","location":"assets","locale":"","width":1994,"height":1672},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3677288,"resolution":"2","location":"assets","locale":"","width":2300,"height":1369},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3677288,"resolution":"3","location":"assets","locale":"","width":1487,"height":1247}},"screenshots":{"1":"The BTCPay Server payment method settings in FluentCart.","2":"Bitcoin offered as a payment method at checkout.","3":"The BTCPay-hosted invoice page where the customer pays on-chain or over Lightning."}},"plugin_section":[],"plugin_tags":[1886,164835,250438,40289,6593],"plugin_category":[45],"plugin_contributors":[278781],"plugin_business_model":[],"class_list":["post-361458","plugin","type-plugin","status-publish","hentry","plugin_tags-bitcoin","plugin_tags-btcpay","plugin_tags-fluentcart","plugin_tags-lightning","plugin_tags-payment-gateway","plugin_category-ecommerce","plugin_contributors-btc2bgroup","plugin_committers-btc2bgroup"],"banners":{"banner":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/banner-772x250.jpg?rev=3677288","banner_2x":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/banner-1544x500.jpg?rev=3677288","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/icon-128x128.png?rev=3677288","icon_2x":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/icon-256x256.png?rev=3677288","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/screenshot-1.png?rev=3677288","caption":"The BTCPay Server payment method settings in FluentCart."},{"src":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/screenshot-2.png?rev=3677288","caption":"Bitcoin offered as a payment method at checkout."},{"src":"https:\/\/ps.w.org\/bitcoin-payments-for-fluentcart\/assets\/screenshot-3.png?rev=3677288","caption":"The BTCPay-hosted invoice page where the customer pays on-chain or over Lightning."}],"raw_content":"<!--section=description-->\n<p>This plugin adds BTCPay Server as a payment gateway inside FluentCart. At checkout the customer\nis redirected to your BTCPay Server's hosted invoice page, pays with Bitcoin on-chain or over\nLightning, and is redirected back to your store. BTCPay notifies your store through a webhook\nand the FluentCart order is marked paid.<\/p>\n\n<p>You run the payment infrastructure yourself. There is no account to open with us, no middleman\nholding your funds, and no percentage fee - the plugin talks only to the BTCPay Server instance\nwhose address you enter in the settings.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>One-time payments only (BTCPay has no native recurring crypto billing, so subscriptions are out of scope)<\/li>\n<li>Redirect checkout - BTCPay's hosted page handles on-chain vs. Lightning and currency selection<\/li>\n<li>Webhook-based payment confirmation, verified with HMAC-SHA256 (<code>BTCPay-Sig<\/code>)<\/li>\n<li>No external dependencies - talks to the BTCPay Greenfield REST API directly<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>FluentCart 1.2.5 or higher<\/li>\n<li>A BTCPay Server instance you control (self-hosted or on a third-party host), reachable over HTTPS<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to one external service: <strong>the BTCPay Server instance that you configure\nyourself<\/strong> in the plugin settings. No connection is made until you enter a host, Store ID and API\nkey. The plugin does not contact BTCPay Server's own servers, our servers, or any other\nthird-party service.<\/p>\n\n<p><strong>What is sent, and when<\/strong><\/p>\n\n<ul>\n<li>When a customer places an order with the Bitcoin payment method, the plugin sends the order\namount, the currency code, the order ID and reference, and the return\/redirect URLs of your\nstore to your BTCPay Server, in order to create an invoice. Your API key is sent as an\nauthorization header on this request.<\/li>\n<li>When your store loads the payment settings screen or verifies an invoice, the plugin requests\ninvoice and store details from your BTCPay Server.<\/li>\n<li>Your BTCPay Server sends webhook notifications back to your store when an invoice is settled,\nexpires, or becomes invalid.<\/li>\n<\/ul>\n\n<p>No customer personal data (name, email, address) is sent to BTCPay Server by this plugin, and no\ndata is sent anywhere else.<\/p>\n\n<p>Because the BTCPay Server instance is one you choose and operate, the applicable terms and\nprivacy policy are those of that instance and its host. BTCPay Server is free and open-source\nsoftware; its project terms and documentation are available at:<\/p>\n\n<ul>\n<li>Website: https:\/\/btcpayserver.org\/<\/li>\n<li>Documentation: https:\/\/docs.btcpayserver.org\/<\/li>\n<li>Source: https:\/\/github.com\/btcpayserver\/btcpayserver<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate FluentCart (1.2.5 or higher).<\/li>\n<li>Upload\/activate this plugin.<\/li>\n<li>In BTCPay Server, create a Greenfield API key: Account -&gt; Manage Account -&gt; API Keys -&gt;\nGenerate Key, with at least the \"Create an invoice\" (<code>btcpay.store.cancreateinvoice<\/code>) and\n\"View invoices\" (<code>btcpay.store.canviewinvoices<\/code>) permissions for your store.<\/li>\n<li>In WordPress go to FluentCart -&gt; Settings -&gt; Payment Methods -&gt; BTCPay Server and fill in:\n\n<ul>\n<li><strong>BTCPay Server Host<\/strong> - e.g. <code>https:\/\/btcpay.example.com<\/code><\/li>\n<li><strong>Store ID<\/strong> - from BTCPay Store Settings -&gt; General<\/li>\n<li><strong>API Key<\/strong> - the key created in step 3<\/li>\n<\/ul><\/li>\n<li>Set up the webhook (see below), then enable the payment method.<\/li>\n<\/ol>\n\n<h4>Webhook setup (required)<\/h4>\n\n<p>FluentCart is only told about completed payments through a BTCPay webhook. Without it, orders\nwill stay pending even after the customer pays.<\/p>\n\n<ol>\n<li>In BTCPay Server open your Store -&gt; Settings -&gt; Webhooks and click <strong>Create Webhook<\/strong>.<\/li>\n<li><p>Set the Payload URL to:<\/p>\n\n<p>https:\/\/YOUR-SITE.com\/?fluent-cart=fct_payment_listener_ipn&amp;method=btcpay<\/p>\n\n<p>(The exact URL for your site is shown on the plugin's settings screen.)<\/p><\/li>\n<li>Reveal and copy the webhook <strong>Secret<\/strong> before saving.<\/li>\n<li>Leave \"Send me everything\" enabled (the plugin ignores event types it doesn't need), save the webhook.<\/li>\n<li>Paste the secret into the <strong>Webhook Secret<\/strong> field in the FluentCart BTCPay settings and save.<\/li>\n<\/ol>\n\n<p>The plugin acts on <code>InvoiceSettled<\/code> (order marked paid) and <code>InvoiceExpired<\/code> \/ <code>InvoiceInvalid<\/code>\n(transaction marked failed if it wasn't already paid). All other events are acknowledged and ignored.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20account%20with%20you%20to%20use%20this%3F\"><h3>Do I need an account with you to use this?<\/h3><\/dt>\n<dd><p>No. The plugin connects only to the BTCPay Server instance you configure. There is no\nregistration, no API of ours involved, and no fee taken from your payments.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20run%20my%20own%20btcpay%20server%3F\"><h3>Do I need to run my own BTCPay Server?<\/h3><\/dt>\n<dd><p>You need a BTCPay Server instance you control. That can be one you self-host or one on a\nthird-party BTCPay host. The plugin does not provide one.<\/p><\/dd>\n<dt id=\"does%20this%20support%20subscriptions%3F\"><h3>Does this support subscriptions?<\/h3><\/dt>\n<dd><p>No. BTCPay Server does not support recurring crypto billing, so subscriptions are permanently\nout of scope for this gateway.<\/p><\/dd>\n<dt id=\"does%20this%20support%20refunds%20from%20the%20fluentcart%20admin%3F\"><h3>Does this support refunds from the FluentCart admin?<\/h3><\/dt>\n<dd><p>Not yet. Note that BTCPay refunds work differently from card processors: they generate a claim\nlink the customer uses to pull the funds, rather than pushing money back automatically. You can\nissue refunds manually from the BTCPay Server invoice screen.<\/p><\/dd>\n<dt id=\"is%20there%20a%20test%20mode%3F\"><h3>Is there a test mode?<\/h3><\/dt>\n<dd><p>No built-in sandbox toggle - test against a separate shop\/BTCPay store (e.g. one on testnet or\nregtest) instead.<\/p><\/dd>\n<dt id=\"why%20must%20the%20btcpay%20host%20be%20https%3F\"><h3>Why must the BTCPay host be https?<\/h3><\/dt>\n<dd><p>Your Greenfield API key is sent as an authorization header on every request. Over plain http it\nwould travel in the clear, so the settings screen rejects non-https hosts.<\/p><\/dd>\n<dt id=\"my%20orders%20stay%20pending%20after%20the%20customer%20pays.%20what%27s%20wrong%3F\"><h3>My orders stay pending after the customer pays. What's wrong?<\/h3><\/dt>\n<dd><p>Almost always a webhook problem. Check that the webhook exists in BTCPay, that its Payload URL\nmatches the one shown on the plugin settings screen, and that the Webhook Secret saved in\nWordPress matches the one BTCPay generated. BTCPay's webhook screen shows recent delivery\nattempts and their responses.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First submitted version after approval.<\/li>\n<li>Added the full GPLv2 license text and copyright notice.<\/li>\n<\/ul>","raw_excerpt":"Accept Bitcoin and Lightning payments in FluentCart through your own self-hosted BTCPay Server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361458","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=361458"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/btc2bgroup"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361458"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361458"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361458"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361458"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361458"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}