Back to Blog
How to Accept Bitcoin Donations with BTCPay Server for Nonprofits
·6 min read

How to Accept Bitcoin Donations with BTCPay Server for Nonprofits

Learn how nonprofits can set up BTCPay Server to accept Bitcoin donations with zero fees, full custody, and embeddable donation buttons.

Every dollar a nonprofit loses to payment processing fees is a dollar that doesn't reach its mission. Traditional donation platforms typically charge 2-5% per transaction, plus monthly fees. For organizations accepting Bitcoin, BTCPay Server offers an alternative: a free, open-source payment processor where 100% of donations go directly to your wallet.

This guide walks through deploying BTCPay Server for nonprofit donation acceptance, from initial server setup to embedding donation buttons on your website.

Why BTCPay Server Makes Sense for Nonprofits

BTCPay Server eliminates intermediaries entirely. You control the wallet, you receive funds directly, and there are no percentage-based fees eating into contributions. The only costs are your hosting (typically under $10/month for a VPS) and standard Bitcoin network fees paid by donors.

For nonprofits operating in sensitive contexts, this matters beyond cost savings. The Human Rights Foundation hosted a 2025 webinar specifically addressing how organizations in closed societies can use BTCPay Server to receive donations without relying on payment processors that might be pressured to cut off access. Direct custody means no third party can freeze your funds or deplatform your organization.

The software also provides transparency tools. Every donation generates a verifiable invoice, and organizations can optionally share public payment data to demonstrate accountability to donors.

Setting Up Your BTCPay Server Instance

You have two main paths: self-hosting on your own server, or using a managed hosting provider. Self-hosting gives you complete control but requires some technical comfort. Managed options like LunaNode offer one-click BTCPay deployment that handles the infrastructure for you.

Self-Hosted Deployment

The recommended method uses Docker on a VPS or dedicated server. Here's the process:

  1. Provision a VPS with at least 2GB RAM (4GB recommended if running a full Bitcoin node)
  2. Clone the btcpayserver-docker repository
  3. Set your environment variables, including `BTCPAY_HOST` (your domain) and `BTCPAY_GEN_CRYPTO1='btc'`
  4. Run the `btcpay-setup.sh` script, which automates Docker installation and HTTPS certificate setup

The initial blockchain sync takes several days for a full node. You can alternatively configure BTCPay to use a pruned node or connect to an external node to reduce storage requirements.

One-Click Hosted Deployment

If managing servers isn't your strength, providers like LunaNode offer BTCPay instances you can deploy in minutes. You still control your wallet keys; the host simply provides the server infrastructure. This is a reasonable tradeoff for organizations that want to start accepting donations quickly without dedicating staff time to server administration.

Configuring Your Donation Store

Once your BTCPay instance is running, create a "store" from the dashboard. Think of this as your nonprofit's donation processing hub.

Wallet Setup

Connect your Bitcoin wallet by importing your extended public key (xpub). This allows BTCPay to generate unique addresses for each donation without ever holding your private keys. You can use hardware wallets like Ledger or Trezor for maximum security.

For smaller donations where speed matters, consider enabling Lightning Network. Lightning allows instant, sub-cent fee payments ideal for recurring microtransactions or donation drives where contributors give small amounts.

Creating Donation Buttons

BTCPay Server generates embeddable payment buttons you can add to any website. From your store dashboard:

  1. Navigate to Payment Buttons under the store settings
  2. Choose a button style (fixed amount, custom amount, or slider)
  3. Configure the currency display and optional preset amounts
  4. Copy the generated HTML code to your website

When a visitor clicks the button, BTCPay generates a unique invoice with a QR code and Bitcoin address. Once the blockchain confirms payment, both donor and nonprofit see the completed transaction.

Point-of-Sale for Events

For in-person fundraising events, BTCPay includes a Point-of-Sale app. Volunteers can display QR codes on tablets or phones, accepting donations without any special hardware. The app supports multiple items if you're running an auction or selling merchandise alongside donation drives.

WordPress Integration with GiveWP

Many nonprofits run their websites on WordPress and use GiveWP for donation management. BTCPay Server offers a dedicated plugin (updated in 2025) that integrates directly.

Install the BTCPay for GiveWP plugin from the WordPress plugin directory. You'll need to generate an API key from your BTCPay store and enter it in the plugin settings. Once connected, Bitcoin appears as a payment option on your existing GiveWP donation forms.

This approach works well for organizations that want to add Bitcoin alongside traditional payment methods without rebuilding their donation infrastructure.

Recurring Donations and Subscriptions

BTCPay Server version 2.3.0 (released in 2025) enhanced subscription and recurring payment features. Donors can authorize periodic payments, though it's worth noting that Bitcoin doesn't support automatic pulls from wallets like credit cards do.

For recurring donations, BTCPay sends invoice reminders to donors at configured intervals. The donor still initiates each payment, but the system tracks subscription status and automates communication. This works better for engaged, committed donors rather than passive monthly contributors who might forget to complete payments.

Tracking and Transparency

BTCPay Server maintains detailed records of all transactions. You can export donation data for accounting, generate reports by time period, and track which campaigns or buttons drive the most contributions.

Some nonprofits publish their BTCPay payment data publicly to demonstrate transparency. Bitcoin's blockchain already makes transactions verifiable, but BTCPay's reporting tools make it easier to present this information in donor-friendly formats.

Practical Considerations

Bitcoin donations require different handling than traditional payments. You'll need a policy for when to convert to fiat currency (if at all), accounting practices that recognize Bitcoin's price volatility, and staff training on basic wallet operations.

Tax treatment varies by jurisdiction. In the United States, cryptocurrency donations are generally treated like stock donations, with specific reporting requirements for contributions over $5,000. Consult with an accountant familiar with cryptocurrency before your first major donation.

Donor adoption remains a limiting factor. While Bitcoin ownership continues to grow, most people still give through traditional channels. BTCPay Server works best as an additional donation option rather than your only one.

Getting Started

For nonprofits ready to accept Bitcoin donations, BTCPay Server offers a path that preserves both privacy and funds. The technical barrier is real but manageable, especially with hosted deployment options and strong documentation.

Start with a test deployment, send yourself a small donation, and verify the full flow before announcing Bitcoin acceptance to your donor base. The BTCPay community maintains active forums and chat channels where you can get help with specific configuration questions.

The organizations that benefit most are those processing enough donations to notice traditional payment fees, those operating in contexts where payment processor relationships are uncertain, and those whose donor communities already hold Bitcoin. If that describes your nonprofit, BTCPay Server is worth evaluating seriously.