USD Finans

Magasinet der gør dig klogere på penge

Brug BTCPay Server til at udstede LN-fakturaer

Brug BTCPay Server til at udstede LN-fakturaer

Forestil dig at kunne modtage betalinger i bitcoin på få sekunder – helt uden kortgebyrer, tilbageførsler eller afhængighed af tredjeparts-gateways. Det lyder næsten for godt til at være sandt, men med en selvhostet BTCPay Server og Lightning Network er det præcis, hvad både webshops, freelancere og cafés over hele verden allerede gør.

I denne guide på USD Finans viser vi dig, hvordan du på egen hånd kan sætte en BTCPay-instans op, åbne dine første kanaler og udstede LN-fakturaer (BOLT11) til kunder, medlemmer eller donorer. Vi gennemgår både de tekniske skridt – fra Docker-installationen til de første testbetalinger – og de forretningsmæssige overvejelser som likviditet, gebyrstruktur og bogføring.

Hvorfor bruge energi på at selvhoste? Svaret er enkelt: kontrol og frihed. BTCPay Server giver dig fuld råderet over dine midler, dine kundedata og dine transaktionsgebyrer. Samtidig åbner Lightning Network døren til instant settlement med mikroskopiske omkostninger – ideelt til alt fra 1-kronesaviser til globale abonnements-services.

Er du klar til at dykke ned i kryptovalutaens svar på MobilePay og få hands-on tips til at komme i gang? Så læn dig tilbage, og lad os tage dig trin for trin fra nul til mainnet

Hvad er BTCPay Server og Lightning Network-fakturaer?

BTCPay Server er blevet de facto standarden for virksomheder og entusiaster, der ønsker at modtage bitcoin-betalinger uden at overlade nøgler, data eller gebyrindtægter til en tredjepart. Som 100 % open-source kan softwaren downloades, ændres og hostes på din egen server, så du selv styrer alt fra transaktionsflow til brugerdata og routing-gebyrer.

Lightning network i fugleperspektiv

Bitcoin-netværket i sin rå form (on-chain) kan kun håndtere få transaktioner pr. sekund. Lightning Network (LN) er et såkaldt lag-2-netværk oven på Bitcoin, der muliggør næsten øjeblikkelige og meget billige mikro-betalinger via betalingskanaler. Brugerne låser først en sats på Bitcoin-kæden; herefter flytter de saldo internt i kanalen, uden at hvert hop skal publiceres on-chain.

Hvad er en ln-faktura (bolt11)?

Når du som sælger vil modtage en Lightning-betaling, genererer BTCPay Server en BOLT11-faktura. Det er en kodet streng (typisk vist som en QR-kode), der indeholder:

  • Beløb og valuta (fx 50 DKK konverteret til sats)
  • Node-ID og routing-hint
  • Udløbstid & metadata (beskrivelse, ordre-ID, m.m.)
  • Digital signatur, så modtageren verificeres kryptografisk

On-chain vs. Lightning – Hvad er forskellen?

On-chain Lightning Network
Bekræftelsestid 10-60 min (afhængig af fee og antal konfirmeringer) <1 sekund (næsten instant)
Gebyr Variabel – typisk 5-1000 sats pr. input ~0-5 sats + routing-gebyrer (ppm)
Tilbagebetaling Ny transaktion, nye gebyrer Kan refunderes internt i kanalen uden on-chain fee
Skalering Begrænset til ~1 MB blokke Næsten ubegrænset antal mikro-betalinger

Fordele og ulemper ved selvhosting

  • Fordele: fuld kontrol over private nøgler, ingen custodial risk, højere privatliv, ingen tredjepartsgebyrer, mulighed for at tjene routing-fees.
  • Ulemper: du er selv drift- og sikkerhedsansvarlig, udgifter til server og energi, kompleksitet ved backups og opgraderinger.

Arkitektur i et btcpay-setup

  1. Bitcoin-node (bitcoind) – validerer blokke og giver prishistorik til BTCPay.
  2. Lightning-backend – vælg mellem LND, Core Lightning eller Eclair; sørger for kanal-administration og routing.
  3. BTCPay Server – web-interface, fakturagenerator, regnskab og API.
  4. Store – den butiksinstans hvor du indtaster xpub, vælger fiat-omregning og aktiverer betalingsmetoder.

Centrale lightning-begreber

  • Kanallikviditet – hvor meget af balancen er inbound (kan modtage) og outbound (kan sende).
  • Routing-fees – små gebyrer (ppm + fast sats), du kan tjene når andres betalinger passerer din node.
  • Hold invoices – fakturaer der reserveres, men først afregnes når du frigiver pre-image; nyttigt til abonnementer og lagerkontrol.

Sikkerhed & compliance

Selvom Lightning er off-chain, står midlerne stadig på hot wallets, hvilket gør sikkerhed altafgørende.

  • Seed- og kanal-backups: gem BIP39-frø i kold opbevaring og tag løbende channel.backup.
  • Server-hærdening: SSH-nøgler, firewalls, regelmæssige software-opdateringer og 2-FA til BTCPay-dashboardet.
  • KYC/AML: Danske erhvervsdrivende er fortsat underlagt hvidvaskloven ved beløb > 1000 EUR pr. kunde pr. dag.
  • Bogføring og moms: Eksportér .CSV fra BTCPay, registrér DKK-værdi på betalingstidspunktet, og opkræv moms på normale vilkår.

