Payments
Crypto Payments — Hosted checkout & API for 110+ coins White Label — Your brand on the entire payment flow Processing — Auto-convert, withdrawals & controls Payouts — Mass crypto payouts by API or file Platform — Marketplace payments & commissions
Swap Plugins Affiliate Pricing Blog Docs Contact
Language
Sign in
All articles

Merchants and Developers: Accept Ethereum Payments with ERC-4337

Practical playbook for merchants and developers to accept Ethereum payments. Choose gateway or direct on chain, implement ERC-681 and ERC-4337 flows, and...

CryptoPayr Oct 6, 2026 17.00 min read
Merchants and Developers: Accept Ethereum Payments with ERC-4337

Merchants and Developers: Accept Ethereum Payments with ERC-4337

Decorative watercolor title card for Ethereum payments

If you want to accept Ethereum payments, you have two practical paths: use a crypto payment gateway, or build a direct on-chain receiving flow. For most merchants who want fast launch, fiat settlement, and clean reconciliation, the gateway path wins: sign up, test a hosted checkout or plugin, and go live within days. Developers who need non-custodial control should build a direct flow using ERC-681 payment requests and watch for account abstraction standards like ERC-4337, which are reshaping gas UX in 2026.


TL;DR:

  • Using a crypto payment gateway enables quick deployment, fiat settlement, and simplified reconciliation, suitable for most merchants with minimal engineering effort.
  • Generating ERC-681 payment requests and monitoring blockchain events are essential for developers building custom, non-custodial checkout flows, especially in high-volume scenarios.
  • Gas fees require ETH held by payers, but emerging standards like ERC-4337 aim to reduce this friction through sponsored or batched transactions, improving user experience.
  • For on-chain receipts, deposit contracts reduce operational overhead for high-volume merchants, while per-order addresses suit low-volume sellers but demand secure key management.
  • Ethereum transactions are irreversible, necessitating careful handling of refunds, and compliance relies heavily on transparent terms, with no network-level chargeback protections.

Cryptopayr
cryptopayr.com
Accept Ethereum Payments More Easily
CryptoPayr helps businesses accept Ethereum and over 110 cryptocurrencies through a user-friendly gateway with minimal fees starting at 0.1%.
Visit CryptoPayr

Table of Contents

Gateway, Hosted Checkout, Plugins, or Direct On-Chain: Which Fits You?

Every integration method trades speed against control. A hosted checkout or plugin gets you live fastest because the provider handles address generation, confirmation tracking, and often fiat conversion. Payment links work well for freelancers and invoicing without a storefront. A direct API integration gives more flexibility for custom checkout flows while still outsourcing custody and compliance. Deploying your own deposit contracts or generating per-order addresses gives full non-custodial control but adds engineering and operational overhead, including refund handling and tax valuation.

Where each approach tends to fit:

Immediate next steps differ by path: gateway users create an account and test a sandbox transaction; developers building direct flows start by generating a test ERC-681 URL and confirming it opens correctly in a wallet.

Building the Checkout Flow: Payment Requests, QR Codes, and Confirmations

A hosted checkout flow differs from a server-side on-chain flow in one key way: the hosted version generates the order ID, payment request, and confirmation webhook for you, while a self-built flow requires you to manage all three yourself.

  1. Generate an order ID and attach it to a payment request, either through your gateway’s API or your own backend.
  2. Build the payment request using the ERC-681 URL format, which prefills the recipient address, chain ID, and amount so the payer’s wallet opens with correct parameters already set.
  3. Render the request as a QR code for in-person or mobile flows, and as a clickable deep link for desktop and web checkout.
  4. Monitor for payment using one of three methods: your gateway’s webhook, a node or websocket event filter watching for Transfer events, or a blockchain explorer API as a fallback.
  5. Wait for an appropriate number of block confirmations before marking the order complete, since early confirmations can be reversed by chain reorganizations.
  6. Handle network mismatches by validating the chain ID in the payment request against the wallet’s connected network before accepting the transaction as valid.

Token payments need separate handling from native ETH: token transfers emit a different event signature and require checking decimals before displaying the amount to staff or customers.

