easyway
Sign inCreate free account

A BEP-20 payment gateway: accepting USDT, USDC and BNB on BNB Smart Chain

BNB Smart Chain is where a lot of customers already hold their USDT, because withdrawing it from an exchange on that network is cheap and quick. If you sell online, a BEP-20 option at checkout is one of the easiest ways to get paid. This post covers what easyway accepts on BNB Smart Chain, how a payment is detected and confirmed, the one mistake customers make, and what it costs.

What BEP-20 means

BEP-20 is the token standard of BNB Smart Chain (BSC), an EVM network: addresses look like Ethereum ones (0x…), tokens live in contracts, and every transfer pays its gas in BNB. "USDT BEP-20" is Tether's dollar on that chain, a different contract from USDT on Ethereum (ERC-20) or TRON (TRC-20), even though it is worth the same dollar.

What you can accept on BNB Smart Chain

6 assets run on BNB Smart Chain today. Each one has its own balance in your account and its own withdrawal fee and minimum (both in the token itself), taken from the gateway's asset list:

AssetPriced atMin. / fee
Tether (USDT)$10.5 / 0.1
BNB (BNB)market0.0007 / 0.00002
USD Coin (USDC)$10.5 / 0.1
First Digital USD (FDUSD)$10.5 / 0.1
PancakeSwap (CAKE)market0.25 / 0.05
Trust Wallet Token (TWT)market1.2 / 0.25

Contract addresses are on each coin's page: USDT BEP-20, USDC, FDUSD, PancakeSwap (CAKE), Trust Wallet Token (TWT) and BNB. USDT on BNB Smart Chain is one of the coins the checkout recommends first, next to USDT on TRON and TON and Bitcoin.

How a BEP-20 payment is detected

Every invoice gets its own deposit address. easyway watches the balance of that address for the coin the customer chose, not one particular transaction, so a wallet transfer, an exchange withdrawal that arrives as part of a batch, or a payment split in two all count the same way. Very small transfers are ignored as dust (below 0.01 USDT, for example); everything above adds up towards the amount.

A payment on BNB Smart Chain is final after 15 confirmations. The checkout estimates about three seconds a block, so the invoice usually turns paid well within a minute of the transfer. Until then it shows as confirming, and your server gets the signed invoice.paid webhook when it is done. Why the gateway waits at all is explained in how many confirmations a crypto payment needs.

The one trap: the network menu

Because BNB Smart Chain and Ethereum addresses look identical, a customer withdrawing from an exchange can pick the wrong network and the exchange will accept the address anyway. An invoice for USDT BEP-20 only counts USDT sent on BNB Smart Chain; the same amount sent as ERC-20 on Ethereum does not reach the invoice. The checkout names the network next to the coin and shows a "send only on this network" warning with the address. The guide to paying from an exchange walks through the withdrawal screen and the exchange's own fee, which comes off the amount that arrives.

What it costs

The customer pays the BNB gas of their transfer (an exchange pays it for them). You pay a flat 0.5% of each confirmed payment: 1,000 USDT received leaves 995 USDT on your balance. A withdrawal of USDT BEP-20 to your own whitelisted wallet costs 0.1 USDT, with a minimum of 0.5 USDT. All coins and networks side by side are on the pricing page; how BEP-20 compares with TRC-20 and ERC-20 for USDT is in which USDT networks to accept.

Creating a BEP-20 invoice

Most shops create a USD invoice and let the customer choose any coin, BEP-20 included. To price in USDT and only accept USDT on BNB Smart Chain, pass the asset id as the currency:

curl -X POST https://api.easyway.cash/v1/invoices \
  -H "Authorization: Bearer $EASYWAY_API_KEY" \
  -H "Idempotency-Key: order-5120" \
  -H "Content-Type: application/json" \
  -d '{"amount":"40","currency":"USDT_BEP20","order_id":"5120","lifetime":30}'

The responseThe response carries the hosted payment page to send the customer to.apos;s payment_url is the hosted payment page to send the customer to. Everything else (webhooks, statuses, the other request fields) is in the API quickstart, and the sandbox guide shows a test payment without real funds. No code? A payment link offers the same BEP-20 coins.

After a payment the funds sit on your easyway balance until you withdraw them; live withdrawals only go to addresses you have whitelisted with two-factor authentication (see security).

Create free accountRead the API docsAlready have an account? Sign in
BEP-20 payment gateway: USDT, USDC and BNB on BSC | easyway