Skip to content

Release history

BTCPay Server releases

Bitcoin and other cryptocurrencies payment processor.

All releases

17 shown

v2.3.9 Bug fix

Minor fixes and improvements.

Full changelog

Fixes

  • Fix: Server not recovering after a plugin crash (#7335) @NicolasDorier
  • Fix: Xpub became unparseable in 2.3.8 (#7334) @NicolasDorier
v2.3.8 Mixed
Notable features
  • LUD-21 (LNURL-pay Verify) support
  • Subscription reporting
  • PoS login QR code generation
Full changelog

New Features

  • API/Subscriptions: Add update offering route (#7296) @NicolasDorier
  • API/Subscriptions: Add update offering plan (#7297) @NicolasDorier
  • PoS: View-only store users can browse login links and invoices from the Update PoS page (#7305) @NicolasDorier
  • PoS: Store users can now generate a login QR code for any other store user (#7303) @NicolasDorier
  • Add LUD-21 (LNURL-pay Verify) support (#7250) @r0ckstardev
  • Add reporting for subscriptions (#7299) @TChukwuleta

Fixes

  • Fix: Reserved addresses page should not show addresses from old wallets (#7304) @thgO-O
  • Fix: QR code logins should not expire after only a few hours (#6801 #7293) @TChukwuleta
  • Fix: Avoid double translation of already localized view content (#7314 #7315) @Sanja22B
  • Fix: Phoenixd incorrectly marks payment as partial (#7325) @NicolasDorier
  • Fix: Top-Up invoices paid by BOLT11 should become settled (#7322 #7323) @notraiday

Miscellaneous

  • Remove support for importing keys to Bitcoin wallet via RPC (#7307) @NicolasDorier
v2.3.7 Breaking risk
Breaking changes
  • Plugin updates required for .NET 10 compatibility
Notable features
  • Subscription upgrade/downgrade at period end
  • RTL language support (Arabic, Hebrew, Farsi)
  • Wallet transaction comments
Full changelog

This release is the first release using .NET 10.
We invite plugin developers to follow our guide for a smoother migration.

We recommend that users update their plugins after upgrading to 2.3.7.

New Features

  • Wallets: Add the ability to add comment to the transaction on the Send view (#6687 #7265) @Abhijay007
  • Subscriptions: Add manual subscription date editing for admins (#7231 #7257) @Abhijay007
  • Invoices: When the lightning provider supports it, top-up invoices now generate an amount-less BOLT11 instead of LNURL. (#7263) @bigg-bb
  • Plugins: Add the Update button to the disabled plugins section (#7051 #7260) @rollforsats
  • Subscriptions: SubscriberDisabled webhook now includes the reason why the subscriber has been disabled (#7270) @NicolasDorier
  • Greenfield: Implement UpdateCrowdfundApp endpoint and client method (#7202) @webiumsk
  • Subscriptions/API: Can delete subscribers via UI and API (#7206 #7254) @NicolasDorier
  • Invoices: Add RTL Language support (Arabic, Hebrew, and Farsi) for invoice checkout (#444 #7259) @Abhijay007
  • Invoices: Show payment method on receipt (#7174 #7226) @TChukwuleta
  • Subscriptions: Allow upgrade/downgrade at the period end (#7147 #7258) @TChukwuleta

Fixes

  • Fix: If an admin was accessing a user's store from a user list, it was returning error 404 @NicolasDorier
  • Emails: skip SMTP AUTH when Login and Password are empty (#7267 #7269) @ThomsenDrake
  • Fix: Wallet balance time period switch was broken (#7246 #7247) @Abhijay007
  • Exclude trial subscribers from monthly revenue (#7272 #7273) @Abhijay007
v2.3.6 Maintenance
Security fixes
  • API key permission analysis metadata
  • CSRF protection applied globally
Notable features
  • Wallet label filter search
  • Payment method in Get invoices endpoint
Full changelog

New Features

  • Wallets: Add filtering using search bar on the label filter dropdown when labels exceed more than 20 (#7210 #7109) @rollforsats
  • API: Include a payment method in the Get invoices endpoint (#6757 #2394) @TChukwuleta
  • BTCPay Invoice Modal: Add a paymentMethodId parameter (#7209 #7208) @pwnfoo
  • Security: Include API key permission analysis metadata (#6771 #3196) @TChukwuleta
  • A plugin can now create new permission policies (#7215 #7156) @NicolasDorier

Fixes

  • Fix: Dashboard layout issues on mobile, regression from 2.3.5 (#7223 #7217) @NicolasDorier
  • Fix: Subscriber portal sessions can be created again via API (#7200 #7198) @NicolasDorier
  • Fix: Can't upgrade/downgrade a Lifetime subscription (#7194 #7193) @NicolasDorier

Improvements

  • Update Wasabi wallet folder access instructions (#7192) @nopara73
  • Security: Apply CSRF protection globally to UI controllers (#7199) @NicolasDorier
  • Update many missing translations from the language packs @Abhijay007

Regression

  • Revert: Dashboard: Support multi-crypto wallet balance widgets (#7223) @NicolasDorier
v2.3.5 New feature
Notable features
  • Multi-crypto wallet balance widgets
  • Custom textbox for checkout
  • CoinDCX and Desiboard rate providers
Full changelog

New Features

  • Allow BTCPay Server to start without any on-chain payment methods with BTCPAY_NODEFAULTCHAIN (#7180) @NicolasDorier
  • Add custom textbox for checkout (#7182) @pavlenex
  • Add CoinDCX rate provider for BTC/INR rates (#7173) @Abhijay007
  • Add Desiboard rate provider for BTC/USD and BTC/INR rates (#7169) @Abhijay007
  • Dashboard: Support multi-crypto wallet balance widgets (#7110) @Sup3rlativ3
  • Ability to update a previously downloaded language pack (#7185) @Abhijay007

Fixes

  • Fix: Images in Point of Sale Cart doesn't show on mobile (#7190) @NicolasDorier
  • Fix: Payments getting undetected on LND when the node restarted (#7176) @rockstardev
  • Fix: Do not show claim button in pull payments if it is archived (#7154 #7167) @NicolasDorier
  • Fix: Unable to edit roles when navigating from store level to Roles (#7157) @rockstardev

Improvements

  • Throttle Greenfield API calls with Basic auth (#7177) @NicolasDorier
  • Added missing translations strings for various files (#6897) @Abhijay007
v2.3.4 Bug fix
Notable features
  • Webhook deliveryTime property
  • Subscriber metadata in email placeholders
Full changelog

New Features

  • Set LUNO as the default exchange for ZAR currency @NicolasDorier
  • Add a deliveryTime property to webhook deliveries in the API and UI (#7140) @NicolasDorier
  • Add subscriber's metadata to email placeholders (#7150) @NicolasDorier

Fixes

  • Fix: Deleting webhooks could time out (#7151) @NicolasDorier
  • Fix: Offering and Customer metadata email placeholders couldn't be used (#7150) @NicolasDorier
  • Subscribers with enough credits were receiving payment reminder emails and not being automatically renewed (#7108) @NicolasDorier
  • Fix scan-qrcode icon alignment (#7116) @Psycarlo
  • Public node info page no longer lists local network IPs (#7131 #7028) @NicolasDorier
  • Forms with an optional empty email field can now be submitted (#7117 #7134) @NicolasDorier
  • Keypad POS now displays “Any amount” items correctly (#6697 #7137) @NicolasDorier
  • CanModifyInvoices permission now includes viewing Lightning invoices for the store (#6867 #7138) @NicolasDorier
  • Certain HTTP status codes no longer cause webhooks to be retried (#3146 #7139) @NicolasDorier

Miscellaneous

  • Test suite migrated from Selenium to Playwright @Abhijay007
  • Add docs for subscriptions webhooks (#7149 #7152) @NicolasDorier
v2.3.3 Breaking risk
Breaking changes
  • CoinGecko and CoinGecko-based rate sources discontinued
  • Invoice creation fails without alternative rate provider selected
  • LTC default rate source changed from CoinGecko to Kraken
Notable features
  • Cold wallet transaction support via Greenfield API
  • Norwegian language pack
Full changelog

CoinGecko's API now mandates the use of an API Key for accessing rates.
Consequently, we've decided to discontinue support of CoinGecko-based rate sources.
For those who relied on CoinGecko, invoice creation will now fail, and you must choose an alternative rate provider.

In some circumstances, we were using CoinGecko rate providers to calculate the exchange rate (for example, for LTC).

New features

  • Cold wallet transaction support via Greenfield API (#7068) @Aeroverra
  • Add Norwegian lang in the available language packs (https://github.com/btcpayserver/btcpayserver-translator/pull/12) @schjonhaug

Bug fixes

  • Fix: It shouldn't be possible to create an invoice when all store users are disabled (#7100) @NicolasDorier
  • Fix: Remove CoinGecko and any rate source provided by them (#7096) @NicolasDorier
  • Fix: Change the default rate source for LTC conversion from CoinGecko to Kraken. (#7096) @NicolasDorier
  • Fix: In monetization, it was impossible to recreate a user with email of a previously deleted user (#7097 #7082) @NicolasDorier
  • Fix: Backend translations would sometimes fail to load during startup (#7083) @NicolasDorier
  • Fix: Subs plan checkout always showed 'per month' (#7080) @NicolasDorier
  • Fix: Editing a plan subscription set the Currency back to USD (#7079) @NicolasDorier
  • Fix: Disable zero amount invoices in PoS doesn't show when Keypad mode is selected (#7071) @NicolasDorier
  • Fix: Adding labels payment requests would sometimes not work as expected (#7087) @thgO-O
  • Fix: PSBT Scan via Camera was not closing the modal dialog when signing a multisig transaction (#6925 #7089) @NicolasDorier
  • Fix: Selecting some rate source would crash the Stores/Rates page (#7095) @NicolasDorier

Miscellaneous

  • Include UI extension point for pos (#7073) @TChukwuleta
  • CI: Make sure release commits are properly signed (#7077 #7069) @Abhijay007
  • CI: Make sure the list of language packs available in the UI reflect the translation repository. @Abhijay007
v2.3.2 Bug fix
Notable features
  • PoS ability to disable zero-amount invoices
Full changelog

This release fixes an important regression from 2.3.1 affecting support for payment methods other than BTC and Lightning.
It also fixes several bugs in the new subscriptions feature that have been reported since the last release.

Bug fixes

  • Fix: Alternative payment methods would not show on the invoice checkout when the BTC Unified QR code was enabled (#7053) @NicolasDorier
  • Fix: Payment reminders were not sent to subscribers (#7055 #7064) @NicolasDorier
  • Fix: In the UI, the prefilled email set when creating a new subscriber was ignored (#7059) @NicolasDorier
  • Fix: The Subscriptions Mail tab did not always warn about unconfigured emails @NicolasDorier
  • Fix: The QR code on the subscription plan checkout did not redirect to the correct page (#7054 #7058) @yemmyharry

New features

  • PoS: Ability to disable zero-amount invoices (#7035 #7066) @NicolasDorier
v2.3.1 Bug fix

Minor fixes and improvements.

Full changelog

Some plugins such as Ecwid plugin would crash BTCPay Server at startup in a loop. (See this issue)

This release fixes that issue.

If after upgrading to 2.3.0, you are unable to access BTCPay Server due to this issue, you will need to update through command line. You can contact us on chat.btcpayserver.org, if you need some support.

Bug fixes

  • Fix: Lost server email settings after update to 2.3.0 (#7047 #7038) @NicolasDorier
  • Disable all plugins when BTCPay Server crash during startup (#7046) @NicolasDorier
  • Fix: When a user is deleted, the monetized subscriber should also be deleted (#7044 #7048) @NicolasDorier

Improvements

  • Hide payment method selector for single payment method invoices (#6980) @AshwinGajbhiye
  • Show payment request title in wallet transaction tooltip (#6982) @AshwinGajbhiye
v2.3.0 New feature
Notable features
  • Subscriptions feature with Greenfield API
  • Payment request reports with filtering
  • Email rules with conditions and placeholders
Full changelog

See our blog post for more detailed information.

New features

  • Subscriptions: Allow merchants to accept recurring payments from customers. (#6922) @NicolasDorier
  • Greenfield: Subscriptions API (#7022) @NicolasDorier
  • Report: Add payment requests reports (#7015) @thgO-O @rockstardev
  • Add better filtering capabilities to in the payment requests list (#7015) @thgO-O @rockstardev
  • Ambassadors can monetize access to their server. (#6986) @NicolasDorier
  • Ability to install language packs for the backend UI. (#6943) @Abhijay007
  • Email rules
    • Add a Condition field to allow more complex conditions for triggering emails. (#7016) @NicolasDorier
    • Add documentation for the various allowed placeholders. (#7016) @NicolasDorier
    • Add CC and BCC fields. (#6979) @NicolasDorier
    • The Subject, To, CC, and BCC fields now support placeholders. (#7016) @NicolasDorier
  • Add the concept of Server Email Rules
    • Admins can customize the following server emails: User: Password Reset Requested, User: Email Confirmation, User: Invitation, User: Account Approved, Admin: Approval Request. (#6979) @NicolasDorier

Bug fixes

  • Fix: In Server Email, the rich text box (Summernote) was not saving changes in code view. (#6979) @NicolasDorier
  • Work around a browser bug where SVG icons stop displaying when served from cache. (#7003) @NicolasDorier
  • Fix: Denied 403 pages if denied access to the default store (#6976) @NicolasDorier
  • Fix: A wallet report was showing a negative balance change in green (#6974) @NicolasDorier
  • Log out users immediately when it is disabled (#6971) @NicolasDorier
  • Fix: Unable to reset email settings (#6963) @NicolasDorier
  • Fix: Unable to copy fiat amount in Invoice Checkout (#6933 #7036) @rockstardev

Improvements

  • Hide the wallet creation option when permissions are disabled. @rockstardev
  • Improve the error message for invalid PSBTs in “Sign with Seed”. (#6920) @NicolasDorier
  • Periodically clean up expired invoices, checkout plans, and portal sessions from the database. (#7018) @NicolasDorier
v2.2.1 Bug fix

Minor fixes and improvements.

Full changelog

Bug fixes

  • Fix: Updating store settings would silently fail where there was a validation issue @NicolasDorier
  • Fix: Ensure unlisted installed plugins appear as updatable (#6896 #6893) @thgO-O
  • Fix: Icon spacing issues in multiple UI components (#6886 #6880) @bc1cindy
  • Fix: In Wallet Send page, coin selection would unexpectedly also clear labels (#6885 #6883 #6676) @thgO-O
  • Fix: Periodic tasks would sometimes stop firing (#6898) @NicolasDorier
  • Fix: Date column header isn't aligned properly (#6914) @NicolasDorier
v2.2.0 Breaking risk
Breaking changes
  • Invoice Export columns renamed and reordered
  • Legacy Invoice Export requires plugin installation for compatibility
Notable features
  • Wallet policy and miniscript support
  • Invoice metadata export
  • Transaction fee information in reports
Full changelog

We recommend updating NBXplorer to version 2.5.28 to take full advantage of the features in this release.

Breaking change: This release renames and reorders the columns of the Legacy Invoice Export, now called Invoice Export. While we encourage you to utilize the updated report, we recognize this may disrupt workflows that rely on the old format.

If you need to restore the Legacy Invoice Export, install the Legacy Invoice Export plugin.

As a server administrator, go to Manage Plugins, search for [LegacyInvoiceExport], install it, and restart your server.

Features

  • Renamed and reordered columns in the Invoice report (#6835) @NicolasDorier
  • Export all invoice metadata in the Invoice report (#6835) @NicolasDorier
  • Added wallet policy/miniscript support (#6765) @NicolasDorier
  • Added transaction fee and fee rate information in the wallet transaction list and the wallet report (#6857) @NicolasDorier
  • Added Tracking of exchange rate when a new transaction is detected in the wallet (#6841) @NicolasDorier
  • Included rate information in the wallet transaction list, wallet report, and invoice report (#6841) @NicolasDorier
  • Added ability to track additional rates via Additional rates to track in store settings (#6841) @NicolasDorier
  • Fix crowdfund number formatting for non-English locales (#6865) @bc1cindy
  • API: Added endpoint to retrieve invoice refund trigger data (#6818) @IzyPro
  • API: Enabled fallback exchange rate via API (#6839) @Abhijay007
  • Asking for confirmation to display QR code if user is store owner (#6878) @rockstardev
  • Automatic installation of plugin dependencies (#6858 #6873) @NicolasDorier @thgO-O

Bug Fixes

  • Fixed line break rendering in dropdowns using html-translate (#6820) @bhola-dev58
  • Fixed timezone mismatch in receipts (#6832 #6756) @thgO-O
  • Fix: A plugin could not use types provided by another plugin. (#6851) @NicolasDorier
  • Fix time icon spacing in wallet transactions header (#6877) @bc1cindy

Improvements

  • Improved responsiveness and UX of the Reporting page (#6846) @NicolasDorier
  • Added a "Reporting" button for easier access to reports from the invoice and wallet transactions lists (#6841 #6835) @NicolasDorier
v2.1.6 Bug fix
Notable features
  • Address browsing in Wallet Receive tab
  • Payment requests marked as settled
Full changelog

Features

  • Wallet: Ability to browse the addresses generated through the Receive tab (#6796) @thgO-O
  • Allowed updating payment requests as settled (#6825 #6792) @Abhijay007

Bug fixes

  • Fix: After connection string replacement, lightning payment would not be detected for 1 min (#6822) @NicolasDorier
  • Fix: In Email Rules show "Send the email to the buyer" checkbox only if trigger supports it (#6653 #6815) @AdamWroblewski
  • Fix: Failure to sign with Vault when a PSBT size exceeds 32KB (#6809) @NicolasDorier
  • Do not prevent the processing of other pending payouts if a store's lightning server is unresponsive @NicolasDorier
v2.1.5 Bug fix
Notable features
  • Enhanced manual Coin Selection with filters
  • Clear All filter for Invoices
Full changelog

Features

  • Wallet: Enhance manual Coin Selection with advanced filters and improved UX (#6755 #6685) @thgO-O
  • Added "Clear All" filter to Invoices (#6776 #5156) @Abhijay007

Bug fixes

  • Fix connection failure with phoenixd on mainnet (https://github.com/btcpayserver/BTCPayServer.Lightning/pull/170) @armelinw
  • PoS: Attempting to pay via Custom Amount in Product List mode would returns error 404. (#6786) @NicolasDorier
  • PoS: When using the Keypad (with cart), the button to proceed to checkout wasn't enabled if all selected items in the cart were free. (#6785) @NicolasDorier
  • PoS: When paying an item via Print View, the tax were not applied and receipt wasn't showing the item purchased. (#6788) @NicolasDorier
  • PoS: When paying an item via Print View, the custom amount option wasn't working. (#6788) @NicolasDorier
v2.1.4 Bugfix

Fixed keypad crash introduced by 2.1.3.

Changelog

Bug fixes

  • Fix keypad crash introduced by 2.1.3
v2.1.3 Bug fix

Minor fixes and improvements.

Full changelog

Bug fixes

  • Free items in the PoS were generating top-up invoices rather than settled invoices (#6780) @NicolasDorier
  • When a POS has a form, the amount adjusts incorrectly (#6782) @Kukks
v2.1.2 New feature
Notable features
  • PoS tax rates on items
  • Phoenixd lightning support
  • New invoice lifecycle webhooks
Full changelog

New features

  • POS: Apply tax rates to items, show in checkout/receipts (#6724 #6712) @NicolasDorier
  • POS: Improved total breakdown in receipts and cart (#6739) @NicolasDorier
  • POS Report: Add tip and subtotal (#6749) @NicolasDorier
  • New webhooks: InvoiceExpiredPaidPartial, InvoicePaidAfterExpiration (#5936 #6723) @rockstardev
  • Added Coinmate rate provider, recommended for CZK (#6707 #6725) @d4rp4t
  • Can RBF sweeping transactions (#6748) @NicolasDorier
  • Admin can change default store templates (#6704) @NicolasDorier
  • Store owners can configure fallback rate source (#6705) @NicolasDorier
  • Greenfield: Include amountPaid on greenfield invoices (#6747 #2525) @TChukwuleta
  • Phoenixd support (https://github.com/btcpayserver/BTCPayServer.Lightning/pull/169 https://github.com/btcpayserver/btcpayserver-docker/pull/987) @pm47 @armelinw

Bug fixes

  • Yadio rate lookup failure (#6743 #6729) @Abhijay007
  • RBF label inconsistency on replacement txs (#6748) @NicolasDorier
  • Crash when fee rate below minimum during RBF (#6748) @NicolasDorier

Improvements

  • Switched to textarea for full lightning connection string (#6706) @rockstardev
  • POS Keypad: shows amount being input rather than total (#6739 #6768) @NicolasDorier

Beta — feedback welcome: [email protected]