A quote is a price you obtain for a specific adventure + rate pack + date + room composition. It is frozen for 30 minutes, which means:Documentation Index
Fetch the complete documentation index at: https://developers.safarapi.com/llms.txt
Use this file to discover all available pages before exploring further.
- The
net_amountreturned byPOST /quotesis what you owe SafarAPI when you book. - Even if the underlying rate pack price changes during those 30 minutes, your quote stays at the quoted price.
- After 30 minutes, the
quote_idis rejected byPOST /bookingswith409 partner.booking.quote.expired.
Lifecycle
Quotes are single‑use: oncePOST /bookings succeeds with a quote_id, the same quote cannot be used twice.
Pricing logic
Thenet_amount exposed in your quote is the net amount due to SafarAPI — that is, the public Safariat price minus any partner‑specific margin negotiated in your contract.
You are free to:
- Show your customer the gross price (your markup on top, your decision)
- Show your customer the net price (zero markup)
- Show your customer a discounted price (your absorbing some of the cost)
net_amount you remit at booking time.
Breakdown
Thebreakdown array in the quote response shows you how the total is computed:
adults line is computed (basePrice × totalAdults). Child supplements and extra bed pricing land in a future release — the line list will simply grow without breaking changes.
Anti‑fraud check
When you book withPOST /bookings, SafarAPI validates that payment_confirmation.paid_amount_net strictly equals the quote’s net_amount. If they differ — by even 1 centime — the booking is rejected with 422 payment.amount.mismatch.
This is the cornerstone of the trust between SafarAPI and your bank: we trust your bank’s payment confirmation because the amount cannot be tampered with after the quote.