BTCPay Server 1.8.0 - Custom checkout forms, store branding and much much more!

Posted in Releases by Bas on 3/1/2023

We’re excited to release a new major version of BTCPay Server 1.8.0!

It took us quite a bit longer than what you're used to of us. As the year started fresh, we needed a little bit of a restart ourselves. One of the things we tend to do better this year is having a consistent release cycle. We will work on improving this so you can count on us for a maintenance window that doesn’t change or happen too often.

As always! No Devs were hurt in this release, only bugs that got squashed and new features being introduced, let's have a peak! Find detailed release notes here (opens new window).

# 👷 Custom checkout forms

In a previous major release, we’ve introduced the ability to collect emails and buyer’s information during checkout via forms. These forms were pre-defined. In 1.8.0 we’re adding more flexibility to the forms, by allowing you to create custom forms.

Currently this process is slightly manual and has to be done with a little bit of JSON knowledge, but it’s on our radar to improve the UX of this feature in one of the upcoming releases.

Here are some examples of what can be done with the custom forms to get your creative juices flowing.

# Example: Nostr pubkey and comment

{
  "topMessages": [],
  "fields": [
    {
      "name": "nostrPubkey",
      "constant": false,
      "type": "text",
      "value": null,
      "required": true,
      "label": "What's your nostr npubkey?",
      "originalValue": null,
      "helpText": null,
      "validationErrors": [],
      "fields": []
    },
    {
      "name": "comment",
      "constant": false,
      "type": "text",
      "value": null,
      "required": false,
      "label": "Let us know your ideas",
      "originalValue": null,
      "helpText": null,
      "validationErrors": [],
      "fields": []
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# Example: Table booking at a restaurant

{
  "topMessages": [],
  "fields": [
    {
      "name": "tableNumber",
      "constant": false,
      "type": "number",
      "value": null,
      "required": true,
      "label": "Let us know which table you would like",
      "originalValue": null,
      "helpText": null,
      "validationErrors": [],
      "fields": []
    },
    {
      "name": "allergies",
      "constant": false,
      "type": "text",
      "value": null,
      "required": false,
      "label": "Any allergies?",
      "originalValue": null,
      "helpText": null,
      "validationErrors": [],
      "fields": []
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

For now the form can be enabled as a stand-alone, or as a part of a point of sale app or a payment request. Stand-alone form means you can share a form link, once your customer fills it in, they’ll be presented with a checkout page. Forms integrated within the PoS app or payment request allow you to collect information through the app itself. For example, when invoicing a client, or charging a customer through a point of sale. Integration into the crowdfunding app is planned. So stay tuned for that part!

All data gathered through custom forms will be added in the invoice details page in the Additional Information section.

The potential form unlock is unlimited. We’re looking forward to seeing how you end up using it creatively. Tag us on Twitter @BTCPayServer (opens new window) and we’ll retweet the most interesting form examples.

# ⚡ Lightning NFC plugin becoming core

The NFC plugin was built for browser compatible NFC devices, where a customer just has to tap his NFC card (Bolt Card (opens new window)) on your NFC enabled device. Due to increasing usage of this feature, we’ve decided to make it part of the core system. Nothing changes for you as a user. With the release of the new checkout V2 in 1.7.0, and the improvements we’ve done on both front and the backend the NFC functionality should be even smoother.

# 🏷️ Labeling addresses

We want to make address management a little bit easier, therefore we are introducing labels for addresses. When you create a new address in BTCPay Server, you now immediately get to label the address and these labels propagate to the transactions received on this address. We’ve added the step in the address creation process. Find in-depth details here (opens new window).

# 🔔 Rehauled Notifications icon set

As the world moves on and smileys become emojis. We are adding more clear indicators for your notifications. In a glance you now will be able to pick up if there’s an action required or if it’s just telling you there’s an invoice paid. You can find all icons and their meaning on our design pages here (opens new window).

# 👩‍💻 Greenfield API updates

Our Greenfield API keeps getting better: Leading up towards release 1.8.0 we’ve introduced some new features to reach through the API. We’ve added a new “get” endpoint for LNURL processing. Next to that we’ve also added 2 new permissions for pull payments and added payments list as an endpoint. Find more details here (opens new window).

# 🏪 Store Branding

Remember how we introduced new store branding options in 1.7.0? (opens new window) We are going to the next step in this release! When you set the store color and logo, they will now be visible on all public facing pages. Custom forms, receipts, payment requests. pull payments, point of sale and crowdfunding can all now be customized by altering a simple color scheme in your store setting.

# 🛍️ Checkout has copy addresses back!

We’ve heard your feedback on our V2 checkout. One of the main points that came back, and we fully acknowledge, was the request for copy on the invoice address. Going forward you’ll get to see the addresses (both on-chain and lightning if available) for the invoice right below the unified QR code.

# 📠 Keypad in the PoS app got some extra love

After we did the new Dashboard views, and changed the game of checkouts with V2, we are now ready to update the Keypad view in your POS! It ties nicely into the new design we've been rolling out over the past 2/3 major releases. AND it comes in your brands color if set in your store settings, more details on how to set these colors here (opens new window). Until you've set it yourself, here is a example of how it looks!

# 📠 Keypad POS tracks values individually

Hot summers day on the terrace? Got lots of invoices to handle with tips or discounts? Within your invoices, you’ll now be able to see these amounts, in a split view on every subject. No longer do you have to count out what the tip or discounts amounts were, just a glance at the bottom of your invoice and all is clear. Find out more details about tracking values here. (opens new window)

# 🔌 Plugins are here to stay!

And do we kick it off with a great new one made by Kukks: The plugin we are shipping with this release is called NIP-05, verify your Nostr account with your BTCPay Server! When verifying include a set of relays you often use for more easy discoverability. All set and done? Your NIP-05 handle will be name@yourbtcpayserver.domain. If you have multiple domains mapped to the same BTCPay Server, they will all be valid. Find more details on the NIP-05 plugin (opens new window).

# 🔌 BTCPay Server X Coinjoin

Kukks didn't just stop at the NIP-05 plugin. He also integrated collaborative transactions using the Wabisabi protocol. On the plugins page, you'll now be able to add the Coinjoin plugin and start enhancing your bitcoin privacy directly through your BTCPay Server. For more details on how it works and what is involved please read here (opens new window).

# 🚨 Phasing out MySQL and SQLite

Maybe some of you have noticed, but if your instance was still running MySQL or SQLite, you now will be able to migrate. As of release 1.7.1 we’ve marked them as deprecated and moved on. Release 1.7.8 saw a migration path for legacy databases like MySQL or SQLite. However as we update these, we’ve seen people run into trouble. After migration there was an error at the reboot. In release 1.7.10 we fixed this bug and made sure migration does as it says. Find details on the migration process (opens new window).

If you are a BTCPay Server integrators such as developer of Nodl, Raspiblitz, Umbrel, Embassy OS or anybody running BTCPay Server on SQLite or MySQL, please refer to the documentation (opens new window). While SQLite and MySQL should still be working for one year or two, we will not be focused on fixing bugs related to those backends (unless it impacts the migration process).

# 🫶 Donate via OpenSats

We're grateful that OpenSats partnered with us to help individuals donate to the BTCPay Server project. If you ever wondered how you can support BTCPay Server contributors without being a company, head on to OpenSats (opens new window) and feel free to throw a donation.

As OpenSats is a US Based public charity registered as a 501(c)(3), you can apply for a tax deduction on these donations. This wasn't previously possible, as BTCPay Server Foundation works differently. With the opportunity given by OpenSats, it's now possible to donate (opens new window) to BTCPay Server as an individual!

# 💚 Thank you

As usual, if you have problems, feedback, feature requests regarding BTCPay Server, feel free to reach out on our community chat (opens new window). We hope you enjoy what this update has to offer. As always, thank you to our invaluable contributors, who directly participated in making 1.8.0 possible. Besides release contributors, we'd like to thank all of our contributors who're making BTCPay Server better every day, through testing, reporting bugs, providing feedback, documenting, content making and more! BTCPay Server could never rapidly progress without your help!

The BTCPay Server team 💚

Last Updated: 4/4/2024, 1:58:12 PM

The BTCPay Server Project is proudly supported by these entities through the BTCPay Server Foundation.

If you'd like to support the project, please visit the donation page.