Xero + LNbits

Accept Bitcoin on Xero invoices with your own LNbits server

Bitcoin on your Xero invoices, paid through a server you install, host and back up yourself

Register now and get 3 invoices for free → See How It Works

First month free • No credit card required • Cancel anytime

Xero reported about 4.9 million customers at 31 March 2026, with most of its base in the United Kingdom, Australia and New Zealand. Its invoice payment options come from connected services such as Stripe for cards and GoCardless for direct debit, and every one of them settles into a bank account. A client who wants to pay in Bitcoin has no route inside that arrangement. Most workarounds replace it with another company's account, another set of terms and, often, another identity check.

LNbits takes a different route. It is free software, released under the MIT licence, that you install on a machine you choose. It sits in front of a Lightning funding source and gives you wallets, API keys and payment pages on your own domain. Where the server runs, who can log in, how it is backed up and which Lightning backend funds it are all your decisions. For a business that already treats its own infrastructure as part of its risk policy, that is the point.

PayInBTC.me connects the two. Xero is linked through its standard OAuth authorisation with read access only, and your LNbits instance is linked with an invoice/read key and a wallet ID. Your invoices carry a Bitcoin option next to the payment services you already use, the amount is calculated at the live rate when the client opens it, and the payment lands in a wallet on your own server. Nothing about how you invoice in Xero changes.

Why Xero and LNbits work together when you host it yourself

The payment page is served from your own domain

LNbits payment pages come from its SatsPay Server extension, which creates a charge with an amount, an expiry time and a choice of Lightning, on-chain or both. When a Xero client clicks the Bitcoin link, PayInBTC.me reads the invoice total from Xero and sends the client to a payment page that your LNbits instance serves. The charge, its status and the wallet balance sit in your own database, not in a processor's dashboard. It also means the instance must be reachable over HTTPS from the internet, because the client's browser lands on it directly.

You choose the machine and the country it sits in

LNbits is light. A third-party comparison puts the requirement at one virtual CPU, one to two gigabytes of memory and about one gigabyte of storage, with no blockchain data to sync, which a small VPS at around five US dollars a month can cover. If you would rather not rent a server, LNbitsBox, announced in April 2026, is a dedicated device with LNbits preinstalled, set up in a browser, with backups and remote access handled from an admin panel. A New Zealand studio can keep the machine in Auckland, and a UK practice can pick a data centre in the UK or the EU. A firm with a written policy on where payment records are stored can point to the exact machine that holds them.

A Lightning backend that fits how much you want to run

LNbits does not move money by itself. It keeps accounts of wallets on top of a funding source, which can be LND, Core Lightning, Eclair, Phoenixd, Spark and others. Running your own node gives the most control and also means managing channels and liquidity, while Phoenixd or Spark take most of that work away and come with their own terms to read first. Custody follows the backend: on your own instance with your own funding source it is self-custodial, and pointing LNbits at a hosted service hands custody to that service. Because PayInBTC.me talks only to LNbits, you can change the backend later without touching the Xero connection.

Read-only toward Xero, no spending key toward LNbits

PayInBTC.me reads the invoice number, amount and currency from Xero and cannot write to your ledger, edit an invoice or touch your chart of accounts. On the LNbits side it uses the invoice/read key and the wallet ID rather than the admin key, so the credential it holds is not one that can spend from the wallet. The Bitcoin settles to a wallet on your instance, and PayInBTC.me never holds it.

How the integration works

Setup takes about five minutes on the PayInBTC.me side. The one prerequisite is a running LNbits instance, and that part stays in your hands.

1

Prepare your LNbits instance

Run LNbits on a VPS, on your own hardware or on an LNbitsBox, and choose its funding source. Enable the SatsPay Server extension, plus the Onchain Wallet extension if you also want to accept on-chain payments. Create a wallet and copy its invoice/read key and wallet ID from the wallet's API section.
2

Connect Xero and LNbits

Sign in to PayInBTC.me and authorise Xero through its standard OAuth flow, which shares no password and grants read access only. Then add your instance URL, the invoice/read key and the wallet ID. The on-chain wallet ID is needed only if you enabled on-chain payments.
3

Add the Bitcoin link to an invoice

A 'Pay with Bitcoin' link is placed on the Xero invoices you choose. Your template, branding, numbering and payment terms stay as they are, and the link sits next to the payment services you already offer.
4

Your client pays on your server's payment page

When the client clicks the link, PayInBTC.me fetches the invoice total from Xero, calculates the Bitcoin amount at that moment's rate and sends the client to the SatsPay payment page on your instance. They pay from any Bitcoin wallet over Lightning, or on-chain if you enabled it.
5

Reconcile in Xero

The payment lands in the wallet on your instance, and PayInBTC.me emails you when it clears. You then mark the invoice as paid in Xero yourself, because the connection is read-only. Automatic reconciliation is on the roadmap and is not available today.

What a self-hosted setup gives a Xero business

Payment records in your own database

Charges, wallet balances and payment history live on the instance you run. You decide who has an account, how long logs are kept and where the backups go, instead of exporting data from a processor's dashboard when an auditor asks.

A flat, predictable running cost

The recurring costs are the server, plus PayInBTC.me at 1,500 sats per invoice or 2,500 sats a month for unlimited invoices. None of it scales with invoice size, so a £30,000 invoice costs the same to collect as a £300 one.

A backend you can swap

LNbits abstracts the Lightning funding source. If you start on Phoenixd and later move to your own LND node, the Xero connection stays as it is and only the instance configuration changes.

Wallets that can follow your Xero organisations

One LNbits instance can hold many wallets, each with its own balance and API keys. A group with several Xero organisations can keep a separate wallet for each, so balances and payment histories do not mix.

