Skip to the content.
Español ES | Deutsch DE | Français FR | Italiano IT | Dutch NL | Hrvatski HR | Hindi HI

Originaly posted on Substack on April 14, 2022. Updated here on Dec 28, 2024.

Use case for LNBits in a small hotel restaurant as Bitcoin payment processor

How to use this wonderful LNbits app suite with your Lightning node as a small merchant.

To read more info about LNbits, see this quick introduction guide.

LNBits could be used as a Bitcoin LN payment processor,. Yes, I know, some of you would say "but use BTCPay Server...etc".

This time, let's try to use more tools that are available for merchants. For some specific cases LNbits can fit very well and extend the usage with its extensions. BTCPay is good, it is doing a great job, but on the other hand LNbits is offering more tools and options for a merchant.

Description of use case scenario

So, let's take a use case scenario: a small hotel and restaurant or cafe bar, with also a webshop for online orders, let´s say the common Wordpress + Woocommerce Plugiin combination.

With the LNbits Market extension you can build your own online shop, without the need for a Wordpress installation.

A merchant wants the following:

.... and many more .. LNbits has a lot of extensions ready, just activate them, configure some simple parameters and done, you are good to go!

But first things first, we need to prepare LNBits to be ready for wide accessibility for any client and device. As we know, in Umbrel all apps are the behind Tor network, so since not all customers will use Tor (only those advanced users) we need to give access also to regular users connected through the so called “clearnet” which is basically what “https://” indicates.


Prepare your LN node (Umbrel/Raspiblitz etc) LNBits to be visible in "clearnet"

Clearnet is the regular internet access, domain.com and/or public IP.

Tor network is a parallel internet, using .onion addresses through “http://” and is not (yet) broadly used/known and accessing payment services over Tor, often buggy and complicated for regular users to interact with each other.

So, let's say the small merchant has an Umbrel node ready, some LN channels open, LNBits installed and working just fine as it is over its .onion address.

Some aspects to take into consideration:

To open your LNBits instance to the clearnet world, you have these options (amazing guides made by Hakuna and Uxellodunum):


Setup the webshop with LNBits

Ok, so now we have our LNBits accessible from outside with

https://lnbits.my-domain.com

(or whatever subdomain you want to choose), all wallets and functionalities are tested and working.

In our Wordpress Woocommerce shop we can install the LNbits Woo plugin and configure it to connect to our LNbits instance, with the keys provided in LNBits wallet section (walletID, invoiceID, watchonlyID).

Go to your LNBits wallet configured to be used for the webshop (you can have many as you wish) and copy the "invoice/read key" string.

LNBits wallet details

Then go to your Wordpress - Woocommerce - Payments - LNbits - and paste that string in the API key and next add your lnbits URL "https://lnbits.my-domain.com" and done.

That's it! You can start taking payments in bitcoins through Lightning Network. No redirected pages, no intermediaries, fast and simple. LNbits plugin is generating the LN invoice in the same page and displayed in the payment step. Once is done, it will show a confirmation message and normally customer receive by email the details of his order.

Yes, the plugin is very basic, with not too much options, to personalize the text in the payment etc, but is well enough to start taking payments with bitcoin.


Taking payments in shop (onsite) by employees

Well... this is another sensible aspect.

We need to give them limited access to the shop wallet funds, only to create invoices, not able to spend from there. And LNbits can do it in a wonderful way.

So we suppose that we do not have any integration in our own PoS system with LNbits or bitcoin payments, we consider BTC as cash, so we can just take the payment in a separate manner, as we do with cash. In the accounting system is marked as "pay in cash" or whatever name you want to use, it doesn't matter, is cash.

So the waiter/employee will just need a simple way to generate a LN invoice or have a general LNURL ready to receive payments.

LNbits have different approaches, you can use which one suits better your specific activity and type of situations.

We can use the following LNbits extensions:


Waiters tips

Employees / waiters can have their own personal LN wallet for tips, or you can setup dedicated ones in your LNBits instance and give them full access to those wallets so they can use it in Bluewallet or Zeus mobile app.

Go to LNBits LNDhub extension and scan the admin or invoice QR code to be imported into BitBanana, Bluewallet or Zeus mobile apps

LNBits wallets also can be used as web app on mobile, just save the wallet URL as web widget bookmark and open it directly. Works perfectly.

For general common Tip Jar can be used the dedicated LNbits extension, easy to configure and presented as a simple webpage. Or can be used a dedicated LNUL-pay QR code, with its own wallet, to separate from regular charges.

