CoinsFlow is a crypto payment gateway a freelancer or a small firm can bill a client with. You make an invoice priced in dollars and send its link. Your client opens it and pays in USDT, Bitcoin, Litecoin or another coin we take, from any wallet. You get an email when it is paid, and the money is in your balance to withdraw to your own wallet. It costs 0.5% per payment, nothing to make the invoice and nothing a month.
Billing a client, step by step
- Sign up with your email address or your Google account, and add a merchant: your own name, or one per business.
- In the dashboard, press New invoice. Choose Any coin they choose and type the price in dollars, or One coin you set if the client is to pay in a particular coin.
- Put your invoice number in the order id and say what the work was under Description and expiry: both are shown to your client. Give them up to 7 days to pay.
- Create it, copy the link under Share with the customer, and send it with your invoice: in an email, a chat or a message.
- Your client opens the page, picks the coin, and sends the amount shown to a fresh address of ours. The page follows the payment as it arrives: seen, then paid.
- You get an email, and the invoice is marked paid in the dashboard. Withdraw to your own wallet, by hand or automatically.
A $1,200 invoice, in numbers
| Price | $1,200.00, asked as 1200.00 USDT: USDT counts as a dollar while it trades within 0.5% of one |
|---|---|
| Client’s network fee | cents or less, paid in BNB by the client on top |
| Paid | about 15 seconds after the client sends: invoice.paid, the email, and the dashboard |
| Withdrawable | about 15 seconds later, once the payment is final |
| Our fee | $6.00 (0.5%), taken as 6 USDT when the payment is credited |
| In your balance | 1194.00 USDT |
| Withdrawing it | to your own address on BNB Smart Chain, for a fee in USDT that covers the network cost, quoted before you confirm. The smallest withdrawal is 1 USDT |
Paid in Bitcoin instead, the invoice asks for the dollar price in BTC at the current rate, counts as paid at the first confirmation, about 10 minutes, and is withdrawable from then on; in Litecoin, about 2.5 minutes. The pricing page has every network.
The price follows the market until it is paid
A dollar-priced invoice asks for the coin at the current price, rounded up to the coin's payable decimals. While it is unpaid the amount is brought up to date once an hour, so what you receive is worth what you billed, not what the coin was worth a week earlier. For 15 minutes after each update the previous amount still pays in full. USDT and USDC count as one dollar each while they trade within 0.5% of it, so a stablecoin invoice simply asks for the dollar figure. An invoice made in an exact amount of a coin never changes.
From your own system
curl https://api.coinsflow.app/v1/invoices \
-H "Authorization: Bearer $COINSFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: INV-2041" \
-d '{
"priceAmount": "1200.00",
"orderId": "INV-2041",
"description": "Website redesign, final payment",
"ttlSeconds": 604800
}'One request makes the same invoice the dashboard does, with your invoice number as the Idempotency-Key, so a retry never makes a second one. The answer carries the paymentUrl to send your client, and the signed invoice.paid webhook tells your system when it is paid. Every field is in the API docs.
Getting paid out
Payments are credited to your CoinsFlow balance, in the coin they came in. Withdraw from the dashboard to your own address on the same network: the fee, in that coin, covers the network cost and is shown before you confirm. On Bitcoin and Litecoin a paid invoice is withdrawable at once; on Ethereum and BNB Smart Chain once the payment is final, minutes or seconds later. The smallest withdrawals are 0.00001 BTC, 0.0001 LTC, 0.0002 ETH, 0.0005 BNB, and 1 USDT or USDC.
Or let it happen by itself. Under Withdrawals, an automatic withdrawal sends an asset's balance to your own address when it reaches an amount, or every day or every week if the balance is at least that much. It is an ordinary withdrawal, with the same fee; setting one up or changing its address takes your password, and you are emailed about it. It stops by itself if one of its withdrawals is cancelled or three in a row fail.
What a crypto invoice is not
CoinsFlow gets an invoice paid. It is not accounting software, and it does not try to be.
- No ledger of your clients, no VAT or sales tax, no invoice numbering of ours: your order id is shown as you typed it, and your own invoice document stays yours.
- No PDF and no reminders: the payment page is a web page, and we never email your client.
- No recurring billing: each invoice is made once and paid once.
- Prices in US dollars or in a coin, not in euros or other money. No payout to a bank account and no conversion between coins: you receive the coin your client paid in, and withdraw it to your own wallet.
- A payment, once confirmed, cannot be reversed by anyone. A refund is a withdrawal you make to your client's address, under the refund policy.
Test it first
Make a test invoice in the dashboard, under Developers. Its page has buttons where the address would be: press them to see what your client sees, as the payment is seen and then paid, and no money moves. From the API, add "test": true and call POST /v1/invoices/{id}/simulate.