USDT is a dollar your customers can send from any wallet. CoinsFlow takes it on BNB Smart Chain and on Ethereum. Price the order in dollars and the payment page asks for that many USDT: $49.99 is 49.99 USDT. It costs 0.5% per payment.
Which network?
| USDT on | BNB Smart Chain (BEP-20) | Ethereum (ERC-20) |
|---|---|---|
| Paid after | about 15 seconds | about 2.5 minutes |
| Withdrawable | about 15 seconds later | about 4 minutes later |
| Confirmations to paid / final | 15 / 30 | 12 / 32 |
| Customer’s network fee | cents or less, paid in BNB | varies, paid in ETH; more than for sending plain ETH |
For the lowest fees, offer BNB Smart Chain. TRON (TRC-20) is paused for now.
One thing your customer must get right
USDT on BNB Smart Chain and USDT on Ethereum are different tokens, with different contracts. The payment page names the network and warns your customer to send on that one only. With a pay-in-any-coin invoice they choose USDT first, then the network.
How it works
- Create an invoice in USDT on BNB Smart Chain (
bsc) or Ethereum (ethereum), priced in dollars or in USDT: one API call from your shop, or a few clicks in the dashboard. - Your customer opens the payment page: a fresh
0x…address, the exact amount, a QR code, and the network, named. - We see the payment in its first block. It is paid at 15 confirmations on BNB Smart Chain, about 15 seconds, or 12 on Ethereum, about 2.5 minutes: your server gets the signed
invoice.paidwebhook, and the money is in your balance. - Once the payment is final, withdraw it to your own wallet on the same network, by hand or automatically. The smallest withdrawal is 1 USDT.
Create a USDT invoice
curl https://api.coinsflow.app/v1/invoices \
-H "Authorization: Bearer $COINSFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-A-1042" \
-d '{"chain":"bsc","asset":"USDT","priceAmount":"120.00","orderId":"A-1042"}'Send your customer to the paymentUrl in the answer, and fulfil the order on the invoice.paid webhook. To try it with no money first, add "test": true to the body and simulate the payment. Every field is in the API docs.