Research/Bitcoin

Accepting Bitcoin Payments: A Merchant's Technical Guide

How to accept Bitcoin payments as a merchant: payment processors, self-hosting, accounting, and tax considerations.

bcTanjiMar 4, 2026

Accepting Bitcoin as a merchant used to mean installing a full node, generating invoices manually, and watching the mempool for confirmations. The tooling has matured considerably since then. Today a merchant can go from zero to accepting Bitcoin in an afternoon, whether through a hosted payment processor, a self-managed BTCPay Server instance, or a stablecoin integration that eliminates volatility entirely.

This guide walks through the technical options available to merchants: processor selection, integration patterns for point-of-sale and e-commerce, the choice between holding BTC and converting to fiat, accounting requirements, and how Bitcoin payments compare to traditional card processing from a compliance perspective.

Payment Processor Options

The first decision is whether to use a hosted payment processor or run your own infrastructure. Hosted processors handle invoice generation, payment detection, and optional fiat conversion. Self-hosted solutions like BTCPay Server give you full control but require server administration.

Hosted processors

Hosted services abstract away the complexity of running Bitcoin infrastructure. The merchant integrates via API, and the processor handles everything from generating payment addresses to monitoring the blockchain for confirmations. Most offer plugins for popular e-commerce platforms.

  • Strike provides a merchant API built on Lightning. Payments settle instantly and can auto-convert to USD. No on-chain transaction fees for Lightning payments.
  • OpenNode supports both on-chain and Lightning payments with auto-conversion. Offers hosted checkout pages and embeddable payment widgets.
  • Speed targets high-volume merchants with sub-second Lightning settlement and built-in invoicing tools.

Self-hosted: BTCPay Server

BTCPay Server is the open-source standard for self-custodial merchant payment processing. You run it on your own server (or a cloud VM), connect it to your Bitcoin node, and generate invoices without any third party seeing your transaction data. BTCPay charges no processing fees: your only costs are hosting and on-chain transaction fees.

BTCPay supports on-chain payments, Lightning (via LND or CLN), and integrates with WooCommerce, Shopify, Magento, and other platforms through plugins. It also handles point-of-sale scenarios with a built-in web-based POS terminal.

Self-custody matters: With BTCPay Server, funds go directly to your wallet. No processor holds your money, no withdrawal delays, no counterparty risk. This is the self-custody model applied to merchant payments. The tradeoff is operational responsibility: you maintain the server, manage backups, and handle Lightning channel liquidity if you accept Lightning payments.

Processor comparison

FeatureBTCPay ServerStrikeOpenNode
Custody modelSelf-custodialCustodialCustodial
Processing feesNone (hosting costs only)Varies by plan1% per transaction
Lightning supportYes (LND, CLN)Yes (native)Yes
Auto-convert to fiatVia third-party pluginsYes (USD)Yes (USD, EUR, GBP)
E-commerce pluginsWooCommerce, Shopify, MagentoAPI-firstWooCommerce, Shopify
POS supportBuilt-in web POSMobile appAPI-driven
Open sourceYes (MIT license)NoNo
Setup complexityHigh (server admin required)LowLow

Integration Patterns

How you integrate Bitcoin payments depends on your sales channel. The three common patterns are e-commerce checkout, physical point-of-sale, and invoice-based billing.

E-commerce checkout

For online stores, the standard flow mirrors card payments. At checkout, the customer selects Bitcoin as the payment method. Your processor generates a Lightning invoice or an on-chain payment request with a unique address. The customer scans a QR code or clicks a payment link. Your backend polls the processor API (or receives a webhook) to confirm payment, then marks the order as paid.

Most processors provide a hosted checkout page that handles the UX: displaying the QR code, showing a countdown timer, and confirming payment in real time. This reduces integration to a single API call to create an invoice and a webhook handler to process confirmations.

Point-of-sale (POS)

In-person payments require displaying a QR code at the register. BTCPay Server includes a web-based POS application that runs on any tablet or phone. Hosted processors like Strike offer mobile apps that generate invoices on demand.

For Lightning payments, the customer experience is fast: scan, authorize, done. The merchant sees confirmation within seconds. On-chain payments are slower and require the merchant to decide how many confirmations to wait for, which introduces the zero-conf tradeoff. For small retail transactions, many merchants accept zero-conf on-chain payments given the low economic incentive for double-spend attacks on small amounts.

Invoice-based billing

B2B and service-based businesses often use invoices rather than real-time checkout. BTCPay Server generates invoices with configurable expiration times, partial payment support, and automatic email notifications. The invoice includes both on-chain and Lightning payment options, letting the payer choose.

For recurring billing, some processors support subscription-style invoicing where a new payment request is generated on a schedule. Unlike card subscriptions, Bitcoin payments require active authorization each cycle: there is no equivalent of storing a card on file for automatic charges.

Holding BTC vs. Instant Conversion

Every merchant accepting Bitcoin faces a fundamental question: keep the BTC or convert it to fiat immediately? This is not just a financial preference: it has accounting, tax, and operational implications.

