Amounts & assets
How money is represented across the API: you price in USD, we settle in Bitcoin, and every amount is exact.
Settlement asset
The API settles in Bitcoin. Every money-bearing object includes an asset field, which is currently always BTC. It exists so your integration is ready for additional assets when they ship — always read the asset rather than assuming BTC.
Satoshis, not decimals
Bitcoin amounts are returned as integers in satoshis (the smallest unit — 1 BTC = 100,000,000 sats). Integers avoid floating-point rounding errors entirely. Convert only for display:
Pricing in USD
When you create an invoice or payment link, you specify the price in amount_usd. At creation, we fetch the live BTC rate, convert to satoshis, and lock that amount into the invoice. The USD figure used is returned as amount_usd_quote for your records.
- The satoshi amount is what the customer pays — it's fixed once the invoice exists.
- The
amount_usd_quotereflects the rate at creation time and is informational. - Balances also carry a best-effort
confirmed_usdvaluation at the time of the request.
When the price feed is down
Creating an invoice requires a live BTC rate. If the price feed is momentarily unavailable, the request fails with503 price_unavailable rather than guessing a rate. Retry shortly. See Errors.USD values can be null
Any USD field — amount_usd_quote, confirmed_usd, amount_usd_at_receipt — may be nullif a valuation wasn't available at that moment. Always handle the null case; the satoshi amount is the source of truth.