FX rates
Rate locking
Section titled “Rate locking”When you call POST /orders/ with input_currency, B4bit Pay returns in the response:
rate— price of the crypto in USDC at that moment.expected_input_amount— crypto amount equivalent toexpected_output_amount(in fiat).
The rate is locked during the order’s validity window. If the crypto price rises or falls afterwards, it does not affect the amount the customer must pay.
Internal settlement in USDC
Section titled “Internal settlement in USDC”Conversion flow
Section titled “Conversion flow”- The customer pays X in crypto (for example 0.001 BTC).
- B4bit Pay converts to USDC at the market price at the time of confirmation.
- The USDC is credited to the merchant’s balance.
- The merchant withdraws the balance in the crypto of their choice (can be BTC again, USDT, DAI, etc.).
Accounting implications
Section titled “Accounting implications”- The
fiat_amountof an order is what you charge the customer. - The balance in the dashboard is always expressed in USD (1:1 equivalent to USDC).
- For tax reports, use
fiat_amountas the sale value; userateandreceived_amountfor the crypto detail.
Rate source
Section titled “Rate source”The rate used by B4bit Pay is based on liquid reference markets (it is not the spot price of a single exchange). This reduces one-off distortions but may differ slightly from the CoinMarketCap price at the same second.
What NOT to expect
Section titled “What NOT to expect”- No automatic hedging against volatility after the order is created. If the customer takes time to pay and the crypto price rises, you receive less crypto; if it falls, more.
expected_input_amountis calculated only once. - No automatic reverse conversion on refunds. Refunds are handled manually and the exchange rate may be different. See refunds.