{"id":13830,"date":"2022-05-05T16:52:59","date_gmt":"2022-05-05T14:52:59","guid":{"rendered":"https:\/\/coincharge.io\/lnpos-hardware-lightning-pos-terminal\/"},"modified":"2023-11-15T15:32:26","modified_gmt":"2023-11-15T14:32:26","slug":"lnpos-hardware-lightning-pos-terminal","status":"publish","type":"post","link":"https:\/\/coincharge.io\/en\/lnpos-hardware-lightning-pos-terminal\/","title":{"rendered":"LNPoS \u2013 Hardware Lightning PoS Terminal"},"content":{"rendered":"<div class=\"wpb-content-wrapper\">[vc_row][vc_column][vc_column_text]\n<h2>LNPoS \u2013 Lightning PoS Terminal<\/h2>\n[\/vc_column_text][vc_column_text]Accept Bitcoin in retail store via LNPoS (Lightning Point of Sale).<\/p>\n<p>In this post we explain how you can accept Bitcoin and Lightning payments in your business (retail, restaurant, artisan, service provider) using a LNPoS hardware POS terminal.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13771&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]\n<h2>Table of Contents:<\/h2>\n[\/vc_column_text][vc_column_text css=&#8221;.vc_custom_1651753960768{margin-left: 20px !important;}&#8221;]\n<ul>\n<li><a href=\"#lnpos\">LNPoS hardware components<\/a>\n<ul>\n<li><a href=\"#construction\">Assembling the LNPoS Bitcoin Hardware Terminal<\/a><\/li>\n<li><a href=\"#case\">LNPoS Case<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#software\">Install software on the LNPoS<\/a><\/li>\n<li><a href=\"#account\">LNbits account<\/a>\n<ul>\n<li><a href=\"#wallet\">LNbits Wallet<\/a><\/li>\n<li><a href=\"#lnurldevice\">LNbits Extension LNURLDevice<\/a><\/li>\n<li><a href=\"#lnurlpos\">LNURLPoS Function<\/a><\/li>\n<li><a href=\"#lnurlatm\">LNURLATM Function<\/a><\/li>\n<li><a href=\"#onchain\">OnChain &#8211; for on-chain payments<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#config\">Configuration LNDPoS PoS Options<\/a>\n<ul>\n<li><a href=\"#wlan\">LNPoS WLAN connection<\/a><\/li>\n<li><a href=\"#settings\">LNDPoS PoS settings<\/a><\/li>\n<li><a href=\"#access\">New access point<\/a><\/li>\n<li><a href=\"#posoptions\">PoS Options<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#use\">Using LNPoS<\/a>\n<ul>\n<li><a href=\"#uselnpos\">LNPoS<\/a><\/li>\n<li><a href=\"#uselnurlpos\">LNURLPoS<\/a><\/li>\n<li><a href=\"#useonchain\">OnChain<\/a><\/li>\n<li><a href=\"#useatm\">LNURLATM<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#summary\">Summary<\/a><\/li>\n<\/ul>\n[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]With the LNPoS Bitcoin PoS Terminal, merchants can receive Bitcoin and Lightning payments and also sell Bitcoin just like at a Bitcoin ATM.<\/p>\n<p>The LNPoS functions:[\/vc_column_text][vc_column_text css=&#8221;.vc_custom_1667982345271{margin-left: 50px !important;}&#8221;]\n<ul>\n<li>LNURLPoS &#8211; for offline Lightning payments<\/li>\n<li>OnChain &#8211; for on-chain payments<\/li>\n<li>LNURLATM &#8211; for offline Lightning payments<\/li>\n<\/ul>\n[\/vc_column_text][vc_column_text]The Bitcoin terminal can also be used offline. It can also be used in places where there is no internet connection, such as outdoor events, festivals or flea markets.[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]\n<h2>YouTube Video &#8211; Accept Bitcoin via LNPoS<\/h2>\n<p>On the <a href=\"https:\/\/www.youtube.com\/@coincharge-coinpages\" target=\"_blank\" rel=\"noopener\">Coincharge YouTube channel<\/a> you can find a German language video titled &#8220;<a href=\"https:\/\/youtu.be\/ikUNWEgX6IE\" target=\"_blank\" rel=\"noopener\"><strong>Bitcoin per LNPoS akzeptieren<\/strong><\/a>&#8220;.<\/p>\n<p>The video explains how an LNPoS works, where to order the kit, and how to assemble and configure the LNPoS.<\/p>\n[\/vc_column_text][vc_video link=&#8221;https:\/\/youtu.be\/ikUNWEgX6IE&#8221; el_width=&#8221;80&#8243; align=&#8221;center&#8221; title=&#8221;Accept Bitcoin via LNPoS&#8221;][\/vc_column][\/vc_row][vc_row section_id=&#8221;lnpos&#8221;][vc_column][vc_column_text]\n<h2>LNPoS hardware components<\/h2>\n<p>The LNPoS Bitcoin Terminal is not an app on a smartphone, but a standalone piece of hardware. The LNPoS consists of the following hardware components:[\/vc_column_text][vc_column_text css=&#8221;.vc_custom_1667983715644{margin-left: 50px !important;}&#8221;]\n<ul>\n<li>Lilygo T-Display Keyboard Module as input field<\/li>\n<li>Lilygo TTGo T-Display ESP32<\/li>\n<li>Case<\/li>\n<li>USB cable<\/li>\n<li><a href=\"https:\/\/www.amazon.de\/Seamuing-Lithium-Akku-Schutzplatine-Isolierbeschichtung-ESP32-Entwicklungsboard\/dp\/B09B77CC7L\/ref=sr_1_14?tag=raspiblitz-21&amp;crid=SO78I2X77XAT&amp;keywords=batterie%203.7v%201000mah&amp;qid=1650011829&amp;sprefix=batterie%203.7v%201000mah,aps,116&amp;sr=8-14&amp;geniuslink=true\" target=\"_blank\" rel=\"noopener\">Battery with Micro JST 1.25 connector (Optional)<\/a><\/li>\n<li>Slide switch (optional)<\/li>\n<\/ul>\n[\/vc_column_text][vc_column_text]Optionally, a rechargeable battery and an on\/off switch can still be purchased.<\/p>\n<p>These individual parts can be ordered separately and individually.<\/p>\n<p>But there are also suppliers like <a href=\"https:\/\/shop.fulmo.org\/product\/bitcoin-point-of-sale-pos\/\" target=\"_blank\" rel=\"noopener\">Fulmo<\/a> and <a href=\"https:\/\/anchorhodl.com\/product\/lnpos-device\" target=\"_blank\" rel=\"noopener\">Anchorhodl<\/a> where you can order a complete kit.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We bought our LNPoS from <a href=\"https:\/\/shop.fulmo.org\/product\/bitcoin-point-of-sale-pos\/\" target=\"_blank\" rel=\"noopener\">Fulmo<\/a>. The kit cost about \u20ac50,- (at block time 762388) and for \u20ac10,- more, you could get the necessary software already preinstalled.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13719&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;custom_link&#8221; link=&#8221;https:\/\/shop.fulmo.org\/product\/bitcoin-point-of-sale-pos\/&#8221;][\/vc_column_inner][\/vc_row_inner][vc_column_text]The kit consists of the Lilygo T-Display Keyboard Module and a case created with a 3D printer.<\/p>\n<p>The LNPoS receives its power supply by connecting to a computer via the supplied USB cable.<\/p>\n<p>For a use in the store or in a restaurant, independence from this USB cable is recommended.<\/p>\n<p>Perhaps Fulmo will add a rechargeable battery to its complete set (a link refers to an offer on Amazon) and an on\/off switch.<\/p>\n<p>This is not mandatory and can be retrofitted later if required. We have chosen the LNPoS &#8211; Construction Kit with pre-installed software for \u20ac59,- and now explain how to assemble the hardware.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;14034&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;custom_link&#8221; link=&#8221;https:\/\/lightning-bits.de\/&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]With a 3D printer, you can create your own custom case.<\/p>\n<p>For us, <a href=\"https:\/\/lightning-bits.de\/\" target=\"_blank\" rel=\"noopener\">Lightning Bits<\/a> has provided a couple of cases.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;construction&#8221;][vc_column][vc_column_text]\n<h2>Assembling the LNPoS Lightning PoS Terminal<\/h2>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]The LNPoS Construction Kit from Fulmo is supplied as shown in the picture opposite.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13721&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13723&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We also got ourselves a rechargeable battery and had the necessary tools (a small Phillips screwdriver and pliers) ready.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We take the keyboard module (here: LILYGO\u00ae TTGO T-Display ESP32 Keyboard For LNURLPoS Keypad Module) and disassemble it first.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13725&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13727&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We remove the protective sticker from the display and pull the display out of the connector.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]If we use a rechargeable battery (accumulator), then we plug it into the provided connector on the back of the display. If we do not want to use a battery, we simply do without it.<\/p>\n<p>We recommend to wait for the installation of the battery until we have deposited the software and own data. For the configuration it is necessary that our LNPoS is removed from the power. This is easier if we wait to install the battery.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13729&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13731&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]Then we remove the four screws and separate the rest of the keyboard module. Now our screwdriver comes into play. To prevent the screws from spinning, we use the pliers to hold the screws appropriately.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]Once we have removed all the screws and separated the keypad, we turn our attention to the case.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13733&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;case&#8221;][vc_column][vc_column_text]\n<h3>LNPoS Case<\/h3>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13735&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]The LNPoS case comes from a 3D printer. Accordingly, there are still a few plastic parts that need to be removed.<\/p>\n<p>On the side there are still six small rods, which we can break away with the screwdriver.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]Now we have the necessary space to press the keypad element with the input keyboard into the housing.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13737&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13741&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]Then we put the element with the display into the housing.<\/p>\n<p>Then the remaining part from the keypad to the appropriate connectors.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]Then we put the second part of the housing on it and screw the whole thing.<\/p>\n<p>We may need to pre-drill the holes provided for the screws and also press them slightly when inserting them into the case.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13743&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_empty_space][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13745&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]This completes the assembly of the LNPoS. When the LNPoS is connected to a power source for the first time, either via the battery or via the USB cable, the display becomes active and shows No Methods and Restart &amp; Run Portal.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]After we have prepared the hardware, we need the data from our Lightning or Bitcoin wallet, which will later be deposited on the LNPoS.<\/p>\n<p>It is advisable to have a text file ready in which we can save the information obtained, as this data will be needed in a later step.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;account&#8221;][vc_column][vc_column_text]\n<h2>LNbits account<\/h2>\n<p>To receive Lightning payments, we need an account with <a href=\"https:\/\/lnbits.com\/\" target=\"_blank\" rel=\"noopener\">LNbits<\/a>[\/vc_column_text][vc_column_text]The LNPoS hardware interacts with LNbits to receive the incoming Bitcoin and Lightning payments.<\/p>\n<p>This requires a wallet at LNbits. You can find a detailed description of LNbits here: <a href=\"https:\/\/coincharge.io\/en\/lnbits\/\">LNbits Lightning Wallet and Account System<\/a><\/p>\n<p>We can set up LNbits on our own server. How this can be done is explained here: <a href=\"https:\/\/github.com\/lnbits\/lnbits-legend\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/lnbits\/lnbits-legend<\/a><\/p>\n<p>Likewise, LNbits is pre-installed on some hardware nodes. For example, if you have a Raspiblitz or Umbrel running, you can use your own LNbits.<\/p>\n<p>The setup is somewhat complicated in these cases, as the hardware nodes are usually operated in the user&#8217;s own home network and access for external users must be allowed via the Internet.<\/p>\n<p>How to use LNbits on your own Raspiblitz you can find out here: <a href=\"https:\/\/coincharge.io\/en\/lnbits\/#raspiblitz\">https:\/\/coincharge.io\/lnbits\/#raspiblitz<\/a>[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]However, LNbits also operates its own server, which can be shared.<\/p>\n<p>You get to the site via the homepage <a href=\"https:\/\/lnbits.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/lnbits.com\/<\/a>and then you switch to the Legend server.<\/p>\n<p>The direct url is: <a href=\"https:\/\/legend.lnbits.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/legend.lnbits.com\/<\/a> and there you create your own wallet.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13747&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;custom_link&#8221; link=&#8221;https:\/\/lnbits.com\/&#8221;][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;wallet&#8221;][vc_column][vc_column_text]\n<h3>LNbits Wallet<\/h3>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13749&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;custom_link&#8221; link=&#8221;https:\/\/legend.lnbits.com\/&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]The first step is to create an LNbits wallet. In our example, we create an LNbits wallet directly on the LNbits server at: <a href=\"https:\/\/legend.lnbits.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/legend.lnbits.com\/<\/a><\/p>\n<p>We choose the name Coincharge for ourselves and click Add a new Wallet.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]We do not require any email address or other login data. After we create the wallet, we should bookmark the url with our wallet details so that we can access the wallet directly at a later time.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]After we create the wallet, in the right pane there is the API info about the wallet. We unfold this area and get the <strong>Invoice\/read key<\/strong> displayed.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;15427&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_column_text]We can copy this information into a separate text file, because we will need this information later.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;lnurldevice&#8221;][vc_column][vc_column_text]\n<h3>LNbits Extension LNURLDevice<\/h3>\n<p>In the left menu bar there is the menu item Extension and Manage Extension. We click on Manage Extension and get a variety of applications listed which can be used with LNbits.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13753&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We select the LNURLDevice extension and click Enable.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]After that LNURLDevice will be listed in the left menu bar. We open the extension and set up POS and ATM.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;lnurlpos&#8221;][vc_column][vc_column_text]\n<h3>LNURLPoS Function<\/h3>\n<p>We click on New LNURLDevice Instance and a new window opens.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We give the PoS function a title of our own choosing.<\/p>\n<p>Then we need to select a wallet from the dropdown menu. You can create multiple LNbits Wallet. Since we have created only one wallet, the selection results accordingly.<\/p>\n<p>We would like to accept payments based on Euro and choose EUR accordingly.<\/p>\n<p>Then we select PoS because we want to use it as a point of sale.<\/p>\n<p>In the Profit Margin field we can set a percentage markup on the conversion rate. Since we are not interested in exchange rate gains, we set the value to 0 and click Create LNURLDevice.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13755&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13757&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We get a listing of already created LNURLDevice and click on the icon next to the title we created.<\/p>\n<p>Another window will open with the LNURLDevice device string.<\/p>\n<p>We click on it and copy the content and paste it into our text file.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;lnurlatm&#8221;][vc_column][vc_column_text]\n<h3>LNURLATM Function<\/h3>\n<p>In addition to accepting payments via the PoS function, LNPoS also has an ATM function.<\/p>\n<p>With the ATM function you can sell Bitcoin.<\/p>\n<p>For example, a customer wants to buy the equivalent of \u20ac50,- Bitcoin. He gives the seller the amount in cash, for example. After that, the seller enters the amount of \u20ac50 via the ATM function and via the displayed QR code, the buyer can transfer the Sats to his Lightning Wallet.<\/p>\n<p>Since we as sellers also want to earn something, we will add a 5% markup to the price.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We create a New LNURLDevice instance again. We again select a title and set the currency.<\/p>\n<p>Now we select ATM and in the Profit Margin field we enter 5 to achieve a margin of 5%.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13759&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_column_text]Again, we click on the icon in the overview to get the LNURLdevice string for the ATM function.<\/p>\n<p>We also copy this information into our text file.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;onchain&#8221;][vc_column][vc_column_text]\n<h3>OnChain &#8211; for on-chain payments<\/h3>\n<p>So far, we have dealt exclusively with Lightning payments. But we would also like to receive bitcoin payments, on-chain payments, with our LNPoS.<\/p>\n<p>For this we need an Xpub key. You can use an xPub key from your hardware wallet.<\/p>\n<p>We have explained the topic xPub Key in detail in the article: <a href=\"https:\/\/coincharge.io\/en\/xpub-where-can-i-find-the-xpub-key-from-my-wallet\/\">Determining xPub Key.<\/a> Here you can also find the information on how to get the xPub key from your own hardware wallet.<\/p>\n<p>f you don&#8217;t use your own hardware wallet, you can also use BlueWallet and use the xPub key. In the YouTube video we used the xPub key from BlueWallet. You can <a href=\"https:\/\/www.youtube.com\/watch?v=ikUNWEgX6IE&amp;t=1166s\" target=\"_blank\" rel=\"noopener\">jump to the appropriate place in the video<\/a> or read it under <a href=\"https:\/\/coincharge.io\/en\/bluewallet\/#xpub\">BlueWallet xPub Key<\/a><\/p>\n<p>After we have determined or created the xPub key, we can start configuring the LNPoS.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;config&#8221;][vc_column][vc_column_text]\n<h2>Install LNbits software on the LNPoS<\/h2>\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;software&#8221;][vc_column][vc_column_text]\n<h2>Install software on the LNPoS<\/h2>\n[\/vc_column_text][vc_column_text]To install the LNbits software on our LNPoS, we go to the website:<\/p>\n<p><a href=\"https:\/\/lnbits.github.io\/lnpos\/installer\/index.html\" target=\"_blank\" rel=\"noopener\">https:\/\/lnbits.github.io\/lnpos\/installer\/index.html<\/a><\/p>\n<p>We connect our LNPoS to our computer using the cable provided.<\/p>\n<p>After that we select &#8220;Stable Version&#8221; and click Flash.<\/p>\n<p>The LNbits-Github page tries to connect to the serial port where LNPoS is connected.<\/p>\n<p>Allow this accordingly and then the installation of the LNbit software on the LNPoS begins.[\/vc_column_text][vc_column_text]After installing the necessary software to use the keypad hardware as an LNPoS, we now need to make the individual settings so that the incoming sats are credited to our own Bitcoin or Lightning wallet.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;wlan&#8221;][vc_column][vc_column_text]\n<h3>LNPoS WLAN connection<\/h3>\n<p>To access the settings for the LNDPoS options, we need to access the LNDPoS via the WLAN function.<\/p>\n<p>Our LNDPoS has a WLAN function and a WLAN connection can be established via it.<\/p>\n<p>We remove the cable from ours and thus our LNPoS has no power source. We press any key, hold the key down and reconnect our LNPoS to a power source.<\/p>\n<p><strong>AP Launching<\/strong> is then shown in the display during startup.<\/p>\n<p>This means that our LNPoS is in the process of searching for an AP (=Access Point).[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13761&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]Now we need our smartphone or computer with its own Wi-Fi function. To do this, we go to the WLAN settings and search for a WLAN network in the vicinity, which has the designation LNPoS.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]Select the WLAN that starts with LNPoS.<\/p>\n<p>If the LNPoS WLAN network could be selected, one reaches the LNDPoS options.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;settings&#8221;][vc_column][vc_column_text]\n<h3>LNDPoS PoS settings<\/h3>\n<p>Before you can access the LNDpoS options, you will be asked for a password. The password <strong><em>ToTheMoon1<\/em><\/strong> has been preset by LNDPoS in the factory.<\/p>\n<p>After entering this password, you will get to the LNDPoS settings.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]The technical LNPoS settings are then displayed. Under SoftAP IP, for example, an IP address is displayed. When I type those into my browser, I also get to the LNDPoS settings and can set them up a little more comfortably.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13820&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;posoptions&#8221;][vc_column][vc_column_text]\n<h3>PoS Options<\/h3>\n<p>In the PoS Option menu item we can now make the individual settings. We have already compiled the necessary data in the text file. We will deposit this data at this point.[\/vc_column_text][vc_row_inner][vc_column_inner][vc_single_image image=&#8221;13767&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][vc_column_text]The first field is the password field for accessing the LNPoS backend. The default password is ToTheMoon1 and can be changed at this point.<\/p>\n<p>In the Master Public Key field we enter the xPub key from our onchain Bitcoin wallet. This is required to receive bitcoin-only payments.<\/p>\n<p>In the LNbits Server field we enter the url of our LNbits server. If we use the server provided by LNbits, then the input is <a href=\"https:\/\/legend.lnbits.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/legend.lnbits.com\/<\/a>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]If we use our own LNbits server, then we enter this url accordingly.<\/p>\n<p>In the Wallet Invoice Key field, we enter the Invoice\/Read Key that we received when we created the LNbits wallet.<\/p>\n<p>Then the currency of our country, in this case EUR for Euro.<\/p>\n<p>The LNURLPoS string field contains the data from the LNbits extension LNURLDevice. Here are the specifications from POS.<\/p>\n<p>In the field LNURLATM string the data for ATM.<\/p>\n<p>Then the specifications for the Mempool.Space. No changes are recommended here.<\/p>\n<p>In the LNURLATM pin string field the default value is 878787. This pin is required if withdrawals are to be made.<\/p>\n<p>Here you can set your own PIN.<\/p>\n<p>After that we click on Save and a new page is displayed with the changes made.<\/p>\n<p>Then the time has come to try out our LNPoS to see if everything works the way we want it to.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;use&#8221;][vc_column][vc_column_text]\n<h2>Using LNPoS<\/h2>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13769&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]While we are making our settings, the display of the LNPoS AP shows Launched When finished reset.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]We need to remove the LNPoS from the power source again and thus achieve a reset.<\/p>\n<p>After we reconnect the LNPoS to a power source, the display <strong>bitcoinPoS powered by LNbits appears.<\/strong>[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13771&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13773&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]After a few seconds the selection menu will be displayed.<\/p>\n<p>We can see the four menu items:<\/p>\n<ul>\n<li>LNURLPoS<\/li>\n<li>OnChain<\/li>\n<li>LNURLATM<\/li>\n<\/ul>\n<p>By pressing * we can change the selection. By pressing # we get to the detailed view.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;uselnurlpos&#8221;][vc_column][vc_column_text]\n<h3>LNURLPoS<\/h3>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]LNURLPoS is intended for payment by Lightning. The fiat amount to be paid is entered.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13775&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_column_text]After the amount is entered, press # and the QR code for the Lightning bill will be displayed.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13777&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]This QR code can be scanned by the payer using his Lightning Wallet.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]In our case, we used the Wallet of Satoshi Lightning wallet.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13779&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13781&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]After a successful payment, the payer receives a notice that the payment was successful.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]When the payer clicks on Open Url, he is shown a four-digit code.<\/p>\n<p>When the merchant (payee) presses the # button, he also gets a four-digit code displayed.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]If both codes are identical, then the payment was successful and is completed.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13783&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row section_id=&#8221;useonchain&#8221;][vc_column][vc_column_text]\n<h3>OnChain<\/h3>\n[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13785&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]If a customer wants to pay by Bitcoin, i.e. OnChain, then this option is selected.<\/p>\n<p>The display shows xPub Ending.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]To create a Bitcoin address based on this xPub key, we click # and again a QR code is displayed.<\/p>\n<p>The payer can scan to this QR code and specify the amount to be paid. On the part of LNPoS, the amount is not entered beforehand or a purpose is defined, as was the case with the Lightning payment under LNURLPoS.<\/p>\n<p>There is also no PIN code displayed, which can be used to check a successful payment.<\/p>\n<p>Whether a payment has been successfully completed can be checked as follows:<\/p>\n<p>The trader can log into his Bitcoin wallet and check if the payment is on its way or has already been credited.<\/p>\n<p>The merchant can press the # button after the payment. He will then receive a different QR code. He can scan this QR code with any other QR code reader and will get an url pointing to Mempool.Space website.<\/p>\n<p>The detailed information about the onchain bitcoin transaction can be accessed via it. The trader sees that the transaction is in the mempool or the number of confirmations already completed.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;useatm&#8221;][vc_column][vc_column_text]\n<h3>LNURLATM<\/h3>\n<p>In the ATM version, an amount is debited from the merchant&#8217;s Lightning Wallet.[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]After entering the LNURLATM menu item, the trader must enter a PIN code. The default PIN code is 878787.<\/p>\n<p>In the LNPoS settings we could change this PIN code.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13787&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_single_image image=&#8221;13789&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_column_text]After the PIN code is entered, the merchant can enter the amount to be paid out.<\/p>\n<p>In this case, the customer wants to purchase Lightning in the equivalent of \u20ac1. After the merchant receives the purchase amount, the merchant generates the QR code.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_column_text]The buyer can then use a Lightning Wallet that supports LNURL Withdraw to retrieve this amount.<\/p>\n<p>The buyer will see the successful completion of this process in his Lightning Wallet.<\/p>\n<p>The seller does not get any feedback. Again, feedback to the dealer would be desirable, as is the case with LNURLPoS.[\/vc_column_text][vc_row_inner][vc_column_inner][vc_column_text]However, the merchant has the ability to log into their LNbits account and view the corresponding Lightning transactions.[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_single_image image=&#8221;13791&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; onclick=&#8221;link_image&#8221;][vc_column_text]We had already recommended a corresponding bookmark of this url at the beginning of the text.[\/vc_column_text][\/vc_column][\/vc_row][vc_row section_id=&#8221;summary&#8221;][vc_column][vc_column_text]\n<h2>Summary<\/h2>\n<p>The LNPoS is a very good option for brick-and-mortar merchants who want to accept Lightning payments on site. The standalone hardware can be used by any employee to receive Lightning payments. Lightning payments are credited to the standalone LNbits wallet, which can then only be accessed by the boss.<\/p>\n<p>The LNPoS hardware terminal thus offers an interesting alternative for Lightning PoS solutions that can be operated as an APP solution on a smartphone.<\/p>\n<p>This means that employees can also accept Lightning payments when the boss is not on site with his smartphone.<\/p>\n<p>It is somewhat unfortunate that there is no feedback to the merchant for OnChain payments and for the ATM function. This must be checked in a somewhat roundabout way and may be a bit cumbersome for the untrained layman. Hopefully, there may be a more user-friendly version in the future.<\/p>\n<p>If you put your focus on accepting Lightning payment, then you have a perfect solution.<\/p>\n<p>LNPoS is perfect for convincing your favorite restaurant, pub or Meetup location to accept Lightning payments.<\/p>\n<p>Bitcoiners from German-speaking countries can create an LNPoS for a business and create a video of the Lightning payment.<\/p>\n<p>If the video is published on <a href=\"https:\/\/coinpages.io\/coinpages-scout-werden\/\" target=\"_blank\" rel=\"noopener\">Coinpages, you will receive 100,000 sats<\/a> as a reward.<\/p>\n<p>Thus, you can finance the LNPoS, pay with Lightning yourself in your favorite pub and at the same time contribute to the spread of Lightning as a payment method.<\/p>\n[\/vc_column_text][\/vc_column][\/vc_row]\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text] LNPoS \u2013 Lightning PoS Terminal [\/vc_column_text][vc_column_text]Accept Bitcoin in retail store via LNPoS (Lightning Point of Sale). In this post [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":13771,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[58],"tags":[],"class_list":["post-13830","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-accept-bitcoin"],"_links":{"self":[{"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/posts\/13830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/comments?post=13830"}],"version-history":[{"count":14,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/posts\/13830\/revisions"}],"predecessor-version":[{"id":15666,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/posts\/13830\/revisions\/15666"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/media\/13771"}],"wp:attachment":[{"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/media?parent=13830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/categories?post=13830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coincharge.io\/en\/wp-json\/wp\/v2\/tags?post=13830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}