Pro Tip: Always include the chain_id parameter in your ERC-681 URLs. Wallets on the wrong network will either reject the request or, worse, send funds that never arrive.

Receiving and Reconciling Payments: Deposit Contracts vs Per-Order Addresses

Two developer patterns dominate direct on-chain receiving: deploying a shared deposit contract, or generating a unique address per order.

A deposit contract following the ERC-2876 standard supports multiplexed deposits from many payers into one contract, which reduces the burden of managing a private key for every order. This pattern suits higher-volume merchants who want to avoid hot wallet key sprawl. Per-order addresses, by contrast, are simpler to reason about for low-volume sellers but require secure key management for every address you generate, since each one needs its own private key stored safely.

Whichever pattern you choose, your monitoring layer needs to:

For accounting, every recorded payment needs a direct link between the on-chain transaction and your order management system: the transaction hash becomes your audit trail, and the timestamp becomes the basis for valuation under tax rules covered later in this guide.

Gas Fees and Payer Experience: What to Expect and How to Simplify It

Gas on Ethereum must be paid in ETH regardless of which token is actually transferred, which means a payer holding only a stablecoin may not be able to complete a transaction without also holding ETH for fees. This is one of the biggest UX frictions in direct on-chain acceptance.

Account abstraction standards, particularly ERC-4337 and related proposals like EIP-7702, are the current practical path toward removing this friction. These standards let a relayer or sponsor cover gas on the payer’s behalf, enabling gasless or batched transactions. Server-sponsored relayer models need nonce management and request signing to prevent spam and runaway gas spend, since an open relayer is an invitation for abuse.

ERC-4337 sponsored gas payment flow

Pro Tip: Show an estimated gas cost before the payer confirms, and build your frontend to support sponsored or batched transactions rather than assuming every payer holds ETH in a standard wallet.

Security and Compliance Basics Before You Launch

Manual address entry is one of the most common sources of lost payments. Standardizing on ERC-681 payment request URLs and QR codes prevents typos and reduces the risk of a payer sending funds to the wrong address or a phishing-substituted one.

Custody is the other decision point:

On compliance, merchant processors commonly layer know-your-customer and anti-money-laundering checks on top of payment processing. A gateway that automates this layer removes a meaningful chunk of regulatory overhead that a self-built flow would otherwise require you to handle manually.

Tax Treatment and Recordkeeping for Ethereum Payments

In the United States, the IRS treats cryptocurrency as property, not currency. That means a business receiving Ethereum must include the fair market value of the payment in gross income at the exact date and time it gains dominion and control over the funds, the same principle that governs any property received in exchange for goods or services.

The practical weight of this rule is simple: the value you record at the moment of receipt becomes your taxable income figure, and it has to survive an audit. Build your bookkeeping around that reality:

Deposit contract users especially need both the token amount and the USD value recorded at the same block timestamp, with the index source documented for later verification.

Prelaunch Checklist Before You Flip the Switch

Before enabling Ethereum payments in production, confirm the following:

  1. Which chains and tokens are supported, and whether native ETH and ERC-20 tokens are handled with correct decimal precision.
  2. What settlement currency you receive: raw ETH, a stablecoin conversion, or fiat.
  3. How many block confirmations are required before an order is marked paid.
  4. Whether webhook delivery is reliable, with retry logic for missed notifications.
  5. Whether accounting exports match your bookkeeping software’s import format.

Before signing with any vendor, ask about the custody model, instant fiat conversion availability, API and webhook documentation, KYC and AML support, and how refunds and reconciliation are handled. Operationally, make sure support staff understand basic troubleshooting, customer-facing copy explains expected confirmation times, and a dispute workflow exists for payments that arrive late or short.

Where CryptoPayr Fits for Merchants Who Want Speed and Compliance

We built our gateway for merchants who want Ethereum acceptance without the engineering lift described above. We support 110+ cryptocurrencies including Ethereum, with fees starting at a low percentage and a no-KYC onboarding option, hosted checkout, API access, and instant conversion. E-commerce stores, SaaS platforms, and marketplaces tend to get the most value from this setup. A reasonable next step is testing a plugin or reviewing our gateway documentation before committing to a build.

Handling Refunds and Chargebacks in Ethereum Payments

