Bitcoin is the coin every customer has heard of and every wallet can send. CoinsFlow is a Bitcoin payment gateway: it sees a Bitcoin payment seconds after your customer sends it, counts it as paid at the first confirmation, and lets you withdraw it straight away. It costs 0.5% per payment.
How it works
- Create an invoice in Bitcoin, priced in BTC 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
bc1…address, the exact amount, a QR code, and on a phone a button that opens their wallet app. - We see the payment within seconds, while it is still in the mempool, and the payment page tells your customer it is on its way.
- At the first confirmation it is paid: your server gets the signed
invoice.paidwebhook, and the money is in your balance. - Withdraw to your own Bitcoin wallet, by hand or automatically. The smallest withdrawal is 0.00001 BTC.
Bitcoin on CoinsFlow, in numbers
| Payment seen | seconds after your customer sends it (in the mempool) |
|---|---|
| Paid, and withdrawable | 1 confirmation, about 10 minutes, whatever the amount |
| Final | 1 to 6 confirmations: more for a larger payment |
| Customer’s network fee | varies with how busy the network is; usually low |
| Our fee | 0.5% of each payment |
| Address | native SegWit (bc1…), a new one for each invoice |
| Invoice open for | 3 days, or up to 7 if you ask; a late payment is still credited |
| Smallest withdrawal | 0.00001 BTC |
A $50 Bitcoin order, in numbers
| Price | $50.00, asked in BTC at the current price, rounded up to 8 decimals |
|---|---|
| Payment seen | seconds after the customer sends it: invoice.detected |
| Paid | at 1 confirmation, about 10 minutes: invoice.paid |
| Our fee | $0.25 (0.5%), taken in BTC when it is credited |
| Customer’s network fee | what their wallet adds on top; it varies with how busy the network is |
| In your balance | about $49.75 worth of BTC, withdrawable at once |
The network fee is the one thing not in this table, because it is not ours and not yours: your customer's wallet adds it on top of the invoice, and it goes up and down with how busy the network is. For small orders, Litecoin or BNB Smart Chain cost your customer less to send.
Read from our own node
Payments are read from a Bitcoin node we run ourselves, like every network we take. Nobody else's API decides whether you were paid.
A Bitcoin payment API in one call
One request makes the invoice, here in cURL, Node.js and Python. There is no SDK to install.
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":"bitcoin","asset":"BTC","priceAmount":"50.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.