OpenReceive for BTCPay Server

Accept Bitcoin & Stablecoin Payments With BTCPay Server

Make a receive-only NWC wallet your store's Lightning node with the OpenReceive plugin. Nothing to code. Stablecoin payments are optional.

Copy agent directions — Paste into Claude Code, Codex or Cursor to add OpenReceive to your BTCPay Server app.

Why OpenReceive

See the plugin at work

Receive Lightning payments straight into a wallet you control, with a receive-only NWC code. Optionally let payers pay with USDT, USDC, ETH or SOL through a Lightning Swap Connect provider, which converts these payments to BTC over Lightning in your connected wallet. Asset and network availability depends on the provider. Requires BTCPay Server 2.4.4 or later.

The whole setup in 30 seconds:

Install the plugin

Sign in to your BTCPay Server as a server administrator. If someone else hosts your server, ask them to install the plugin for you.

1. Open the Plugins menu — the plug icon in the top-right corner.

Click the plug icon in the top-right corner

2. Click Plugin Directory.

Choose Plugin Directory from the Plugins menu

3. Search for openreceive and click the OpenReceive result.

Search the plugin directory for openreceive

4. Click Install in BTCPay Server. Confirm when prompted, then click Restart now and wait for BTCPay to come back. Select your store and follow the setup below.

Click Install in BTCPay Server on the OpenReceive plugin page

For the full quickstart, see https://openreceive.org/guides/quickstart-btcpay.

Setup

5. Open OpenReceive in the store’s sidebar, under Wallets.

Click OpenReceive in the store sidebar

6. Paste your receive-only NWC code and click Save NWC Code. Test connection first if you want to see what the wallet supports. Get a code at https://openreceive.org/get_a_nwc_code_to_receive_payments.

Paste the NWC code and save

7. Optional: turn on swaps. Paste a Lightning Swap Connect code and click Save swap settings. Get one at https://openreceive.org/set_up_swap_provider.

Paste the swap provider code and save

8. Done. The page shows Wallet connected and, if you set up a provider, Swaps on. Your wallet is now the store’s Lightning node.

Wallet connected and swaps on

Try it

9. Open Invoices in the sidebar.

Click Invoices

10. Click Create Invoice.

Click Create Invoice

11. Enter an amount and click Create.

Enter an amount and create

12. The checkout offers Lightning, plus one option per asset your swap provider supports. Lightning payments land in your wallet; swaps settle into it through the provider.

The checkout with Lightning and swap options

Good to know

Installing the plugin: https://openreceive.org/guides/quickstart-btcpay. Every setting, Greenfield route, swap state and health probe: https://openreceive.org/guides/btcpay-reference. MIT licensed; source at https://github.com/OpenReceive/openreceive (packages/dotnet).

Payment recovery changes require a coordinated host/worker upgrade. See the payment safety upgrade and historical recovery procedure for additive migrations, selected legacy-account repair, retired swap refunds, and the provider budget scope.

Set up

Requires BTCPay Server ≥ 2.4.4.

1. Get a receive-only NWC code — get one here. It can issue invoices and watch for payment, and it can never spend from your wallet.

2. Get an LSC code for swaps (optional) — from a swap provider, only if customers should be able to pay in USDT, USDC, ETH or SOL.

3. Install the plugin

Plugins (the plug icon, top right) → Plugin Directory → search "openreceive" → Install

4. Connect the wallet — paste the NWC code into the store's OpenReceive settings and test the connection; add the LSC code to switch swaps on.

Full BTCPay Server quickstart · Plugin source

Practical questions

Which currencies can customers pay with?
Bitcoin over Lightning, always. With a swap provider configured, also USDT on Tron, Solana or Ethereum, USDC on Solana or Ethereum, ETH and SOL, each converted into the same Lightning payment. Automated swaps guide
Where does the Bitcoin go?
Into the wallet behind the NWC code. BTCPay mints each Lightning invoice in that wallet and its own listener records the payment, so webhooks and the Greenfield API work unchanged. BTCPay plugin reference
What wallet do I need?
Any wallet that issues receive-only NWC (Nostr Wallet Connect) codes, hosted or self-run. The code must be able to create invoices and read their status, and must not be able to spend. Get a receive-only NWC code
What does it cost?
OpenReceive is open source and free. Fees charged by your wallet provider, by a swap provider or by Lightning routing belong to those services and are outside OpenReceive's scope.
What do I need to deploy?
BTCPay Server 2.4.4 or later, the plugin installed from the Plugins menu (the plug icon, top right) → Plugin Directory, and a receive-only NWC code saved in the store's OpenReceive settings. BTCPay Server quickstart

Add OpenReceive to your BTCPay Server app

Copy agent directions · Full quickstart · Example repository · API reference · Guides