Accept Bitcoin (BTC) payments
Bitcoin is still the coin most customers ask for by name. Here is how on-chain BTC payments work with easyway: what the payer sees, when the money counts as yours, and what it costs.
How a Bitcoin payment works here
Every invoice gets its own native SegWit address (bc1q…), derived from a watch-only extended public key — the server that runs your checkout can create addresses but holds no key that could spend from them. An address is never reused for a second invoice, so a payment is matched to its order by the address alone; no memo, no reference to type.
The customer picks Bitcoin on the hosted checkout and is shown the address (also as a QR code) and the exact BTC amount, with a copy button for each. The BTC amount is fixed from the exchange rate at the moment they pick the coin, and the invoice expires after its lifetime (60 minutes unless you set another) if nothing arrives.
Confirmations and what "paid" means
As soon as the transaction appears in the mempool the checkout switches to confirming and your server gets an invoice.confirming webhook. That is a heads-up only: an unconfirmed transaction can still be replaced (RBF) or double-spent. The invoice turns paid — and the BTC lands on your balance — after 2 confirmations, about 20 minutes on average.
Before anything is credited, the confirmed output is checked against a second, unrelated block explorer: the watcher reads payments from one Esplora API and only reports a deep enough output once a different one shows the same transaction, output, address and amount. A single faulty or compromised data source cannot get a payment credited on its own.
What the customer needs
Any Bitcoin wallet or exchange that can send on-chain to a bc1q… address — which today is practically all of them. Wallets that only speak Lightning cannot pay; there is no Lightning invoice. Two things worth telling customers:
Send the exact amount in one go if you can. Some exchanges deduct their withdrawal fee from the amount sent; the invoice then shows as underpaid, and the checkout asks for the remainder. Several transfers to the same address all count towards the invoice. You can allow a small shortfall in Settings (the underpayment tolerance) so a few satoshis short still counts as paid.
Pay a normal network fee. A transaction with a very low fee can sit unconfirmed for hours. The address is watched for seven days after the invoice expires, so a slow payment is not lost — but it also isn't paid until it confirms.
Price risk
Nothing is converted: a BTC payment stays BTC on your balance and is withdrawn as BTC to an address you have whitelisted. If you price in USD, the amount you receive is worth the invoice price at the moment the customer picked Bitcoin; after that the value moves with the market, up or down. If you want to avoid that, offer stablecoins such as USDT or USDC alongside or instead of Bitcoin with allowed_assets.
Fees
| Amount | |
|---|---|
| Platform fee on a payment | 0.5% |
| Example: customer pays 0.01 BTC | you receive 0.00995 BTC |
| Confirmations required | 2 |
| Minimum withdrawal | 0.00001 BTC |
| Withdrawal network fee | 0.00001 BTC (flat) |
The customer pays the Bitcoin network fee for their own transfer. Every other coin and network is on the pricing page.
Integrating Bitcoin payments
Create an invoice in USD and let the customer choose Bitcoin among every enabled coin, or set currency: "BTC" to price in BTC and accept only BTC. Redirect to the hosted checkout, then fulfil the order on the signed invoice.paid webhook. The quickstart has runnable code in cURL, Node.js, PHP and Python, and the full API is described in OpenAPI format.
Common questions
Who holds the bitcoin? easyway does, on your balance, until you withdraw it to your own wallet. Live withdrawals only go to addresses you have whitelisted with two-factor authentication; see security.
Can I accept other UTXO coins? Litecoin, Dogecoin and Dash work the same way — one address per invoice, a few confirmations. See the fees by coin.