Instant conversion to fiat

Most hosted processors offer automatic conversion. When a customer pays in Bitcoin, the processor sells the BTC on a market and credits the merchant's account in USD (or local currency). The merchant never holds Bitcoin and faces no price volatility.

This approach simplifies accounting dramatically. Revenue is recorded in fiat at the time of sale. There are no capital gains calculations, no tracking of cost basis across hundreds of small payments, and no need for crypto-specific bookkeeping software.

Holding BTC

Merchants who hold Bitcoin treat each payment as an asset acquisition. This means tracking the fair market value at the time of receipt (your cost basis), holding the BTC in a hot wallet or cold storage solution, and calculating capital gains or losses when eventually converting to fiat.

The operational overhead is significant. Each payment creates a separate tax lot. Selling BTC to pay expenses triggers a taxable event. The merchant needs crypto-aware accounting software and potentially a CPA familiar with digital asset taxation.

The stablecoin alternative

A third option has emerged: dollar-denominated payments on Bitcoin rails. Instead of accepting volatile BTC and converting it, the merchant can accept stablecoins that maintain a dollar peg while settling on Bitcoin infrastructure.

USDB, a fiat-backed stablecoin on Spark, is designed for exactly this use case. Merchants receive dollar-denominated value with instant settlement and zero transaction fees. There is no volatility to manage, no instant-conversion service needed, and no capital gains tracking on the payment itself. The funds are denominated in dollars from the moment they arrive.

Why this matters for merchants: The primary objection merchants raise against accepting Bitcoin is volatility. If a $100 sale becomes $85 before the merchant can convert, the economics break down. Stablecoins on Bitcoin Layer 2 networks eliminate this entirely while preserving the benefits of Bitcoin settlement: no chargebacks, instant finality, and global reach.

The Chargeback Advantage

Credit card chargebacks cost merchants an estimated 0.5% to 1.5% of revenue annually. Beyond the direct financial loss, each chargeback incurs processing fees ($15 to $100 per dispute depending on the processor), administrative time, and potential penalties if chargeback ratios exceed network thresholds.

Bitcoin transactions are irreversible by design. Once a payment confirms on-chain or settles on Lightning, the merchant has the funds. There is no mechanism for a customer to initiate a reversal through a bank or card network. This eliminates chargeback fraud entirely.

Refund handling

Irreversibility does not mean merchants cannot issue refunds: it means refunds are initiated by the merchant, not forced by a third party. The merchant decides when and how much to refund, and sends the funds back to the customer's address.

Refund implementation requires some consideration. The merchant needs to either request a refund address from the customer (most processors handle this) or store the originating address from the payment (which is unreliable for on-chain payments due to UTXO-based change address mechanics). BTCPay Server includes a built-in refund workflow that generates a refund request and lets the customer provide a destination address.

PCI-DSS Comparison

Merchants accepting credit cards must comply with the Payment Card Industry Data Security Standard (PCI-DSS). The requirements scale with transaction volume, but even the simplest tier (SAQ-A for merchants using hosted payment pages) involves annual self-assessment questionnaires and adherence to data handling requirements.

Bitcoin payments have no equivalent compliance framework. There is no cardholder data to protect because Bitcoin does not use account numbers, CVVs, or expiration dates. A Bitcoin payment address is public by design: exposing it creates no security risk for the payer.

Compliance AspectCredit Card (PCI-DSS)Bitcoin Payments
Sensitive data storedCard numbers, CVVs, expiry datesNone (addresses are public)
Annual compliance auditRequired (SAQ or QSA depending on volume)Not applicable
Data breach liabilityFines up to $500K + forensic investigationNo cardholder data to breach
Encryption requirementsTLS for transmission, AES for storageCryptographic by default (public-key infrastructure)
Chargeback risk0.5% to 1.5% of revenueZero
Processing fees2% to 3.5% per transaction0% to 1% depending on processor
Settlement time1 to 3 business daysSeconds (Lightning) to 60 min (on-chain, 6 conf)

This does not mean Bitcoin merchants have zero compliance obligations. Depending on jurisdiction, accepting cryptocurrency may trigger money transmitter licensing requirements, KYC/AML obligations, or specific reporting requirements. Merchants should consult legal counsel familiar with digital asset regulation in their jurisdiction.

Accounting and Tax Considerations

In most jurisdictions, receiving Bitcoin as payment for goods or services is a taxable event. The fair market value of the Bitcoin at the time of receipt is treated as ordinary income (revenue). If the merchant later sells the Bitcoin, the difference between the sale price and the original fair market value is a capital gain or loss.

Cost basis tracking

Every Bitcoin payment received creates a new tax lot with its own cost basis (the USD value at the time of receipt). A merchant processing 50 Bitcoin payments per month creates 600 tax lots per year. Each lot must be tracked individually, and when BTC is sold or spent, the merchant must identify which lots are being disposed of using FIFO, LIFO, or specific identification methods.

