Accept Bitcoin for digital goods
Keys, files, templates, access: the customer pays on the payment page and your server delivers the product via webhook — no manager involved.
How well Bitcoin fits digital goods
As an extra option · Fit 0%Enable it for customers who hold this coin, but pick another one as the main method.
Pros
Keep in mind
- 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.
- The coin’s price moves: set the price in USD and the amount is converted at the rate fixed when the invoice is created.
- Network
- Bitcoin
- Coin
- BTC
- Addresses
- a separate one for each payment
- Rate
- locked for the payment window
Automatic delivery
The product goes to the customer the moment the payment is confirmed.
No double delivery
Every event is signed and has an id, so it’s easy to make processing idempotent.
Invoice in fiat
A USD price is converted to BTC at the rate locked when the invoice is created.
Speed matters for digital goods: the customer wants the key right away. Moonvex credits the payment after confirmation by two network nodes and sends the webhook immediately.
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 digital goods
To cover most customers, enable on the checkout page: USDT BEP-20, USDT on TON, USDT and USDC on Solana. 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":"key-steam-9932","amount":"15","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.
Do I need a website?
No: you can sell through Telegram, Discord or payment links.
Do you accept Lightning?
For now, only the Bitcoin main network.
How do I avoid delivering twice?
Store the webhook event id and skip repeats — Moonvex may retry delivery.
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 digital goods
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.