Publicado originalmente en Substack el 14 de abril de 2022. Actualizado aquí el 28 de diciembre de 2024.
Caso de uso de LNBits en un pequeño restaurante de un hotel como procesador de pagos de Bitcoin
Cómo usar esta maravillosa suite de aplicaciones LNbits con su nodo Lightning como un pequeño comerciante.
Para leer más información sobre LNbits, consulte esta guía de introducción rápida.
LNBits podría usarse como un procesador de pagos LN de Bitcoin. Sí, ya sé que algunos de ustedes dirán "pero usen BTCPay Server...etc."
Esta vez, vamos a intentar usar más herramientas que están disponibles para los comerciantes. Para algunos casos específicos, LNbits puede adaptarse muy bien y ampliar el uso con sus extensiones. BTCPay es bueno, está haciendo un gran trabajo, pero por otro lado LNbits ofrece más herramientas y opciones para un comerciante.
Descripción del escenario de caso de uso
Entonces, tomemos un escenario de caso de uso: un pequeño hotel y restaurante o cafetería, con también una tienda web para pedidos en línea, digamos la combinación común de Wordpress + Woocommerce Plugiin.
Con la extensión LNbits Market puede crear su propia tienda en línea, sin la necesidad de una instalación de Wordpress.
Un comerciante quiere lo siguiente:
- recibir pagos en bitcoin, desde su sitio web de pedidos en línea, sin intermediarios y con tarifas muy bajas
- los clientes también pueden pagar con Bitcoin a través de la red Lightning en el restaurante, de forma sencilla y directamente al camarero. Además, los clientes deberían poder dar propinas al camarero, que las depositarán en su propia cartera y se las pagarán inmediatamente.
- Tener un TPoS sencillo, donde los empleados solo tienen que introducir el valor en su moneda local y crear la factura de LN que se debe pagar.
- Tener una tienda offline de autoservicio sencilla, por ejemplo durante la noche, para que los clientes puedan pagar y llevarse algunos artículos (cerveza, vino, bocadillos, aperitivos). Usar la extensión LNURLVend podría ser una buena solución.
- crear un tipo de "puntos de fidelidad" para los clientes habituales y devolverles sats mediante un sistema de cupones mediante la extensión LNURLw.
- los clientes también pueden dejar propinas con sats en un "Tip Jar" o LNURL-pay
- los clientes pueden reproducir algunas canciones agradables en el bar lounge, pero pagando una pequeña tarifa mediante la extensión LNBits Jukebox Livestream
... y muchas más... LNbits tiene muchas extensiones listas, solo actívalas, configura algunos parámetros simples y listo, ¡estás listo!
Pero primero lo primero, debemos preparar LNBits para que esté listo para una amplia accesibilidad para cualquier cliente y dispositivo. Como sabemos, en Umbrel todas las aplicaciones están detrás de la red Tor, por lo que, dado que no todos los clientes usarán Tor (solo aquellos usuarios avanzados), debemos brindar acceso también a los usuarios regulares conectados a través de la llamada "clearnet", que es básicamente lo que indica "https://".
Prepara los LNBits de tu nodo LN (Umbrel/Raspiblitz, etc.) para que sean visibles en "clearnet"
Clearnet es el acceso a Internet regular, domain.com y/o IP pública.
La red Tor es una Internet paralela, que usa direcciones .onion a través de "http://" y no es (aún) ampliamente utilizada/conocida y que accede a servicios de pago a través de Tor, a menudo con errores y complicada para que los usuarios regulares interactúen entre sí.
Entonces, digamos que el pequeño comerciante tiene un nodo Umbrel listo, algunos canales LN abiertos, LNBits instalados y funcionando bien tal como están su dirección .onion.
Algunos aspectos a tener en cuenta:
- Se recomienda configurar este nodo en modo híbrido. Aquí tienes una guía increíble (por Hakuna) sobre cómo configurar tu nodo en modo híbrido.
- Se puede permitir el envío/recepción entre billeteras internas de LNBits con esta línea en tu archivo lnd.conf: allow-circular-route=1 (reiniciar lnd después de editar). Con esto, puedes usar billeteras de LNbits con tarifa interna cero, en pagos directos.
- Aprende a gestionar el nodo LN y tener buena liquidez. Tener un buen nodo, buenas tarifas, buenas rutas, es ofrecer una buena experiencia a tus clientes para que puedan pagarte rápido y barato usando LN. No seas codicioso. Aquí escribí una guía dedicada.
- Involucra a tus clientes habituales para que abran canales con tu nodo (si tienen un nodo LN). Eso resolverá muchos problemas con la liquidez entrante que realmente necesitas. La liquidez entrante (poder recibir pagos) puede ser muy costosa a veces, por lo que si tus clientes están acostumbrados a abrir canales con tu nodo, esto ayudará mucho, no solo a ellos, sino también a tu tienda.
- Ten siempre suficiente liquidez entrante para recibir pagos. Es mejor que cada final de día o cuando hayas tenido un día ajetreado, extraigas de tus canales los sats recibidos, usando un servicio de swap, como se describe en esta guía. De esta manera, siempre comenzarás el día con más "espacio" en tus canales para recibir pagos. También puedes usar la extensión LNbits Boltz.
- LNBits no realiza transacciones en cadena, solo en LN. De todos modos, si realmente quieres cobrar usando una dirección en cadena, es posible usar la extensión SatsPay vinculada a una clave xpub de solo reloj usando la extensión "Watch-Only". Pero los cargos en cadena requieren al menos 3 confirmaciones (al menos 30 minutos de espera), por lo que para un cliente no es tan bueno hacerlo esperar. Pero en casos especiales, sí se puede usar esta opción.
- Con la extensión Boltz puedes enviar todos los ingresos a tu billetera de hardware en cadena cuando se alcanza un cierto umbral. Esto es muy poderoso ya que una vez instalado, estás acumulando sats inmediatamente de manera autosuficiente.
- Ten en cuenta que LNBits todavía está en versión beta, por lo que siempre hay nuevos desarrollos. También se espera una nueva extensión esperada para la gestión de usuarios y un acceso más complejo.
- Guarde la URL de acceso a los usuarios/carteras que creó en sus marcadores o administrador de contraseñas, para poder acceder también a detalles sobre la URL de lndhub, la clave de administrador, la clave de factura, etc. que podría necesitar para otras extensiones ahora y más adelante.
Para abrir su instancia de LNBits al mundo clearnet, tiene estas opciones (increíbles guías hechas por Hakuna y Uxellodunum):
- Configure su instancia de LNBits existente en Umbrel con un proxy inverso nginx.
- Configure otra instancia de LNBits fuera de su Umbrel, en otro servidor VPS.
Configura la tienda web con LNBits
Bien, ahora tenemos nuestros LNBits accesibles desde el exterior con
https://lnbits.mi-dominio.com
(o cualquier subdominio que desee elegir), todas las billeteras y funcionalidades están probadas y funcionando.
En nuestra tienda Woocommerce de Wordpress podemos instalar el complemento Woo de LNbits y configurarlo para que se conecte a nuestra instancia de LNbits, con las claves proporcionadas en la sección de billetera LNBits (walletID, invoiceID, watchonlyID).
Vaya a su billetera LNBits configurada para usarse en la tienda web (puedes tener tantas como quieras) y copia la cadena "invoice/read key".
Luego ve a tu Wordpress - Woocommerce - Payments - LNbits - y pega esa cadena en la clave API y luego agrega tu URL de lnbits "https://lnbits.my-domain.com" y listo.
¡Eso es todo! Puedes comenzar a aceptar pagos en bitcoins a través de Lightning Network. Sin páginas redireccionadas, sin intermediarios, rápido y simple. El complemento LNbits genera la factura de LN en la misma página y se muestra en el paso de pago. Una vez hecho esto, se mostrará un mensaje de confirmación y normalmente el cliente recibirá por correo electrónico los detalles de su pedido.
Sí, el plugin es muy básico, sin demasiadas opciones, como personalizar el texto en el pago, etc., pero está lo suficientemente bien como para empezar a aceptar pagos con bitcoin.
Aceptar pagos en la tienda (in situ) por parte de los empleados
Bueno... este es otro aspecto sensato.
Necesitamos darles acceso limitado a los fondos de la billetera de la tienda, solo para crear facturas, sin poder gastar desde allí. Y LNbits puede hacerlo de una manera maravillosa.
Entonces, supongamos que no tenemos ninguna integración en nuestro propio sistema PoS con LNbits o pagos de bitcoin, consideramos BTC como efectivo, por lo que podemos aceptar el pago de una manera separada, como lo hacemos con el efectivo. En el sistema de contabilidad se marca como "pagar en efectivo" o como quieras llamarlo, no importa, es en efectivo.
Así que el camarero/empleado solo necesitará una forma sencilla de generar una factura LN o tener un LNURL general listo para recibir pagos.
LNbits tiene diferentes enfoques, puedes usar el que mejor se adapte a tu actividad específica y tipo de situaciones.
Podemos usar las siguientes extensiones de LNbits:
- LNDhub (billetera de facturas) configurada en el dispositivo del camarero/empleado. Cada camarero/empleado puede tener la suya, para un mejor seguimiento
- LNURL-pay código QR, impreso en un papel. Cada camarero puede tener su propia dirección LNURL/LN para un mejor seguimiento. Cuando el cliente paga, simplemente le mostrará al camarero la confirmación en la pantalla de su dispositivo y listo. Es bastante difícil e inútil falsificar un pago LN. Recuerde, los pagos BTC/LN son irreversibles.
- Extensión TPoS, configurada en cada dispositivo de camarero/empleado
- LNURL-PoS offline con los pequeños dispositivos offline, en caso de que no tenga buena cobertura WiFi, tenga una terraza que no tenga conexión. También disponible como aplicación móvil (se puede ejecutar en cualquier dispositivo Android antiguo, sin Internet).
- Extensión de Scrub que puede reenviar automáticamente los sats a una dirección externa dedicada.
Propinas de los camareros
Los empleados o camareros pueden tener su propia billetera LN personal para las propinas, o puede configurar billeteras dedicadas en su instancia de LNBits y darles acceso completo a esas billeteras para que puedan usarlas en Bluewallet o la aplicación móvil de Zeus.
Las billeteras LNBits también se pueden usar como una aplicación web en dispositivos móviles, solo guarda la URL de la billetera como marcador de widget web y ábrela directamente. Funciona perfectamente.
Para el Tip Jar común general se puede usar la extensión LNbits dedicada, fácil de configurar y presentada como una página web simple. O se puede usar un código QR LNUL-pay dedicado, con su propia billetera, para separarlo de los cargos regulares.
Otra forma podría ser usar la extensión SplitPayments donde se puede definir la cantidad de sats que se le asignará al mesero, del total de cada pago. Muy fácil de configurar.
Contabilidad
Al final del día, cuando los camareros/empleados hagan su recuento de fin de día en el sistema normal y solo comparen con lo que se cobró en el sistema LNBits. Un supervisor con acceso completo también podría exportar todas las transacciones a un archivo csv o imprimirlo.
En esta sección, tal vez en el futuro LNbits tenga un mejor sistema de contabilidad, etiquetado de transacciones y personalización. Ahora es básico pero suficiente para funcionar.
Además, este es el momento en que un supervisor/propietario de una tienda intercambiará los fondos de los canales de LN a una billetera en cadena y dejará los canales casi vacíos para estar listos para el día siguiente para recibir más sats.
Sistema de Créditos de Fidelidad
Si tienes algunos clientes habituales que pueden pagar por adelantado su consumo y obtener descuentos, puedes utilizar un sistema de tarjetas/dispositivos NFC cargados, o simplemente crear una billetera LNDHub para cada cliente de Fidelity, donde la cargarán con sats y los gastarán en tu restaurante. De esta manera, las tarifas serán 0 para ellos y tendrás un mejor control de estos "puntos de fidelidad".
Además, el cliente tiene control total de su billetera LN, puede importarla en su dispositivo y usarla como una billetera LN normal si lo desea.
Existe una forma de crear algunas tarjetas/dispositivos NFC para estas billeteras. Un ejemplo aquí. De esta forma, los clientes pueden utilizar esos dispositivos para pagar en la tienda, sin necesidad de otras aplicaciones. Aquí encontrará más detalles sobre las tarjetas NFC y cómo personalizarlas.
O puede simplemente crear algunos cupones de retiro LNURL y dárselos a sus clientes habituales, como un sistema de devolución de dinero. Fácil, rápido, sin complicaciones, solo imprímelos con tu impresora de tickets habitual, el cliente los retira cuando quiere o simplemente se los regala a otra persona.
Máquina expendedora offline
Digamos que también tienes un servicio de alojamiento (hotelero) al lado de tu restaurante y durante la noche (cuando no tienes personal disponible) quieres ofrecer a tus huéspedes una forma sencilla de comprar algunos bocadillos o bebidas.
Esta opción también se puede utilizar para el minibar de la habitación.
Por lo tanto, una caja/máquina expendedora sencilla con un sistema para recibir pagos LN offline ya está disponible con LNbits. Puedes elegir el tamaño o tipo de caja, lo importante es vincularla a tus LNbits como se describe en el tutorial.
Aquí tienes una demostración y cómo construirla. El sistema es simple: el cliente escanea el código QR, paga y el artículo se desecha. La máquina no necesita acceso a Internet.
Tienda offline
Digamos que desea implementar un sistema de venta rápida de productos/menús para llevar. Es decir, una especie de semiautoservicio.
Tiene un monitor fuera de la tienda o simplemente una valla publicitaria que enumera los productos que ofrece para llevar.
El cliente escanea el LNURL del producto deseado, paga y recibe una palabra como "comprobante" de pago. Las palabras se pueden configurar como desee y cambiar cuando lo desee.
Luego, el cliente ingresa a su local en un lugar especial donde entrega y presenta la(s) palabra(s) que pagó por los productos. El empleado tiene entonces el comprobante de pago y lo entrega.
Aquí hay una demostración del tutorial sobre cómo configurarlo y cómo funciona.
Aquí también hay una demostración de cómo pagar con sats una cerveza con un grifo inteligente.
Otro ejemplo de un caso de uso aquí es cómo comprar sándwiches con LN.
Jukebox de música DJ Lounge
Digamos que sus clientes quieren escuchar buena música en su bar/restaurante y elegir sus propias canciones preferidas. No quieres que todo el mundo cambie la música, sino solo aquellos que pagan una tarifa.
Por lo tanto, puedes configurar un dispositivo de música simple, vincularlo a tu sistema LNbits y permitir que los clientes paguen por las canciones y las reproduzcan.
Incentiva tu ambiente y ofrece una buena experiencia a tus clientes.
Aquí hay más documentación sobre cómo configurar la extensión Jukebox.
Aquí hay un video tutorial de demostración.
Personalización especial y copia de seguridad
En caso de que desee restringir el acceso a su instancia "pública" de LNbits, puede editar el archivo de configuración haciendo lo siguiente.
Agregue solo cuentas de usuario creadas específicas en la configuración del entorno de LNBits:
- Ingrese SSH en su nodo Umbrel
- Edite el archivo de configuración yml: sudo nano ~/umbrel/apps/lnbits/docker-compose.yml
- Agregue en la sección #App la línea: LNBITS_ALLOWED_USERS: YOUR_USER_ID_FROM_WALLET_URL separada por comas si tiene más usuarios para permitir
- Reinicie la aplicación lnbits: sudo ~/umbrel/scripts/app stop lnbits && ~/umbrel/scripts/app start lnbits
Pronto estará disponible una extensión de administración de usuarios completa, por lo que no será necesaria esta personalización ni se restringirá la creación de nuevas billeteras. Pero hasta entonces puedes usarlo de esta manera.
Si recibes un error como lnurl.Exceptions.InvalidURL cuando creas un LNURL (pago o retiro), agrega esta línea en el archivo .env o en el mismo archivo yml mencionado anteriormente.
FORWARDED_ALLOW_IPS=*
También un aspecto importante: COPIA DE SEGURIDAD de la base de datos.
Para guardar una copia de seguridad de tu instancia de LNbits (incluido el historial de transacciones, billeteras, cuentas), puedes guardar la carpeta de la base de datos ubicada en: ~/umbrel/app-data/lnbits/data
En especial el archivo de la base de datos sqlite3, pero es bueno guardar la carpeta de datos completa para todas las extensiones utilizadas.
Si necesitas editar directamente en esta base de datos sqlite, puedes instalar un editor de visualización simple para sqlite. Más detalles aquí. Luego, puede abrir el archivo de base de datos de SQLite y editar todas las tablas y elementos necesarios, ajustar los saldos y eliminar la edición de los usuarios y billeteras existentes.
Conclusión
Así que, eso es todo, un escenario completo sobre cómo podría usar esta increíble solución LNbits para el restaurante de un hotel. Puedes extender esto a tu actividad específica, cubriendo todas las necesidades que se pueden realizar con las billeteras LNBits lndhub, ahora ya ves lo poderosa que es y fácil de configurar, teniendo la custodia total de tus fondos.
Espero que esta guía pueda inspirar a más comerciantes a comenzar a aceptar Bitcoin.
Además, aquellos entusiastas de Bitcoin ayudan a aquellos comerciantes, que no tienen suficientes habilidades, a construir buenas soluciones para pagos con Bitcoin.
Si no eres experto en tecnología y estás construyendo esta solución, aquí tienes un equipo de especialistas en LNbits de SparkPay (Portugal) o en Alemania / Austria por Business Sats que pueden construir esta solución para ti.