Accept Bitcoin for online stores
Add a “Pay with crypto” button: your store creates a payment via the API, the customer pays on a ready-made page, and the order status updates via webhook.
How well Bitcoin fits online stores
As an extra option · Fit 33%Enable it for customers who hold this coin, but pick another one as the main method.
Pros
- One of the coins buyers know best, which means fewer abandoned payments.
Keep in mind
- The coin’s price moves: set the price in USD and the amount is converted at the rate fixed when the invoice is created.
- The network fee is noticeable: for small orders add a cheaper network to the checkout, such as BEP-20, TON or Solana.
- Confirmation takes longer than on fast networks; the checkout page shows the status itself, the customer need not keep it open.
- Network
- Bitcoin
- Coin
- BTC
- Addresses
- a separate one for each payment
- Rate
- locked for the payment window
Order ↔ payment
Pass your order number in orderId — it comes back in every webhook.
Prices in dollars
Set the amount in USD — it’s converted to the chosen coin at a locked rate.
Invoice in fiat
A USD price is converted to BTC at the rate locked when the invoice is created.
A typical integration takes an evening: one request to create a payment at checkout and a webhook handler that marks the order as “Paid”. Repeating the request with the same Idempotency-Key won’t create a second payment, even if the customer clicks the button twice.
Bitcoin transfers take longer to confirm than stablecoins, so for digital goods it helps to show the customer the payment status in real time. The Moonvex payment page updates on its own — the customer doesn’t need to reload it.
Recommended coin set for online stores
To cover most customers, enable on the checkout page: USDT TRC-20, USDT BEP-20, USDT on TON. The customer picks the network, and every payment lands on one project balance.
One request to create a payment
The response contains the address, the exact amount and a link to a ready-made payment page. Status updates arrive via HMAC-signed webhooks.
curl https://api.moonvex.org/v1/payments \ -H "Authorization: Bearer $MOONVEX_SECRET_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{"orderId":"order-1001","amount":"49","currency":"USD","asset":"BTC","network":"BITCOIN"}'
FAQ
Which currency should the price be in when customers pay in Bitcoin?
Set the price in USD with Bitcoin as the payment coin: Moonvex converts the amount and fixes the rate when the invoice is created.
Is there a plugin for WooCommerce, OpenCart or Tilda?
Ready-made plugins are in development. For now you connect via the REST API or the Node.js SDK; on any platform with webhooks it’s a few dozen lines of code.
Do you accept Lightning?
For now, only the Bitcoin main network.
What if the customer doesn’t pay in full?
The customer has a window to top up. You’ll receive a webhook with the status and the actual amount.
Can I send a BTC invoice without a website?
Yes, from the dashboard or the Telegram bot — the customer gets a link to the payment page.
Other coins for online stores
Bitcoin for other use cases
Compare Bitcoin with others
Start accepting payments today
An account and your first project in a minute, no monthly fee.