Ethereum is where much of the world's crypto sits, and many customers would rather pay from it than move coins first. CoinsFlow is an Ethereum payment gateway for Ether and for USDT and USDC on Ethereum: a payment is seen in its first block, paid after about 2.5 minutes, and withdrawable about 4 minutes later. It costs 0.5% per payment.
The honest part: network fees
On Ethereum, your customer pays the network fee for sending, in ETH, on top of the invoice. It varies with how busy the network is and can come to several dollars, and a token transfer (USDT, USDC) costs more than sending plain ETH. That makes Ethereum a fine network for larger payments, and a poor one for a $3 order. For USDT and USDC, BNB Smart Chain is the cheaper way: the same tokens, cents or less to send, paid in about 15 seconds. Most merchants offer both and let the customer pick.
How it works
- Create an invoice on Ethereum (
ethereum) in ETH, USDT or USDC, priced in the coin or in US dollars: 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, so a token is not sent on the wrong chain. - We see the payment in its first block, about 12 seconds after it is sent, and the payment page tells your customer it is on its way.
- At 12 confirmations, about 2.5 minutes, it is paid: your server gets the signed
invoice.paidwebhook, and the money is in your balance. - At 32 confirmations it is final and withdrawable: to your own wallet on Ethereum, by hand or automatically.
Ethereum on CoinsFlow, in numbers
| Coins on Ethereum | ETH, and USDT and USDC as ERC-20 tokens |
|---|---|
| Payment seen | in its first block, about 12 seconds after your customer sends it |
| Paid | 12 confirmations, about 2.5 minutes |
| Final, and withdrawable | 32 confirmations, about 4 minutes after that |
| Customer’s network fee | paid in ETH; it varies, and a token transfer costs more than plain ETH |
| Our fee | 0.5% of each payment |
| Address | a fresh 0x… address for each invoice |
| Invoice open for | 3 days, or up to 7 if you ask; a late payment is still credited |
| Smallest withdrawal | 0.0002 ETH, 1 USDT, 1 USDC |
A $200 order paid in Ether, in numbers
| Price | $200.00, asked in ETH at the current price, rounded up to 6 decimals |
|---|---|
| Payment seen | in its first block: invoice.detected |
| Paid | at 12 confirmations, about 2.5 minutes: invoice.paid |
| Our fee | $1.00 (0.5%), taken in ETH when it is credited |
| Customer’s network fee | paid in ETH on top of the invoice; it can come to several dollars when the network is busy |
| In your balance | about $199 worth of ETH, withdrawable about 4 minutes later |
Read from our own node
Payments are read from an Ethereum node we run ourselves, like every network we take. Nobody else's API decides whether you were paid.
An Ethereum payment API in one call
One request makes the invoice, here in cURL, Node.js and Python. There is no SDK to install. For USDT or USDC on Ethereum, change asset.
curl https://api.coinsflow.app/v1/invoices \
-H "Authorization: Bearer $COINSFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042" \
-d '{"chain":"ethereum","asset":"ETH","priceAmount":"200.00","orderId":"order-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.