Guide
How to accept Bitcoin in a café
Practical Lightning setup for in-person physical retail — counter, POS, staff training, accounting reality.
Affiliate disclosure. Some links on this page are partner links. LN Cash may earn a commission if you sign up. This does not change which tools we recommend — see our methodology and the full disclosure.
Accepting Bitcoin over Lightning at a physical counter is now a well-supported setup. It’s not the right call for every merchant, but for cafés, market stalls, pop-up shops, and small retail in Bitcoin-friendly regions, the experience is genuinely smooth.
This guide is the practical walkthrough.
Step 1: Decide on your custody model
The first question: do you want to hold sats yourself, or have a processor hold them and settle to fiat?
- Hold sats (self-custody): BTCPay Server. Free software, run on a small VPS (~$8/month managed via Voltage) or your own hardware. Zero platform fees. Payments settle directly to your Lightning node.
- Auto-convert to fiat (custodial processor): OpenNode, Speed, or Strike in supported countries. Sign up, get API keys, integrate. Receives in sats, settles to your bank in local currency on a schedule.
For a busy café doing $100+/day in Bitcoin, BTCPay Server is the long-term cheaper option. For occasional Bitcoin sales or a non-technical owner, a hosted processor is fine — you’ll pay a small percentage in exchange for not running anything.
Step 2: Set up the till
Option A: BTCPay Server with a Zeus tablet at the counter
- Stand up a BTCPay Server instance.
- Install a Zeus tablet at the counter, connected to your BTCPay node.
- Enable Zeus’s POS mode — staff types in the amount in local currency, the tablet shows a QR.
- Customer scans, pays. Tablet shows confirmation.
Option B: Hosted processor with a POS app
- Sign up for OpenNode or Speed.
- Use their merchant POS app on a tablet or phone.
- Same flow: enter amount, show QR, confirm payment.
Either way, the staff-facing flow is one screen. Don’t make it more complex than that.
Step 3: Print a QR poster (optional but useful)
For a fixed-price item (a coffee, a particular menu item), a static printed QR can be faster than ringing it up:
- Generate the QR from your Lightning Address or LNURL-pay endpoint, with the amount pre-encoded or left for the customer.
- Print it, laminate it, put it next to the till.
- Customer scans, the amount is suggested by the poster (or they type it), they pay.
BTCPay Server can generate poster PDFs. Hosted processors have similar features in their dashboards.
Step 4: Train your staff (the actual training is 5 minutes)
Three rules:
- Generate an invoice for the right amount. Either ring it up on the POS or type the amount into the wallet.
- Show the QR to the customer. Their wallet scans it.
- Wait for the green checkmark before completing the sale. The customer is paid when the screen confirms — not when they’ve shown you the “sent” screen on their own wallet.
That third rule is the only one staff occasionally get wrong. The customer’s wallet showing “sent” is not the same as your terminal showing “received.” Train for the green checkmark.
Step 5: Reconcile and report
End of day, your records show:
- Lightning invoices generated (one per sale).
- Settled vs unsettled (very few unsettled in practice).
- Receipt timestamps and amounts.
BTCPay Server exports CSV directly. Hosted processors have similar exports plus dashboard reports.
For tax purposes, the value-at-receipt of each payment matters in most jurisdictions. Most processors record this. If you self-host, make sure your BTCPay configuration is logging fiat-equivalent value at receipt time.
Common mistakes
- Going straight to BTCPay Server without a technical operator. If you don’t have someone comfortable with Linux and Docker on-call, use a managed BTCPay host (Voltage, LunaNode) or start hosted and migrate later.
- Holding all sats without a withdrawal plan. Lightning is a payment layer, not a savings layer. Sweep to on-chain cold storage or your accounting wallet on a schedule.
- No refund policy. Lightning payments are final once settled. Have a policy ready — typically: refund in sats, after the customer provides a Lightning invoice for the refund amount.
- Assuming customers will use Lightning. Most customers won’t, at least initially. Treat Lightning as one option alongside card and cash. Don’t lose card-paying customers waiting for Bitcoin adoption.
Refunds in practice
A customer wants a refund on a Bitcoin payment. The clean flow:
- Customer opens their Lightning wallet, generates a BOLT11 invoice for the refund amount in sats.
- Customer shows you the invoice (or sends it).
- You pay the invoice from your processor or wallet.
- Done. Mark the refund in your books.
Note: refunding in fiat-equivalent value at refund time vs receipt time matters for both your accounting and customer trust. Decide your policy ahead of time and write it down.
Accounting reminder
Tax treatment varies. In many EU jurisdictions, receiving Bitcoin in exchange for goods is a sale at the fiat-equivalent value at the time. Holding the sats afterward and later converting may trigger capital gains. See:
- Lightning Network taxes for creators — high-level framing.
- Country guides: Czech Republic, Germany, Portugal, United States, Taiwan.
Marketing it
Once your setup works, advertise it:
- Sticker on the door: “Bitcoin accepted here.”
- Note on the menu: “We accept Lightning.”
- Add yourself to local Bitcoin maps (BTCMap, Blink’s merchant directory).
In Bitcoin-active cities (Prague, Lugano, Bedford UK, parts of LATAM and Asia), being on the local merchant map drives meaningful inbound traffic.
Next step
- Pick a processor: the best Lightning payment processors in 2026.
- Compare hosted vs self-hosted: BTCPay Server vs OpenNode.
- Setup wizard: coming soon — get notified.
FAQ
Do I need special hardware? +
No. A tablet or phone at the counter with a Lightning wallet or POS app is sufficient. Some merchants add a Bolt Card (NFC tap-to-pay) reader for faster checkout.
What if my staff isn't tech-savvy? +
Train them on the 'green check' rule: payment is not complete until the screen shows confirmation. The flow is roughly as simple as card payments — one screen, one tap, one confirmation.
Do I have to convert to local currency? +
Up to you. Some merchants hold sats as a Bitcoin position. Others use a processor with fiat settlement (OpenNode, Speed, Strike) that auto-converts to local currency on receipt. Country-specific tax rules matter — see your country guide.