How Unique-Amount Matching Works (Why You Pay 10.0023 USDT)
October 10, 2026 · 5 min read
When a payment page asks you to send 10.0023 USDT instead of 10, the extra digits are an identifier. Each open order gets its own unique amount, so when exactly 10.0023 USDT arrives in the merchant’s account during that order’s payment window, it can belong to only one order. That lets a payment be confirmed automatically, without screenshots and without the gateway ever holding the money.
Why is a unique amount needed at all?
When a customer sends USDT to a Binance Pay ID or a deposit address, the merchant sees “+10 USDT arrived”. There is no reliable order number attached. Binance Pay transfers and blockchain deposits don’t carry an order reference that a store can depend on. If three customers each owe 10 USDT, three identical deposits would be impossible to tell apart.
The usual workarounds have serious drawbacks:
- Screenshots are easy to fake and must be checked by hand.
- A new address per order means the gateway generates and controls those addresses, so it holds the money (custodial), or you have to manage many wallets yourself.
- Asking for a memo or note fails whenever a customer forgets it, and many wallets don’t support one.
A unique amount works with your existing Binance Pay ID and deposit addresses, needs nothing extra from the customer, and keeps the money in your own account.
How is the unique amount chosen?
Clearqo starts from the price in USDT and adds a few ten-thousandths:
- Base price. The order total converted to USDT and rounded up to whole cents, for example 10.00.
- Tier 1. Add a tiny offset from 0.0001 to 0.0099, picking one no other open invoice of the same merchant is using: 10.0001, 10.0002 … 10.0099.
- Tier 2. Only if all 99 of those are taken at the same moment, larger offsets up to 0.9999 are used.
- Never a round number. Amounts ending in “00”, such as 10.0100, are skipped. A customer who rounds the amount can never match someone else’s order by accident.
Picking the amount and reserving it happen under a lock, so two orders created at the same instant can never receive the same amount.
How long is an amount reserved?
An amount stays reserved while its invoice is open, and also during the grace period after it expires (24 hours by default). It is not handed to another order until it can no longer be paid. So a late payment of 10.0023 can never be confused with a newer order.
How is a payment matched?
A read-only API key lets Clearqo read the merchant’s incoming Binance Pay transactions and USDT deposits. A payment confirms an invoice automatically only when all of these are true:
| Check | Why |
|---|---|
| The amount matches to the last digit | Identifies exactly one invoice. |
| It arrived after the invoice was created (2 minutes of clock tolerance) | An old payment can’t be reused for a new order. |
| It arrived before expiry plus the grace period | Very late payments go to manual handling instead. |
| The transaction was never used for another invoice | One payment can never complete two orders. This is enforced by the database. |
| On-chain deposits: Binance reports it as successful, on the merchant’s own address and network | Unconfirmed deposits and transfers to other addresses are ignored. |
The check runs every minute in the background, and about every 15 seconds while the customer has the payment page open. In practice most payments confirm within a minute.
Why on-chain payments need the “receive amount”
Binance Pay sends exactly what the customer types. On-chain withdrawals are different: on most exchanges the withdrawal fee is deducted from the amount you send. If a customer withdraws 10.0023 and the fee is 1 USDT, only 9.0023 arrives, and that doesn’t match. The payment page tells customers to set the amount that arrives to the exact figure. On Binance that is the “Receive amount”. More on fees: TRC20 vs BEP20.
What if the amount doesn’t match?
Nothing is lost, because the money is in the merchant’s account either way. The customer can paste their transaction ID on the payment page. If Clearqo finds that transaction and it differs (wrong amount, too old, or already used), the invoice moves to review and the merchant approves or rejects it. Full details: what happens with a wrong amount.
Is the extra amount a hidden fee?
No. In tier 1 it is less than one US cent, it goes to the merchant (not to Clearqo), and the customer sees it before paying. It exists only to identify the payment.
Why this design is safe
- Non-custodial. Money goes straight to the merchant’s own Binance. Matching only needs to read history.
- Exactly-once. An invoice can be marked paid only once, and a transaction can pay only one invoice.
- Verifiable. Every confirmed payment records the Binance Pay order ID or blockchain hash, so the merchant can check it in Binance.
- No trust in the browser. Stores receive a signed webhook and should re-fetch the invoice from the API before delivering. The WooCommerce plugin does this automatically.
FAQ
What happens if I round 10.0023 to 10?
The payment can’t be matched automatically, because 10.0000 is never assigned to any order. Add your transaction ID on the payment page so the merchant can review and approve it.
Can two customers get the same amount?
Not while either invoice is open or in its grace period. Amounts are allocated under a lock per merchant and are only reused after the earlier invoice can no longer be paid.
Why does the amount sometimes have bigger extra digits, like 10.0150?
That happens only when all 99 small offsets for that exact price are in use at the same time, for example during a busy sale. It is still unique to your order.
Does the merchant see which customer paid?
The merchant sees the order the payment was matched to, plus the transaction ID. That is all they need to fulfil the order.
Accept USDT on your website
Paid straight to your own Binance, verified automatically.