USDT payment links and online checkout: QR codes and order confirmation
A USDT payment link opens online checkout. An address QR code helps the payer enter the destination; order queries and callbacks confirm the result. UUGate supports TRC20-USDT and BEP20-USDT. Start by choosing the collection mode, then connect the payment entry to your own business record.
Choose an order or ongoing top-ups
Use a fixed-amount collection order for a shop purchase or service invoice. Use a dedicated address for member balance top-ups where the member chooses the amount. Ordinary orders expire; dedicated wallet checkout has no preset amount or ordinary order countdown. Keep the two flows separate.
Create a USDT payment link
Follow the first-payment guide to open collection from an ordinary wallet, check the asset and amount, and generate checkout. This also creates a collection order. Copy its returned link for the payer.
For a website, use the collection order API. Authenticate on your server with merchant UID and API Key, specify the network, asset, amount and business reference, and save orderNo, cashierUrl and expireAt. A returned link means the order exists, not that it has been paid. Keep API Keys out of web pages and QR codes.
Check what the QR code contains
Checkout shows the network, amount and address. Its address QR code currently encodes the address, not a universal instruction that fills in the network and amount. After scanning, the payer must check the network, asset, full address and amount in their wallet. Scanning behavior varies between wallets.
If scanning fails, copy the full address and check every field manually. TRC20-USDT and BEP20-USDT are different payment routes; a similar-looking address does not establish the correct network.
Provide a member top-up entry
With dedicated address binding, save the member, bindKey, network, asset and address relationship. That API does not return cashierUrl. Display the returned address on your own page, or open dedicated wallet checkout in the console and copy its link. See the dedicated-wallet tutorial.
Members may repeatedly top up an active binding. Confirm and credit each payment separately; the address or bindKey alone is not a payment deduplication key.
Handle expiry and amount differences
An expired page cannot prevent a blockchain transfer. Before paying, check the link and order status. Contact the merchant if the order has expired, been cancelled or entered review; do not reuse an old amount or choose another network.
For underpayments, overpayments, wrong assets or late transfers, compare the order with chain evidence before fulfilling. A screenshot does not prove completion. Do not promise automatic refunds or cross-chain recovery. See reconciliation.
Confirm payment before fulfilling
Your server verifies the collection callback, checks the original order identity, asset, network, amount and completed status, and records the credit or fulfillment once in a transaction. If a notification is missing, query the saved orderNo. A browser redirect is not payment proof.
- Validate successful payment, repeated notifications, temporary callback failure and expiry.
- Check QR display, address copying and amounts on mobile, using the wallets you intend to support.
- Keep payment status and business fulfillment status separately traceable.
Choose the next step
Review the USDT API for supported routes, dedicated addresses for ongoing top-ups, and pricing for plans, address quotas and network fees. For software invoices, read the SaaS collection guide.