What is a crypto payment gateway?
A crypto payment gateway lets a business accept crypto, track every payment and withdraw funds. How it works step by step, and what to check before choosing.

A crypto payment gateway is the service that sits between your customer's wallet and your order system: it creates a payment request, watches the blockchain, tells your shop when the money has arrived and holds the funds until you withdraw them. This guide explains how that works in practice and what to check before you pick one.
What a crypto payment gateway does
Accepting crypto without a gateway means giving each customer a wallet address, watching the blockchain yourself, matching incoming transfers to orders and dealing with every edge case by hand. A gateway takes over four jobs:
- Creates the payment. Your system asks for a payment of a given amount; the gateway returns a payment page or an address for that order only.
- Watches the network. It sees the transfer arrive, counts confirmations and decides when the payment is final.
- Reports back. It tells your shop, usually by webhook, that order 1024 is paid, so you can ship or unlock access.
- Holds and moves the funds. Received money lands on a merchant balance, and you withdraw it to your own wallet.
A gateway is not a wallet you hold keys for, and it is not an exchange. It is payment infrastructure: the part of a card checkout that a bank and a processor usually hide from you, rebuilt for blockchains.
How a payment moves through a gateway
Every gateway works a little differently, but the path of one payment looks like this:
- Your server creates a payment: an order ID and an amount, usually in dollars.
- The customer opens the payment page and picks an asset and a network, for example USDT on TRON. A merchant can also preselect the method.
- The gateway fixes the exchange rate for a limited time, so the amount the customer must send does not move while they pay. At Qvard the rate is locked for one hour.
- The customer sends the exact amount from their own wallet to the address shown for this payment.
- The gateway watches the network, waits for confirmations and marks the payment as paid.
- It notifies your server. Your code marks the order as paid and releases the goods.
- The money appears on your merchant balance. You withdraw it to your wallet manually or by a rule you set.
Real payments do not always go perfectly: customers send too little, too much or after the rate has expired. A good gateway has a defined status for each case instead of leaving you to reconcile it by hand. At Qvard, the payment statuses are wait, partial, completed and rejected.
Gateway, wallet, exchange and processor: what is the difference
These terms are often mixed up:
- Wallet. Stores keys and lets you send and receive. It does not match payments to orders or notify your shop.
- Exchange. Trades one asset for another. Some exchanges offer merchant tools, but their main job is trading.
- Payment gateway. Creates and tracks payments for your orders and reports their status. This is what the guide is about.
- Payment processor or acquirer. In card payments, the company that moves money between banks. In crypto the word "acquiring" is used loosely for the whole service; see crypto acquiring vs crypto payment gateway for how the two differ.
Custodial or non-custodial
The biggest design choice behind any gateway is who holds the funds between the payment and your withdrawal.
In a custodial gateway, incoming payments go to addresses the provider controls and are credited to your merchant balance. You then withdraw them. This makes reconciliation simple and lets the gateway offer features such as automatic withdrawals, but you depend on the provider until you withdraw, so its withdrawal terms matter.
In a non-custodial model, payments go straight to your own wallet. You keep control of the keys, and the provider only tracks the payment. This reduces counterparty risk and shifts key management to you.
Qvard is custodial: payments are credited to a merchant balance, and you withdraw to your wallet automatically by rule or manually. Withdrawal to a wallet costs only the network fee, and there is no withdrawal to a bank account.
Stablecoins and networks: why the network matters
The same asset can live on several blockchains. USDT, for instance, exists on TRON (TRC-20), Ethereum (ERC-20) and BNB Smart Chain (BEP-20). A transfer is only valid on the network the payment page asked for, and fees and speed differ between networks.
This is why a gateway shows the asset and the network together, and why the customer's choice has to be explicit. For a merchant, the practical consequences are:
- decide which networks you want to accept and check that the gateway supports them;
- expect network fees to depend on the chain and its congestion, not on the gateway;
- prefer stablecoins for pricing in dollars, because a payment in a volatile asset can be worth noticeably less by the time you withdraw.
Qvard currently accepts USDT and USDC on the major networks, plus native BTC and LTC; TON is on the way. The full list is on the supported coins and networks page.
What to check before you choose a gateway
A short list that separates a usable gateway from a risky one:
- Networks and assets. Does it support the ones your customers actually use?
- Fees. What does the gateway charge, and what is the separate network fee? Who pays each?
- Funds and withdrawals. Who holds the money, how do withdrawals work, and are there limits or fiat options you may or may not need?
- API quality. Can you create a payment safely more than once with the same order ID? Are errors clear? Does the webhook retry if your server was down?
- Odd payments. How are underpayment, overpayment and expired payments handled?
- Testing. Can you try the flow without moving real money?
- Support and documentation. Who answers when a payment is stuck?
How to choose a crypto payment provider goes through this list in more depth.
What a minimal integration looks like
Creating a payment is one request. With Qvard you send your own order ID and the amount in US dollars, and you get back a payment ID and a link to the hosted payment page. Redirect the customer there; everything about choosing the asset and sending the transfer happens on that page.
The id you send is your order number: sending the same id again for the same payment method returns the existing payment instead of creating a duplicate, which makes retries safe. After the customer pays, Qvard sends a webhook to your server with that same id and the payment status. The full flow, with code for your backend, is in how to accept crypto payments on a website; the reference is on the developers page.
curl -X POST https://api.qvard.com/api/v1/payment \
-H "x-api-key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "id": "order_1024", "price": 149.99 }'
# 201 Created
{ "id": "8f3k2a1c", "redirectUrl": "https://my.qvard.com/pay/8f3k2a1c" }Common mistakes
- Trusting the redirect. A customer returning to your "thank you" page does not prove that they paid. Mark an order as paid only when the gateway reports a final status.
- Ignoring partial payments. If the customer sent less than the amount, the order is not paid. Decide in advance whether you ask for the difference or refund.
- Skipping the webhook retry test. If your server returns an error during a webhook, the notification must be retried, and your handler must cope with seeing the same event twice.
- Pricing in a volatile asset. Quote in dollars and let the customer pay in a stablecoin if you cannot carry the price risk.
- Not testing the withdrawal path. Withdraw a small amount before you rely on the gateway for real revenue.
Where Qvard fits
Qvard is a custodial crypto payment gateway for businesses. Today you create a payment through the API, send the customer to the hosted payment page, receive the final status by webhook, and withdraw from your merchant balance to a wallet. The other ways to take a payment, such as payment links, an embedded window, an SDK and a point-of-sale terminal, are in development. You can see the real payment page with a demo invoice before you create an account, and the pricing page explains how fees work.
FAQ
Is a crypto payment gateway the same as a crypto wallet?
No. A wallet stores keys and sends transfers. A gateway creates a payment for a specific order, tracks it on the blockchain, reports its status to your shop and holds the money on a merchant balance until you withdraw it.
Can a crypto payment be reversed?
No. A confirmed blockchain transfer is final. If you need to refund a customer, you send a new transfer yourself, so decide your refund policy before you start accepting payments.
How long does it take for a payment to be confirmed?
It depends on the network and on how many confirmations the gateway waits for. Some networks confirm in seconds, while Bitcoin produces a block about every ten minutes. The payment page shows the status while the customer waits.
Do I need to build anything on my side?
You need to create the payment from your backend and handle the webhook that reports its status. Everything else, from the payment page to the blockchain monitoring, is done by the gateway.