Another way could be to use the SplitPayments extension where can be defined the amount of sats that is going to the waiter, from the total of each payment. Very easy to configure.

Accounting

At the end of day, when waiters/employees will do their end of day counting, in the regular system and just compare with what was charged in LNBits system. A supervisor with full access could also export all the transactions into a csv file and or print it out.

At this section maybe in the future LNbits will have a better accounting system, transaction labeling, personalize. Now is just basic but enough to work.

Also, this is the moment when a supervisor / shop owner will swap out the funds from LN channels, into an onchain wallet and leave the channels almost empty to be ready for the next day to receive more sats.


Fidelity Credits System

If you have some regular customers that can pay upfront for their consumption and get discounts, you can use a system of loaded NFC cards / devices, or simply create a LNDHub wallet for each fidelity client, where they load it with sats and spend them back in your restaurant. In this way fees will be 0 for them and you have a better control of these "fidelity points".

Also client have full control of his LN wallet, can be imported in his device and use it as a regular LN wallet if he want.

There is a way to build some NFC cards / devices for these wallets. An example here. So clients can just use those devices paying in shop. No need for other apps. Here more details about NFC cards and how to personalize them.

Or you could just simply create some LNURL-withdraw vouchers and give them to your regular customers, as satsback system. Easy, fast, no complications, just print them with your regular ticket printer, client withdraw them when he/she wants or just give them away to somebody else.


Offline Vending Machine

Let's say you have also an (hotel) accommodation service next to your restaurant and during the night (when you do not have personal available) you want to offer to your guests a simple way to buy some snacks or drinks.

This option could be used also for the room mini-bar.

So a simple box / vending machine with a system to receive offline LN payments, is already available with LNbits. You can choose whatever size or type of the box, important is to link it to your LNbits as described in the tutorial.

Here is a demo and how to build it. The system is simple: client scan QR, pays, item is disposed. The machine doesn't need access to internet.


Offline Shop

Let's say you want to implement a system of quick selling products / menus for take away. So some kind of semi self-service.

You have a monitor outside of the shop or just a billboard, listing your products offered for take away.

Customer scan the LNURL for the product desired, pay and get back a word as "proof" of payment. The words can be configured as you wish and changed when you want.

Then customer enter to your local to a special place where you deliver and present that word(s) paid for the products. Employee have then the proof of payment and just deliver.

Here is a tutorial demo how to configure and works.

Here is also a demo for how to pay with sats for a beer with a smart tap.

Another example of use case scenario here how to buy sandwiches with LN.


DJ Lounge music jukebox

Let's say your customers want to hear a nice music in your bar / restaurant, choosing their own preferred songs. You don't want to let everybody to change the music, but only for those who pay a fee.

So you could setup a simple music device, link it to your LNbits system and let customers pay for songs and play them.

Incentive for your ambient and offer a nice experience to your customers.

Here is more documentation how to setup Jukebox extension.

Here is a video tutorial demo.


Special customization & backup

In case you want to restrict the access to your "public" LNbits instance, you can edit the settings file doing the following.

Add only specific created user accounts in the LNBits env settings:

Soon will be available a full user management admin extension so will not be needed this customization and also restricting the creation of new wallets. But until then you can use it like this.

If you get an error like lnurl.Exceptions.InvalidURL when you create a LNURL (pay or withdraw) then add this line in the .env file or in the same yml file mentioned above.

FORWARDED_ALLOW_IPS=*

Also an important aspect: BACKUP database.

To save a backup of your LNbits instance (including tx history, wallets, accounts), you can save the database folder located in: ~/umbrel/app-data/lnbits/data

In special the database sqlite3 file, but is good to save the entire data folder for all extensions used.

If you need to edit directly into this sqlite database, you can install a simple viewer editor for sqlite. More details here. Then you can open the sqlite db file and edit all necessary tables and items, adjusting balances, removing editing existing users / wallets.


Conclusion

So, that's it, a full scenario how you could use this amazing solution LNbits for a hotel restaurant. You can extend this to your specific activity, covering all the needs that can be done with LNBits lndhub wallets, now you already see how powerful it is and easy to setup, having full custody of your funds.

I hope this guide can inspire more merchants to start accepting Bitcoin.

Also, those Bitcoin enthusiasts helping those merchants, that don’t have enough skills, building nice solutions for bitcoin payments.

If you are not tech savy building yourself this solution, here is a team of specialists in LNbits from SparkPay (Portugal) or in Germany / Austria by Business Sats that can build this solution for you.

We must create that Bitcoin circular economy!