{"id":397339,"date":"2026-11-02T19:50:02","date_gmt":"2026-11-02T19:50:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bitluso-pay\/"},"modified":"2026-11-02T19:49:47","modified_gmt":"2026-11-02T19:49:47","slug":"bitluso-pay","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bitluso-pay\/","author":23567722,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"BitLuso Pay","header_author":"BitLuso","header_description":"Accept Bitcoin and Lightning payments in WooCommerce. BitLuso never holds your funds: payments go directly to your wallet.","assets_banners_color":"","last_updated":"2026-11-02 19:49:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/bitluso.pt","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"bitluso","date":"2026-11-02 19:49:47","revision":3780631}},"upgrade_notice":{"1.3.0":"<p>Updates now arrive from WordPress.org. Uninstalling the plugin now deletes its stored API credentials \u2014 deactivating does not.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3780636,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3780636,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3780636,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The BitLuso payment method at the block checkout.","2":"The settings screen: an API key, an API secret, and nothing else to get wrong.","3":"A completed order, settled by a verified callback from BitLuso."}},"plugin_section":[],"plugin_tags":[1886,12611,40289,6593,286],"plugin_category":[45],"plugin_contributors":[290388],"plugin_business_model":[],"class_list":["post-397339","plugin","type-plugin","status-publish","hentry","plugin_tags-bitcoin","plugin_tags-cryptocurrency","plugin_tags-lightning","plugin_tags-payment-gateway","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bitluso","plugin_committers-bitluso"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/bitluso-pay\/assets\/icon.svg?rev=3780636","icon":"https:\/\/ps.w.org\/bitluso-pay\/assets\/icon.svg?rev=3780636","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>BitLuso Pay adds Bitcoin and Lightning as a payment method at your WooCommerce checkout.<\/p>\n\n<p>The customer chooses BitLuso, is sent to a payment page hosted by BitLuso, pays there, and comes\nback to your order confirmation. Your shop never handles an address, an invoice or a private key,\nand no card or wallet details are entered on your site.<\/p>\n\n<h4>How an order is settled<\/h4>\n\n<p>The customer's return to your shop does not mark the order paid \u2014 they may close the tab or lose\nsignal. BitLuso calls your shop back over a signed HTTPS request instead, and the order moves only\non that:<\/p>\n\n<ul>\n<li><strong>Payment detected<\/strong> \u2014 the order goes on hold while the transaction confirms.<\/li>\n<li><strong>Payment settled<\/strong> \u2014 the order is completed, stock is reduced and your usual WooCommerce emails go out.<\/li>\n<li><strong>Payment late or partial<\/strong> \u2014 the order goes on hold with a note explaining what happened, so money a customer really sent is never quietly discarded.<\/li>\n<li><strong>Payment reverted<\/strong> \u2014 the order goes back to pending, because a transaction that was detected can still be replaced before it confirms.<\/li>\n<li><strong>Payment expired or cancelled<\/strong> \u2014 the order is cancelled.<\/li>\n<\/ul>\n\n<p>The plugin checks the amount and the currency against the order before completing it, and refuses a\npayment that does not match.<\/p>\n\n<h4>Setup<\/h4>\n\n<p>Two fields. Paste the API key and API secret from your BitLuso dashboard into\n<strong>WooCommerce \u2192 Settings \u2192 Payments \u2192 BitLuso Pay<\/strong> and save. Saving verifies the credentials and\nregisters your shop's callback URL with BitLuso for you \u2014 there is no URL or secret to copy in the\nother direction.<\/p>\n\n<h4>Refunds<\/h4>\n\n<p>Refunds are issued from your BitLuso dashboard, not from WooCommerce. A crypto refund needs a\ndestination address that your shop does not have, so the plugin reports an error rather than\nrecording a refund that never happened.<\/p>\n\n<h4>External service<\/h4>\n\n<p>This plugin is a client for <strong>BitLuso<\/strong>, a payment service operated by BitLuso\n(<a href=\"https:\/\/bitluso.pt\">https:\/\/bitluso.pt<\/a>). The plugin is not useful without a BitLuso merchant account: the payment\npage and the settlement run on that service. The funds do not \u2014 payments go directly to your\nwallet.<\/p>\n\n<p>Your site contacts <code>https:\/\/portal.bitluso.pt<\/code> in exactly three situations, and at no other time:<\/p>\n\n<ol>\n<li><strong>When you save the settings screen<\/strong> with the gateway enabled. Your API key is sent so the\ncredentials can be verified, together with your shop's callback URL so BitLuso knows where to\nreport payments. Nothing is sent while the gateway is disabled, and nothing is sent on\nactivation.<\/li>\n<li><strong>When a customer places an order<\/strong> and chooses BitLuso at checkout. To open the payment session\nthe plugin sends the order total and currency, the order number and order key, the line items\n(name, SKU, quantity, price), the customer's billing name, email address and country, your\nshop's return and cancel URLs, the site language, and your site's address (<code>home_url()<\/code>). This\nis personal data belonging to your customer, sent because it is what the payment requires.<\/li>\n<li><strong>When BitLuso reports a payment<\/strong>, BitLuso calls your site back. This is an inbound request,\nsigned with a shared secret and rejected if the signature, the timestamp or the order key does\nnot match.<\/li>\n<\/ol>\n\n<p>No analytics, telemetry or usage data is collected, and the plugin does not contact any other\nservice.<\/p>\n\n<p>Your customers also reach BitLuso directly: the payment page is hosted on <code>portal.bitluso.pt<\/code>, so\nBitLuso receives their IP address and browser details when they arrive there, as any site does.<\/p>\n\n<p>Using this plugin means all of that is handled under BitLuso's terms of use and privacy policy\n(both in Portuguese):<\/p>\n\n<ul>\n<li>Terms of use: <a href=\"https:\/\/bitluso.pt\/termos\/\">https:\/\/bitluso.pt\/termos\/<\/a><\/li>\n<li>Privacy policy: <a href=\"https:\/\/bitluso.pt\/privacidade\/\">https:\/\/bitluso.pt\/privacidade\/<\/a><\/li>\n<\/ul>\n\n<p>If your shop serves customers in the EU, list BitLuso as a recipient of personal data in your own\nprivacy policy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin. WooCommerce 8.0 or newer must be active.<\/li>\n<li>Create an API key in your BitLuso dashboard, under <strong>Integra\u00e7\u00f5es \u2192 WooCommerce<\/strong>. The secret is\nshown only once.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Payments \u2192 BitLuso Pay<\/strong>, paste the API key and API secret, tick\n<strong>Enable BitLuso Pay<\/strong> and save.<\/li>\n<li>Saving verifies the credentials and registers the callback URL. A confirmation notice tells you\nwhether you are connected in live or test mode.<\/li>\n<\/ol>\n\n<p>Your shop must be reachable over HTTPS from the public internet, or BitLuso cannot report payments\nback to it. A shop on localhost will take payments but never complete the orders.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20bitluso%20account%3F\"><h3>Do I need a BitLuso account?<\/h3><\/dt>\n<dd><p>Yes. The plugin is a client for the BitLuso payment service; it does nothing on its own. See the\nExternal service section above.<\/p><\/dd>\n<dt id=\"which%20coins%20can%20my%20customers%20pay%20with%3F\"><h3>Which coins can my customers pay with?<\/h3><\/dt>\n<dd><p>Whatever your BitLuso store has enabled \u2014 on-chain Bitcoin, Lightning, or both.\nThe choice is made on the BitLuso payment page, so you never have to configure it here.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20checkout%3F\"><h3>Does it work with the block checkout?<\/h3><\/dt>\n<dd><p>Yes, and with the classic checkout. The plugin also declares compatibility with High-Performance\nOrder Storage.<\/p><\/dd>\n<dt id=\"why%20is%20my%20order%20on%20hold%20instead%20of%20completed%3F\"><h3>Why is my order on hold instead of completed?<\/h3><\/dt>\n<dd><p>An order goes on hold when the payment was detected but is not yet confirmed, when it arrived after\nthe deadline, when only part of it arrived, or when the amount or currency did not match the order.\nThe order notes say which, and the payment is waiting for you in your BitLuso dashboard.<\/p><\/dd>\n<dt id=\"can%20i%20refund%20from%20woocommerce%3F\"><h3>Can I refund from WooCommerce?<\/h3><\/dt>\n<dd><p>No. Refund the payment from your BitLuso dashboard \u2014 a crypto refund needs the customer's address,\nwhich your shop never sees.<\/p><\/dd>\n<dt id=\"can%20i%20point%20the%20plugin%20at%20a%20staging%20portal%3F\"><h3>Can I point the plugin at a staging portal?<\/h3><\/dt>\n<dd><p>Yes. Define the URL in <code>wp-config.php<\/code> before WordPress loads plugins:<\/p>\n\n<pre><code>define( 'BITLUSO_PAY_URL', 'https:\/\/qa.portal.bitluso.pt' );\n<\/code><\/pre>\n\n<p>A <code>bitluso_pay_base_url<\/code> filter is available for a multisite install whose shops belong to different\nportals.<\/p><\/dd>\n<dt id=\"where%20are%20the%20logs%3F\"><h3>Where are the logs?<\/h3><\/dt>\n<dd><p>Tick <strong>Debug log<\/strong> on the settings screen, then read <strong>WooCommerce \u2192 Status \u2192 Logs<\/strong>, source\n    bitluso_pay.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<li>Updates now come from WordPress.org; the plugin no longer checks the BitLuso portal for new versions.<\/li>\n<li>Uninstalling the plugin now deletes its settings, including the stored API credentials.<\/li>\n<li>Hardened the callback listener: request headers and the values BitLuso reports are sanitized before use.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Removed the Title, Description and portal URL settings. The checkout shows the BitLuso button, and the portal URL is now a constant that <code>wp-config.php<\/code> can override.<\/li>\n<li>The callback signing secret is issued by BitLuso when the shop registers its callback URL, instead of being pasted in by hand.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Cart and Checkout blocks support, and High-Performance Order Storage compatibility.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: hosted Bitcoin and Lightning checkout for WooCommerce.<\/li>\n<\/ul>","raw_excerpt":"Accept Bitcoin and Lightning payments in WooCommerce. BitLuso never holds your funds: payments go directly to your wallet.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/397339","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=397339"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bitluso"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=397339"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=397339"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=397339"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=397339"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=397339"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=397339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}