# BTCPayServer Documentation
BTCPay Server is an open-source, self-hosted payment processor for Bitcoin and other cryptocurrencies.
If you have trouble using BTCPay Server, consider joining the communities listed on the official website (opens new window) to get help from BTCPay community members.
Only file Github issue (opens new window) for technical issues you can't resolve through other channels or feature requests you've validated with other members of community.
- Direct, peer-to-peer Bitcoin payments
- No transaction fees (other than the network fee (opens new window))
- No processing fees
- No middleman
- No KYC
- Non-custodial (complete control over the private key)
- Enhanced privacy
- Enhanced security
- SegWit support
- Lightning Network support (LND, c-lightning, Eclair and Ptarmigan)
- Tor support
- Opt-in altcoin integrations
- Full compatibility with BitPay API (easy migration)
- Process payments for others
- Easy-embeddable Payment buttons
- Point of sale app
- Crowdfunding app
- Payment Requests
- Internal, full-node reliant wallet with hardware wallet integration
- Payjoin Support
# How it works
# In a nutshell
In layman's terms, BTCPay Server is a self-hosted and automated invoicing system. At checkout, the customer is presented with an invoice. Each time, a different address is tied to a particular invoice, so there is no address re-use. BTCPay Server follows the status of the invoice through the blockchain and informs a merchant when he can fulfill the order safely.
# How is it different
BTCPay is code, not a company. There is no third-party between a merchant and a customer. Merchant is always in full control of the funds. There are no processing or subscription fees. BTCPay Server is free to use and completely open-source, so developers or security auditors can always inspect the quality of the code.
# How it keeps funds secure
Payments via BTCPay Server are direct, peer to peer. The merchant receives the coins directly to their wallet, with no intermediary. Securing funds comes down to the merchant securing their own private keys, which is standard for most cryptocurrency wallets.
There is an internal wallet inside BTCPay Server that merchants can use to view and spend funds received by their customers. The funds from that wallet can only be spent, if a transaction is signed with the merchant's compatible hardware wallet or a private key. This allows merchants to have complete control of funds received.
# How it keeps data private
The data is shared only between two parties - the buyer and a seller. Other payment processors collect and share user data with other parties, making it very hard to comply with privacy law regulations like GDPR. Each invoice in BTCPay Server has a different receiving address, so there is no address re-use (opens new window) which improves privacy significantly.
# How it resists censorship
- Can be run everywhere, from low-powered device like Raspberry Pi at home to enterprise-grade servers
- No third-party
- Can easily be re-deployed
BTCPay Server does not have a central point of failure since nobody is controlling it except for the user running it. If run on the cloud server, the hosting providers can potentially censor users by suspending hosting accounts or disabling access to virtual machines. This is always a risk for anyone using a hosting provider. Since no private keys are stored on the server, a censored individual can easily re-deploy the server with another host. Your coins are always inside your wallet.
If an invoice is paid while your BTCPay Server is down, the software will automatically determine and notify the merchant of offline invoice payments when your server is back up. If a hosting provider suspends the server, and there was no proper backup, server settings and invoice data may be lost, but on-chain payments are always in your wallet. For ultimate censorship-resistance, users should run BTCPay on their own hardware. The software can even be run on a single-board computer, like Raspberry Pi from the comfort of your home.
# Beyond payment processing
BTCPay Server is often misconceived as being the payment processor used by the merchants only. In reality, the use-cases are limitless.
BTCPay is a tech-stack that glues lots of complex components into an easy-to-use and coherent interface. The software can be used by self-sovereign individuals as a way to run a full node at home with a full-node reliant wallet.
Developers can build the entire businesses and projects on top of the stack.
Enterprises can use it as scalable and secure back-end of their infrastructure without ever having to put a trust in a third-party. BTCPay Server is a toolbox (opens new window) with lots of tools you can use, it's up to you how you want to use it.
# Community articles
- The Ultimate List of BTCPay Server Hosts and Merchants (opens new window)
- BTCPay Server official YouTube channel (opens new window)
- BTCPay Server Manual Install (opens new window)
- How to Setup BTC and Lightning Payment Gateway with BTCPayServer on Linux (Manual Install) (opens new window)
- BTCPay Server Setup Using Digital Ocean (opens new window)
- BTCPay Server Setup Using AWS EC2 (opens new window)
For list of articles, podcasts and video presentations about BTCPay, please see our media repository (opens new window).
Pull requests are welcome and appreciated.
If you're beginner, take a look at the step by step guide on how to contribute to BTCPay Server documentation below.
The BTCPay Server Project is proudly supported by these entities through the BTCPay Server Foundation.
Wallet of Satoshi
If you'd like to support the project, please visit the donation page (opens new window).
Use Case →