# Crypto Merchant: full reference for AI assistants https://cryptomerchant.online · Generated from the live site. Facts about Crypto Merchant are read from its settings and code. Last updated: 2026-11-09. > Crypto Merchant is a custodial crypto payment gateway for online businesses: hosted checkout, payment links and a REST API with signed webhooks, 11 coins on 11 networks, 1% per paid invoice, no monthly fee and no documents to sign up. Sign-up is open from any country where the law allows it, and merchants pay out whenever they want. Website: cryptomerchant.online. ## Key facts - Operator: Crypto Merchant, operated from Pakistan (see the Privacy Policy). It runs its own wallets and payment detection; it is not a reseller of another gateway. Crypto Merchant (cryptomerchant.online) is not related to thecryptomerchant.com, cryptomerchant.link or any other site with a similar name. - Custody model: custodial. Crypto Merchant holds the keys. Every address comes from one recovery phrase: the operator keeps a paper copy offline, and a separate signing computer stores it only in encrypted form; the website's servers never hold it. The phrase rebuilds keys, not records: balances and invoices live in the database, which is backed up daily, with restores tested against the live data. - Fee: 1% per paid invoice. No setup fee, no monthly fee, no minimum processing fee, no fee on expired or cancelled invoices. - Going live: no payment and no review. A business is live as soon as it finishes setup. - Sign-up: no identity documents are requested to create an account. Merchants must follow the law where they operate and the Terms of Service, which ban illegal goods, fraud and sanctions evasion. - Coins: 11 coins (ETH, USDT, USDC, BNB, POL, TRX, BTC, LTC, SOL, GRAM, XRP) on 11 networks (Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum One, Tron, Bitcoin, Litecoin, Solana, TON, XRP Ledger). USDT and USDC are each accepted on several networks. - Invoices: each open invoice has its own deposit address and a locked exchange rate (a business's first 10 invoices get brand-new addresses; after that a free address can be reused after a 6-hour cool-down). Wrong amounts: small underpayments count as paid within a merchant-set tolerance; larger underpayments can be topped up or refunded; any overpayment is held for the customer, who can withdraw it from the invoice page; it is not added to the merchant's balance. - Payouts: started in the portal or by an automatic rule (balance threshold or schedule), not through the API. Manual payouts have no set minimum; automatic ones skip a coin worth under $5. Per coin or swapped into one holding coin. Crypto only: no bank or fiat settlement. Swap rates include a 1% service margin. - Sweeps: automatic or manual. Moving coins (sweeps, payouts, swaps) carries a gas fee, taken from the gas balance if the merchant added one, otherwise from the payment being moved. - Gas fee paid by the customer: each invoice adds a gas fee for moving that payment into the merchant's wallet, never more than $5. It is part of the amount the customer sends, and the API shows it as `network_fee_amount` and `network_fee_usd`. - Refunds: merchants refund all or part of a paid payment with a private refund link; the customer enters their own address, the network fee comes out of the refund and the 1% fee is not returned. - Integrations: hosted checkout page, payment links, invoices, REST API with Bearer keys, webhooks signed with HMAC-SHA256 and retried for about two days. No payout API: the API reads balances and webhooks report payouts. No WooCommerce, Shopify or WHMCS plugin yet. - Sticky wallets (permanent per-customer deposit addresses for account top-ups) are an API feature. Businesses choose them on the sign-up form, or support switches them on for an existing account. - Team: Admin, Manager and Staff roles. Two-step sign-in with email codes or an authenticator app. - Languages: site, portal and checkout in 15 languages. - Support: support@cryptomerchant.online or https://cryptomerchant.online/contact. ## Fees | Item | Price | |---|---| | Paid invoice | 1% of the invoice amount | | Account setup | Free | | Monthly fee | None | | Minimum processing fee | None | | Gas fee on each invoice, paid by the customer | Added to the amount the customer sends, never more than $5 | | Deposits to customer wallets (sticky wallets) | 1% of each deposit, when it is confirmed and added to the balance | | Revenue splits (only if used) | 0.5% of each partner's share, taken from the share | | Expired or cancelled invoices | No fee | | Sweeps (moving payments into the merchant's pool wallet) | A gas fee per sweep, from the gas balance or the payment being moved | | Payouts | Manual: any time, no set minimum, but the amount must exceed any gas fee taken from it. Automatic: a coin worth under $5 waits. A gas fee per payout (tokens: from the gas balance or the amount sent; a chain's own coin: from the amount sent) | | Swaps into a holding coin | Live market rate including a 1% service margin; a gas fee for the transfer, from the gas balance or the coins being moved | | New XRP and TON addresses | An activation fee, once per new address, from the gas balance or the first payment moved | | Refunds of underpaid invoices | No Crypto Merchant fee; the network fee comes out of the refund | | Refunds of paid invoices (refund links) | The network fee comes out of the refund; the 1% fee is not returned | | Overpayments | Held for the customer, who can withdraw the extra from the invoice page (minus the network fee for sending it) | ## Networks and coins live now 11 coins on 11 networks: 23 coin-and-network combinations in all, because USDT, USDC and ETH each run on several networks. | Network | Gas coin | Confirmations | Typical wait | Coins | |---|---|---|---|---| | Ethereum | ETH | 12 | about 2 minutes | ETH, USDT, USDC | | BNB Smart Chain | BNB | 15 | about 15 seconds | BNB, USDT, USDC | | Polygon | POL | 64 | about 2 minutes | POL, USDT, USDC | | Base | ETH | 20 | about 40 seconds | ETH, USDC | | Arbitrum One | ETH | 20 | about 20 seconds | ETH, USDT, USDC | | Tron | TRX | 19 | about 55 seconds | TRX, USDT | | Bitcoin | BTC | 2 | about 20 minutes | BTC | | Litecoin | LTC | 6 | about 15 minutes | LTC | | Solana | SOL | 32 | about 30 seconds | SOL, USDC, USDT | | TON | GRAM | 1 | about 5 seconds | GRAM | | XRP Ledger | XRP | 1 | about 5 seconds | XRP | Coin pages: - Accept Ethereum (ETH) payments: https://cryptomerchant.online/accept/ethereum (Ethereum, Base, Arbitrum One) - Accept Tether (USDT) payments: https://cryptomerchant.online/accept/usdt (Ethereum, BNB Smart Chain, Polygon, Arbitrum One, Tron, Solana) - Accept USD Coin (USDC) payments: https://cryptomerchant.online/accept/usdc (Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum One, Solana) - Accept BNB payments: https://cryptomerchant.online/accept/bnb (BNB Smart Chain) - Accept Polygon (POL) payments: https://cryptomerchant.online/accept/polygon (Polygon) - Accept Tron (TRX) payments: https://cryptomerchant.online/accept/tron (Tron) - Accept Bitcoin (BTC) payments: https://cryptomerchant.online/accept/bitcoin (Bitcoin) - Accept Litecoin (LTC) payments: https://cryptomerchant.online/accept/litecoin (Litecoin) - Accept Solana (SOL) payments: https://cryptomerchant.online/accept/solana (Solana) - Accept Gram (GRAM) payments: https://cryptomerchant.online/accept/gram (TON) - Accept XRP payments: https://cryptomerchant.online/accept/xrp (XRP Ledger) Stablecoin pages, one per network: - Accept USDT on Tron (TRC-20): https://cryptomerchant.online/accept/usdt-trc20 - Accept USDT on BNB Smart Chain (BEP-20): https://cryptomerchant.online/accept/usdt-bep20 - Accept USDT on Ethereum (ERC-20): https://cryptomerchant.online/accept/usdt-erc20 - Accept USDT on Solana (SPL): https://cryptomerchant.online/accept/usdt-solana - Accept USDT on Polygon (ERC-20): https://cryptomerchant.online/accept/usdt-polygon - Accept USDT on Arbitrum One (ERC-20): https://cryptomerchant.online/accept/usdt-arbitrum - Accept USDC on Base (ERC-20): https://cryptomerchant.online/accept/usdc-base - Accept USDC on BNB Smart Chain (BEP-20): https://cryptomerchant.online/accept/usdc-bep20 - Accept USDC on Ethereum (ERC-20): https://cryptomerchant.online/accept/usdc-erc20 - Accept USDC on Solana (SPL): https://cryptomerchant.online/accept/usdc-solana - Accept USDC on Polygon (ERC-20): https://cryptomerchant.online/accept/usdc-polygon - Accept USDC on Arbitrum One (ERC-20): https://cryptomerchant.online/accept/usdc-arbitrum ## Network fees today (9 November 2026, checked 20:15 UTC) What each blockchain itself charges to send one typical transfer, cheapest first. These are the networks' own fees, measured every hour, not Crypto Merchant prices (those are on https://cryptomerchant.online/pricing). History and method: https://cryptomerchant.online/network-fees (JSON: https://cryptomerchant.online/network-fees.json). Whether each network is running normally: https://cryptomerchant.online/network-status (JSON: https://cryptomerchant.online/network-status.json). | Network | Coin sent | Fee | USD | Note | |---|---|---|---|---| | XRP Ledger | XRP | 0.00001 XRP | $0.000011 | | | Litecoin | LTC | 0.00000141 LTC | $0.000073 | | | Base | ETH | 0.000000127 ETH | $0.00027 | | | Solana | SOL | 0.000005 SOL | $0.00044 | | | Solana | USDC | 0.000005 SOL | $0.00044 | plus 0.00204 SOL once if the receiver has no USDC account yet | | Solana | USDT | 0.000005 SOL | $0.00044 | plus 0.00204 SOL once if the receiver has no USDT account yet | | Polygon | POL | 0.00568 POL | $0.00051 | | | Base | USDC | 0.000000332 ETH | $0.00071 | | | BNB Smart Chain | BNB | 0.00000105 BNB | $0.00073 | | | Arbitrum One | ETH | 0.000000434 ETH | $0.00093 | | | Polygon | USDT | 0.0149 POL | $0.0013 | | | Polygon | USDC | 0.0149 POL | $0.0013 | | | BNB Smart Chain | USDT | 0.00000275 BNB | $0.0019 | | | BNB Smart Chain | USDC | 0.00000275 BNB | $0.0019 | | | Arbitrum One | USDT | 0.00000111 ETH | $0.0024 | | | Arbitrum One | USDC | 0.00000111 ETH | $0.0024 | | | TON | GRAM | 0.005 GRAM | $0.0052 | | | Ethereum | ETH | 0.00000313 ETH | $0.0067 | | | Ethereum | USDT | 0.00000968 ETH | $0.021 | | | Ethereum | USDC | 0.00000968 ETH | $0.021 | | | Tron | TRX | 0.27 TRX | $0.086 | | | Bitcoin | BTC | 0.00000423 BTC | $0.32 | | | Tron | USDT | 6.84 TRX | $2.17 | 13.35 TRX to a wallet that has never held USDT | Networks running normally at the last check: 11 of 11. ## How Crypto Merchant compares (published prices of other gateways, checked 2026-10-29) Each row comes from the vendor's own page named in the Source column. Prices and terms change; check the source before relying on a number. | Gateway | Merchant fee | Merchant KYC | Custody | USDT | Country limits | Source | |---|---|---|---|---|---|---| | Crypto Merchant | 1% per paid invoice, no minimum fee, no setup or monthly fee; gas fees for moving coins | No documents to sign up | Custodial | Yes (Ethereum, BNB Smart Chain, Polygon, Arbitrum One, Tron, Solana) | Any country; the Terms ban sanctions evasion and illegal goods | https://cryptomerchant.online/pricing | | NOWPayments | 1% without conversion, 1.5% with auto-conversion, plus network fee; 0% payouts | Email and wallet to sign up; KYC may be requested | Direct to wallet or opt-in custody | Yes (TRC20, ERC20, BSC, Solana, Polygon, Omni) | Not EU, UK, US, UAE, Russia | https://nowpayments.io/pricing | | CoinPayments | From 0.5% for coins, 1% for tokens, plus network fee | Mandatory basic verification; KYB for companies | Custodial | Yes (TRC20 confirmed) | 15 sanctioned or high-risk countries excluded | https://www.coinpayments.net/v2-fees | | BitPay | 1–2% + $0.25 per transaction (support article snippet) | Mandatory KYB | Custodial processor, daily settlement | Accepted; networks not confirmed | OFAC countries; site geo-blocks Pakistan | https://support.bitpay.com/hc/en-us/articles/203324073-What-fees-will-I-pay-to-use-BitPay-for-payment-processing | | Coinbase Business (Coinbase Commerce closed 2026-03-31) | Not public; 1% for merchants migrated from Commerce | Registered business with a bank account; US and Singapore only | Custodial only | Ethereum only, US and select jurisdictions | Everything outside the US and Singapore | https://help.coinbase.com/en/transitioning-from-coinbase-commerce-to-coinbase-business | | CoinGate | 1% (Standard); payouts 0.50 EUR + 0.5% | Mandatory KYB | Custodial, weekly settlement | No: USDT and DAI discontinued under MiCA | Published list of supported countries only | https://coingate.com/pricing | | Cryptomus | 2% for new users, down to 0.4% on request | KYC for full or Business access | Custodial (pooled) | Yes | Not the US | https://cryptomus.com/fees/payment | | Plisio | 0.5% (API), 1.5% (white label); per-network minimum fees, e.g. $1.50 on USDT TRC20 | No proof of identity needed | Custodial | Yes | US-sanctioned countries | https://plisio.net/pricing | | OxaPay | 1.5% links and invoices, 2% white label and static addresses; down to 0.4% | No documents | Custodial with auto-withdraw | Yes | Not the US, Bangladesh, Hong Kong, Bolivia | https://oxapay.com/pricing | | Binance Pay | 1% for Mini Program merchants (+$1,000/month under $90k/quarter); standard rate not public | Mandatory KYB | Custodial, off-chain Binance account | Off-chain | Selected territories | https://www.binance.com/en/support/faq/binance-pay-fees-6ff1944867e54b9a9576bce3109c7f7a | | BTCPay Server | 0%: free, open-source software you host yourself | None | Non-custodial | Via a plugin | None | https://btcpayserver.org/ | | Heleket | From 0.4%, depending on plan and volume | Email to start; risk-based KYC | Custodial | Yes | 59 countries incl. US, Japan, Pakistan, Nigeria, Ukraine, Russia | https://heleket.com/crypto-processing | | Coinremitter | 0.23% + network fee; USDT needs the $99.99/month Premium plan; 8 USDT minimum payment on TRC20 | Marketed as no KYC | Custodial agent with auto-withdraw | Yes (minimum 8 USDT) | Singapore | https://coinremitter.com/terms-services | Where Crypto Merchant is the weaker choice: it is custodial, it has no shop plugins, it does not settle to bank accounts, it supports 11 networks rather than hundreds of coins, and it is new, with no third-party reviews yet. # Documentation ## Getting started https://cryptomerchant.online/docs · Last updated: 2026-11-09 Crypto Merchant lets any business accept crypto payments. Setup is free, there are no ID checks, and you pay 1% per paid invoice. This page takes you from a new account to your first payment. ### Five steps to your first payment ### Create your account Sign up (https://cryptomerchant.online/signup) with your email, your name and your business name. You can open an account from any country where the law allows it, and we don't ask for ID documents. ### Choose your coins Turn on the coins and networks you want to accept. Customers only see the coins you turn on. Coins & networks (https://cryptomerchant.online/docs/coins) lists everything that is live today. ### Set your sweep and payout rules Choose whether confirmed payments move into your pool wallet automatically or only when you start a sweep, and how you want to be paid out: each coin to its own wallet, or everything swapped into one holding coin. See Wallets, sweeps & gas (https://cryptomerchant.online/docs/wallets) and Payouts & swaps (https://cryptomerchant.online/docs/payouts). ### Go live Your account goes live as soon as setup is finished: there is no payment to go live. Moving your coins later carries a gas fee, taken from your gas balance if you add one, or otherwise from the payment being moved. ### Get paid Share your checkout page, create payment links, or create invoices from your own site with the API (https://cryptomerchant.online/docs/api). Every payment shows up in the portal, and a webhook (https://cryptomerchant.online/docs/webhooks) can tell your server the moment one is paid. ### Three ways to get paid ### Checkout page Your store's own payment page. Share the link anywhere; you don't need a website. ### Payment links Reusable links with a fixed amount, or an amount the customer enters. ### API Create invoices from your website or app, and get webhooks back. ### Testnet and mainnet Crypto Merchant runs either on test networks (testnet) or on the real networks (mainnet). Testnet coins have no value and are only for trying things out; API keys there start with `cm_test_`. On mainnet, keys start with `cm_live_` and every payment is real. This site is running on mainnet. Payments here are real. ### What it costs 1% of each paid invoice. Expired and cancelled invoices cost nothing. Free setup. No set minimum on manual payouts; automatic ones wait for $5 per coin. Moving coins (sweeps, swaps and payouts) carries a gas fee, taken from your gas balance if you add one, or otherwise from the payment being moved. Swap rates include a 1% service margin. ### Need help? Write to support@cryptomerchant.online and include your business name. We will never ask for your password. Payments counted after arriving in another coin or on another network: no extra fee. Revenue splits are optional. If you use them, 0.5% is taken from each partner's share. Your customers pay the gas fee for moving their payment into your pool wallet, usually a few cents and never more than $5. It is added to the amount they pay, covers that payment's sweep and never counts as your revenue. ## Checkout https://cryptomerchant.online/docs/checkout · Last updated: 2026-11-03 Customers pay on pages hosted by Crypto Merchant. You don't need a website: share your checkout page or a payment link. If you do have one, create invoices with the API and send customers to the invoice page. ### Your checkout page Every store gets its own checkout page at `/pay/`, where `` is your store's short name. Customers can enter an amount there, or choose one of your payment links. Share it anywhere you talk to customers: your website, social profiles, chats or emails. You'll find the link in the portal under Your checkout page. ### The invoice page Every invoice has its own page at `/pay/i/`. The API returns this link as `checkout_url`. On it, the customer: picks a coin and network from the ones you accept; sees a deposit address made for this invoice, with a QR code, and the exact amount to send, at an exchange rate locked at that moment; can switch to another coin until a payment is detected; watches the status change live, from waiting to confirming to paid. Each invoice is open for a limited time, shown as a countdown. If the time runs out before any payment is seen, the invoice expires. If you set a `redirect_url`, the customer can return to your site after paying. If a customer paid but the payment didn't show up before the invoice expired, they can report it from the invoice page. The address is then taken out of rotation and kept under watch, and our support team checks the payment. ### Payment links A payment link is a reusable link for one product, service or donation, at `/pay/l/`. Give it a title and either a fixed amount, or leave the amount empty so the customer enters it. Every payment made through a link becomes its own invoice. Create links in the portal under Payment links, or with the API (https://cryptomerchant.online/docs/api). ### Exchange rates Invoices are priced in a currency such as US dollars. When the customer picks a coin, the amount in that coin is calculated from live prices and locked. Stablecoins such as USDT and USDC count as one US dollar each. If the payment is first seen while the invoice is still open, the locked rate applies. ### Underpaid invoices You set an underpayment tolerance in your settings; we recommend at least $1. If a confirmed payment is short by no more than the tolerance, the invoice counts as paid. If the payment is short by more than that, the invoice becomes underpaid. What was sent is held for the customer, who can either send the rest to the same address or get a refund of what they sent to an address they enter. The network fee for a refund is taken from the refund. ### Overpaid invoices If a customer sends more than the invoice asks for, the invoice still counts as paid. What happens to the extra depends on its value: The invoice counts as paid, and the extra is held for the customer. They can withdraw it to their own wallet from the invoice page, minus the network fee for sending it. Until they do, Crypto Merchant holds it for them. It is not added to the business's balance, and it is never kept as a fee. ### Fees 1% of each paid invoice is deducted when the payment is credited to your balance. Expired and cancelled invoices cost nothing. ### Share previews When you share a payment link or your checkout page in WhatsApp, Telegram, Instagram, X and similar apps, the app shows a preview card. It has your store name, your verified domain if you have one, and the coins you accept. For a payment link, it also shows the product and its price. Payment links are not listed in search engines, so a link reaches only the people you share it with. ### Verified domain If you have verified your website's domain, your checkout page, payment links, invoice pages and refund pages show it next to your store name, for example shop.com · verified. It tells customers that the store on the page controls that domain's DNS. See how to verify your domain (https://cryptomerchant.online/docs/security#verified-domain). ### Customers paying from an exchange Exchanges usually take their withdrawal fee from the amount the customer types in, so less arrives than was sent. This is the most common cause of underpaid invoices. The invoice page has a Paying from an exchange? note that asks the customer to make sure the full amount arrives. When Binance's withdrawal fee for that coin and network is available, the note also shows the fee and the total to enter on Binance. Other exchanges charge their own fees, which the customer should check on the withdrawal screen. ### Wrong coin or wrong network Customers sometimes pay in a different coin than the invoice asked for, or on a different network. Crypto Merchant watches each invoice address for every supported coin, on every supported network that uses that address, so these payments are seen. One EVM address works on Ethereum, BNB Smart Chain, Polygon, Base, and Arbitrum One, and we hold its key on all of them. So USDC sent on Base to an invoice that asked for USDC on Ethereum still reaches an address we control. Tron, Bitcoin, Litecoin, Solana, TON, and XRP Ledger each have their own kind of address. On those networks, this covers a different coin on the same network, for example TRX sent to an invoice for USDT on Tron. ### When it is counted automatically The payment counts for the invoice on its own when both of these are true: nothing else has been paid on the invoice yet; the coins cover the invoice amount, within your underpayment tolerance. The invoice then switches to the coin that was actually sent. The invoice page tells the customer which coin they paid in instead of the one asked for. You see the Requested coin on the payment and in the payment email. In the API, `coin` is what was paid and `requested_coin` is what the invoice asked for. The coins are valued like this: stablecoins such as USDT and USDC count as one US dollar each; the same coin on another network, such as ETH on Base for an invoice in ETH on Ethereum, keeps the rate the customer was shown; any other coin is valued at the market price when it arrived. This works for late payments too: when the invoice has already expired but its address is still being watched, which is for at least 24 hours. ### Smaller amounts and stray tokens Anything else never changes the invoice: a partial payment in another coin, a second coin on an invoice that already has a payment, or a stray token. It is credited to your balance like a payment without an invoice, minus the 1% fee, and a support ticket tells you about it, so you can settle it with the customer. A tiny token sent to the address can't take over an invoice. A late payment to a cancelled or refunded invoice is handled the same way: it is credited to your balance, and you get a ticket. ### What can still be lost Coins on a network or in a coin Crypto Merchant doesn't support, and coins sent to any address other than the invoice's, can't be counted and may be lost for good. Customers should still send the coin shown, on the network shown. ### Refunds after a payment You can send money back on a paid payment, for example for a return or a cancelled order. Open the payment in the portal and use Refund this payment. Only Admins can do this, and they first confirm it's them with a fresh code from their email or authenticator app. You can refund any amount up to what you kept from that payment: what was credited to you after the 1% fee, minus earlier refunds and refund links that are still open. The 1% fee is not returned. The amount is set aside from your balance straight away, so it can't be paid out by mistake in the meantime. If the payment has the customer's email, they get an email with a private link. You can also copy the link and send it yourself. The customer opens the link, enters their own address for that coin and network, ticks a confirmation and submits. The refund is sent from your pool wallet, and the network fee is taken from the refund. A link stays open for 14 days. If the customer doesn't claim it in time, or you cancel it, the amount goes back to your balance automatically. Each link can be claimed once. A partial refund keeps the payment paid and shows the refunded amount. Refunding everything you kept marks it refunded. Each claim sends an `invoice.refunded` webhook, and the invoice object shows the total in `refunded_amount`. Because the customer types the address into the refund page, nobody has to swap addresses in a chat, where a typo or an impostor can send the coins to the wrong place. Crypto transfers can't be reversed, so the customer must enter an address they control, on the network shown. Underpaid invoices still have their own refund option for the customer on the invoice page, and customers can still withdraw an overpayment from there, as described above. Shares already set aside for revenue split (https://cryptomerchant.online/docs/payouts#revenue-splits) partners are not taken back by a refund. There is no extra fee when a payment is counted after arriving in another coin or on another network. When you refund a payment, the 1% fee is not returned, and the refund's network fee is taken from the refund. The amount due also includes a gas fee for moving that payment into your pool wallet, never more than $5. On most networks it is a few cents. USDT on Tron costs more, because Tron burns energy for every token transfer. The checkout shows the fee next to the price, and the API returns it as `network_fee_amount` and `network_fee_usd`. It covers that payment's sweep, it is not your revenue, and no payment fee is taken from it. ## API reference https://cryptomerchant.online/docs/api · Last updated: 2026-11-05 A small REST API for invoices, payment links, balances and accepted coins. It uses JSON over HTTPS, and every request is made with your secret key. ### Base URL Production Local development A machine-readable description of this API is at /openapi.json (https://cryptomerchant.online/openapi.json) (OpenAPI 3.1). You can import it into Postman or a client generator. ### Authentication Send your secret key in the `Authorization` header of every request, as a Bearer token. Create keys in the portal under Developers. Keys start with `cm_live_` on mainnet and `cm_test_` on testnet. The full key is shown only once, when you create it. We store only a hash of it, so keep it somewhere safe. Use keys only on your server. Never put them in a web page, a mobile app or a public code repository. If a key may have leaked, revoke it in the portal and create a new one. ### Errors When a request fails, the response has an HTTP error status and a JSON body with a machine-readable `code` and a human-readable `message`: ### HTTP status The request is not valid, for example a missing field or an amount that is too small. The API key is missing, wrong or revoked. Your account can't do this: it isn't live yet, or it is suspended. The object doesn't exist, or it belongs to another business. The invoice can't do this in its current status, for example cancelling one that already has a payment. Something went wrong on our side. Try again a little later. ### Codes you may see The request body is not a JSON object. A field is missing or not valid. The message names the field. The API key is missing, wrong or revoked. This merchant account is suspended. Your account isn't live yet. Finish setup in the portal first. The amount is missing, not a number, or not greater than zero. The amount is worth less than 0.50 US dollars. The coin ID is not a known coin. You don't accept that coin. The invoice can't do this in its current status. There is no object with that ID. Something went wrong on our side. ### The invoice object Invoices have this shape in API responses and in webhooks. Amounts are decimal strings, so no precision is lost. Invoice ID, starting with `inv_`. Always `invoice`. The current status. See the list of statuses below. The price you asked for, in `currency`. The currency of the price, for example `USD`. The price in US dollars. Your description, shown to the customer. Your own order reference. The customer's email, if you gave one. The object you passed when creating the invoice, returned unchanged. The coin the customer chose, or the coin they actually paid in, with its `id`, `symbol` and `network`. `null` until a coin is chosen. The deposit address for this invoice. `null` until a coin is chosen. The exact amount to send, in the chosen coin. The locked price of one unit of the chosen coin, in US dollars. How much has arrived so far, in the chosen coin. The US dollar value of what has arrived. How much more than the invoice asked for was paid, in the chosen coin. The invoice page. Send your customer here to pay. Where the customer can go after paying. When the invoice expires if no payment is seen. When the invoice was paid, or `null`. When the invoice was created. ### Invoice statuses Created. The customer hasn't picked a coin yet. A coin is chosen, the deposit address is assigned and the rate is locked. A payment was seen on-chain and is waiting for confirmations. The confirmed payment is short by more than your tolerance. The customer can pay the rest or ask for a refund. Paid and confirmed. The amount, minus the fee, is in your balance. A partial refund keeps this status. Time ran out before any payment was seen. The invoice was cancelled before any payment was seen. The customer was refunded what they sent on an underpaid invoice, or you refunded everything you kept from a paid one. ### Create an invoice Creates an invoice and returns the invoice object with status `201`. Send your customer to its `checkout_url`. The price, as a number or a decimal string. Must be worth at least 0.50 US dollars. The currency of the price, for example `USD`. Defaults to `USD`. What the customer is paying for, up to 300 characters. Shown on the invoice page. Your own order reference, up to 120 characters, to match the invoice to an order. The customer's email address. Payments are grouped by customer in the portal. The customer's name, up to 120 characters. A full URL where the customer can go after paying. Any JSON object up to 4 KB. Returned unchanged on the invoice and in webhooks. Pre-select a coin by its ID, for example `USDT.TRON`. It must be one of your accepted coins (https://cryptomerchant.online/docs/coins). With a pre-selected `coin`, the deposit address is assigned and the rate locked straight away, so `pay_address` and `pay_amount` are filled in and you can show the payment details in your own interface. ### List invoices Returns your invoices, newest first, one page at a time. Only invoices with this status, for example `paid`. Must be one of the statuses above. How many invoices to return, from 1 to 100. Defaults to 20. An invoice ID. Returns the invoices that come after it, for the next page. The invoices are in `data`. When `has_more` is `true`, ask for the next page with `starting_after` set to the ID of the last invoice you received. ### Retrieve an invoice Returns one invoice by its ID. ### Cancel an invoice Cancels an invoice. This only works while the invoice is unpaid and no payment has been seen for it. ### Balances Returns what your business holds in each coin, the total in US dollars, and your gas balance. The coin ID, for example `USDT.TRON`. The coin symbol, for example `USDT`. The network the coin is on. How much of the coin you hold, as a decimal string. Its value in US dollars at the current price. The value of all your coins in US dollars. Your gas balance in US dollars, used to pay gas fees. ### Accepted coins Returns the coins you accept right now, each with its `id`, `symbol`, `name`, `network` and `decimals`. Use the `id` as `coin` when you create an invoice. For example: ### Create a payment link Creates a payment link and returns it with status `201`, including its `id` and its shareable `url`. The name of what the customer pays for, up to 120 characters. A fixed price. Leave it out to let the customer enter the amount. The currency of the price. Defaults to `USD`. More detail shown to the customer, up to 300 characters. ### List payment links Returns your 100 most recent payment links, newest first, in `data`. Next, set up webhooks (https://cryptomerchant.online/docs/webhooks) so your server hears about payments the moment they happen. Usually `null`. When the customer paid in another coin or on another network and the payment was counted, this is the coin the invoice asked for, with the same fields as `coin`. See wrong coin or wrong network (https://cryptomerchant.online/docs/checkout#wrong-network). How much you have refunded on this payment with refund links (https://cryptomerchant.online/docs/checkout#refunds), in the coin paid. `0` if nothing. ### The payout object Payout webhooks (`payout.sent` and `payout.failed`) carry this object in `data`. Payouts of a partner's share from a revenue split (https://cryptomerchant.online/docs/payouts#revenue-splits) use the same object, with `partner_share` set to `true`. Payout ID. Always `payout`. The coin ID, for example `USDT.TRON`. The amount paid out, in that coin. The gas fee for sending it, in that coin. The wallet address it was sent to. `queued`, `running`, `done` or `failed`. The transaction ID on the blockchain, once it has been sent. `true` if the payout was made automatically, not requested by a person. `true` if this payout is a partner's share from a revenue split, sent to the partner's wallet. When the payout was created. Part of `pay_amount`: the gas fee the customer pays on top of the price, in the coin. `0` when there is none. The same gas fee in US dollars. ## Webhooks https://cryptomerchant.online/docs/webhooks · Last updated: 2026-11-05 Webhooks tell your server when something happens, such as an invoice being paid, so you don't have to keep asking the API. ### Add an endpoint In the portal, open Developers and add the HTTPS address on your server that should receive events. Each endpoint gets its own signing secret, starting with `whsec_`. An endpoint can receive every event, including ones added later, or only the events you pick. Use Send test event to check that your endpoint works. ### Events An invoice was created. A payment was seen on-chain and is waiting for confirmations. The invoice is paid and confirmed. Fulfil orders on this event. The confirmed payment is short by more than your tolerance. Time ran out before any payment was seen. The invoice was cancelled. Coins went back to the customer: a refund of an underpaid invoice, or a refund link you created was claimed. Sent for each claim, so a partial refund sends one too. A deposit to one of your customers' sticky wallets was seen on-chain and is waiting for confirmations. A sticky wallet deposit confirmed and was added to your balance, minus the fee: credit that customer now. A sticky wallet deposit that was seen never confirmed (failed or removed from the chain). A payout was sent to your wallet, or a partner's share was sent to the partner's wallet. A payout could not be sent. A swap into your holding coin finished. ### Payload Each event is sent as an HTTP `POST` with a JSON body: `id` is unique to the event, `type` is one of the events above, and `created` is when it happened. For invoice events, `data` is the invoice object (https://cryptomerchant.online/docs/api#invoice-object). For payout events, it is the payout object (https://cryptomerchant.online/docs/api#payout-object). For swap events, `data` describes the swap. ### Headers Always `application/json`. The timestamp and signature: `t=` the Unix time in seconds, then `v1=` the hex HMAC-SHA256 signature. The event ID, the same as `id` in the body. Always `CryptoMerchant-Webhooks/1`. ### Verify the signature Always check the signature before trusting an event. Anyone can send a request to your endpoint, but only Crypto Merchant knows your secret. Read the raw request body exactly as it arrived, before parsing the JSON. Split the `CM-Signature` header on commas and read the `t` and `v1` values. Compute the HMAC-SHA256 of the timestamp, a full stop and the raw body, using your endpoint secret as the key, as lowercase hex. Compare it with `v1` using a constant-time comparison. Reject events whose timestamp is more than five minutes old, so old requests can't be replayed. Verify a webhook in Node.js ### Responding and retries Reply with any 2xx status within 10 seconds to confirm you received the event. Any other reply, or no reply, counts as a failure, and we try again after: That is up to eight retries over about two days. Each attempt is signed again with a fresh timestamp. ### Good practice Save each event before you reply, then do the work from what you saved, for example in a background job. If saving fails, reply with an error and we send the event again. Events can arrive more than once, and not always in order. Use the event `id` to skip events you have already handled. Before shipping a valuable order, you can fetch the invoice from the API to double-check its status. Keep your `whsec_` secret on your server, like an API key. ## Sticky wallets (chosen at sign-up, or switched on by support) https://cryptomerchant.online/docs/sticky-wallets · Last updated: 2026-11-06 Give each of your customers their own deposit addresses that never change, one per network. Every deposit is added to your Crypto Merchant balance, and your server is told which customer sent it, so you can top up the right account. ### How to get sticky wallets Choose customer wallets when you sign up, or ask support to switch sticky wallets on for an account you already have. Until they are on, these endpoints answer `403 sticky_wallets_unavailable`. They use the same base URL, secret keys and error format as the rest of the API (https://cryptomerchant.online/docs/api). ### Before you start Finish setup and choose your coins. Each customer gets an address on the networks of the coins you accept (portal, Settings). Create a secret key. In the portal open Developers and create an API key. It is shown once: keep it on your server, for example as `CM_SECRET_KEY`, never in a web page or an app. Add a webhook endpoint. Also under Developers, add your URL with the `deposit.pending`, `deposit.confirmed` and `deposit.dropped` events (or all events). Keep its signing secret, `whsec_…`, to check each request. ### How it works A customer opens the deposit page on your site. Your server calls `POST /sticky-wallets` with your own id for that customer. The first call makes the addresses; every later call returns the same ones. You show the address, with a QR code, for the coin the customer picks. When the coins arrive you get `deposit.pending`, then `deposit.confirmed` once the network has confirmed them. On `deposit.confirmed` you credit the customer named in `sticky_wallet.reference`. ### Get a customer's wallet Makes the customer's wallet on the first call and returns the same one on every later call: `201` when it was just made, `200` after that. It is safe to call every time the deposit page opens. Your id for this customer: 1 to 120 letters, digits or `. _ : @ + -`, starting with a letter or digit. One wallet per reference, for good. A name you'll see in the portal. Sending it again replaces it. An object of your own, up to 4 KB. Sending it again replaces it. ### The sticky wallet object The wallet's id, starting with `sw_`. Your id for the customer. One entry per network: `network` (`tron`, `evm`, `sol`, `btc` or `ltc`), the `address` and the `coins` it takes. The `evm` address is the same on Ethereum, BNB Smart Chain, Polygon, Base and Arbitrum. Networks whose address is still being prepared, which is rare. Call again in a few minutes and they appear in `addresses`. When the wallet was made. ### Tell customers what to send Show each address with the coins listed for it. Coins on another network, or tokens that aren't listed, are not credited automatically: contact support if a customer sends one. ### Find wallets Look a wallet up by your reference, fetch one by its id, or page through all of them, newest first: `limit` from 1 to 100, `starting_after` the last wallet id you have, and `has_more` tells you whether there are more. ### List deposits Every deposit to your customers' wallets, newest first. Filter by `sticky_wallet` (a wallet id) and `status` (`pending`, `confirmed` or `dropped`), and page with `limit` and `starting_after` (a deposit id). Use it to catch up when your server missed webhooks. ### The deposit object The deposit's id. Use it to credit each deposit only once. `pending`: seen on the network, waiting for confirmations. `confirmed`: final, and added to your balance. `dropped`: it never confirmed. The wallet it was sent to: `id` and your `reference`. The coin and its network. What the customer sent, in the coin. The fee, in the coin. What was added to your balance (amount minus fee), once confirmed. Its value in USD when it arrived. The transaction hash; `explorer_url` opens it on a block explorer. ### Webhooks Deposit events carry the deposit object in `data`. Check the signature, as shown under Webhooks (https://cryptomerchant.online/docs/webhooks), before you trust one. credit the customer ### Errors `invalid_request`: a field is missing or wrong; the message says which. `unauthorized`: the secret key is missing or not valid. `sticky_wallets_unavailable`: sticky wallets aren't switched on for this business, or its setup isn't finished. `not_found`: no sticky wallet with that id. ### Good practice Credit a customer only on `deposit.confirmed`, and only once per deposit `id`: a webhook can arrive more than once. Decide who pays the fee: credit `net_amount` to pass it on, or `amount` to cover it yourself. Your reference is the key: calling `POST /sticky-wallets` again is always safe, so you don't have to store the addresses. Keep the secret key on your server. If it leaks, revoke it under Developers and create a new one. If your endpoint was down, list the `confirmed` deposits and credit the ones you haven't handled yet. Building a customer balance? See how to add crypto top-ups to customer accounts (https://cryptomerchant.online/articles/crypto-customer-account-top-ups). ## Coins & networks https://cryptomerchant.online/docs/coins · Last updated: 2026-11-09 These are the networks and coins live on Crypto Merchant right now. This page reads the list from the system, so it is always current. 11 coins on 11 networks 23 coin-and-network combinations in all: the same coin on two networks counts twice. ### Coin IDs In the API, each coin on a network has an ID made of its symbol and its network, for example `USDT.TRON`. Pass it as `coin` when you create an invoice, and list the coins you accept with `GET /coins`. ### Confirmations A payment counts only once the network has added enough blocks after it. The number each network needs is shown above. Until then, the invoice shows as confirming. How many minutes that takes on each network, and when to ship an order: confirmation times by network (https://cryptomerchant.online/articles/crypto-payment-confirmation-times). ### Pay on the right network The same coin on two networks is not interchangeable: USDT on Tron and USDT on Ethereum are different tokens. Customers should always send the coin shown on the invoice, on the network shown. If they don't, the payment is often still counted. Every supported coin that reaches the invoice's address, on any supported network that uses that address, is seen. It is either counted for the invoice or credited to your balance. One EVM address is shared by the EVM networks, so USDT sent on BNB Smart Chain instead of Ethereum is still seen. See wrong coin or wrong network (https://cryptomerchant.online/docs/checkout#wrong-network) for the rules. What can still be lost: coins on a network or in a coin Crypto Merchant doesn't support, and coins sent to any address other than the invoice's. ## Wallets, sweeps & gas https://cryptomerchant.online/docs/wallets · Last updated: 2026-11-03 How your coins are held, how payments reach your pool wallet, and what pays the network fees. ### Your pool wallet Each business gets a dedicated pool wallet, held for it by Crypto Merchant. Confirmed payments collect there until you pay them out. A ledger records exactly which coins belong to your business. ### Deposit addresses Every invoice gets a deposit address to receive its payment, so each payment is matched to its invoice without memos or tags. Your first 10 invoices each get a brand-new address. After that, a free address can be reused, but only after a cool-down of 6 hours. If no address is free, a new one is created, so busy stores get more addresses automatically. Addresses with a reported or unconfirmed payment are never handed out again. ### Sweeps A sweep moves a confirmed payment from its deposit address into your pool wallet. You choose how this happens when you set up your account: Automatic: each payment is swept as soon as it is confirmed. Manual: payments stay on their deposit addresses until you start a sweep in the portal. Either way, a paid invoice is credited to your balance as soon as it is confirmed. Each sweep carries a gas fee for the transfer. ### Gas and your gas balance Every transfer on a blockchain costs a network fee, often called gas, paid in that network's own coin. Moving a token needs some of that coin too: for example, moving USDT on Tron needs TRX. The gas coin of each live network: Crypto Merchant pays that gas for you and charges a gas fee for each transfer. If you add a gas balance in the portal, kept in US dollars, the gas fee is paid from it; otherwise it comes out of the payment being moved. Without a gas balance, or when it runs out, the gas fee is taken from the payment being moved. The gas balance only pays gas fees and can't be withdrawn as cash. The API shows it as `gas_balance_usd`. Your pool is not a hot wallet shared with other businesses: it comes from your business's own account under our recovery phrase. The Wallets page lists your pool addresses, with block-explorer links for each network and the live on-chain balance. One address covers every network of the same type. The same addresses appear, unlabelled, in our public proof of reserves (https://cryptomerchant.online/reserves). Your customers pay that gas fee for their own payments: each invoice adds it to the amount due, so the sweep that follows is already paid for. You pay a gas fee for a sweep yourself only when it costs more than the customer paid, or more than $5. ## Payouts & swaps https://cryptomerchant.online/docs/payouts · Last updated: 2026-11-09 Withdraw your balance whenever you want, and share revenue with partners automatically. ### Two ways to be paid ### 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. Swaps run automatically every 24 hours, or when you request a payout. ### Payout addresses Save a payout address for each coin you want to withdraw. Check every character, and the network: crypto transfers can't be reversed, and coins sent to a wrong address or on the wrong network can't be recovered. Only Admins can add or change payout addresses. ### Making a payout Pick the coin and the amount, and confirm. The payout is sent on-chain to your saved address. Only Admins can make payouts. With webhooks, you get `payout.sent` once it has been sent, or `payout.failed` if it couldn't be. Automatic payouts, at a balance threshold or on a schedule, are set in the portal. A coin worth less than $5 waits until it reaches that. For how this fits your code, see crypto settlement for developers (https://cryptomerchant.online/articles/crypto-settlement-for-developers). ### Swaps Swap rates are based on live market prices and include our 1% service margin. Each swap also carries a gas fee for the transfer. When a swap finishes, you get a `swap.completed` webhook. Prices move all the time. You get the rate at the moment the swap runs, not the rate when the payment arrived. The service margin is currently 1%. ### Revenue splits Revenue splits send a share of every payment to partners, such as a reseller, an affiliate or a co-founder, straight to their own wallets. Set them up under Settings → Revenue splits. Only Admins can, after confirming it's them with a fresh code from their email or authenticator app. Add up to 10 partners. Together they can get at most 90%. Each partner has a name, a percentage, and their own wallet address for each type of network you want split: EVM, Tron, Bitcoin, Litecoin, Solana, TON (with a memo if needed) and XRP Ledger (with a tag if needed). Crypto Merchant addresses are refused. On every paid payment, each partner's percentage of what you get after the 1% fee is set aside for them. Coins on a network the partner gave no address for are not split and stay with you. A split fee of 0.5% is taken from each share. Shares are paid out to each partner's wallet in batches, one per coin: once they add up to $10, or once the oldest share has waited a week. Each partner payout pays its own gas fee, so batching keeps small shares from being eaten by fees. Stopping a partner stops new splits. Shares already set aside are still paid. A refund doesn't take back shares already set aside, so agree with your partners what happens on refunds. Partner payouts appear under Payouts as Partner share. In the API and webhooks they use the payout object (https://cryptomerchant.online/docs/api#payout-object) with `partner_share` set to `true`. Your agreements with partners, and any taxes on their shares, are your responsibility. Crypto Merchant only carries out the split you set. ## Team roles https://cryptomerchant.online/docs/team · Last updated: 2026-10-30 Invite your team and give each person only the access they need. ### What each role can do Everything, including payouts and managing the team. Everything except moving money out and managing the team. View only. Permission See payments, customers, balances and statements Create invoices and payment links Manage API keys and webhooks Change store settings Make payouts, swaps and sweeps Add or change payout addresses Invite and remove team members ### Inviting people Admins invite people by email and choose their role. The invited person joins with their own account and password. ### More than one business One person can belong to several businesses, with a different role in each, and switch between them in the portal. ### Sales statements Daily, weekly, monthly, quarterly and yearly sales statements are in the portal under Reports, and can be sent to you by email. ### Tax CSV Tax CSV under Reports downloads every payment, payout, refund, partner share and swap in the period you pick, from a day to a year, in UTC. Payments are listed as income, valued in US dollars at the rate when they were paid. Fees and transaction IDs are included. The file uses the Koinly universal CSV layout: Date, Sent Amount, Sent Currency, Received Amount, Received Currency, Fee Amount, Fee Currency, Net Worth Amount, Net Worth Currency, Label, Description and TxHash. Koinly can import it, and the plain columns are easy for an accountant or another crypto tax tool to read. The regular statement CSV is still there. The export is a record of what happened on Crypto Merchant. It is not tax advice: how these transactions are taxed depends on where you are. ## Security & recovery https://cryptomerchant.online/docs/security · Last updated: 2026-11-03 How coins on Crypto Merchant are protected, and how they can be recovered if something goes wrong. ### Custody Crypto Merchant is a custodial service. We hold the keys to your pool wallet and deposit addresses and move coins on your instructions. A ledger records which coins belong to which business. ### One master recovery phrase Every wallet on Crypto Merchant is derived from one master recovery phrase, using the open BIP-39 and BIP-44 standards. Each business has its own account number under that phrase, so its addresses and its books are separate from every other business. The keys are not separate: whoever holds the phrase can reach every wallet, which is why it is kept as described below. The operator keeps a copy of the phrase on paper, offline. Coins are sent by a separate signing computer run by the operator, which stores the phrase only in encrypted form. The website and its servers never hold the phrase or any private key. ### If servers are lost Because every address follows a standard derivation path, all addresses and their keys can be rebuilt from the recovery phrase on new hardware, even if every server is lost. The phrase restores keys, not records. Balances, invoices and customer references live in the platform's database, which is backed up every day. Backups are tested by restoring them into a separate database and comparing every table and ledger balance with the live data. ### Protect your account Use a strong password that you don't use anywhere else. Passwords are stored only as a secure hash. Turn on two-factor sign-in with an authenticator app. Give each team member the lowest role they need. See Team roles (https://cryptomerchant.online/docs/team). Keep API keys and webhook secrets on your server, and revoke any key you think has leaked. Double-check payout addresses. Crypto transfers can't be reversed. ### Report a problem If you notice anything wrong with your account or a payment, write to support@cryptomerchant.online. We will never ask for your password or your two-factor codes. Each business has its own pool wallet, not a share of one hot wallet used by everyone. Your pool addresses and their live on-chain balances are on the Wallets page, with block-explorer links for each network. ### Fake and flash tokens Anyone can create a token called “USDT” or “USDC” and send it to any address. Scammers use these look-alike tokens, and “flash” transfers that appear in a wallet but never settle, to make it look as if a payment arrived. None of them can mark a payment as paid on Crypto Merchant. These checks run on every invoice, payment link and store page, for every business. There is nothing to turn on. Tokens are matched by their official contract. A token payment counts only when it comes from the official contract listed below (on Solana, the official mint). We never go by a token's name, symbol or logo, so a “USDT” from any other contract is ignored. On Tron, only the official TRC-20 contract counts, and TRC-10 tokens, which anyone can name USDT, are ignored. Failed transactions never count. A transfer that failed or was reverted on the blockchain is ignored, even though it shows up in a block explorer. Only confirmed payments count. A payment is credited only after its network confirms it. The number of confirmations for each network is on Coins & networks (https://cryptomerchant.online/docs/coins). A payment that is seen but never confirms, for example a Bitcoin or Litecoin transaction that was replaced (replace-by-fee) or double-spent, is marked as dropped and never credited. Its address is then retired and never given to another customer. XRP partial payments. On the XRP Ledger, a payment can name a large amount but deliver only a small part of it. We credit only what was actually delivered (`delivered_amount`), never the amount the payment names. Issued tokens that call themselves XRP are rejected: only native XRP counts. Gram on TON. Only Gram (GRAM) that actually stays in the address counts. Payments that bounced back to the sender are ignored, and so is a message that only states an amount in its text, such as a fake token notice. ### Official token contracts These are the only token contracts Crypto Merchant accepts. They are the contracts published by Tether for USDT and by Circle for USDC. USDC is Circle's native USDC on every network, not a bridged version such as USDC.e. This list comes from the same registry our payment watchers use, so it always matches what they check. If a customer says they paid but the payment isn't marked as paid on your Payments page, look the transaction up in a block explorer. Compare the token's contract with this list, and check that the transaction succeeded and is confirmed. Don't hand over goods for a payment that isn't marked as paid. ### Proof of reserves Our proof of reserves (https://cryptomerchant.online/reserves) page is public. Every hour, for every coin, it puts what we owe next to what we hold. What we owe comes from the ledger: business balances, partner shares set aside, and refunds and claims waiting for customers. What we hold is read from the blockchains, at our pool and deposit addresses. The page shows the coverage for each coin. Every address holding coins is listed with a block-explorer link, without saying whose it is, and you can download all of them as a CSV. Your own pool addresses are on your Wallets page, so you can find them in the public list. Its limits: it is a snapshot, so coins moving between our addresses during the check can be counted late. It shows that the coins exist, not how the platform is run, and it is not an audit. ### Verified domain A verified domain shows customers that your store controls the website domain it names. Once it is verified, your checkout page, payment links, invoice pages and refund pages show it next to your store name, for example shop.com · verified, and share previews include it. Add your website under Business details in Settings. Open Settings → Verified domain and copy the TXT record. Its value is `cryptomerchant-verification=` followed by your own token. Add the record in your DNS settings, on your website's domain, on the bare domain (without www.), or on `_cryptomerchant.` followed by your domain. Press Check. DNS changes can take from a few minutes to an hour to show up. We check the record again every day. The badge is removed if the record is gone or if you change your website in Settings. We only look up DNS records: we never fetch your website. It proves control of the domain's DNS, nothing more. It is not an endorsement by Crypto Merchant and not an identity check. Refund customers with a refund link (https://cryptomerchant.online/docs/checkout#refunds), so they enter their own address, instead of copying an address from a chat. ## Articles - How Long Does a Crypto Payment Take to Confirm? Times by Network for Merchants: https://cryptomerchant.online/articles/crypto-payment-confirmation-times (updated 2026-11-09). How long a crypto payment takes to confirm on Bitcoin, Ethereum, Tron, Solana, BNB Chain, Polygon, Base, Arbitrum, Litecoin, TON and XRP, and when to ship. - What Does a $20 USDT Payment on Tron Really Cost? Fees for the Payment and One Withdrawal: https://cryptomerchant.online/articles/usdt-tron-payment-total-fees (updated 2026-11-08). The full cost of a $20 USDT-TRC20 payment and one withdrawal: gateway fee, Tron network fee and withdrawal fee, worked out for nine gateways, with ways to pay less. - Crypto Settlement for Developers: How Gateways Pay You, and What to Check in the API: https://cryptomerchant.online/articles/crypto-settlement-for-developers (updated 2026-11-07). How crypto settlement works for developers: wallet, custodial balance or conversion, payout rules, webhooks and costs, across six gateways, with sample code. - How to Add Crypto Top-Ups to Customer Accounts: Per-Customer Addresses, Webhooks and Crediting: https://cryptomerchant.online/articles/crypto-customer-account-top-ups (updated 2026-11-06). Let customers top up an account with crypto: permanent addresses per customer, when to credit, how to avoid double credits, fees and what you must build. - How to Accept Crypto on WooCommerce Without a Plugin: https://cryptomerchant.online/articles/accept-crypto-woocommerce-without-plugin (updated 2026-11-06). Accept crypto on WooCommerce with a renamed offline method and a Crypto Merchant invoice per order: setup, order statuses, stock, limits and costs. - How to Accept Crypto on Shopify Without a Plugin: https://cryptomerchant.online/articles/accept-crypto-shopify-without-plugin (updated 2026-11-06). Accept crypto on Shopify with a manual payment method and a Crypto Merchant invoice per order: setup, each order step by step, limits, costs and what can be automated. - How to Deliver Digital Products After a Crypto Payment: Licence Keys, Downloads and Refunds: https://cryptomerchant.online/articles/deliver-digital-products-crypto-payment (updated 2026-11-09). When to release a download or licence key after a crypto payment: which webhook to trust, underpaid and late payments, secure links, refunds and revoking access. - Crypto Payment Webhooks for SaaS: Retries, Idempotency and Reconciliation: https://cryptomerchant.online/articles/crypto-payment-webhooks-retries-reconciliation (updated 2026-11-05). How to handle crypto payment webhooks in production: retry schedule, duplicate and out-of-order events, safe account crediting, and a daily reconciliation job. - Accept USDT TRC-20 Payments via the Crypto Merchant REST API: https://cryptomerchant.online/articles/accept-usdt-trc20-api (updated 2026-11-09). Tutorial: create a USDT.TRON invoice with the Crypto Merchant REST API, show the TRC-20 address, verify the invoice.paid webhook, and pay out. - Crypto Sent on the Wrong Network: Can You Get It Back?: https://cryptomerchant.online/articles/crypto-sent-to-wrong-network (updated 2026-11-03). What happens when crypto is sent on the wrong network or as the wrong coin, when it can be recovered and by whom, and what customers and merchants should do. - Proof of Reserves for Crypto Payment Gateways, Explained: https://cryptomerchant.online/articles/proof-of-reserves-crypto-payment-gateway (updated 2026-11-09). What proof of reserves shows for a crypto payment gateway, what it can't prove, how to check one yourself, and how Crypto Merchant's hourly reserves page works. - How to Refund a Crypto Payment Safely: https://cryptomerchant.online/articles/how-to-refund-crypto-payment (updated 2026-11-03). How to refund a crypto payment without sending coins to the wrong place: why addresses in chat are risky, refund links, network fees and partial refunds. - Revenue Splits for Crypto Payments: Resellers, Affiliates and Partners: https://cryptomerchant.online/articles/crypto-revenue-split-payments (updated 2026-11-03). How to split crypto payments with partners automatically: reseller and affiliate shares, why marketplaces differ, batching to save network fees, and refunds. - How to Accept Crypto Payments: A Step-by-Step Guide: https://cryptomerchant.online/articles/how-to-accept-crypto-payments (updated 2026-11-09). How to accept crypto payments in your business: the four main options, which coins to take, locked rates, confirmations, payouts and mistakes to avoid. - Crypto Payment Links: Accept Crypto Without a Website: https://cryptomerchant.online/articles/crypto-payment-links (updated 2026-11-09). Create a crypto payment link for Bitcoin, USDT and more, share it in a chat, bio or email, and get paid without a website. How links work and when to use them. - Crypto Network Fees Explained: Gas, TRX and Who Pays: https://cryptomerchant.online/articles/crypto-network-fees-explained (updated 2026-11-08). Crypto network fees for merchants: what gas is on each chain, why you need TRX to send USDT, who pays which fee, and how to keep your transaction costs low. - Custodial vs Non-Custodial Crypto Payments: Which to Choose: https://cryptomerchant.online/articles/custodial-vs-non-custodial-crypto-payments (updated 2026-11-09). Custodial vs non-custodial crypto payments explained: who holds the keys, how sweeps, gas, payouts and recovery differ, the risks of each, and when each fits. - Crypto Payment Gateway Without KYC: What It Really Means: https://cryptomerchant.online/articles/crypto-payments-without-id-checks (updated 2026-11-09). We don't ask for identity documents when you create an account. What that covers, what the Terms still prohibit, and how other gateways handle KYC in 2026. - How to Accept USDT Payments: TRC20 vs ERC20 vs BEP20: https://cryptomerchant.online/articles/accept-usdt-payments (updated 2026-11-09). How to accept USDT payments on Tron (TRC20), Ethereum (ERC20), BNB Smart Chain (BEP20) and more: fees, confirmations, networks and setup steps. - Stablecoin Payments for Business: Accept USDT and USDC: https://cryptomerchant.online/articles/stablecoin-payments-for-business (updated 2026-11-09). Stablecoin payments for business: why accept USDT and USDC, how they compare, which networks work, and how to hold your balance in one stablecoin. - Underpaid or Overpaid Crypto Payments: What Happens Next: https://cryptomerchant.online/articles/underpaid-overpaid-crypto-payments (updated 2026-10-31). What happens when a customer sends the wrong amount of crypto: underpayment tolerance, top-ups, refunds, overpayment claims and the locked exchange rate. - Crypto Payment API: Invoices, Webhooks and HMAC Signatures: https://cryptomerchant.online/articles/crypto-payment-api (updated 2026-11-07). Integrate a crypto payment API in Node.js: Bearer keys, invoices, checkout_url redirects, and HMAC-SHA256 webhook signature checks with retries and testing. - Best crypto payment gateways in 2026, by use case: https://cryptomerchant.online/articles/crypto-payment-gateway-comparison (updated 2026-11-09). The best crypto payment gateways in 2026 by use case: no documents, plugins, bank payouts, self-hosting, USDT on Tron, lowest fees and Coinbase Commerce moves. ## News - Stablecoin Payments Keep Growing While Supply Stands Still: What It Means for Merchants: https://cryptomerchant.online/news/stablecoin-payments-grow-while-supply-stalls (2026-11-09). Stablecoin payments rose 45% to $482 billion in the first nine months of 2026 while supply barely moved, Allium data shows. What it means for merchants. - Mercado Bitcoin Freezes Withdrawals After a Hack: What Merchants Who Cash Out Through One Exchange Should Do: https://cryptomerchant.online/news/mercado-bitcoin-hack-withdrawals-frozen (2026-11-08). Brazil's Mercado Bitcoin paused crypto deposits and withdrawals on 2 November 2026 after a hack estimated at over $40M. What happened, and what merchants should change. - Critical, Unpatched Flaw in a WordPress Crypto Payment Plugin Can Expose Wallet Keys: https://cryptomerchant.online/news/cryptopayment-gateway-wordpress-plugin-flaw (2026-11-06). CVE-2026-81648 in the CryptoPayment Gateway WordPress plugin lets anyone read wallet credentials without logging in, and no fix is known. What to do. - US Midterms Shift Congress, but the Stablecoin Date for Merchants Stays 18 January 2027: https://cryptomerchant.online/news/us-midterms-genius-act-stablecoin-merchants (2026-11-06). Democrats won both chambers on 3 November, but the GENIUS Act and the OCC's rule still take effect on 18 January 2027. What that means for merchants taking stablecoins. - Binance hack halted withdrawals; they are reopening in phases: https://cryptomerchant.online/news/binance-hack-withdrawals-paused (2026-11-05). Binance lost about $6.3bn on 29 October, halted withdrawals until 1 November and is reopening coin by coin. What it means for merchants who accept crypto. ## Other pages - Pricing, every cost and a fee calculator: https://cryptomerchant.online/pricing - Crypto network fees today, updated hourly: https://cryptomerchant.online/network-fees - Crypto network status today, updated hourly: https://cryptomerchant.online/network-status - Gateway alternatives compared: https://cryptomerchant.online/alternatives - Coinbase Commerce alternative: https://cryptomerchant.online/alternatives/coinbase-commerce - NOWPayments alternative: https://cryptomerchant.online/alternatives/nowpayments - CoinGate alternative: https://cryptomerchant.online/alternatives/coingate - BitPay alternative: https://cryptomerchant.online/alternatives/bitpay - Cryptomus alternative: https://cryptomerchant.online/alternatives/cryptomus - Plisio alternative: https://cryptomerchant.online/alternatives/plisio - CoinPayments alternative: https://cryptomerchant.online/alternatives/coinpayments - OxaPay alternative: https://cryptomerchant.online/alternatives/oxapay - Binance Pay alternative: https://cryptomerchant.online/alternatives/binance-pay - BTCPay Server alternative: https://cryptomerchant.online/alternatives/btcpay-server - Heleket alternative: https://cryptomerchant.online/alternatives/heleket - Coinremitter alternative: https://cryptomerchant.online/alternatives/coinremitter - Use cases, which way of getting paid fits which business: https://cryptomerchant.online/use-cases - Use case, ecommerce: https://cryptomerchant.online/use-cases/ecommerce - Use case, saas: https://cryptomerchant.online/use-cases/saas - Use case, freelancers: https://cryptomerchant.online/use-cases/freelancers - Use case, digital goods: https://cryptomerchant.online/use-cases/digital-goods - Use case, donations: https://cryptomerchant.online/use-cases/donations - Who can sign up, and what we ask for: https://cryptomerchant.online/eligibility - About Crypto Merchant: https://cryptomerchant.online/about - Glossary: https://cryptomerchant.online/glossary - Contact: https://cryptomerchant.online/contact - Terms of Service: https://cryptomerchant.online/terms - Privacy Policy: https://cryptomerchant.online/privacy - Short version of this file: https://cryptomerchant.online/llms.txt