Integration guide

Verify a payment before fulfillment

Compare the network, configured token contract or mint, destination, exact amount and confirmations with the original order.

Steps to follow

USDT / USDC payment verification workflow

Best for support teams, founders, and developers who need to decide whether a real USDT / USDC transfer should complete a merchant order.

  1. 01

    Start with the network selected by the order. A TRC20 transfer cannot complete an ERC20 or BEP20 order.

  2. 02

    Open the matching explorer and verify the transaction is a USDT / USDC token Transfer, not a native coin transfer.

  3. 03

    Compare the transfer destination address with the order settlement address shown at checkout.

  4. 04

    Normalize the token amount and compare it with the exact order amount before fulfilling or resending a webhook.

BoltUtil checks payments and sends signed callbacks. Your server verifies signatures and order status, deduplicates events, then delivers goods, activates service or credits accounts.

Integration notes

What matters before production

The configured token matters

Check the contract or mint, not just its symbol. USDT / USDC versions and token decimals differ by network.

Use the checkout amount

Compare the full API-returned payable amount using decimal-safe arithmetic, not a rounded product price.

Check fulfillment separately

A successful transfer, confirmed payment and completed business delivery are separate records.

Manual verification checklist
Network matches the order
Configured token contract / mint matches
Destination matches the order wallet
Full payable amount matches
Payment time and order window checked
Required confirmations reached
Transaction association and fulfillment checked

Examples are for integration and troubleshooting only. No requests are sent. Use your order data, network configuration and current API documentation.

Read API docs

What should you check next?

Start with the original order and transaction hash. A successful transfer, a confirmed order and a delivered webhook are separate facts.

For orders A = 1.000, B = 1.010 and C = 1.020, a payment of 1.020 matches C only when the other matching conditions hold. A payment of 1.030 has no exact match.

Illustration only. A nonmatching amount is not automatically accepted: eligibility, the original order window and ownership must be checked. Free merchants can view their review records; accepting or rejecting an association requires active Pro membership.

Exact amount
Compare the full payable amount, network, token, wallet and payment window. A qualifying exact match takes priority over difference-review candidates.
Underpayment or overpayment
An eligible manual transfer may create a review record. Review limits and candidate ownership still apply; several candidates do not justify assigning the nearest order.
Payment still confirming
PAID means a payment is recorded and confirmation is continuing. Check network confirmations and scanner progress; do not ask the customer to pay again.
Confirmed, but the store has not updated
Check webhook delivery, HTTP responses, raw-body signature verification and durable order handling. After fixing the receiver, resend within your permissions and fulfill once.
Wrong network or token
Check the actual network and contract or mint. A shared symbol or wallet-address format cannot turn a transfer on another route into this order’s payment.

Integration guide

Questions merchants ask before going live

Can a successful transfer alone complete an order?

No. Check the configured network and token, destination, payable amount, order window and confirmation progress. Verify callbacks and fulfill only once.

Do all six networks support both currencies?

TRON supports USDT only. Available USDT / USDC pairs on other networks depend on enabled channels and configured wallets. Compare the configured contract or mint, not just the token name.

Launch a cleaner USDT / USDC payment flow

Create orders, monitor transfers, and notify your backend without asking customers to send screenshots.