At a glance
The quote time is the one you’ll notice most. Create the payment as soon as your customer confirms the price. The exact expiry time is always in the quote’s
expires_at field.Quotes
A quote holds a price for a short time. Always readexpires_at instead of assuming a fixed time.
- Before you create a payment: if the quote has expired, call Refresh a quote to get a fresh price with the same quote ID, or get a new quote.
- After you create a payment: the quote is locked to that payment. While the payment is still waiting for your customer’s money (
initiated,quote_locked,fiat_pending, orstable_pending), you can still refresh it to update the price. After the money arrives, the price is final.
Deposits
After you create a payment, your customer has 30 minutes to send the money:- Onramp: the fiat, by bank transfer or mobile money. For mobile money, ask them to approve the payment on their phone straight away.
- Offramp: the stablecoin, to the deposit address.
failed and you receive a payment.onramp.failed or payment.offramp.failed webhook. To try again, start with a new quote.
Your webhook endpoint
Your server must reply within 10 seconds. If your work takes longer, reply with200 first and do the work afterwards. See How webhooks work.
Your requests
Most requests return in under a second. Creating a payment calls our payment partners, so it can take longer. If a partner doesn’t respond in time, you get a504 error. See Status codes.

