How to Accept USDT Payments on Your Website

Published Sep 2, 2026 · 5 min read

Why USDT for merchants

USDT is the most-traded stablecoin in the world, and for many international customers it's simply the default dollar-pegged asset they already hold on-chain. If you sell to buyers in Turkey, Argentina, Nigeria, Vietnam, or most of Southeast Asia, offering USDT is often the difference between a completed checkout and a customer bouncing to find another vendor.

From the merchant side, USDT behaves like a dollar. You invoice in dollars, you receive dollars, and because you're accepting a stablecoin, you don't take price risk between the customer paying and you settling. If you're weighing which stablecoin to lead with, we compare both in USDT vs USDC for business payments.

USDT on Solana vs Ethereum

USDT exists on many chains. The two that matter for most merchants are Ethereum (as an ERC-20) and Solana (as an SPL token).

For anything under $100, Solana is the obvious choice — the fee difference eats real margin. For a deeper look at the trade-offs, read Solana vs Ethereum for merchant payments.

Integration steps

Assuming your gateway supports SPL USDT (Solpaygate does), the flow is short:

  1. Sign up for a merchant account and configure your Solana master wallet address in the dashboard. 2FA is enforced on this step so a stolen email password alone cannot change the destination.
  2. Grab your company ID and API key from the API settings tab.
  3. When a customer checks out, POST to /api/company/{companyId}/payment-session with the amount and currency: "USDT". You get back a token.
  4. Redirect the customer to https://app.solpaygate.com/pay?token=.... They see a QR code and address to send USDT to, plus a countdown timer.
  5. Wait for the webhook that fires when the payment confirms on-chain, then update your order.

If you'd rather render your own checkout instead of using the hosted page, call /payment-direct and get back a raw deposit address to display in your UI.

Handling confirmations

Solana finality is fast — one slot is roughly 400ms, and payments typically confirm within a second or two. Your webhook endpoint receives a POST with the payment details as soon as the funds land in the merchant deposit address.

Don't fulfill on the payment-created event or on the customer clicking "I paid" — those are optimistic signals. Fulfill on the confirmed webhook, which carries the on-chain transaction signature you can verify yourself against a Solana RPC if you want a second source of truth. The payment session itself expires 15 minutes after creation, and the initial token is valid for 30 minutes if the customer never opens the checkout page.

Cashing out

Because Solpaygate is non-custodial, USDT payments sweep automatically from the temporary deposit address to your master wallet within seconds of confirmation. You're never waiting on a provider's balance sheet, and you're never asking for permission to withdraw your own money.

From your master wallet, you have the usual options: hold on-chain in USDT for stability, off-ramp through a major exchange (Binance, Kraken, Coinbase, OKX all support SPL USDT deposits), or use a local ramp specific to your country. Fees at the off-ramp are a separate matter from the payment gateway — worth comparing rates before picking a venue, especially if you plan to convert daily.

Ready to accept crypto payments?

Solpaygate lets your business accept SOL, USDT, and USDC on Solana with a single API call. Non-custodial, no smart contract to deploy.

Start for free