Disclosure: Some links in this article are affiliate links. We may earn a commission at no extra cost to you.
Table of Contents
- Five Ways to Accept Crypto Payments
- Method 1: Hosted Payment Gateway (Fastest)
- Method 2: E-Commerce Plugins
- Method 3: Self-Hosted Gateway (BTCPay Server)
- Method 4: Direct API Integration
- Method 5: Simple QR Code Payments
- Platform-Specific Guides
- Method Comparison Table
- Security Best Practices
- Next Steps
Five Ways to Accept Crypto Payments
There's no single "right" way to accept crypto on a website. The best method depends on your platform, technical skill level, transaction volume, and whether you want to settle in fiat or hold crypto. Here are your five options, ranked from easiest to most technical:
- Hosted payment gateway — Sign up, paste a button or link, done. (10 minutes)
- E-commerce plugin — Install a plugin on WooCommerce, Shopify, or similar. (30 minutes)
- Self-hosted gateway — Run BTCPay Server on your own infrastructure. (1–3 hours)
- Direct API integration — Build a custom checkout using a gateway's API. (1–5 days)
- QR code payments — Display a wallet address for manual transfers. (5 minutes)
Most businesses should start with Method 1 or 2. Graduate to Method 3 or 4 only when you need more control or want to eliminate transaction fees.
Method 1: Hosted Payment Gateway (Fastest Setup)
Hosted gateways handle everything — wallet management, payment detection, exchange rate conversion, and settlement. You sign up, configure your preferences, and embed a payment button or checkout link on your site.
Step-by-Step with NOWPayments
- Sign up at nowpayments.io with your email. No business registration required for crypto-to-crypto settlement.
- Add your payout wallet. Enter the wallet address (BTC, ETH, USDC, or any supported coin) where you want to receive funds.
- Create a payment. Use the dashboard to generate a payment link, payment button, or invoice. Set the price in USD (or any fiat currency) — NOWPayments handles the crypto conversion.
- Embed on your site. Copy the HTML for a payment button and paste it into your website. Or redirect customers to a hosted checkout page using the generated link.
- Receive payments. When a customer pays, NOWPayments converts the payment to your chosen cryptocurrency and sends it to your wallet. Processing time: 5–30 minutes depending on the blockchain.
NOWPayments charges 0.5% per transaction — the lowest fee among hosted gateways. They support 300+ cryptocurrencies, which means your customers can pay with almost anything.
Alternative: Coinbase Commerce
Coinbase Commerce offers a similar hosted experience with a cleaner UI but fewer coin options (10+ vs 300+) and a 1% fee. The advantage: Coinbase's brand recognition may increase buyer confidence. Setup is nearly identical — sign up, connect a wallet, embed a checkout button.
Alternative: BitPay
BitPay is the oldest crypto payment processor (founded 2011, $10B+ processed). They charge 1% and support 16 major cryptocurrencies. BitPay's differentiator: direct bank settlement in 40+ countries. You receive USD, EUR, or GBP in your bank account — no need to manage crypto wallets at all. Requires KYC verification and a registered business.
Method 2: E-Commerce Plugins
If you run an online store on a major platform, dedicated plugins handle crypto payment integration without touching code.
WooCommerce (WordPress)
WooCommerce has the widest selection of crypto payment plugins:
- BTCPay for WooCommerce: Free, non-custodial. Requires a BTCPay Server instance (self-hosted or third-party). Install the plugin, enter your BTCPay Server URL, and pair it with your store. Zero fees beyond network costs.
- NOWPayments for WooCommerce: Install from the WordPress plugin directory. Enter your NOWPayments API key. Select which cryptocurrencies to accept. 0.5% fee.
- CoinGate for WooCommerce: Similar setup. 1% fee. Supports 70+ coins with optional fiat settlement via SEPA (EU merchants).
Installation for any of these takes about 15 minutes: install plugin → enter API key → configure settings → test with a small payment.
Shopify
Shopify's native crypto support is limited, but third-party apps fill the gap:
- Coinbase Commerce: Available in the Shopify App Store. Install, connect your Coinbase Commerce account, and crypto appears as a payment option at checkout.
- NOWPayments: Also available as a Shopify app. Same setup — install, API key, configure.
- BitPay: Direct Shopify integration. Requires a BitPay business account (KYC required).
One Shopify-specific issue: Shopify doesn't allow external payment gateways to handle the checkout flow directly. Instead, customers select "pay with crypto" and are redirected to the gateway's hosted checkout page, then returned to your store after payment. This adds a step but works reliably.
WordPress (Non-WooCommerce)
If you run a WordPress site without WooCommerce (a blog accepting donations, a membership site), use payment button plugins or simple shortcodes. BTCPay Server's WordPress plugin supports standalone payment buttons without requiring WooCommerce.
Method 3: Self-Hosted Gateway (BTCPay Server)
BTCPay Server is a free, open-source payment processor that you run on your own server. It's the most privacy-respecting and cost-effective option — zero transaction fees, full control over your data, and no third-party dependencies.
For detailed setup instructions, see our no-KYC gateway guide, which includes a 30-minute BTCPay Server deployment walkthrough.
When BTCPay Server Makes Sense
- You process enough volume that even 0.5% fees add up significantly
- You want zero counterparty risk — no gateway can freeze your funds
- Privacy and data sovereignty matter to your business
- You're comfortable managing a Linux server (or paying $8–$15/month for managed hosting)
When It Doesn't
- You want fiat settlement — BTCPay settles in crypto only
- You need support for 50+ altcoins — BTCPay is primarily Bitcoin-focused
- You have no technical staff and can't manage server infrastructure
Method 4: Direct API Integration
For developers building custom checkout experiences, payment gateway APIs provide full control over the payment flow. This is how large platforms (SaaS products, marketplaces, ticketing systems) integrate crypto payments.
Typical API Flow
- Create a payment session. Your backend calls the gateway API with the amount (in fiat), accepted currencies, and a callback URL.
- Display payment details. The API returns a wallet address, QR code, and expected amount in crypto. Your frontend displays these to the customer.
- Monitor payment status. The gateway monitors the blockchain for incoming payments. It sends webhook notifications to your callback URL:
pending→confirming→confirmed→settled. - Fulfill the order. On receiving the
confirmedwebhook, your system marks the order as paid and triggers fulfillment.
API Comparison
| Gateway API | Documentation Quality | SDKs | Webhooks | Fee |
|---|---|---|---|---|
| NOWPayments | Good | JS, Python, PHP | Yes | 0.5% |
| Coinbase Commerce | Excellent | JS, Python, Ruby | Yes | 1% |
| BitPay | Good | JS, Python, PHP, C# | Yes | 1% |
| BTCPay (Greenfield) | Good | JS, Python, C# | Yes | 0% |
| CoinGate | Adequate | PHP, Python | Yes | 1% |
A basic API integration takes 1–2 days for an experienced developer. Adding features like partial payments, refunds, multi-currency pricing, and payment status pages extends that to 3–5 days.
If you're considering building a full gateway rather than integrating an existing one, read our cost to develop a crypto payment gateway analysis first.
Method 5: Simple QR Code Payments
The simplest possible approach: display a wallet address and QR code on your website. The customer scans the code with their wallet app and sends the payment manually.
How to Set It Up
- Generate a wallet address for the cryptocurrency you want to accept. Use any wallet app (Electrum, MetaMask, Trust Wallet).
- Generate a QR code for the address using any QR code tool (qr-code-generator.com or a command-line tool like
qrencode). - Add the QR code and address to your website's payment page.
- Manually check your wallet for incoming payments.
When This Works
Donations, tips, one-off payments where you can manually verify receipt. Content creators, open-source projects, and personal services use this approach. The Bitcoin Lightning network's LNURL standard makes this slightly more dynamic — you can generate unique invoices per request.
When It Doesn't
E-commerce with automated fulfillment. You can't reliably match payments to orders without a payment processor that generates unique addresses per transaction and monitors the blockchain automatically.
Platform-Specific Guides
Shopify
Recommended: Coinbase Commerce (easiest) or NOWPayments (most coins, lowest fees).
- Open your Shopify admin → Settings → Payments → Alternative payment methods.
- Search for "Coinbase Commerce" or "NOWPayments" in the Shopify App Store.
- Install and connect your account. Follow the in-app setup wizard.
- Test with a small purchase using Shopify's test mode.
WooCommerce
Recommended: BTCPay Server plugin (zero fees) or NOWPayments plugin (multi-coin).
- WordPress admin → Plugins → Add New → Search for your chosen gateway.
- Install and activate the plugin.
- Go to WooCommerce → Settings → Payments → Enable your crypto gateway.
- Enter API credentials (API key for NOWPayments, or BTCPay Server URL for BTCPay).
- Test checkout with a small order.
Custom Website (HTML/React/Next.js)
Recommended: Direct API integration with NOWPayments or Coinbase Commerce.
- Sign up for a gateway account and obtain API keys.
- Install the gateway's SDK (
npm install @coinbase-commerce/nodeor use REST API directly). - Create a checkout endpoint on your backend that generates a payment session.
- Redirect the customer to the hosted checkout or display the payment details in a custom UI.
- Set up a webhook endpoint to receive payment confirmations.
Squarespace / Wix / Other Website Builders
Recommended: Payment link from NOWPayments or Coinbase Commerce.
Most website builders don't support crypto payment plugins natively. The workaround: generate a payment link through your gateway's dashboard and add it as a button or hyperlink on your checkout or pricing page. Customers click the link, complete payment on the gateway's hosted page, and you receive a confirmation email.
Method Comparison Table
| Method | Setup Time | Technical Skill | Fees | Automation | Best For |
|---|---|---|---|---|---|
| Hosted Gateway | 10 min | None | 0.5%–1% | Full | Most businesses |
| E-Commerce Plugin | 30 min | Low | 0%–1% | Full | Online stores |
| Self-Hosted (BTCPay) | 1–3 hrs | Medium | 0% | Full | Privacy, cost savings |
| API Integration | 1–5 days | High | 0%–1% | Full | Custom platforms |
| QR Code | 5 min | None | 0% | None | Donations, tips |
Security Best Practices
Regardless of which method you choose, follow these security fundamentals:
1. Use Unique Addresses Per Transaction
Never reuse a single wallet address for all payments. Reusing addresses makes it impossible to match payments to orders and exposes your total revenue on-chain. Every gateway listed above generates unique addresses automatically. If using the QR code method, at minimum generate a new address for each customer.
2. Verify Payments Server-Side
Don't rely on client-side JavaScript to confirm payment. A malicious buyer can fake a "payment confirmed" event in their browser. Always verify payment status through your gateway's API or by checking the blockchain directly on your backend server.
3. Wait for Sufficient Confirmations
One confirmation is generally safe for small amounts (under $1,000). For larger transactions, wait for 3–6 confirmations on Bitcoin (30–60 minutes) or 12–20 confirmations on Ethereum (3–5 minutes). Your gateway handles this automatically, but configure the confirmation threshold appropriately for your risk tolerance.
4. Secure Your API Keys
Store API keys in environment variables, not in client-side code or public repositories. Rotate keys periodically. Use IP whitelisting if your gateway supports it (BitPay and Coinbase Commerce both do).
5. Enable Webhook Signature Verification
Gateways sign webhook payloads with a secret key. Always verify the signature before processing a webhook — otherwise an attacker can send fake payment confirmations to your endpoint.
6. Cold Storage for Large Balances
If you hold crypto rather than converting to fiat, move accumulated funds to cold storage (hardware wallet like Ledger or Trezor) regularly. Don't keep large balances in hot wallets connected to your gateway.
Next Steps
Pick the method that matches your technical comfort level and start with a test transaction. Every gateway listed here supports test/sandbox modes. Once you've confirmed payments flow correctly, switch to production and announce crypto payments to your customers.
For B2B operations, our guide on the benefits of accepting crypto payments for B2B companies covers the business case in detail. And check our stablecoin payments news to stay current on which payment platforms are adding crypto support.
Our Top Picks
Based on our research, these gateways offer the best combination of features, fees, and reliability: