Crypto Payment Gateway Integration: Stripe, Circle & On-Chain Options
Complete integration guide for crypto payment gateways including Stripe's crypto onramp, Circle USDC APIs, Coinbase Commerce, and direct on-chain payment systems. Covers architecture patterns, fee comparison, compliance requirements, and code examples for Web3 businesses.
Crypto payment gateway integration enables businesses to accept cryptocurrency payments alongside or instead of traditional payment methods. In 2026, the three dominant approaches are Stripe's crypto onramp (fiat-to-crypto conversion embedded in checkout, processing $2.8B+ quarterly in crypto volume), Circle's USDC payment APIs (powering $12T+ in cumulative USDC transactions since launch), and direct on-chain payment contracts (used by 14,000+ merchants via protocols like Request Network and Sablier). Each approach serves different use cases: Stripe excels at fiat-to-crypto bridging for Web2 businesses entering crypto, Circle provides enterprise-grade stablecoin infrastructure for B2B payments and treasury operations, and on-chain solutions offer maximum decentralization and composability for Web3-native businesses.
The global crypto payments market reached $1.3B in payment processor revenue in 2025 (Grand View Research), with projected 18.6% CAGR through 2030. Stablecoins dominate payment volume β USDC and USDT together process more daily transfer value ($45B+) than PayPal and Venmo combined. For businesses building on Web3 or serving crypto-native customers, integrating crypto payments is no longer optional β it is a competitive requirement.
Crypto Payment Gateway Integration: Stripe, Circle & On-Chain Options
Complete integration guide for crypto payment gateways including Stripe's crypto onramp, Circle USDC APIs, Coinbase Commerce, and direct on-chain payment systems. Covers architecture patterns, fee comparison, compliance requirements, and code examples for Web3 businesses.
Crypto payment gateway integration enables businesses to accept cryptocurrency payments alongside or instead of traditional payment methods. In 2026, the three dominant approaches are Stripe's crypto onramp (fiat-to-crypto conversion embedded in checkout, processing $2.8B+ quarterly in crypto volume), Circle's USDC payment APIs (powering $12T+ in cumulative USDC transactions since launch), and direct on-chain payment contracts (used by 14,000+ merchants via protocols like Request Network and Sablier). Each approach serves different use cases: Stripe excels at fiat-to-crypto bridging for Web2 businesses entering crypto, Circle provides enterprise-grade stablecoin infrastructure for B2B payments and treasury operations, and on-chain solutions offer maximum decentralization and composability for Web3-native businesses.
The global crypto payments market reached $1.3B in payment processor revenue in 2025 (Grand View Research), with projected 18.6% CAGR through 2030. Stablecoins dominate payment volume β USDC and USDT together process more daily transfer value ($45B+) than PayPal and Venmo combined. For businesses building on Web3 or serving crypto-native customers, integrating crypto payments is no longer optional β it is a competitive requirement.
This guide provides implementation-ready architecture patterns, fee comparisons, compliance checklists, and integration code for every major crypto payment approach. Whether you are a Web3 startup adding payments to your dApp or an enterprise accepting USDC for invoices, this is your complete technical reference.
Stripe's crypto onramp allows users to purchase cryptocurrency using their credit card, debit card, or bank transfer β directly within your application's checkout flow. The crypto is delivered to the user's wallet, and you receive a referral fee or can structure the flow so payment settles to your own crypto wallet.
Stripe also supports crypto payouts (paying out in USDC to recipients) and crypto-to-fiat settlement (receiving crypto and settling in USD to your bank account).
Architecture Pattern
User β Your Frontend β Stripe Onramp Session API β Stripe Hosted Widget
β
User pays with card
β
Stripe converts fiat β crypto
β
Crypto delivered to wallet
β
Webhook: onramp.session.completed
Integration Steps
Step 1: Create an Onramp Session (Server-side)
// POST /api/create-onramp-session
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
export async function POST(request) {
const { walletAddress, amount, destinationCurrency } = await request.json();
const session = await stripe.crypto.onrampSessions.create({
wallet_addresses: {
ethereum: walletAddress, // or solana, polygon, base
},
destination_amount: amount,
destination_currency: destinationCurrency || 'usdc',
lock_wallet_address: true,
});
return Response.json({ clientSecret: session.client_secret });
}
Step 2: Mount the Onramp Widget (Client-side)
import { loadStripeOnramp } from '@stripe/crypto';
const stripeOnramp = await loadStripeOnramp(process.env.NEXT_PUBLIC_STRIPE_KEY);
const session = stripeOnramp.createSession({
clientSecret: clientSecret, // from Step 1
appearance: {
theme: 'dark', // or 'light'
},
});
session.mount('#onramp-container');
session.addEventListener('onramp_session_updated', (event) => {
if (event.payload.status === 'fulfillment_complete') {
// Crypto delivered to user's wallet
handlePaymentSuccess(event.payload);
}
});
Step 3: Handle Webhooks
// POST /api/webhooks/stripe-onramp
export async function POST(request) {
const event = stripe.webhooks.constructEvent(
await request.text(),
request.headers.get('stripe-signature'),
process.env.STRIPE_ONRAMP_WEBHOOK_SECRET
);
switch (event.type) {
case 'crypto.onramp_session.completed':
const session = event.data.object;
// session.wallet_address β where crypto was delivered
// session.destination_amount β amount delivered
// session.destination_currency β currency delivered
// session.source_amount β fiat amount charged
await updateOrderStatus(session.id, 'paid');
break;
case 'crypto.onramp_session.failed':
await handleFailedPayment(event.data.object);
break;
}
return Response.json({ received: true });
}
Stripe Crypto Pricing
Component
Fee
Onramp transaction (card)
1.5% + network fee
Onramp transaction (bank/ACH)
0.5% + network fee
Crypto payouts (USDC)
$0.25 flat per payout
Platform/marketplace cut
Configurable (you set the margin)
Monthly minimum
None
Setup fee
None
Stripe Crypto Limitations
β’Geographic availability: Currently available in 27 countries (US, EU, UK, select APAC). Not available in most of Africa, Middle East, or South America.
β’Token support: Limited to ~50 tokens. No support for long-tail altcoins or new launches.
β’Onramp only (primarily): Stripe focuses on fiat-to-crypto. For crypto-to-crypto or pure on-chain payments, use other solutions.
β’KYC requirements: End users face Stripe's standard identity verification for purchases over $500 in most jurisdictions.
Circle USDC Payment Integration
Overview
Circle is the issuer of USDC (the second-largest stablecoin, $52B+ market cap in Q1 2026). Their payment infrastructure provides three tiers:
β’Circle Payments API: Accept and send USDC programmatically (free for API calls, gas-only costs)
β’Circle Mint: Convert between USDC and fiat at 1:1 with no fee (for institutional accounts, $100K+ minimum)
β’Programmable Wallets: Create and manage wallets for users without requiring them to manage private keys
Architecture Pattern
Business API Server β Circle Payments API β Circle Infrastructure
β
USDC minted or transferred
β
Destination wallet receives USDC
β
Webhook: payment.completed
β
Optional: Circle Mint β Bank (fiat)
Integration Steps
Step 1: Accept USDC Payments
// Generate a payment address for a customer
import { CircleAPI } from '@circle-fin/circle-sdk';
const circle = new CircleAPI({
apiKey: process.env.CIRCLE_API_KEY,
environment: 'production', // or 'sandbox'
});
// Create a payment intent
const paymentIntent = await circle.createPaymentIntent({
amount: { amount: '100.00', currency: 'USD' },
settlementCurrency: 'USD',
paymentMethods: [
{ type: 'blockchain', chain: 'ETH' },
{ type: 'blockchain', chain: 'SOL' },
{ type: 'blockchain', chain: 'MATIC' },
],
});
// Returns deposit addresses for each chain
// Customer sends USDC to the deposit address
// Circle detects the payment and fires webhook
Step 2: Programmable Wallets (Custodial)
// Create a wallet for a user (they never see private keys)
const walletSet = await circle.createWalletSet({
name: 'user-wallets',
});
const wallet = await circle.createWallet({
walletSetId: walletSet.id,
blockchains: ['ETH', 'SOL', 'MATIC'],
});
// Send USDC from the wallet
const transfer = await circle.createTransfer({
source: { type: 'wallet', id: wallet.id },
destination: {
type: 'blockchain',
address: recipientAddress,
chain: 'ETH',
},
amount: { amount: '500.00', currency: 'USD' },
});
Step 3: Convert USDC to Fiat (Circle Mint)
// For institutional accounts ($100K+ monthly volume)
const redemption = await circle.createRedemption({
amount: { amount: '50000.00', currency: 'USD' },
destination: {
type: 'wire',
id: bankAccountId,
},
});
// Funds arrive in 1-2 business days
Circle USDC Pricing
Component
Fee
API calls
Free
USDC β fiat (Circle Mint)
Free (1:1 redemption)
Blockchain gas fees
Varies by chain ($0.001-$5)
Programmable Wallets
Free up to 10,000 wallets, then custom
Wire transfer (fiat redemption)
$0-25 depending on bank
Minimum for Circle Mint
$100,000
Circle Advantages for B2B
Circle's infrastructure is particularly strong for B2B use cases:
β’Cross-border payments: Send USDC globally in minutes instead of 3-5 day wire transfers. 85% cost reduction vs SWIFT for sub-$100K transfers.
β’Treasury management: Hold operating capital in USDC, earning competitive yields through Circle Yield (currently 4.2% APY on USDC).
β’Invoicing: Circle's payment links integrate with standard invoicing workflows. Partners on The Signal's marketplace can receive USDC payments directly.
β’Multi-chain flexibility: Accept USDC on whichever chain your customers prefer β Ethereum, Solana, Base, Polygon, Arbitrum, Avalanche, or Noble (Cosmos).
Coinbase Commerce Integration
Overview
Coinbase Commerce is the simplest crypto payment gateway for businesses that want plug-and-play integration. It supports BTC, ETH, LTC, DOGE, USDC, and DAI with a flat 1% processing fee and automatic conversion to USD.
For Web3-native businesses, direct on-chain payments eliminate intermediaries entirely. Customers send tokens directly to your smart contract or wallet address, with payment verification handled by blockchain indexing.
// Listen for PaymentReceived events
import { createPublicClient, http, parseAbi } from 'viem';
import { base } from 'viem/chains';
const client = createPublicClient({
chain: base,
transport: http(process.env.RPC_URL),
});
const paymentAbi = parseAbi([
'event PaymentReceived(address indexed payer, uint256 amount, bytes32 indexed orderId)',
]);
// Watch for new payments
const unwatch = client.watchContractEvent({
address: PAYMENT_CONTRACT_ADDRESS,
abi: paymentAbi,
eventName: 'PaymentReceived',
onLogs: async (logs) => {
for (const log of logs) {
const { payer, amount, orderId } = log.args;
// Verify amount matches order
// Update order status in database
// Send confirmation to customer
await processPayment({
orderId,
payer,
amount: Number(amount) / 1e6, // USDC has 6 decimals
txHash: log.transactionHash,
blockNumber: log.blockNumber,
});
}
},
});
On-Chain Payment Costs
Chain
USDC Transfer Gas Cost
Confirmation Time
Notes
Ethereum L1
$2-8
12 seconds (1 block)
Expensive for small payments
Base
$0.001-0.01
2 seconds
Recommended for most use cases
Arbitrum
$0.002-0.02
250ms (soft)
Fast soft confirmations
Optimism
$0.001-0.01
2 seconds
OP Stack, strong ecosystem
Polygon PoS
$0.001-0.005
2 seconds
Lowest cost, slightly lower security
Solana
$0.0001-0.001
400ms
Fastest, cheapest
Avalanche C-Chain
$0.01-0.05
1 second
Fast finality
Request Network: Decentralized Invoicing
Overview
Request Network is the leading decentralized payment protocol purpose-built for invoicing and B2B payments. It provides a decentralized ledger for payment requests (stored on IPFS/Arweave) with on-chain settlement.
Key Features
β’Structured invoices: ISO 20022-compatible invoice data stored off-chain with on-chain payment tracking
β’Multi-currency: Accept any ERC-20 token, with automatic conversion pricing
β’Payment streaming: Integration with Sablier for streaming payments (ideal for freelancer payroll via our marketplace)
β’Accounting integration: Export to Xero, QuickBooks, and other accounting tools
β’Privacy: Invoice details are encrypted; only parties can decrypt
The FATF Travel Rule requires virtual asset service providers (VASPs) to share originator and beneficiary information for transfers above certain thresholds ($3,000 in the US, 1,000 EUR in the EU under MiCA). Solutions for compliance:
β’Notabene: Travel rule compliance for 60+ jurisdictions. Leading VASP-to-VASP messaging.
β’Chainalysis Reactor: Transaction monitoring and compliance screening.
β’TRM Labs: Blockchain analytics for compliance teams.
β’Sygna Bridge: Travel rule solution for Asian markets.
For businesses processing significant volume, consult legal and compliance providers specializing in crypto regulations.
Tax Reporting
Crypto payment processors typically provide:
β’Transaction reports (CSV/API export for accounting)
β’1099 forms (US) for merchant payouts exceeding $600
β’VAT-compliant invoicing (EU) β Request Network supports EU invoice requirements
β’Integration with crypto tax tools (Koinly, CoinTracker, TaxBit)
Choosing the Right Integration
Decision Matrix
Choose Stripe Crypto if:
β’You are a Web2 business adding crypto payment options
β’Your customers primarily want to pay with credit cards and receive crypto
β’You need fiat settlement (receive USD in your bank account)
β’You want decentralized infrastructure (no vendor lock-in)
β’Multi-chain payment flexibility is important
Cost Comparison: $10,000 Monthly Payment Volume
Provider
Fees
Settlement
Total Cost
Stripe Crypto (card)
$150 (1.5%)
$0 (fiat)
$150/mo
Stripe Crypto (ACH)
$50 (0.5%)
$0 (fiat)
$50/mo
Circle USDC
$0 (API) + ~$5 gas
$0 (Circle Mint)
~$5/mo
Coinbase Commerce
$100 (1%)
$0 (fiat)
$100/mo
Request Network
$10 (0.1%) + ~$2 gas
N/A
~$12/mo
Direct On-Chain (Base)
~$1 gas
N/A
~$1/mo
Cost Comparison: $100,000 Monthly Payment Volume
Provider
Fees
Settlement
Total Cost
Stripe Crypto (card)
$1,500
$0
$1,500/mo
Circle USDC
$0 + ~$50 gas
$0
~$50/mo
Coinbase Commerce
$1,000
$0
$1,000/mo
Request Network
$100 + ~$20 gas
N/A
~$120/mo
Direct On-Chain (Base)
~$10 gas
N/A
~$10/mo
At $100K monthly volume, Circle and direct on-chain approaches save over $1,000/month compared to Stripe or Coinbase Commerce. The tradeoff is implementation complexity and the need to manage your own fiat offramp.
Advanced Patterns
Subscription / Recurring Payments
Crypto lacks the "pull payment" model of credit cards (where the merchant initiates the charge). Recurring crypto payments require one of these patterns:
β’
Token Approval + Scheduled Pull: Customer approves a spending allowance via ERC-20 approve(). Your contract calls transferFrom() on a schedule (keeper network like Chainlink Automation or Gelato).
β’
Payment Streaming (Sablier/Superfluid): Customer locks funds in a streaming contract that continuously releases tokens per-second to the merchant. Ideal for subscriptions, SaaS, and freelancer payments.
β’
Account Abstraction (ERC-4337): Session keys allow pre-authorized recurring transactions without per-payment approval. Smart account wallets (Safe, Kernel, Biconomy) support this pattern.
β’
Stripe Billing + Crypto: Use Stripe's standard subscription billing with their crypto onramp as the payment method. Most mature but least decentralized.
Multi-Chain Payment Aggregation
To accept payments on multiple chains with a single integration:
Cross-chain payment aggregation services like Li.Fi and Socket can also route payments from any chain to your preferred settlement chain. For cross-chain bridge architecture, see our dedicated guide.
Escrow and Milestone Payments
For marketplace and freelance platforms, escrow contracts hold funds until work is delivered:
This pattern is used by The Signal's marketplace for deal management, ensuring funds are held securely until milestones are completed and approved. Get your escrow contracts audited before deploying to production.
Frequently Asked Questions
What is the cheapest way to accept crypto payments?
Direct on-chain payment to a wallet or smart contract on an L2 like Base or Arbitrum costs only gas fees ($0.001-$0.02 per transaction). This is 100-1,000x cheaper than Stripe or Coinbase Commerce. The tradeoff is that you need to build your own payment detection, manage your own wallets, and handle fiat conversion separately.
Can I accept crypto payments without KYC?
If you accept payments directly on-chain (peer-to-peer), no intermediary KYC is required. However, if you operate as a business in regulated jurisdictions (US, EU, UK, Singapore), you may still have AML obligations regardless of the payment method. Using a licensed processor like Stripe or Circle handles compliance for you. Consult with legal specialists for jurisdiction-specific guidance.
How do I convert crypto payments to fiat?
Three approaches: (1) Use a gateway with built-in conversion (Stripe, Coinbase Commerce) β automatic, 1-1.5% fee; (2) Use Circle Mint to redeem USDC 1:1 for USD β free but requires $100K+ institutional account; (3) Use an exchange (Coinbase, Kraken) to sell received crypto β 0.1-0.5% fee but more manual. For treasury management, holding USDC and converting only as needed for expenses is increasingly common.
What is USDC and why is it preferred for crypto payments?
USDC is a dollar-backed stablecoin issued by Circle, maintaining a 1:1 peg with the US dollar. It is preferred for payments because: (1) no price volatility (unlike BTC/ETH), (2) available on 15+ blockchains, (3) backed by cash and short-term US Treasuries (independently attested monthly), (4) regulated under US state money transmission laws, (5) $52B+ market cap ensuring deep liquidity. USDC processes $45B+ in daily transfer volume.
How do recurring crypto payments work?
Crypto lacks credit card-style "pull payments." Recurring payments use one of four approaches: (1) ERC-20 token approval with scheduled contract calls via keeper networks, (2) payment streaming via Sablier or Superfluid (continuous per-second token flow), (3) smart account session keys via ERC-4337 account abstraction, (4) Stripe Billing with crypto onramp as payment method. Payment streaming is the most elegant crypto-native solution.
Is it safe to accept Bitcoin payments for my business?
Yes, but with caveats. Bitcoin payments are irreversible (no chargebacks), which is advantageous for merchants. However, Bitcoin's price volatility means the value of received payments can fluctuate 5-15% daily. To mitigate this, use a processor like Coinbase Commerce that instantly converts BTC to USD, or accept stablecoins (USDC) instead. Bitcoin's 10-minute block time also means slower payment confirmation compared to L2 stablecoins.
What blockchain should I accept payments on?
For most businesses in 2026, Base (Coinbase's L2) offers the best combination of low fees ($0.001-$0.01), fast confirmation (2 seconds), strong ecosystem, and Coinbase wallet integration. Solana is best for consumer-facing applications requiring sub-second finality. Ethereum L1 is suitable only for high-value payments ($1,000+) where security guarantees justify higher gas costs. Accept payments on 2-3 chains maximum to avoid operational complexity.
How do I handle refunds for crypto payments?
Unlike credit cards, crypto payments cannot be reversed by the processor. Refunds must be initiated by the merchant, sending tokens back to the customer's wallet address. Implement refund logic in your application: (1) capture the customer's wallet address at payment time, (2) store payment transaction hashes for audit trail, (3) process refunds as a new outgoing transaction via your wallet/contract. Factor gas costs into your refund policy β on L2s this is negligible ($0.01) but on Ethereum L1 it can be $5-15.
Conclusion
Crypto payment gateway integration in 2026 spans a spectrum from fully managed (Stripe) to fully decentralized (direct on-chain). The right choice depends on your customer base (crypto-native vs mainstream), payment volume (determines fee sensitivity), regulatory obligations (KYC/AML requirements), and technical resources (build vs buy).
For most businesses entering crypto payments, start with Stripe Crypto or Coinbase Commerce for speed to market. As volume grows past $50K/month, evaluate Circle USDC for B2B payments and direct on-chain integration for cost savings. For Web3-native applications, build on-chain payment contracts from the start, deploying on L2s like Base or Arbitrum for minimal fees.
The elimination of chargebacks alone β which cost US merchants $40B annually in 2025 β makes crypto payments economically compelling. Combined with instant settlement, global reach, and programmatic composability, crypto payments are transitioning from a niche option to a mainstream necessity.
Browse The Signal's directory to find payment integration specialists, compliance consultants, and development teams who can implement the right payment stack for your business.
This guide provides implementation-ready architecture patterns, fee comparisons, compliance checklists, and integration code for every major crypto payment approach. Whether you are a Web3 startup adding payments to your dApp or an enterprise accepting USDC for invoices, this is your complete technical reference.
Stripe's crypto onramp allows users to purchase cryptocurrency using their credit card, debit card, or bank transfer β directly within your application's checkout flow. The crypto is delivered to the user's wallet, and you receive a referral fee or can structure the flow so payment settles to your own crypto wallet.
Stripe also supports crypto payouts (paying out in USDC to recipients) and crypto-to-fiat settlement (receiving crypto and settling in USD to your bank account).
Architecture Pattern
User β Your Frontend β Stripe Onramp Session API β Stripe Hosted Widget
β
User pays with card
β
Stripe converts fiat β crypto
β
Crypto delivered to wallet
β
Webhook: onramp.session.completed
Integration Steps
Step 1: Create an Onramp Session (Server-side)
// POST /api/create-onramp-session
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
export async function POST(request) {
const { walletAddress, amount, destinationCurrency } = await request.json();
const session = await stripe.crypto.onrampSessions.create({
wallet_addresses: {
ethereum: walletAddress, // or solana, polygon, base
},
destination_amount: amount,
destination_currency: destinationCurrency || 'usdc',
lock_wallet_address: true,
});
return Response.json({ clientSecret: session.client_secret });
}
Step 2: Mount the Onramp Widget (Client-side)
import { loadStripeOnramp } from '@stripe/crypto';
const stripeOnramp = await loadStripeOnramp(process.env.NEXT_PUBLIC_STRIPE_KEY);
const session = stripeOnramp.createSession({
clientSecret: clientSecret, // from Step 1
appearance: {
theme: 'dark', // or 'light'
},
});
session.mount('#onramp-container');
session.addEventListener('onramp_session_updated', (event) => {
if (event.payload.status === 'fulfillment_complete') {
// Crypto delivered to user's wallet
handlePaymentSuccess(event.payload);
}
});
Step 3: Handle Webhooks
// POST /api/webhooks/stripe-onramp
export async function POST(request) {
const event = stripe.webhooks.constructEvent(
await request.text(),
request.headers.get('stripe-signature'),
process.env.STRIPE_ONRAMP_WEBHOOK_SECRET
);
switch (event.type) {
case 'crypto.onramp_session.completed':
const session = event.data.object;
// session.wallet_address β where crypto was delivered
// session.destination_amount β amount delivered
// session.destination_currency β currency delivered
// session.source_amount β fiat amount charged
await updateOrderStatus(session.id, 'paid');
break;
case 'crypto.onramp_session.failed':
await handleFailedPayment(event.data.object);
break;
}
return Response.json({ received: true });
}
Stripe Crypto Pricing
Component
Fee
Onramp transaction (card)
1.5% + network fee
Onramp transaction (bank/ACH)
0.5% + network fee
Crypto payouts (USDC)
$0.25 flat per payout
Platform/marketplace cut
Configurable (you set the margin)
Monthly minimum
None
Setup fee
None
Stripe Crypto Limitations
β’Geographic availability: Currently available in 27 countries (US, EU, UK, select APAC). Not available in most of Africa, Middle East, or South America.
β’Token support: Limited to ~50 tokens. No support for long-tail altcoins or new launches.
β’Onramp only (primarily): Stripe focuses on fiat-to-crypto. For crypto-to-crypto or pure on-chain payments, use other solutions.
β’KYC requirements: End users face Stripe's standard identity verification for purchases over $500 in most jurisdictions.
Circle USDC Payment Integration
Overview
Circle is the issuer of USDC (the second-largest stablecoin, $52B+ market cap in Q1 2026). Their payment infrastructure provides three tiers:
β’Circle Payments API: Accept and send USDC programmatically (free for API calls, gas-only costs)
β’Circle Mint: Convert between USDC and fiat at 1:1 with no fee (for institutional accounts, $100K+ minimum)
β’Programmable Wallets: Create and manage wallets for users without requiring them to manage private keys
Architecture Pattern
Business API Server β Circle Payments API β Circle Infrastructure
β
USDC minted or transferred
β
Destination wallet receives USDC
β
Webhook: payment.completed
β
Optional: Circle Mint β Bank (fiat)
Integration Steps
Step 1: Accept USDC Payments
// Generate a payment address for a customer
import { CircleAPI } from '@circle-fin/circle-sdk';
const circle = new CircleAPI({
apiKey: process.env.CIRCLE_API_KEY,
environment: 'production', // or 'sandbox'
});
// Create a payment intent
const paymentIntent = await circle.createPaymentIntent({
amount: { amount: '100.00', currency: 'USD' },
settlementCurrency: 'USD',
paymentMethods: [
{ type: 'blockchain', chain: 'ETH' },
{ type: 'blockchain', chain: 'SOL' },
{ type: 'blockchain', chain: 'MATIC' },
],
});
// Returns deposit addresses for each chain
// Customer sends USDC to the deposit address
// Circle detects the payment and fires webhook
Step 2: Programmable Wallets (Custodial)
// Create a wallet for a user (they never see private keys)
const walletSet = await circle.createWalletSet({
name: 'user-wallets',
});
const wallet = await circle.createWallet({
walletSetId: walletSet.id,
blockchains: ['ETH', 'SOL', 'MATIC'],
});
// Send USDC from the wallet
const transfer = await circle.createTransfer({
source: { type: 'wallet', id: wallet.id },
destination: {
type: 'blockchain',
address: recipientAddress,
chain: 'ETH',
},
amount: { amount: '500.00', currency: 'USD' },
});
Step 3: Convert USDC to Fiat (Circle Mint)
// For institutional accounts ($100K+ monthly volume)
const redemption = await circle.createRedemption({
amount: { amount: '50000.00', currency: 'USD' },
destination: {
type: 'wire',
id: bankAccountId,
},
});
// Funds arrive in 1-2 business days
Circle USDC Pricing
Component
Fee
API calls
Free
USDC β fiat (Circle Mint)
Free (1:1 redemption)
Blockchain gas fees
Varies by chain ($0.001-$5)
Programmable Wallets
Free up to 10,000 wallets, then custom
Wire transfer (fiat redemption)
$0-25 depending on bank
Minimum for Circle Mint
$100,000
Circle Advantages for B2B
Circle's infrastructure is particularly strong for B2B use cases:
β’Cross-border payments: Send USDC globally in minutes instead of 3-5 day wire transfers. 85% cost reduction vs SWIFT for sub-$100K transfers.
β’Treasury management: Hold operating capital in USDC, earning competitive yields through Circle Yield (currently 4.2% APY on USDC).
β’Invoicing: Circle's payment links integrate with standard invoicing workflows. Partners on The Signal's marketplace can receive USDC payments directly.
β’Multi-chain flexibility: Accept USDC on whichever chain your customers prefer β Ethereum, Solana, Base, Polygon, Arbitrum, Avalanche, or Noble (Cosmos).
Coinbase Commerce Integration
Overview
Coinbase Commerce is the simplest crypto payment gateway for businesses that want plug-and-play integration. It supports BTC, ETH, LTC, DOGE, USDC, and DAI with a flat 1% processing fee and automatic conversion to USD.
For Web3-native businesses, direct on-chain payments eliminate intermediaries entirely. Customers send tokens directly to your smart contract or wallet address, with payment verification handled by blockchain indexing.
// Listen for PaymentReceived events
import { createPublicClient, http, parseAbi } from 'viem';
import { base } from 'viem/chains';
const client = createPublicClient({
chain: base,
transport: http(process.env.RPC_URL),
});
const paymentAbi = parseAbi([
'event PaymentReceived(address indexed payer, uint256 amount, bytes32 indexed orderId)',
]);
// Watch for new payments
const unwatch = client.watchContractEvent({
address: PAYMENT_CONTRACT_ADDRESS,
abi: paymentAbi,
eventName: 'PaymentReceived',
onLogs: async (logs) => {
for (const log of logs) {
const { payer, amount, orderId } = log.args;
// Verify amount matches order
// Update order status in database
// Send confirmation to customer
await processPayment({
orderId,
payer,
amount: Number(amount) / 1e6, // USDC has 6 decimals
txHash: log.transactionHash,
blockNumber: log.blockNumber,
});
}
},
});
On-Chain Payment Costs
Chain
USDC Transfer Gas Cost
Confirmation Time
Notes
Ethereum L1
$2-8
12 seconds (1 block)
Expensive for small payments
Base
$0.001-0.01
2 seconds
Recommended for most use cases
Arbitrum
$0.002-0.02
250ms (soft)
Fast soft confirmations
Optimism
$0.001-0.01
2 seconds
OP Stack, strong ecosystem
Polygon PoS
$0.001-0.005
2 seconds
Lowest cost, slightly lower security
Solana
$0.0001-0.001
400ms
Fastest, cheapest
Avalanche C-Chain
$0.01-0.05
1 second
Fast finality
Request Network: Decentralized Invoicing
Overview
Request Network is the leading decentralized payment protocol purpose-built for invoicing and B2B payments. It provides a decentralized ledger for payment requests (stored on IPFS/Arweave) with on-chain settlement.
Key Features
β’Structured invoices: ISO 20022-compatible invoice data stored off-chain with on-chain payment tracking
β’Multi-currency: Accept any ERC-20 token, with automatic conversion pricing
β’Payment streaming: Integration with Sablier for streaming payments (ideal for freelancer payroll via our marketplace)
β’Accounting integration: Export to Xero, QuickBooks, and other accounting tools
β’Privacy: Invoice details are encrypted; only parties can decrypt
The FATF Travel Rule requires virtual asset service providers (VASPs) to share originator and beneficiary information for transfers above certain thresholds ($3,000 in the US, 1,000 EUR in the EU under MiCA). Solutions for compliance:
β’Notabene: Travel rule compliance for 60+ jurisdictions. Leading VASP-to-VASP messaging.
β’Chainalysis Reactor: Transaction monitoring and compliance screening.
β’TRM Labs: Blockchain analytics for compliance teams.
β’Sygna Bridge: Travel rule solution for Asian markets.
For businesses processing significant volume, consult legal and compliance providers specializing in crypto regulations.
Tax Reporting
Crypto payment processors typically provide:
β’Transaction reports (CSV/API export for accounting)
β’1099 forms (US) for merchant payouts exceeding $600
β’VAT-compliant invoicing (EU) β Request Network supports EU invoice requirements
β’Integration with crypto tax tools (Koinly, CoinTracker, TaxBit)
Choosing the Right Integration
Decision Matrix
Choose Stripe Crypto if:
β’You are a Web2 business adding crypto payment options
β’Your customers primarily want to pay with credit cards and receive crypto
β’You need fiat settlement (receive USD in your bank account)
β’You want decentralized infrastructure (no vendor lock-in)
β’Multi-chain payment flexibility is important
Cost Comparison: $10,000 Monthly Payment Volume
Provider
Fees
Settlement
Total Cost
Stripe Crypto (card)
$150 (1.5%)
$0 (fiat)
$150/mo
Stripe Crypto (ACH)
$50 (0.5%)
$0 (fiat)
$50/mo
Circle USDC
$0 (API) + ~$5 gas
$0 (Circle Mint)
~$5/mo
Coinbase Commerce
$100 (1%)
$0 (fiat)
$100/mo
Request Network
$10 (0.1%) + ~$2 gas
N/A
~$12/mo
Direct On-Chain (Base)
~$1 gas
N/A
~$1/mo
Cost Comparison: $100,000 Monthly Payment Volume
Provider
Fees
Settlement
Total Cost
Stripe Crypto (card)
$1,500
$0
$1,500/mo
Circle USDC
$0 + ~$50 gas
$0
~$50/mo
Coinbase Commerce
$1,000
$0
$1,000/mo
Request Network
$100 + ~$20 gas
N/A
~$120/mo
Direct On-Chain (Base)
~$10 gas
N/A
~$10/mo
At $100K monthly volume, Circle and direct on-chain approaches save over $1,000/month compared to Stripe or Coinbase Commerce. The tradeoff is implementation complexity and the need to manage your own fiat offramp.
Advanced Patterns
Subscription / Recurring Payments
Crypto lacks the "pull payment" model of credit cards (where the merchant initiates the charge). Recurring crypto payments require one of these patterns:
β’
Token Approval + Scheduled Pull: Customer approves a spending allowance via ERC-20 approve(). Your contract calls transferFrom() on a schedule (keeper network like Chainlink Automation or Gelato).
β’
Payment Streaming (Sablier/Superfluid): Customer locks funds in a streaming contract that continuously releases tokens per-second to the merchant. Ideal for subscriptions, SaaS, and freelancer payments.
β’
Account Abstraction (ERC-4337): Session keys allow pre-authorized recurring transactions without per-payment approval. Smart account wallets (Safe, Kernel, Biconomy) support this pattern.
β’
Stripe Billing + Crypto: Use Stripe's standard subscription billing with their crypto onramp as the payment method. Most mature but least decentralized.
Multi-Chain Payment Aggregation
To accept payments on multiple chains with a single integration:
Cross-chain payment aggregation services like Li.Fi and Socket can also route payments from any chain to your preferred settlement chain. For cross-chain bridge architecture, see our dedicated guide.
Escrow and Milestone Payments
For marketplace and freelance platforms, escrow contracts hold funds until work is delivered:
This pattern is used by The Signal's marketplace for deal management, ensuring funds are held securely until milestones are completed and approved. Get your escrow contracts audited before deploying to production.
Frequently Asked Questions
What is the cheapest way to accept crypto payments?
Direct on-chain payment to a wallet or smart contract on an L2 like Base or Arbitrum costs only gas fees ($0.001-$0.02 per transaction). This is 100-1,000x cheaper than Stripe or Coinbase Commerce. The tradeoff is that you need to build your own payment detection, manage your own wallets, and handle fiat conversion separately.
Can I accept crypto payments without KYC?
If you accept payments directly on-chain (peer-to-peer), no intermediary KYC is required. However, if you operate as a business in regulated jurisdictions (US, EU, UK, Singapore), you may still have AML obligations regardless of the payment method. Using a licensed processor like Stripe or Circle handles compliance for you. Consult with legal specialists for jurisdiction-specific guidance.
How do I convert crypto payments to fiat?
Three approaches: (1) Use a gateway with built-in conversion (Stripe, Coinbase Commerce) β automatic, 1-1.5% fee; (2) Use Circle Mint to redeem USDC 1:1 for USD β free but requires $100K+ institutional account; (3) Use an exchange (Coinbase, Kraken) to sell received crypto β 0.1-0.5% fee but more manual. For treasury management, holding USDC and converting only as needed for expenses is increasingly common.
What is USDC and why is it preferred for crypto payments?
USDC is a dollar-backed stablecoin issued by Circle, maintaining a 1:1 peg with the US dollar. It is preferred for payments because: (1) no price volatility (unlike BTC/ETH), (2) available on 15+ blockchains, (3) backed by cash and short-term US Treasuries (independently attested monthly), (4) regulated under US state money transmission laws, (5) $52B+ market cap ensuring deep liquidity. USDC processes $45B+ in daily transfer volume.
How do recurring crypto payments work?
Crypto lacks credit card-style "pull payments." Recurring payments use one of four approaches: (1) ERC-20 token approval with scheduled contract calls via keeper networks, (2) payment streaming via Sablier or Superfluid (continuous per-second token flow), (3) smart account session keys via ERC-4337 account abstraction, (4) Stripe Billing with crypto onramp as payment method. Payment streaming is the most elegant crypto-native solution.
Is it safe to accept Bitcoin payments for my business?
Yes, but with caveats. Bitcoin payments are irreversible (no chargebacks), which is advantageous for merchants. However, Bitcoin's price volatility means the value of received payments can fluctuate 5-15% daily. To mitigate this, use a processor like Coinbase Commerce that instantly converts BTC to USD, or accept stablecoins (USDC) instead. Bitcoin's 10-minute block time also means slower payment confirmation compared to L2 stablecoins.
What blockchain should I accept payments on?
For most businesses in 2026, Base (Coinbase's L2) offers the best combination of low fees ($0.001-$0.01), fast confirmation (2 seconds), strong ecosystem, and Coinbase wallet integration. Solana is best for consumer-facing applications requiring sub-second finality. Ethereum L1 is suitable only for high-value payments ($1,000+) where security guarantees justify higher gas costs. Accept payments on 2-3 chains maximum to avoid operational complexity.
How do I handle refunds for crypto payments?
Unlike credit cards, crypto payments cannot be reversed by the processor. Refunds must be initiated by the merchant, sending tokens back to the customer's wallet address. Implement refund logic in your application: (1) capture the customer's wallet address at payment time, (2) store payment transaction hashes for audit trail, (3) process refunds as a new outgoing transaction via your wallet/contract. Factor gas costs into your refund policy β on L2s this is negligible ($0.01) but on Ethereum L1 it can be $5-15.
Conclusion
Crypto payment gateway integration in 2026 spans a spectrum from fully managed (Stripe) to fully decentralized (direct on-chain). The right choice depends on your customer base (crypto-native vs mainstream), payment volume (determines fee sensitivity), regulatory obligations (KYC/AML requirements), and technical resources (build vs buy).
For most businesses entering crypto payments, start with Stripe Crypto or Coinbase Commerce for speed to market. As volume grows past $50K/month, evaluate Circle USDC for B2B payments and direct on-chain integration for cost savings. For Web3-native applications, build on-chain payment contracts from the start, deploying on L2s like Base or Arbitrum for minimal fees.
The elimination of chargebacks alone β which cost US merchants $40B annually in 2025 β makes crypto payments economically compelling. Combined with instant settlement, global reach, and programmatic composability, crypto payments are transitioning from a niche option to a mainstream necessity.
Browse The Signal's directory to find payment integration specialists, compliance consultants, and development teams who can implement the right payment stack for your business.