Skip to main content
molnpay

Accept payments · BTC

Accept Bitcoin payments.

Invoice in the currency you sell in, and let your customer pay in Bitcoin. We give the invoice a keyless address on the chain they choose, watch it, and send you a signed webhook when the payment is final. The asset customers ask for by name. Its own chain, its own address formats, no tokens.

BTC on 1 chain.

Your customer picks one at checkout. You choose which of them you are willing to accept.

BitcoinNative
BTC on Bitcoin
Bitcoin has no token layer, so BTC is the only thing that can arrive. We offer four address formats so a sender whose wallet cannot pay a bech32 address is not stuck.

Taking a Bitcoin payment.

  1. Create the invoice

    One POST with an amount, a pricing currency and your own reference. You get back a checkout URL, one payment address per chain, and a locked amount in every coin you accept.

  2. They pay, at a rate that stays honest

    Your customer is never asked to commit to a chain first — one address serves every EVM chain, so whatever arrives is attributable. Stablecoins are quoted once. A volatile coin is re-quoted every two minutes, and the figure it replaces is still honoured for five, so nobody who did as they were told is told they underpaid.

  3. You get a signed webhook

    HMAC-SHA256, retried for about 46 hours, replayable from the dashboard. The payment is credited to your balance per asset.

POST /v1/invoices
curl https://api.molnpay.com/v1/invoices \
  -H "Authorization: Bearer $MOLNPAY_SECRET_KEY" \
  -H "Idempotency-Key: order_8812" \
  -d amount="49.90" \
  -d currency="USD" \
  -d reference_id="order_8812"

What you do not have to do.

  • Hold a BTC wallet, or guard a seed phrase for one. Every address is a contract with no key.
  • Keep gas on hand. Our operator wallet funds the sweep on every chain BTC settles on.
  • Ask your customer to make an account. The hosted checkout needs nothing from them but a payment.
  • Run a watcher that must never miss a block, or reconcile a reorg by hand.

Holding BTC for your users instead?

Same API, same keys, same balance — the difference is whether the address belongs to an invoice or to one of your users.

Bitcoin deposit addresses

Accept another asset