Typiske anvendelser

  • Webshops: WooCommerce, Magento, Shopify (via proxy-app) – kunder betaler i BTC/LN, butikken modtager el. auto-konverterer.
  • Donationer: enkel Pay-button eller lnurlp-adresse uden KYC-krav for modtageren.
  • Point of Sale (POS): Tablet i café eller bar, instant betaling med QR-kode – ingen kortgebyrer.
  • Abonnementer & SaaS: Hold invoices/AMP muliggør månedlig fakturering uden at gemme kortdata.

Med andre ord er BTCPay Server + Lightning Network en one-stop, self-custody løsning, der kombinerer Bitcoinkædens tillid og Lightning-netværkets hastighed – og som samtidig giver dig fuld suverænitet over dine penge og data.

Trin-for-trin: Opsætning af BTCPay Server og udstedelse af LN-fakturaer

  • Domæne: F.eks. pay.ditfirma.dk
  • Server/VPS: Min. 2 GB RAM, 50 GB SSD, offentlig IP-adresse
  • Driftsmiljø: Linux (Ubuntu 20.04+), sudo-adgang, Docker og Docker Compose installeret
  • Basal terminalviden: SSH, editor (nano/vim) og firewall-opsætning (ufw)

1. Installation af btcpay server (docker-deployment)

  1. SSH ind på serveren og kør:
    sudo su -
    mkdir btcpay && cd btcpay
    curl https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/master/btcpay-setup.sh -o btcpay-setup.sh
    chmod +x btcpay-setup.sh
  2. Start installationsscriptet – angiv domæne og LN-backend:
    ./btcpay-setup.sh -i pay.ditfirma.dk -l lnd
    Scriptet
    • Genererer docker-compose.yml
    • Henter billeder (Bitcoin Core, LND/Core Lightning, BTCPay m.fl.)
    • Opsætter Let’s Encrypt-certifikat og automatisk fornyelse
  3. Efter ca. 10-15 min er BTCPay tilgængelig på https://pay.ditfirma.dk

2. Opret en butik (store) og tilknyt bitcoin-wallet

  1. Log ind (første bruger bliver admin), klik “Create a new store”
  2. Vælg Set up a wallet → Hot Wallet eller importer en xpub fra hardware-/watch-only-wallet for cold-storage
  3. Notér store ID; den skal bruges ved API-kald

3. Vælg og konfigurer lightning-backend

Backend Fordele Ulemper
LND Størst økosystem, nemme tools Mere RAM-krævende
Core Lightning (CLN) Lavt resource-forbrug, plugin-arkitektur Færre GUI-værktøjer

Kør lncli newaddress (LND) eller lightning-cli newaddr (CLN) for at generere node URI og start en static channel backup (SCB). Download SCB-filen og opbevar den offline.

4. Åbn kanaler & skaf inbound-likviditet

  1. Indbetal on-chain BTC til din LN-wallet (lncli newaddress)
  2. Åbn 2-3 kanaler (0,01-0,05 BTC) til velrutede noder via:
    lncli openchannel --node_key=<pubkey> --local_amt=1000000
  3. Inbound-likviditet:
    • Lightning Loop In / Boltz Reverse Swap
    • Kanalkøb (Amboss Magma, Lightning Network+)
    • Frivillige peer-forbindelser fra kunder/venner

5. Aktiver lightning i btcpay

  1. Gå til Store → Settings → Lightning Network
  2. Vælg backend (LND/CLN), test forbindelsen, og gem
  3. Under Payments → Rates justér kurser (CoinGecko m.fl.)
  4. Sæt invoice expiry (typisk 30 min), payment tolerance og accepterede metoder (on-chain, LN eller begge)

6. Udsted din første ln-faktura

  1. Klik Invoices → Create new invoice
  2. Angiv beløb (DKK eller sats), metadata (ordre-ID, kunde-e-mail) og Lightning only
  3. BTCPay genererer en BOLT11-streng og QR-kode. Scan med en mobil wallet (Phoenix, Breez, Muun) og send 10-20 sats for at teste
  4. Status skifter til Settled på få sekunder

7. Integration i dit økosystem

  • WooCommerce: Installer BTCPay for WooCommerce, indsæt Store ID & API key (Scoped)
  • API / Webhooks: Hent /invoices, modtag invoice_paid events til lager-/ERP-system
  • POS-app: Generér webbaseret kasse-interface til caféer & events
  • E-mail/QR: Send faktura-link automatiseret via regnskabs-software
  • LNURL-Pay & Lightning Address: [email protected] for donationer og mikrobetalinger

8. Drift & bedste praksis

  • Opdateringer: Kør ./btcpay-update.sh månedligt. Test i staging først
  • Monitorering: Prometheus + Grafana eller BTCPay’s indbyggede Server Stats. Alert på lav inbound-likviditet
  • Rebalancering: lncli payinvoice --outgoing-chan-id=... --last_hop=...; hold routing-gebyrer (base/ppm) konkurrencedygtige
  • Sikkerhed:
    • Firewall – åbn kun 80/443 + LN-port 9735
    • SSH-nøgler, fail2ban, 2FA på BTCPay-konti
    • Automatisk off-site backup af seed, SCB og docker-compose.yml
  • Fejlfinding: lncli lookupinvoice, check HTLC-status; btcpay.logs for 404/500-fejl
  • Bogføring: Eksportér CSV fra Invoices og synkronisér til e-conomic/Dinero; husk kursvederlag og momsrapport

Med ovenstående workflow kan du på under en time gå fra nul infrastruktur til at modtage lynhurtige, gebyrbillige LN-betalinger direkte til din egen node – helt uden mellemmænd.

Indhold