Description
SATFLUX WooCommerce links your WooCommerce store to Satflux.io. Accept Bitcoin and Lightning payments, sync orders to Satflux business invoicing, and sell event tickets through Satoshi Tickets.
Running your own BTCPay Server and only need Bitcoin payments? Use the official BTCPay for WooCommerce plugin instead. SATFLUX for WooCommerce is built for stores connected to Satflux.io.
Modules
- Connection – Link your store to Satflux.io (one-click connect with URL, API key and store ID).
- Payment – WooCommerce Bitcoin payment gateway via the BTCPay Greenfield API.
- Invoicing (optional) – Create Satflux accounting documents from orders. Requires a Satflux.io account (Satflux Pro) – invoicing does not work with a standalone BTCPay Server. Paid orders can be issued and emailed automatically; local-first mode queues orders in the Satflux integration inbox.
- Tickets (optional) – Sell event tickets via Satoshi Tickets on Satflux; sync stock and fulfill orders on payment.
Configure everything under WooCommerce Settings Satflux.
Requirements
- WordPress 5.8 or later
- WooCommerce 6.0 or later
- PHP 8.0 or later
- Satflux.io account (self-hosted BTCPay users: see the official BTCPay for WooCommerce plugin)
- Optional: Satflux Pro for business invoicing
- Optional: Satoshi Tickets on Satflux for the Tickets module
Upgrade from v1.x
If you used BTCPay GF Satoshi Tickets for WooCommerce v1.x, options migrate automatically to satflux_* keys on first load. Existing ticket products and orders are preserved.
External services
This plugin connects to external services to process Bitcoin payments, optional invoicing, and optional event tickets.
Satflux.io
Used for optional one-click BTCPay connection (OAuth-style redirect) and optional business invoicing when Satflux Pro is enabled.
When you connect via Satflux.io or enable invoicing, the plugin sends your store connection details (BTCPay Server URL, API key, store ID) and, for invoicing, WooCommerce order data (order ID, line items, customer billing details, totals) to the Satflux integration API at satflux.io.
This service is provided by Satflux.io: terms of use, privacy policy.
BTCPay Server
Required for Bitcoin payments and optional Satoshi Tickets. You connect to a BTCPay Server instance, typically provided through your Satflux.io account.
The plugin sends order and payment data when creating invoices (order ID, amount, currency, customer email, redirect URLs) and when fulfilling tickets (recipient names and emails). BTCPay Server sends webhook callbacks (InvoiceSettled) to your WordPress site to mark orders as paid.
For self-hosted BTCPay, you control the server and its data policies. See BTCPay Server documentation and the BTCPay Server project.
Installation
- Install and activate WooCommerce.
- Upload and activate SATFLUX WooCommerce.
- Go to WooCommerce Settings Satflux Connection.
- Click Connect to Satflux.io or enter BTCPay URL, API key, and store ID manually.
- Enable the Payment module and configure WooCommerce Settings Checkout Bitcoin.
- Save settings. The BTCPay webhook registers automatically when configured.
FAQ
-
Do I need Satflux.io?
-
Yes. This plugin is built for stores connected to Satflux.io – the one-click connection, business invoicing and Satoshi Tickets all run through it. If you run your own BTCPay Server and only need Bitcoin payments in WooCommerce, use the official BTCPay for WooCommerce plugin instead.
-
Can I use this with my own BTCPay Server?
-
For plain Bitcoin payments, use the official BTCPay for WooCommerce plugin. The Satflux features of this plugin – business invoicing and event tickets – require a Satflux.io account and do not work with a standalone BTCPay Server.
-
Does this work with block checkout?
-
Yes. The plugin declares compatibility with WooCommerce cart/checkout blocks and HPOS (custom order tables).
-
How do tickets work?
-
Enable the Tickets module, then manage events under the Satflux Events section. Ticket products sync stock from BTCPay. Customers pay with the Satoshi Tickets gateway; orders complete when BTCPay sends an InvoiceSettled webhook.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“SATFLUX for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “SATFLUX 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
2.0.23
- Order metabox now links each Satflux document (proforma and final invoice): “Open in Satflux” opens the document detail and “Download PDF” streams the cached PDF (downloading it from Satflux on first use).
- Customers can download their document from My Account: an “Invoice (PDF)” / “Proforma (PDF)” action on the orders list and a button on the order detail, restricted to the order’s owner.
- The final invoice created from a proforma now shows “Paid by proforma invoice XXX” on the PDF and in Satflux (requires an updated Satflux backend).
2.0.22
- Orders without a BTCPay invoice (cash on delivery, bank transfer) no longer fail document creation with “The btcpay invoice id field must be a string” – empty optional fields are omitted from the API payload.
2.0.21
- Deferred-payment gateways now have fixed stages independent of the “Create on status” setting: the proforma issues when the order reaches Processing or On hold, the final invoice when it completes. Previously a Completed trigger silently skipped the proforma. The global document type and trigger status only apply to methods set to “Use the settings above”.
2.0.20
- Per-payment-method invoicing: map each gateway to Instant payment (order completes right away, final invoice issues with the payment), Deferred payment (proforma issues at the trigger status, the final invoice – linked to the proforma – when the order is completed) or No document. Sensible defaults are preselected on first save (BTCPay/Satoshi/Stripe instant; cash on delivery, bank transfer, cheque deferred).
- Deferred orders attach the proforma PDF to the processing/on-hold customer emails and the final invoice PDF to the completed email. Importing the paid final invoice in Satflux also marks the linked proforma as paid.
2.0.19
- The invoicing settings screen now warns loudly when automatic invoicing is disabled in Satflux (paid orders would only wait in the inbox), with a link to enable it.
2.0.18
- Invoices now itemize every order component: fees (e.g. a Bitcoin payment discount, sent as a negative line) and each coupon as its own discount line. The invoice total matches the order total exactly, so paid orders are marked fully paid in Satflux instead of showing a leftover amount due.
2.0.17
- When automatic invoicing does not happen, the order note now explains why (order not reported as paid, automatic invoicing not enabled in Satflux company settings, no company linked).
2.0.16
- Automatic invoicing for paid orders (Satflux local-first mode): the plugin now understands auto-issued inbox responses – stores the invoice number, adds order notes about the queued customer email, and shows the number in the order metabox.
- “Email PDF” setting now actually works: the auto-issued invoice PDF is downloaded from the Satflux integration API into a protected uploads cache and attached to WooCommerce customer emails (processing, completed, invoice).
- Invoice generation also hooks the configured trigger status at an early priority so the PDF exists before WooCommerce composes the customer email for the same transition.
2.0.15
- Security review pass: every request-derived input is now read only behind the matching WooCommerce checkout nonce (update-order-review / woocommerce-process_checkout), admin AJAX nonce (check_ajax_referer) plus current_user_can capability check, or the signed user-bound OAuth state token. Read-only admin screen routing is annotated and sanitized.
2.0.14
- Fix Satflux OAuth connect: store session state in HttpOnly cookie instead of return URL query string.
2.0.13
- Fix migration running on plugins_loaded: defer to woocommerce_init so OAuth redirects are not broken by debug notices.
2.0.12
- Fix Connect to Satflux.io redirecting to wp-admin instead of satflux.io (allow Satflux host in wp_safe_redirect).
2.0.11
- Fix Satflux OAuth state: signed token (no transient) and fresh connect redirect on button click.
2.0.10
- OAuth exchange API path renamed to
/oauth-exchange; clearer error when satflux.io backend is missing the endpoint.
2.0.9
- Fix Satflux connect: exchange short connect code via API instead of credentials in redirect URL (requires satflux.io update).
2.0.8
- Fix Satflux OAuth connect: dedicated admin-post callback with state token so credentials and integration token save reliably.
2.0.7
- Fix invoice AJAX treating API errors as success; test Satflux integration token on Connection test; show re-connect notice when token is invalid.
2.0.6
- Fix invoicing module not loading when Satflux connection check failed on init; restore automatic and manual invoice generation.
2.0.5
- Fix Satflux store ID storage: persist Satflux UUID (not BTCPay store id) for inbox and check-in links; sync from
/connectionAPI after connect and test.
2.0.4
- Security: verify WooCommerce checkout nonces before reading payment_method from POST in tickets gateway discount logic.
2.0.3
- Security: remove webhook registration triggered by forged GET
updated=true. - Prefix rename to
satfluxwc_for options, AJAX actions, transients, and meta keys (with migration). - Fix invalid BTCPay Server GitHub URL in readme.
2.0.2
- Invoicing: support Satflux local-first integration inbox mode (pending orders, no auto-issue, inbox admin UI).
- Connect: show error notices for btcpay_not_configured and no_stores.
- Invoicing webhook: accept evolu_document_id in document.paid payload.
2.0.1
- WordPress.org review compliance: security hardening, external services documentation, WooCommerce dependency header.
2.0.0
- Rebrand to SATFLUX WooCommerce with modular architecture (payment, invoicing, tickets).
- Satflux.io OAuth quick connect at
/woocommerce/connect. - Automatic migration from legacy
btcpay_satoshi_*options. - General Bitcoin gateway separate from Satoshi Tickets gateway.
- WooCommerce block checkout and HPOS support.