Best Crypto Payment APIs 2026: Coinbase Commerce vs BitPay vs NOWPayments vs Strike
Crypto Payments Have a Real Use Case in 2026
For businesses with international customers, crypto payments solve a genuine problem: cross-border payments via traditional rails incur 3-5% in fees and take 1-5 business days to settle. Cryptocurrency payments settle in minutes, with fees as low as 0.5%, and without the chargebacks that card payments create for merchants.
In 2026, four crypto payment APIs represent distinct approaches: Coinbase Commerce (automatic USDC stablecoin conversion, brand trust), BitPay (enterprise fiat settlement, 38 currencies), NOWPayments (300+ cryptocurrencies, lowest fees), and Strike (Bitcoin Lightning Network, near-instant near-zero-fee settlements).
TL;DR
NOWPayments wins on fee rate (0.5%) and cryptocurrency breadth (300+) — best for merchants who want to accept the widest range of crypto. Coinbase Commerce is the most user-friendly — automatic USDC conversion eliminates volatility risk for merchants. BitPay is the enterprise choice — direct bank settlement in fiat, 38 supported currencies, used by Microsoft and AMC. Strike is the Bitcoin-native choice — Lightning Network payments with near-zero fees and instant settlement.
Key Takeaways
- NOWPayments charges 0.5% per transaction for same-coin settlements — the lowest fee among major crypto payment processors.
- Coinbase Commerce charges 1% with automatic conversion to USDC — merchants receive stable value without crypto volatility exposure.
- BitPay charges 1% and settles directly to bank accounts in USD, EUR, and 36 other fiat currencies — no crypto custody required.
- Strike uses the Bitcoin Lightning Network — settlement in seconds for near-zero fees (sub-cent for most transactions).
- Crypto payments have no chargeback risk — once a transaction is confirmed, it cannot be reversed. For merchants with high chargeback rates, this alone justifies crypto acceptance.
- Volatility is the main risk — unless you use USDC settlement (Coinbase Commerce) or immediate fiat conversion (BitPay), you hold crypto price risk during settlement.
- Lightning Network adoption increased significantly in 2025-2026 — for Bitcoin-accepting merchants, Lightning is now the practical choice.
Pricing Comparison
| Platform | Fee | Settlement | Cryptocurrencies |
|---|---|---|---|
| NOWPayments | 0.5% (same coin) / 1% (auto-convert) | Crypto or stablecoin | 300+ |
| Coinbase Commerce | 1% | USDC or crypto | 10+ |
| BitPay | 1% | Fiat (USD, EUR, 36+) or crypto | BTC, ETH, USDC, 10+ |
| Strike | ~0.3% or flat | BTC or USD | Bitcoin only |
NOWPayments
Best for: Maximum crypto coverage, lowest fees, non-custodial control, international merchants
NOWPayments supports over 300 cryptocurrencies — by far the broadest acceptance of any payment processor. The platform is non-custodial: funds flow directly to your wallet, NOWPayments never holds your assets. The 0.5% fee for same-coin settlements is the lowest in the market.
Pricing
| Type | Fee |
|---|---|
| Same-coin payment | 0.5% |
| Auto-conversion to different crypto | ~1% |
| Fiat settlement | Custom |
API Integration
import requests
# Create a payment
response = requests.post(
"https://api.nowpayments.io/v1/payment",
headers={
"x-api-key": "your-nowpayments-api-key",
"Content-Type": "application/json",
},
json={
"price_amount": 99.99,
"price_currency": "usd",
"pay_currency": "btc", # Accept Bitcoin
"ipn_callback_url": "https://your-site.com/webhooks/nowpayments",
"order_id": "order_12345",
"order_description": "Pro Plan - Annual Subscription",
},
)
payment = response.json()
print(f"Pay to: {payment['pay_address']}")
print(f"Amount: {payment['pay_amount']} BTC")
print(f"Payment ID: {payment['payment_id']}")
IPN (Instant Payment Notification) Webhook
from flask import Flask, request
import hmac
import hashlib
app = Flask(__name__)
@app.route("/webhooks/nowpayments", methods=["POST"])
def nowpayments_webhook():
# Verify webhook signature
sig_header = request.headers.get("x-nowpayments-sig", "")
payload = request.get_data()
expected_sig = hmac.new(
IPN_SECRET.encode(), payload, hashlib.sha512
).hexdigest()
if not hmac.compare_digest(sig_header, expected_sig):
return "Invalid signature", 403
data = request.json
if data["payment_status"] == "finished":
# Payment confirmed — activate subscription
activate_order(data["order_id"])
print(f"Payment confirmed: {data['payment_id']}, {data['actually_paid']} {data['pay_currency']}")
return "OK"
NOWPayments Widget
<!-- Drop-in payment widget -->
<script src="https://nowpayments.io/embeds/payment-widget/v1/widget.js"></script>
<div class="nowpayments-widget"
data-api-key="your-api-key"
data-amount="99.99"
data-currency="usd"
data-payment-id="order_12345">
</div>
When to Choose NOWPayments
Merchants wanting maximum cryptocurrency coverage (300+ coins), international businesses selling to crypto-native audiences, non-custodial merchants who want to hold their own keys, or any merchant for whom the 0.5% same-coin fee vs 1% competitor difference matters at volume.
Coinbase Commerce
Best for: Brand trust, USDC stablecoin settlement, US merchants, easiest integration
Coinbase Commerce benefits from Coinbase's brand recognition — the most trusted crypto brand among mainstream consumers. The automatic USDC conversion option eliminates volatility: a $99.99 transaction paid in Bitcoin is automatically converted to $99.99 USDC, giving merchants stable value without crypto price exposure.
Pricing
- Fee: 1% per transaction
- Settlement: USDC, USD, or crypto
- Supported currencies: Bitcoin, Ethereum, USDC, Litecoin, Bitcoin Cash, DAI, and others (10+)
Integration
// Coinbase Commerce hosted checkout
const Coinbase = require("coinbase-commerce-node");
const { Checkout } = Coinbase.resources;
Coinbase.Client.init("your-api-key");
// Create a charge (one-time payment link)
const charge = await Checkout.create({
name: "Pro Plan - Annual",
description: "Annual subscription to Pro tier",
local_price: {
amount: "199.00",
currency: "USD",
},
pricing_type: "fixed_price",
metadata: {
user_id: "user_123",
plan: "pro_annual",
},
redirect_url: "https://your-site.com/welcome",
cancel_url: "https://your-site.com/checkout",
});
// Redirect user to charge.hosted_url
console.log(`Pay here: ${charge.hosted_url}`);
Webhook Handling
const express = require("express");
const { Webhook } = require("coinbase-commerce-node");
app.post("/webhooks/coinbase", express.raw({ type: "application/json" }), (req, res) => {
const event = Webhook.verifyEventBody(
req.body,
req.headers["x-cc-webhook-signature"],
process.env.COINBASE_WEBHOOK_SECRET
);
if (event.type === "charge:confirmed") {
const { metadata } = event.data;
activateSubscription(metadata.user_id, metadata.plan);
}
res.sendStatus(200);
});
When to Choose Coinbase Commerce
Merchants who want USDC settlement to eliminate volatility, US-based businesses where Coinbase's brand recognition increases conversion, teams that want the simplest integration with strong brand trust, or merchants primarily accepting popular cryptocurrencies (Bitcoin, Ethereum, USDC).
BitPay
Best for: Enterprise merchants, direct fiat bank settlement, large transaction volumes
BitPay is the enterprise crypto payment processor — used by Microsoft, AT&T, AMC, and thousands of large businesses. The key feature: automatic conversion to fiat at the time of payment and direct bank deposit. Merchants never hold crypto — they receive USD or EUR in their bank account.
Pricing
- Fee: 1% per transaction
- Settlement: Direct bank deposit in 38 fiat currencies
- Supported cryptos: Bitcoin, Ethereum, USDC, Litecoin, XRP, USDT, and more
- Chargeback protection: Crypto payments are irreversible — no chargebacks
Enterprise Integration
// BitPay PHP SDK
require 'vendor/autoload.php';
$client = new BitPaySDK\Client(
BitPaySDK\Environment::PROD,
$privateKey,
$tokens
);
// Create an invoice
$invoice = new BitPaySDK\Model\Invoice\Invoice(99.99, "USD");
$invoice->setOrderId("order_12345");
$invoice->setFullNotifications(true);
$invoice->setNotificationURL("https://your-site.com/webhooks/bitpay");
$invoice->setRedirectURL("https://your-site.com/success");
$basicInvoice = $client->createInvoice($invoice);
echo "Pay here: " . $basicInvoice->getURL();
When to Choose BitPay
Enterprise merchants that need direct fiat settlement (no crypto custody), businesses in sectors with high chargebacks (software, gaming, adult content), large transaction volumes where the 1% fee on fiat settlement is the lowest cost crypto-to-fiat path, or global businesses needing settlement in 38+ currencies.
Strike
Best for: Bitcoin Lightning Network, instant settlement, near-zero fees, Bitcoin-native businesses
Strike is built on the Bitcoin Lightning Network — a Layer 2 payment protocol enabling near-instant Bitcoin transactions with fees measured in satoshis (fractions of a cent). For merchants who want Bitcoin-specific payments with the lowest possible fees and instant settlement, Strike is the architecture.
Lightning Network Advantages
| Feature | On-chain Bitcoin | Lightning (Strike) |
|---|---|---|
| Settlement time | 10-60 minutes | Seconds |
| Fee | $1-$20+ per tx | <$0.01 per tx |
| Scalability | Limited | High throughput |
| Reversibility | Irreversible | Irreversible |
Strike API Integration
import requests
# Create a payment request (Lightning invoice)
response = requests.post(
"https://api.strike.me/v1/invoices",
headers={
"Authorization": f"Bearer {STRIKE_API_KEY}",
"Content-Type": "application/json",
},
json={
"amount": {"currency": "USD", "amount": "99.99"},
"description": "Pro Plan subscription",
},
)
invoice = response.json()
# Generate Lightning payment request
quote_response = requests.post(
f"https://api.strike.me/v1/invoices/{invoice['invoiceId']}/quote",
headers={"Authorization": f"Bearer {STRIKE_API_KEY}"},
)
quote = quote_response.json()
lightning_invoice = quote["lnInvoice"] # User pays this with any Lightning wallet
When to Choose Strike
Bitcoin-first businesses, merchants selling to Lightning-enabled users, applications that want instant settlement without exchange rate risk (USD-pegged Lightning), or developers building Bitcoin-native products.
Decision Framework
| Scenario | Recommended |
|---|---|
| Maximum crypto coverage | NOWPayments (300+ coins) |
| Lowest transaction fees | NOWPayments (0.5%) |
| Automatic USDC settlement | Coinbase Commerce |
| Direct bank fiat settlement | BitPay |
| Enterprise, high volume | BitPay |
| Bitcoin Lightning payments | Strike |
| Brand trust with customers | Coinbase Commerce |
| Non-custodial, hold your keys | NOWPayments |
| No chargebacks (high-risk merchant) | Any crypto processor |
Verdict
NOWPayments is the right choice for merchants who want the broadest crypto coverage at the lowest fees. The 0.5% same-coin rate and 300+ currencies make it the most flexible option for crypto-native merchants.
Coinbase Commerce is the recommended starting point for most US merchants — the brand recognition increases customer confidence, the 1% fee is standard, and automatic USDC conversion eliminates volatility risk.
BitPay is the enterprise choice when you need direct fiat bank settlement with no crypto exposure. The fiat settlement removes all crypto complexity from accounting and finance teams.
Strike is the Bitcoin Lightning choice for forward-thinking merchants who want instant, near-free settlements and are ready to accept Bitcoin specifically.
Compare crypto payment API pricing, supported currencies, and integration documentation at APIScout — find the right cryptocurrency payment platform for your business.