Lightning settlement, no chargebacks

Lightning payments settle in seconds, and a Bitcoin payment that has settled stays settled. No processor holds the funds on a payout calendar, which removes a source of reversals and a wait of several days for a studio billing overseas clients.

What it costs on a typical Xero invoice

Take a £3,000 invoice from a UK design studio to a client abroad. Here is roughly how the payment cost compares, including the cost of running your own server.

Method Cost on a £3,000 invoice Notes
International card payment About £95 to £105 Around 3.25% plus a fixed fee for non-UK cards on common UK processing rates, before any FX markup
International bank transfer £10 to £30 Wire fees on one or both sides, two to three working days, and a manual match in Xero
Bitcoin via PayInBTC.me and LNbits About £1.20 Flat 1,500 sats per invoice on pay-per-use, plus a Lightning routing fee of a few sats; your funding backend may add its own fees
Server to host LNbits Roughly £4 to £5 a month A small VPS at around five US dollars a month. The cost is fixed whatever the invoice volume, and nil if you already run a suitable server

On this invoice the gap between a card payment and a Bitcoin payment is roughly £95. A server at £4 to £5 a month plus the PayInBTC.me subscription stays below the card cost of that one invoice. If you expect only a handful of Bitcoin invoices a year, the server becomes the largest line, which is why this setup suits businesses that already run their own infrastructure.

Who this fits

Studios and consultancies with a technical lead

UK, Australian and New Zealand firms on Xero that already run a VPS or a home lab. They want Bitcoin invoicing to be one more service on infrastructure they maintain, not another vendor account.

Businesses that already run LNbits

Merchants who use LNbits for a point of sale, event tickets or paywalls and want their Xero invoices paid into the same instance, so in-person, online and invoiced sales are visible in one place.

Firms with rules about where payment data sits

Businesses whose clients or internal policy ask where payment records are stored. A self-hosted instance in a chosen country answers with a specific machine and a specific database.

Owner-managed firms that prefer a device to a server contract

Small teams that would rather plug in an LNbitsBox at the office than rent and secure a VPS. The device is a recent product, so check its current specification, price and support terms first.

Getting started

You need a Xero account and a running LNbits instance that PayInBTC.me can reach. How you host that instance is up to you.

  1. Set up LNbits on a VPS, your own hardware or an LNbitsBox, choose a funding source, and enable the SatsPay Server extension (and Onchain Wallet if you want on-chain payments).
  2. Create a wallet in LNbits and copy its invoice/read key and wallet ID from the API section.
  3. Register at payinbtc.me, authorise Xero through OAuth, and add your LNbits URL, key and wallet ID.
  4. Enable the Bitcoin payment link on the invoices you want to offer it on, then send one to yourself as a test before using it with a client.

The first month is free, with three free invoices on the pay-per-use plan, so you can run real invoices through the setup first. Setup instructions for both sides are at docs.payinbtc.me.

Frequently Asked Questions

Does this change how I create invoices in Xero?

No. You invoice in Xero exactly as you do now. PayInBTC.me adds a 'Pay with Bitcoin' link to the invoices you choose and reads the invoice number, amount and currency to build the payment. Your templates, numbering and accounting entries stay as they are.

Do I have to host LNbits myself to use it with Xero?

PayInBTC.me needs an LNbits instance it can reach, with the SatsPay Server extension enabled. You can run that on a VPS, on your own hardware or on an LNbitsBox, which is the route this page is about. Our setup guide also mentions the hosted version at lnbits.com, but then someone else operates the server and the funding source, so the self-hosting argument no longer applies. If you host it yourself, uptime and backups are yours, and while the instance is offline the payment page cannot open.

Does the payment go over Lightning or on-chain?

Lightning by default. The setup is built around a Lightning wallet, which settles in seconds at a very low fee. If you also enable the Onchain Wallet extension and add its wallet ID, the payment page can offer on-chain Bitcoin for larger amounts, and the client chooses.

Where does the Bitcoin end up?

In a wallet on your LNbits instance, funded by the Lightning backend you chose. PayInBTC.me reads your Xero invoices and passes the payment through but never holds the funds. Whether the result is fully self-custodial depends on that backend: your own node or a self-custodial service keeps control with you, while a custodial service would hold the balance on your behalf.

Do I need to understand Bitcoin to use this?

Your clients and your day-to-day invoicing need no Bitcoin knowledge. The one technical task is the first one: installing and securing an LNbits instance, choosing a funding source, and keeping it updated and backed up. If that is more than you want to own, our hosted BTCPay add-on is the lower-effort route to the same non-custodial result.

Will Xero mark the invoice as paid automatically?

Not yet. PayInBTC.me has read-only access to Xero and does not write back to it, so you mark the invoice as paid yourself after the confirmation email arrives. Automatic reconciliation is on the roadmap.

What does it cost per invoice?

PayInBTC.me charges 1,500 sats per invoice on pay-per-use, 2,500 sats per month for unlimited invoices, or 25,000 sats per year. The first month is free, with three free invoices on pay-per-use. It is never a percentage of the invoice. Your own costs are the server and any fees from your Lightning backend, which depend on the one you choose.

Can I use this outside the UK, Australia and New Zealand?

Yes. Xero is used in many countries, and PayInBTC.me places no geographic restrictions on the connection. You choose where your server sits. The Lightning backend you pick may have its own country availability, so check its current terms.

More questions? See our full FAQ →

Start today—risk free

Add Bitcoin to Your Xero Invoices with LNbits

Keep Xero. Keep your workflow. Just add Bitcoin payments via LNbits.

No credit card required. First 3 invoices free. Cancel anytime.

Register now and get 3 invoices for free →

Questions? Talk to our team