# How to accept crypto payments on your website

Three ways to take Bitcoin and stablecoins. Only one keeps every payment in your own
wallet, with no account to open. [Accept crypto with OpenReceive](/): free and open
source, no account, no KYC.

## Who holds your money?

| | 1. Hosted processor | 2. Your own payment server | 3. A library in your own app |
|---|---|---|---|
| Examples | BitPay, Coinbase Commerce, NOWPayments, CoinGate | BTCPay Server | OpenReceive |
| Money path | Customer → processor → you, later | Customer → server you run → you | Customer → you, in seconds |
| Account and business verification | Usually required | None | None |
| Cost | A fee on every payment | Free software, plus hosting | Free, MIT licensed |
| Pays out to your bank | Often | No | No |
| What you run | Nothing | Another server | Nothing extra: it runs inside your app |

Want dollars in your bank instead of crypto? A hosted processor is the better fit.

## How a payment reaches your wallet

- **Bitcoin:** the customer scans a QR code, your app creates the invoice in your own
  wallet, and the payment arrives in seconds over Lightning.
- **Stablecoins:** the customer pays in USDT (Tron, Ethereum, Solana), USDC
  (Ethereum, Solana), ETH or SOL. A swap provider you choose converts it, and the
  same Bitcoin payment arrives in your wallet.

## Why it settles in Bitcoin

USDT and USDC can be frozen at any time by the companies that issue them
([Circle](https://www.theblock.co/post/162172/circle-freezes-usdc-funds-in-tornado-cashs-us-treasury-sanctioned-wallets),
[Tether](https://blocksec.com/blog/1-26-billion-frozen-usdt-blacklisting-on-ethereum-and-tron-in-2025)).
Tether froze $1.26B of USDT in 2025. Bitcoin in your own wallet can't be frozen.

## Start in four steps

1. **Get a wallet code.** It is receive-only: it can't spend, so your server can't
   be drained. [Get one free](/get_a_nwc_code_to_receive_payments).
2. **Add OpenReceive.** A plugin for your store, or a package for your app (see
   below).
3. **Add stablecoins (optional).** [Connect a swap provider](/set_up_swap_provider).
4. **Go live.** Pay yourself a small invoice, then deploy. See the
   [deployment guide](/guides/deploying).

## Works with your store or app

- Stores and billing panels: [WordPress + WooCommerce](/integrations/woocommerce),
  [Easy Digital Downloads](/integrations/easy-digital-downloads),
  [PrestaShop](/integrations/prestashop), [Odoo](/integrations/odoo),
  [Medusa](/integrations/medusa), [Vendure](/integrations/vendure),
  [Magento](/integrations/magento) (through BTCPay Server),
  [Paymenter](/integrations/paymenter), [FOSSBilling](/integrations/fossbilling)
  and [BTCPay Server](/integrations/btcpay-server)
- JavaScript and TypeScript: [Express](/integrations/express),
  [Next.js](/integrations/nextjs), [Fastify](/integrations/fastify),
  [NestJS](/integrations/nestjs), [SvelteKit](/integrations/sveltekit),
  [Nuxt](/integrations/nuxt), [Astro](/integrations/astro),
  [React Router](/integrations/react-router) and
  [TanStack Start](/integrations/tanstack-start)
- Python: [Django](/integrations/django), [FastAPI](/integrations/fastapi) and
  [Flask](/integrations/flask)
- PHP: [Laravel](/integrations/laravel) and [plain PHP](/integrations/php)
- Ruby: [Rails](/integrations/rails)

Building on Vercel, Replit, Lovable, Bolt or Supabase?
[Start from your platform](/platforms). Using Claude Code, Codex or Cursor? Every
page has directions your agent can follow. No Shopify app yet.

## Questions

### Do I need a business account?

Not with OpenReceive or BTCPay Server: there is nothing to sign up for. Hosted
processors usually ask you to verify your business.

### What does it cost?

OpenReceive is free. Your wallet, a swap provider and the Lightning network may
charge small fees of their own. Hosted processors take a percentage of each payment.

### Can I get paid in dollars?

Not directly with OpenReceive: you receive Bitcoin and can sell it on an exchange.
For bank payouts, use a hosted processor.

### Is a wallet code on my server safe?

Yes. It is receive-only: it can create invoices and check them, but it cannot send
money. You withdraw in your wallet's own app.

### What about taxes?

In many countries a crypto sale counts as revenue at its value when paid. Keep a
record of each payment and ask an accountant.

[Get started with OpenReceive](/): free, open source, and paid straight to your own
wallet.