Ethereum transactions are irreversible once confirmed, which means there is no chargeback mechanism built into the protocol the way there is with card networks. A refund has to be initiated manually, as a new transaction sent back to the payer’s address.

This creates two practical requirements. First, you need to record the payer’s sending address at the time of the original payment, since that is typically where a refund should go. Second, your checkout flow needs a clear policy communicated upfront: because transactions cannot be reversed, refunds depend entirely on you choosing to send one back, not on a dispute process forcing your hand.

Custodial gateways often simplify this by offering a refund button tied to the original transaction record, deducting from your balance and sending to the stored payer address automatically. A self-built flow needs to replicate this manually: look up the order, confirm the original sender, and construct a new transaction.

For goods or services disputes that would trigger a chargeback in card processing, you are relying on customer service resolution rather than a network-level reversal. This is worth stating clearly in your terms of service, since customers coming from card payments may assume protections that do not exist on-chain by default. Some gateways partially address this by holding funds briefly before final settlement, giving a window to catch fraud or order errors before funds move irreversibly.

Choosing Mainnet, Layer 2, or a Sidechain for Payments

Ethereum mainnet offers the strongest security guarantees and the widest wallet compatibility, but transaction costs and confirmation times can make it a poor fit for low-value, high-frequency payments. Layer 2 networks and sidechains built around the Ethereum ecosystem exist specifically to address that gap, processing transactions more cheaply while still settling back to mainnet security over time.

The tradeoff is fragmentation: a payer on one layer 2 cannot pay an address expecting funds on a different network without a bridge step, and bridging introduces its own delay and risk. For small transactions, like microtransactions, subscriptions, or in-person retail, a layer 2 network tends to make more sense because fees stay predictable and confirmation feels faster to the payer. For larger, less frequent payments, mainnet’s security and broader wallet support often outweigh the extra cost.

Whatever you choose, the chain ID needs to be explicit in every payment request you generate, and your monitoring layer needs to watch the correct network. A payer who opens your QR code on the wrong network, or whose wallet defaults to mainnet when you expected a layer 2, will either have the transaction rejected or, in a worse case, send funds to an address that exists but is not being monitored on that chain. Gateways that support multiple networks typically handle this detection automatically, which is one reason smaller merchants lean toward a gateway rather than hand-rolling multi-chain support themselves.

Designing a Payment Flow Payers Actually Trust

The single biggest UX lever in Ethereum payments is communicating what is happening and how long it will take. Payers coming from card payments expect instant confirmation; blockchain confirmation takes time, and silence during that wait reads as failure even when the payment is processing normally.

A few practical habits make a meaningful difference:

Account abstraction patterns emerging through ERC-4337 and EIP-7702 point toward a future where payers do not need to think about gas, networks, or wallet mechanics at all, interacting instead with an outcome the wallet presents rather than raw transaction details. Designing your frontend now to request that simplified outcome, rather than exposing calldata or gas fields directly, positions your checkout to benefit as wallets adopt these patterns.

Fixing Common Ethereum Payment Failures

Most Ethereum payment failures trace back to a handful of repeat causes.

Nonce errors happen when a transaction is submitted with a nonce that does not match the sender’s expected sequence, often because a prior transaction is still pending or was replaced. The fix on the payer side is usually resetting the wallet’s transaction history or waiting for the pending transaction to clear.

Failed or stuck transactions typically come down to insufficient gas. A transaction submitted with too low a gas price during network congestion can sit unconfirmed for an extended period. Showing a realistic gas estimate before submission, as covered earlier, prevents most of these cases.

Network mismatches occur when a payer’s wallet is connected to a different chain than the one your payment request specifies. Validating the chain ID before accepting a transaction as valid catches this before funds move to an unmonitored address.

Underpayment or overpayment happens when a payer manually enters an amount instead of using a prefilled request. This is one more argument for standardizing on ERC-681 formatted requests rather than displaying a bare address and expecting the payer to fill in the rest correctly.

Decimal and unit errors affect token payments specifically, since different tokens use different decimal precision. Displaying the wrong decimal count can show a payer an amount ten or a thousand times different from what they actually owe, so always pull decimals from the token contract rather than hardcoding them.