This complexity is a strong argument for either instant fiat conversion (where the only taxable event is the sale itself, recorded in fiat) or accepting stablecoins (where the value does not fluctuate and there are no capital gains to track).

Accounting software

Standard bookkeeping tools (QuickBooks, Xero) do not natively handle cryptocurrency transactions. Merchants holding BTC need supplementary tools for cost basis tracking and tax reporting. Options include CoinTracker, Koinly, and TaxBit, which import transaction data from wallets and exchanges, calculate gains/losses, and generate tax forms.

BTCPay Server exports transaction history in CSV format, which can be imported into these tools. Hosted processors typically provide their own reporting dashboards and exportable transaction logs.

Sales tax collection

Bitcoin payments do not exempt merchants from sales tax obligations. If your jurisdiction requires collecting sales tax on goods or services, you must still collect and remit it regardless of payment method. The tax amount should be calculated on the fiat value of the sale and can be included in the Bitcoin invoice total.

Security Considerations

Accepting Bitcoin introduces a different security profile compared to card payments. There is no cardholder data to protect, but there are private keys and wallet infrastructure to secure.

Wallet security

For merchants using self-hosted solutions, wallet security is paramount. Best practices include using HD wallets with fresh addresses for each invoice, keeping the majority of funds in cold storage, maintaining encrypted backups of seed phrases, and implementing multi-signature authorization for large withdrawals.

BTCPay Server supports HD wallet imports via xpub keys, meaning the server generates payment addresses but never holds the private keys needed to spend funds. This separation is a significant security advantage: even if the BTCPay Server instance is compromised, funds cannot be stolen.

Lightning security

Lightning nodes that process merchant payments require hot wallet keys to sign transactions in real time. This is an inherent requirement of payment channels. Merchants should limit the amount held in Lightning channels to what is needed for operational liquidity, sweeping excess funds to cold storage regularly.

Getting Started: A Practical Roadmap

The right approach depends on your transaction volume, technical capacity, and whether you want to hold Bitcoin or receive fiat.

Low volume, minimal setup

Use a hosted processor like Strike or OpenNode. Integration takes hours, not days. You get a checkout widget or API, automatic fiat conversion, and minimal operational overhead. Start here if you are testing demand before committing infrastructure.

High volume, full control

Deploy BTCPay Server on your own infrastructure. Connect it to your Bitcoin node and Lightning node. Integrate with your e-commerce platform via plugins or the Greenfield API. This path requires server administration skills and ongoing maintenance but gives you self-custody, zero processing fees, and complete data privacy.

Volatility-free: stablecoins on Bitcoin

For merchants who want Bitcoin's settlement properties without price exposure, accepting stablecoins on Layer 2 networks is the most straightforward path. USDB on Spark settles instantly with no transaction fees, and the merchant receives dollar-denominated value. No conversion step, no volatility window, no capital gains complexity. The Spark SDK provides programmatic integration for merchants who want to build custom payment flows.

Common Pitfalls

Merchants new to Bitcoin payments frequently encounter these issues:

  • Address reuse: generating the same payment address for multiple invoices makes it impossible to match payments to orders. Always use unique addresses per invoice.
  • Ignoring the replace-by-fee (RBF) flag: on-chain transactions marked as RBF-enabled can be replaced with a higher-fee transaction that redirects funds. Merchants accepting zero-conf should check the RBF flag and treat RBF-enabled transactions with additional caution.
  • Insufficient confirmations for high-value sales: while zero-conf is reasonable for small retail purchases, larger transactions warrant waiting for confirmations. A common threshold is one confirmation for transactions under $1,000 and three to six confirmations for larger amounts.
  • Not accounting for network fees: on-chain Bitcoin transactions incur miner fees paid by the sender. If the customer underpays by the fee amount, the merchant receives less than the invoice total. Processors handle this automatically, but custom integrations need to account for it.
  • Expired invoices: Bitcoin payment invoices should have expiration times (typically 15 to 60 minutes) to avoid receiving payments at stale exchange rates. BTCPay Server and most processors enforce this by default.

The Path Forward

Bitcoin merchant payments have evolved from a novelty into a practical alternative to traditional payment processing. The infrastructure is mature: processors handle the complexity, Lightning provides instant settlement, and dollar-denominated payments solve the volatility objection. The remaining friction is primarily regulatory clarity and merchant education rather than technical capability.

For merchants evaluating their options, the decision framework is straightforward. If you want minimal setup and fiat settlement, use a hosted processor. If you want full control and self-custody, deploy BTCPay Server. If you want dollar-denominated value with Bitcoin settlement properties, look at stablecoins on Layer 2 networks like Spark. Each approach has valid tradeoffs: the right choice depends on your operational capacity, regulatory environment, and business requirements.

This article is for educational purposes only. It does not constitute financial or investment advice. Bitcoin and Layer 2 protocols involve technical and financial risk. Always do your own research and understand the tradeoffs before using any protocol.