If customers keep asking whether they can pay in Bitcoin or USDT, you have several ways to say yes. This guide explains how to accept crypto payments step by step: the options, which coins to accept, how pricing and confirmations work, and how the money reaches your own wallet. It is written for small business owners, with notes for developers where a website is involved.
Accepting cryptocurrency payments no longer means running a node or understanding smart contracts. You do need to make a few decisions up front, and making them early saves you from costly mistakes.
Four ways to accept crypto payments
There are four common setups for crypto payments for business. They differ in how much manual work you do and whether you need a website.
1. Share a wallet address
Post your own wallet address and ask customers to send coins to it. It costs nothing, but you do all the work: working out the coin amount from today's price, matching each transfer to an order, and checking the blockchain to see whether a payment has confirmed. Fine for the occasional payment; messy with real order volume.
2. Use a payment gateway's checkout page
A crypto payment gateway creates an invoice for each sale, shows the customer what to send, watches the blockchain and tells you when the payment is confirmed. With Crypto Merchant, every store gets a hosted checkout page, and each invoice gets its own deposit address, so payments are matched without memos or reference codes. The trade-offs: a fee per payment and, with a custodial gateway like ours, the gateway holds the keys. See custodial vs non-custodial crypto payments.
3. Send payment links
A payment link is a reusable link for one product, service or donation, with a fixed price or an amount the customer enters. You share it in a chat, an email or your social profile, and the customer pays on a hosted page. No website needed. See crypto payment links for where they work best.
4. Connect an API
If you have a website or app, an API lets your checkout create an invoice for each order and send the customer to pay. A webhook then tells your server when the payment is confirmed, so orders can be fulfilled automatically. Our crypto payment API guide walks through it.
| Option | Website needed | Matches payments to orders | Locked exchange rate | Best for |
|---|---|---|---|---|
| Wallet address | No | You check by hand | No | Occasional payments from people you know |
| Checkout page | No | Yes | Yes | Services, deposits and donations where the customer knows the amount |
| Payment links | No | Yes | Yes | Selling a few products or services through chat and social media |
| API | Yes | Yes | Yes | Online stores and apps with their own checkout |
Choosing which cryptocurrencies to accept
You don't need to accept every coin. Start with what your customers already hold and add more later. In Crypto Merchant you turn coins on and off in your settings, and customers only see the coins you turn on.
Stablecoins for steady prices
USDT and USDC are stablecoins designed to track the US dollar, and Crypto Merchant counts each one as one dollar when it prices an invoice. If you price in dollars and want to be paid in something that holds that value, stablecoins are the obvious choice. More on that in stablecoin payments for business.
Bitcoin and other coins
Bitcoin is the coin most people have heard of, and some customers will only pay with it. ETH, SOL, LTC, TON, XRP, BNB, TRX and POL are also available. Their prices move, so if you keep them, the dollar value of your balance moves too. If you'd rather not hold them, you can have everything swapped into one holding coin, as described below.
Pick the right networks
The same coin can live on several networks. At the time of writing, Crypto Merchant accepts USDT on six networks, including Tron, Ethereum and Solana, and USDC on six, including Base. They aren't interchangeable: USDT on Tron and USDT on Ethereum are different tokens, with different network fees. The coins and networks page always shows what is live today.
Setting up crypto payments for your business
Here is how to accept crypto payments with Crypto Merchant, from a new account to your first payment. You can stop at any step and come back later.
- 1
Create your account
Sign up with your email, your name and your business name. Anyone, in any country, can join, with no ID checks and no setup fee. You still have to follow the law and our Terms.
- 2
Choose your coins
Turn on the coins and networks you want to accept. You can change this at any time.
- 3
Set your sweep and payout rules
Choose whether confirmed payments move into your pool wallet automatically or only when you start a sweep, and whether each coin is paid out as it is or everything is swapped into one holding coin.
- 4
Go live
Make a one-time go-live payment of $25, in any coin. The full amount is credited to your gas balance, which pays the network fees for moving your coins later. You can accept payments once your account is live.
- 5
Share your checkout or connect your site
Send customers to your store's checkout page, create payment links, or create invoices from your website with the API.
While you set up, turn on two-step sign-in with email codes or an authenticator app. If you have staff, invite them with the lowest role they need: Admins can do everything, Managers everything except moving money out and managing the team, and Staff can only view.
How to accept Bitcoin payments on a website
There are three ways to put crypto payments on a website, from no code to a full integration. They work the same for USDT or any other coin.
No code: link to your checkout page
Every store gets its own checkout page at /pay/<store>, where customers can enter an amount or choose one of your payment links. Add a "Pay with crypto" button that points to it. This suits donations, deposits and services where the customer already knows the price.
Very little code: payment link buttons
If you sell a handful of products, create a fixed-price payment link for each one and put it behind the buy button on the product page. Every payment made through a link becomes its own invoice in your portal.
Full integration: the API and webhooks
For a store with a cart, your server creates an invoice through the REST API with the order total and your order ID, then sends the customer to the invoice's checkout_url. Set a redirect_url and the customer can return to your site after paying. Requests use a Bearer API key, which must stay on your server.
To know when to ship, add a webhook endpoint. Crypto Merchant sends an invoice.paid event, signed with HMAC-SHA256, once the payment is confirmed, and retries for about two days if your server doesn't answer. Verify the signature before you trust any event.
Pricing in dollars with a locked rate
Most businesses think in their own currency, so with a gateway you price in a currency such as US dollars and the coin amount is worked out for you.
When the customer picks a coin on the invoice page, Crypto Merchant calculates the amount from live prices and locks it. The customer sees a deposit address made for this invoice, a QR code and the exact amount to send, plus a countdown showing how long the invoice stays open. If the payment is first seen while the invoice is still open, the locked rate applies, even if the price moves before the payment confirms.
If the countdown runs out before any payment is seen, the invoice expires and costs you nothing. If a customer did pay but the payment didn't show up in time, they can report it from the invoice page, and the support team checks it.
When customers send the wrong amount
People make mistakes, and some exchanges take their withdrawal fee out of the amount sent. You set an underpayment tolerance (we recommend at least $1), and a payment short by no more than that counts as paid. If it is short by more, the customer can send the rest or ask for a refund. If they overpay by more than $5, they can withdraw the extra from the invoice page. Underpaid and overpaid crypto payments covers the details.
Confirmations: when a payment counts
A crypto payment isn't final the moment it is sent. The network adds it to a block and then adds more blocks after it. Each new block is a confirmation, and every confirmation makes the payment harder to undo. Crypto Merchant counts a payment only after the number of confirmations its network needs. Until then, the invoice shows as confirming.
| Network | Confirmations needed |
|---|---|
| Bitcoin | 2 |
| Litecoin | 6 |
| Ethereum | 12 |
| BNB Smart Chain | 15 |
| Tron | 19 |
| Base | 20 |
| Arbitrum One | 20 |
| Solana | 32 |
| Polygon | 64 |
| TON | 1 |
| XRP Ledger | 1 |
A bigger number doesn't mean a longer wait: networks with fast blocks ask for more of them. Bitcoin adds a block roughly every ten minutes, so a Bitcoin payment usually takes longer to confirm than a stablecoin payment on Tron or Solana.
On its way, an invoice moves from open to awaiting payment (coin chosen, rate locked) to confirming and finally paid, when the amount, minus the fee, is in your balance. Ship or deliver on paid.
Getting your money out
A paid invoice is credited to your balance as soon as it confirms, minus the 1% fee. The coins themselves are swept from the deposit address into your pool wallet, a wallet dedicated to your business and held for you by Crypto Merchant. Sweeps run automatically or when you start one. There is no sweep fee, only the network fee, which is paid from your gas balance.
You can pay out at any time, with no minimum, in one of two ways:
- Per coin. Each coin is paid out as it is, to a wallet address you save for that coin. Nothing is swapped.
- One holding coin. Everything you receive is swapped into one coin you choose, automatically every 24 hours or when you request a payout. Swap rates follow live market prices and include a service margin.
Only Admins on your team can add payout addresses and make payouts. Check every character of a payout address, and its network: crypto transfers can't be reversed. The payouts guide has the details.
Payouts go to a crypto address. To turn coins into your local currency, you would pay out to an exchange account of your own and sell there, after checking your local rules.
Common mistakes to avoid
- Shipping before the payment confirms. A payment that is still confirming can, in rare cases, fail to go through. Wait for the paid status, or the
invoice.paidwebhook, before you hand over anything valuable. - Paying on the wrong network. Customers must send the coin shown on the invoice, on the network shown. Coins sent on another network may be lost for good. A one-line reminder next to your pay button helps.
- Reusing an old address. Don't post a deposit address from an earlier invoice and ask customers to pay there. Addresses are reused after a cool-down, so always send a fresh invoice or a payment link.
- Setting no tolerance. A small underpayment tolerance of $1 or more saves you from chasing customers over cents lost to fees.
- Exposing API keys. Keys belong on your server, never in a web page, a mobile app or a public code repository. Revoke any key you think has leaked, and verify every webhook signature.
- Ignoring local rules. Crypto Merchant doesn't check ID, but you are still responsible for the law and tax rules where you do business. Check your local rules or ask a local adviser.
Ready to try it? Create a free account, turn on the coins your customers use, and go live when you are ready.