Fixing Common Ethereum Payment Failures — overview diagram

Compliance conversations around Ethereum payments tend to focus narrowly on KYC and AML, but consumer protection questions matter just as much for merchants. Because blockchain transactions are irreversible, the consumer protections that card networks provide through chargebacks do not exist by default, which shifts more of the fraud and dispute burden onto you as the merchant.

This has a practical consequence: your terms of service and refund policy need to say plainly what happens when something goes wrong, since there is no network-level backstop forcing a resolution. Advertising goods or services and accepting Ethereum payment for them still falls under ordinary consumer protection and advertising law in most jurisdictions, the payment method does not exempt the transaction from those rules.

Pricing transparency is another area worth attention. If the amount owed is calculated in a fiat currency but settled in ETH, the exchange rate and timing used for that conversion should be disclosed to the payer before they confirm payment, since crypto prices can move meaningfully between quote and settlement.

Because legal treatment of cryptocurrency payments varies by jurisdiction and continues to evolve, the governing principle rather than a fixed rule is what matters most here: payment method does not change your underlying obligations as a seller, and specific questions about your market are best directed to a qualified legal professional rather than assumed from general practice elsewhere.

Prioritize Speed to Market, Then Build Control Later

If you are choosing where to start, start with a gateway. Reconciliation, compliance, and launch speed matter more early on than custody control most merchants never end up needing. Migrate to custom on-chain patterns once volume or a specific control requirement justifies the engineering cost, not before.

Worth watching through 2026: account abstraction is still maturing, and today’s gasless implementation choices may look different in a year.

— Dustin

Get Started Accepting Ethereum Payments

We make the gateway path concrete: accept Ethereum payments through a hosted checkout, plugin, or API, with fees starting at a low percentage and no lengthy KYC process standing between you and your first transaction. Instant conversion options mean you are not stuck managing ETH price swings if you would rather settle in a stable asset.

Cryptopayr

A few ways to move forward today:

This article is general information, not a substitute for advice from a qualified financial advisor. Consult a qualified financial professional about your own circumstances before acting on anything here.

FAQ

How do I pay someone with Ethereum?

You send Ethereum by entering the recipient’s address and amount in your wallet, or by scanning a QR code or opening a payment link formatted with ERC-681, which prefills those details automatically. Using a standardized request format reduces the risk of sending to the wrong address or entering an incorrect amount.

How do I get my money out of Ethereum?

You convert Ethereum to fiat currency either through a cryptocurrency exchange that supports bank withdrawals or through a payment gateway that offers instant conversion as part of processing. Some merchants choose to hold a portion in Ethereum or a stablecoin and convert the rest, depending on their risk tolerance.

Does PayPal accept Ethereum?

Specific platform support for Ethereum changes over time and varies by region and account type, so check the current policy directly on the platform in question before relying on it. A dedicated crypto payment gateway is a more direct route for merchants who specifically want to accept Ethereum for goods or services.

Which banks accept crypto payments?

Bank acceptance of cryptocurrency varies widely by institution and jurisdiction, and most traditional banks do not process Ethereum transactions directly since it operates outside conventional banking rails. Merchants typically bridge this gap using a payment gateway or exchange that converts crypto to fiat and deposits the fiat portion into a standard bank account.

Sources

Start accepting crypto today

Open a free CryptoPayr account and take your first crypto payment the same day.

Get started for free

Keep reading

📝 Guides

Launch Dogecoin Payments in a Day: Merchant Checklist and Dev Steps

Merchant playbook to accept Dogecoin payments: five step checklist, mempool fixes, settlement options, and a hosted checkout launch in a day.

Oct 5, 2026 · 10.00 min Read →
📝 Guides

8 Step Business Checklist to Accept Bitcoin Payments & Comply

8 step checklist for businesses to accept Bitcoin payments, covering integration models, fees and settlement, volatility controls, and compliance.

Oct 4, 2026 · 15.00 min Read →
📝 Guides

6 Fields Finance Teams Must Record for Each Partial Crypto Payment

Finance teams: reconcile partial crypto payments. Record six per tranche fields, use delivered_amount as ledger source, and follow a one week...

Oct 3, 2026 · 16.00 min Read →