PayCrypto.Me for WooCommerce
PayCrypto.Me for WooCommerce lets your store accept Bitcoin directly into wallets and nodes you control — no custodial processor, no third-party API holding your funds, no percentage cut on every sale.
Two independent, fully self-hosted payment methods, both included:
Bitcoin On-Chain Give the plugin an xPub, yPub or zPub (or a single address) and it derives a fresh, never-reused receiving address for every order via standard HD derivation — your wallet software does the rest. Works on mainnet or testnet, so you can rehearse the full checkout flow with worthless test coins before going live.
Bitcoin Lightning Network Connect the plugin straight to your own BTCPay Server instance or lnd node (REST API, with macaroon authentication and optional TLS certificate pinning). Invoices are created and shown to the customer in seconds — ideal for instant, low-fee payments. A built-in "Test connection" button in the settings screen confirms your node is reachable before you enable the method.
Built for a modern WooCommerce store
- Checkout, your way — works with both the WooCommerce Blocks (Cart & Checkout) experience and the classic shortcode checkout.
- High-Performance Order Storage (HPOS) — declared and tested compatible with WooCommerce's Custom Order Tables.
- Express Payment button — an optional one-click "Buy with Bitcoin" button on the checkout page, with a configurable icon position.
- QR code everywhere it matters — a scannable payment QR (with copy-to-clipboard and "Open in wallet" deep link) on the Thank You page, in My Account → Orders, and on the admin order screen, so both you and the customer always see the same payment details.
- Non-custodial by design — the plugin never takes possession of funds; it only derives addresses and requests invoices from infrastructure you own.
- Debug logging — every payment attempt is logged through the native WooCommerce logger (WooCommerce → Status → Logs, source
paycrypto_me), so troubleshooting a stuck order doesn't require guesswork. - Translation-ready — text domain
paycrypto-me-for-woocommerce, with complete translations included for Portuguese (Brazil), Spanish, French, German, Italian, Russian and Chinese (Simplified). - Developer-friendly — before/after payment hooks, filters over the invoice arguments sent to BTCPay/lnd, and a filter over the final payment data, so custom logic can hook in without touching plugin code.
What this plugin intentionally does not do
To keep the free plugin simple and auditable, two things are left out on purpose and reserved for an upcoming official premium add-on that plugs into this same base via hooks — no fork, no code duplication:
- Automatic payment confirmation. Today, order status is moved forward manually once you've verified the payment yourself (e.g. in your node or block explorer). Automatic confirmation via BTCPay webhooks / lnd polling is planned for the premium add-on.
- Fiat → sats conversion. Lightning invoices are currently created as zero-amount (the wallet reads the amount from the invoice itself once the add-on populates it); automatic conversion of the order's fiat total into an exact BTC/sats amount is also planned for the premium add-on.
Bitcoin is currently the only supported cryptocurrency (on-chain and Lightning) — this keeps the codebase small and well-tested rather than spreading support thin across many chains.
Privacy
This plugin stores the following data needed to process Bitcoin payments:
- Your wallet's extended public key (xPub/yPub/zPub) or single receiving address, and every address derived from it, in dedicated database tables (
{prefix}paycrypto_me_bitcoin_wallet_xpubkeys,{prefix}paycrypto_me_bitcoin_derivation_indexes,{prefix}paycrypto_me_bitcoin_transactions_data). - Lightning node connection details you provide (BTCPay Server or lnd URL, API key/macaroon, optional TLS certificate) in the gateway settings (
wp_options), and every created invoice in{prefix}paycrypto_me_lightning_invoices. - No customer personal data beyond what WooCommerce already stores with the order — the plugin only attaches the payment address/invoice details as order meta.
None of this data leaves your WordPress installation: the plugin only talks to your own wallet-derivation logic and to the BTCPay Server/lnd node you configure, never to a third-party API.
On uninstall, both gateways' settings are deleted — including the Lightning node credentials (API key, macaroon, TLS certificate), so those secrets are not left behind in your database.
The payment record tables are deliberately kept ({prefix}paycrypto_me_bitcoin_wallet_xpubkeys, {prefix}paycrypto_me_bitcoin_derivation_indexes, {prefix}paycrypto_me_bitcoin_transactions_data, {prefix}paycrypto_me_lightning_invoices), so the payment history of past orders stays intact for accounting and reconciliation after the plugin is removed. Drop them manually (via your database) if you no longer need them.
Support
For support, visit https://paycrypto.me/ or open an issue on the plugin's GitHub repository.
Credits
Developed by PayCrypto.Me — https://paycrypto.me/
Built with the open-source bitwasp/bitcoin library for HD key derivation and endroid/qr-code for QR code generation.
