Crypto Payment Gateways vs Direct Wallets: Merchant Metrics
When a merchant decides to accept stablecoin payments, the decision is not ideological. It is mechanical.

Crypto Payment Gateways vs Direct Wallets: Merchant Metrics
Two architectures sit on the table: a payment gateway that orchestrates checkout, capture, refund, and settlement, or a direct-wallet flow where the merchant simply receives funds at a known address. Both architectures clear transactions on a blockchain. Both can settle in seconds. The difference is what happens at the boundaries — at checkout, at reconciliation, at refund, and at the moment a regulator asks for a record.
Gateway orchestration and direct-wallet acceptance are not competing ideologies. They are different points on a tradeoff curve between operational lift and protocol-native control.
Orchestration vs. Peer-to-Peer: The Operational Divide
A payment gateway inserts a payment-service-provider layer between the customer's wallet and the merchant's books. The merchant receives either a webhook plus a settled balance, or a stablecoin transfer plus reconciliation metadata. Stripe's stablecoin payment method operates in the former mode: completed payments settle in the merchant's Stripe balance in USD, refunds flow back to the customer's original wallet as stablecoins, and disputes are not supported on the rail. The customer-side transaction ceiling sits at USD 10,000 per payment. US businesses are the documented availability window in the documentation reviewed.
Coinbase Payment Acceptance and Coinbase Checkouts operate one level deeper. The merchant integrates an API that issues single-use checkout URLs, generates a fresh receiving address per transaction, monitors confirmation depth, and emits real-time webhooks across documented statuses: ACTIVE, PROCESSING, EXPIRED, COMPLETED, FAILED, REFUNDED, PARTIALLY_REFUNDED. Settlement can land in USD or USDC, with optional automated bank sweeps. The merchant does not own the address; the gateway does, and assigns it.
Direct-wallet acceptance inverts the architecture. The merchant publishes a static address or generates one per invoice, the customer signs a transfer, and funds arrive at the merchant's self-custody wallet. MoonPay Commerce describes its flow this way: it does not custody funds, buyers pay merchants directly, and merchants receive funds in their own wallets. The implication is mechanical. The gateway does not appear in the transaction graph because it is not a counterparty. The merchant inherits everything the gateway would have absorbed: address generation logic, confirmation monitoring, refund handling, gas accounting, and bookkeeping.
The tradeoff is not free versus paid. It is contracted-out operational risk versus in-house operational risk. A merchant running high transaction volume across multiple chains typically amortizes the gateway fee across volume and lets the processor absorb address generation, monitoring, refund APIs, and reconciliation feeds. A merchant running low volume, or one that needs a non-custodial posture for regulatory reasons, often accepts the lift because the architectural choice itself is the product.
Fee Structures and the Hidden Cost of Gas Abstraction
The published fee schedules diverge by an order of magnitude because the architectures bundle different line items.
| Provider / Flow | Documented fee | Settlement | Refund behavior |
|---|---|---|---|
| Stripe stablecoin payment method | Merchant pricing on top of Stripe's standard processing rates | USD balance in Stripe | Stablecoin refund to original wallet |
| Coinbase Checkouts (API example) | USD 1.25 fee on a USD 100.00 payment, net USD 98.75; this is a sample payload, not a published standard rate | USD or USDC; optional bank sweep | Authorization, capture, void, refund APIs |
| BitPay merchant processing | 1–2% + USD 0.25 per paid invoice (updated July 1, 2026) | Crypto to merchant wallet; optional fiat conversion | Miner fee deducted from merchant ledger on refund |
| MoonPay Commerce | No published custody fee; buyer pays network gas | Non-custodial P2P to merchant wallet | Provider cannot reverse a completed payment |
| Circle Gateway cross-chain USDC | 0.005% (0.5 bps) + source-chain gas fee | USDC on destination chain | Same-chain withdrawals exempt from the percentage fee |
The line item that distorts direct-wallet math is gas. A merchant receiving USDT on Ethereum during congestion can absorb a network fee that exceeds the transaction value. This is the reason gas sponsorship exists. Circle's Gas Station documentation describes a model where the developer sponsors gas so end users do not need native tokens to pay, and the developer is billed for the sponsored gas. The published processing fee on the sponsored gas charge is 5%, and invoices are generated monthly or after the accumulated sponsored gas reaches USD 100, whichever occurs first. Daily, per-transaction, and operations-per-day limits are configurable.
The economic content of "gasless" matters. Network fees do not vanish; they migrate. They migrate from the customer to the merchant, to the sponsor, or to a batching layer that amortizes them across many payments. A merchant who advertises gas-free checkout is paying the network fee through a different ledger entry. The customer experience changes; the cost does not disappear. Direct-wallet acceptance without sponsorship leaves the cost on whichever side initiates the transaction. The merchant can include the gas in the invoice subtotal. The customer can pay it. The treasury function can pre-fund a wallet and refill it. Each option carries a reconciliation line that a card-style processor hides.
Transaction Lifecycle: From Webhooks to Refund Management
A card payment runs through authorization, capture, clearing, and settlement as a defined choreography. A stablecoin payment runs through a subset of those states, depending on the architecture.
In a gateway flow, the merchant's integration receives a webhook at the moment funds are observed at the gateway-controlled address. The webhook carries a status — PROCESSING, COMPLETED, FAILED — and a transaction identifier. The merchant's order management system reacts to the event, not to the chain. Coinbase Checkouts documents this state machine explicitly: each checkout moves through ACTIVE → PROCESSING → COMPLETED (or EXPIRED, FAILED, REFUNDED, PARTIALLY_REFUNDED), with real-time webhooks on every transition. Stripe's model collapses the lifecycle further: the merchant does not see the chain state at all. The settlement appears in the Stripe balance as USD.
A direct-wallet flow does not have a built-in state machine. The merchant watches the chain directly or pays a third-party monitoring service to do so. Confirmation policy replaces authorization. Refund logic is implemented as a new outbound transaction, not as a reversal of the original one. MoonPay Commerce states the boundary case directly: it cannot reverse or reclaim a completed payment. Refunds must be coordinated with the merchant as a separate transfer.
This is the engineering crux. A chargeback is a network-level instruction that pulls funds back from the acquirer. A stablecoin transfer is final once the network confirms it. The merchant who issues a refund sends a new transaction and pays gas for it. BitPay's documentation addresses the same mechanic: a fully paid invoice refund deducts the applicable miner fee from the merchant's ledger balance.
The operational consequence falls on reconciliation. A gateway produces a settlement file with one row per transaction, mapped to invoice IDs, with status codes. A direct wallet produces a stream of on-chain events that the merchant's accounting system must match against issued invoices. The work does not vanish; it moves into the merchant's data pipeline.
A related concern sits one layer below the lifecycle: wallet-level security. Direct-wallet acceptance typically puts the merchant, or the merchant's customer, in control of a browser wallet or a self-custody interface during the payment window. The attack surface in that interface is broader than most merchant IT teams appreciate; address-replacement malware, malicious browser extensions, and clipboard hijacking all target the moment a user pastes or confirms a destination address. The same browser-wallet threat modeling that exposes address-leak risks for NFT traders applies just as cleanly to merchant checkout, where a single substituted character in a pasted address redirects a settled payment away from the books.
Compliance and the IRS Fair Market Value Requirement
The IRS treats income received in virtual currency for services as ordinary income recognized at the US-dollar fair market value at the moment of receipt. For an on-chain transaction, the receipt event is the date and time the transaction is recorded on the distributed ledger. The agency's small-business guidance requires the taxpayer to maintain records of receipts, dispositions, and the US-dollar value of digital assets received.
The mechanical implication: every stablecoin inflow that represents revenue needs a contemporaneous USD valuation, a transaction timestamp anchored to chain confirmation, and a record of the counterparty. A gateway that settles in USD into a Stripe balance generates this record natively — the merchant's balance ledger shows USD, and the gateway produces the matching transaction log. A direct-wallet flow produces a transaction hash and a token amount; the merchant's accounting system must attach a USD price, a timestamp, and an invoice reference to that hash before the year closes.
Stablecoin revenue accounting is not optional, and it is not the same as card revenue accounting. The chain provides the timestamp; the merchant still has to attach the dollar.
This is not a documentation cost that a processor can absorb on the merchant's behalf. The records belong to the taxpayer. A gateway can format them; it cannot substitute for them.
A peg observation belongs in this section as well, because the "fair market value" the merchant attaches is not always one dollar. If the merchant receives USDC at a moment when the secondary-market quote is USD 0.992, the dollar on the books that day is USD 0.992, and that is the figure the IRS record should carry. Treating every on-chain receipt as USD 1.000 by default is a small tax-reporting error compounded across hundreds of receipts, and it is an error most accounting systems will not catch unless the merchant wires in a price feed at receipt time.
Scaling Throughput: Nanopayments and Batching Mechanics
The last axis is throughput. A merchant selling a USD 3 digital item does not want to pay a USD 0.50 network fee per sale. A merchant settling 50,000 micro-receipts per day does not want to push 50,000 on-chain transactions through a single L1.
Circle Gateway documents one solution path. Cross-chain USDC transfers carry a 0.005% transfer fee (0.5 basis points) plus a source-chain gas fee that the documentation lists between USD 0.001 on Sei and Unichain and USD 2.00 on Ethereum. Same-chain withdrawals do not incur the percentage fee. The design implication is that the choice of source chain materially shifts the unit economics of any cross-chain settlement flow.
For higher-frequency designs, Circle Gateway documents gas-free USDC nanopayments as small as USD 0.000001. The mechanism: buyers sign off-chain authorizations, and the gateway batches settlement on-chain. This is a specialized architecture, not a property of every ordinary stablecoin wallet transfer. It applies when the merchant's payment volume is large enough to amortize the batching cost and when the counterparty accepts the off-chain authorization model.
A direct-wallet merchant who needs equivalent throughput has three options:
- Migrate settlement to a low-fee L2 or app-chain where per-transaction gas is a fraction of L1 cost.
- Aggregate receipts and post a net settlement on-chain at a defined interval, carrying the float risk during the batching window.
- Route customer micropayments through a state-channel or payment-channel implementation and settle only the net on-chain, accepting the channel-lifecycle overhead.
Each option is a separate engineering project with its own failure modes.
The Decision Function
The choice between a gateway and a direct wallet is not a referendum on decentralization. It is a series of if-then decisions against the merchant's transaction profile. If the merchant's volume is low, the asset count is small, and the customer base is technical, direct-wallet acceptance removes the processor from the counterparty list and leaves the merchant owning the full lifecycle. If the merchant's volume is high, the asset list spans multiple stablecoins across multiple chains, and the customer base expects card-style checkout UX, a gateway absorbs the operational lift and bills for it.
The stress tests diverge. A gateway stress-tests against processor downtime, fee renegotiation, and feature gaps — no chargebacks, no disputes, no USDT support on certain rails, US-only availability on some products. A direct-wallet flow stress-tests against chain congestion, gas-price volatility, address-management bugs, customer-side wallet compromise, and reconciliation drift. Neither architecture removes risk. Each moves risk into a different operational bucket.
The merchant's metrics follow from the bucket assignment. A gateway merchant optimizes for processor selection, fee negotiation, and settlement-asset choice. A direct-wallet merchant optimizes for chain selection, gas strategy, confirmation policy, and accounting automation.
The peg is constructed to hold at one dollar, and in ordinary conditions it does. The assumption is not unconditional. Stablecoin pegs can and do deviate — sometimes by a few basis points, sometimes by tens of cents. In March 2023, USDC traded as low as roughly USD 0.87 when its reserve composition came under question, and Tether has periodically cleared at small discounts on secondary venues when redemption queues lengthened or counterparty confidence compressed. Redemption conditions vary by issuer and by size: large redemptions of USDT have historically been processed through a tiered eligibility path rather than an instant one-for-one window, and liquidity providers widen their books when the underlying redemption channel narrows. None of this contradicts the design intent. It does contradict the assumption that a "stable" token is a guaranteed-dollar asset at any moment of the merchant's choosing.
The architecture underneath that assumption is what the merchant is actually choosing. A gateway that nets through a processor's books inherits the processor's redemption and liquidity position; the merchant sees a USD balance and the processor sits between the merchant and the queue. A direct-wallet holder sits in the queue itself — closer to the redemption path, and closer to the moment the peg slips.