Browse / Invoicing and finance
BTCPay Server
Self-hosted Bitcoin payment processor with invoices, POS apps and the Greenfield REST API.
BTCPay Server lets a business accept on-chain Bitcoin and Lightning payments without an intermediary: stores, invoices, payment requests, pull payments and payouts, a point-of-sale app and crowdfunding pages. The Greenfield API covers nearly the whole product and is the basis for running it headless. Docker deployment is configured through BTCPAY_* and BTCPAYGEN_* variables.
- I want to accept Bitcoin at my shop or website without a processor taking a cut or holding my keys
- I want my agent to raise invoices and check settlement over an API I control
- Bitcoin and Lightning only; no fiat card rails
- A full node sync takes days and hundreds of GB unless you add the pruning fragment
- Running Lightning means managing channel liquidity
Last activity Sep 2, 2026. Fit: adaptable 3, operable 3.
Editions
Free · Free open source
- Clone
git clone https://github.com/btcpayserver/btcpayserver - ImageContainer
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only16 things to edit
The Docker deployment is a generator: set BTCPAY_HOST, network, which coins and Lightning implementation to run, reverse proxy and Let's Encrypt email in the .env, add fragments for pruning or plugins, then run btcpay-setup.sh. Store branding, checkout appearance and rates are in-app settings; plugins extend behavior without forking.
- Env vars
BTCPAY_HOSTBTCPAY_ADDITIONAL_HOSTSNBITCOIN_NETWORKBTCPAYGEN_CRYPTO1BTCPAYGEN_LIGHTNINGLIGHTNING_ALIASBTCPAYGEN_REVERSEPROXYREVERSEPROXY_HTTP_PORTREVERSEPROXY_HTTPS_PORTLETSENCRYPT_EMAILBTCPAY_LETSENCRYPT_HOSTSBTCPAYGEN_ADDITIONAL_FRAGMENTSBTCPAYGEN_EXCLUDE_FRAGMENTSBTCPAY_ENABLE_SSH- Config files
.env (BTCPAY_ENV_FILE)btcpay.env- Prompt files
- none
- Accounts you need
- none
Source
- github.com/btcpayserver/btcpayserver
- MIT license
- Last commit Sep 2, 2026
- 7,741 stars
Operable: what an agent can drive
Interface
OfficialAPIpublished by the builderlocal
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 8 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create and manage stores | Reachable | swagger.template.stores.json, stores-users, stores-rates |
| Issue invoices and watch payment status | Reachable | swagger.template.invoices.json, webhooks |
| Payment requests | Reachable | swagger.template.payment-requests.json |
| Pull payments and payouts (refunds, salaries) | Reachable | swagger.template.pull-payments.json, payout-processors |
| Point of sale, crowdfunding and donation apps | Reachable | swagger.template.apps.json |
| Lightning node operations | Reachable | swagger.template.lightning.internal.json, lightning.store, stores-lightning-addresses |
| On-chain wallet and payment methods | Reachable | swagger.template.stores-wallet.on-chain.json, stores-payment-methods |
| Users, API keys and notifications | Reachable | swagger.template.users.json, api-keys, authorization, notifications |
| Sign transactions with a hardware wallet | Not reachable | BTCPay Vault runs in the browser next to the hardware wallet; not an API operation |
| Install and configure plugins | Undetermined | no plugins group among the swagger templates; server admin UI or BTCPAYGEN_ADDITIONAL_FRAGMENTS |
Code stack
- Languages
- C#
- Frameworks
- ASP.NET Core (.NET 10)
- Package manager
- nuget
- Database
- PostgreSQL
- Hosting target
- Docker (btcpayserver-docker)third-party hostsmanual .NET deploy
- Built
- Human-written (recorded, never ranked)
Skills
Repo carries contributor-facing development skills (migrations, changelog, PR descriptions, Playwright patterns) for working on the server. [contributor tooling, not adopter-facing]
- Kind
- contributor
- Paths
.agents/skills/*/SKILL.md
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | ASP.NET web app with client-facing checkout and admin (README) | 95% |
| executionModel | no model at runtime | 95% |
| operability | Greenfield API documented at docs.btcpayserver.org by the Builder; swagger templates in BTCPayServer/wwwroot/swagger/v1 | 95% |
| effort | docs.btcpayserver.org/Docker lists BTCPAY_* and BTCPAYGEN_* variables and the .env file | 85% |
| editions | README: free and open source, MIT; third-party hosting list | 95% |
| active | GitHub pushedAt 2026-09-02 | – |
| reach | 85% |
Open questions
- Plugin management over Greenfield
Sources
- github.com/btcpayserver/btcpayserver sourcing:invoicing-finance:github
- docs.btcpayserver.org/Docker/ analysis:invoicing-finance
- github.com/btcpayserver/btcpayserver/tree/master/BTCPayServer/wwwroot/swagger/v1 analysis:invoicing-finance