Pricing and ordering#
An order is a priced quote. It fixes the exact grand total, the tax breakdown and the cancellation terms that a booking will carry.
Creating one holds nothing and charges nothing. It is not a reservation.
Creating an order#
POST /v1/orders. Only listingId, checkIn and checkOut are required.
selectedProperties picks specific properties from a listing, with per-property quantities. Omit it and we select for you from the occupancy you gave.
meals and vas attach add-ons. Both are priced as their own invoice lines later, so they appear separately all the way through to the PDF.
externalRef is your own reference — a cart id, a quote number. It becomes the order's display reference and is echoed back everywhere.
curl -X POST "$BASE/v1/orders" \
-u "$ELIVAAS_API_KEY:" \
-H 'Content-Type: application/json' \
-d '{
"listingId": "lst_0853ie",
"checkIn": "2026-08-10",
"checkOut": "2026-08-13",
"adults": 4,
"children": 2,
"externalRef": "cart-8891"
}'{
"orderId": "ord_7Kd2m1RtY0",
"externalRef": "cart-8891",
"checkIn": "2026-08-10",
"checkOut": "2026-08-13",
"nights": 3,
"subtotal": 21000.00,
"taxTotal": 1050.00,
"grandTotal": 22050.00,
"currency": "INR"
}listingIdstringrequiredThe listing to price.
checkIn / checkOutstring<date>requiredISO 8601 plain dates.
checkOutis the morning you leave — a 10th-to-13th stay is three nights.adults / children / infantsintegerOccupancy. Drives which properties fit and how they price.
selectedPropertiesarraySpecific properties from the listing with per-property quantity. Omit to let us choose.
meals / vasarrayAdd-ons. Priced and invoiced as separate lines.
bankOfferCodestringApply one specific bank offer. Only offers on your channel are accepted.
applyBestBankOfferbooleanApply the highest-value offer available on your channel instead of naming one.
externalRefstringYour reference. Becomes the order's display reference.
Pricing without creating anything#
POST /v1/orders/preview takes the same body and returns the same figures without persisting an order.
Use it for anything that fires as a user moves around — a date picker, an occupancy stepper, a price calendar. Creating a real order on every keystroke leaves a trail of abandoned orders and burns your rate limit.
Create the real order once, when the customer commits.
Reading and repricing#
GET /v1/orders/{orderId} returns the order as priced.
POST /v1/orders/{orderId}/reprice re-runs pricing on the same selection and returns the current figures.
This is the correct response to a 409 from booking. When POST /v1/bookings rejects your acceptedTotal, reprice, show the new number to whoever is deciding, and book again with it. Retrying the old total will fail identically — that is the whole point of the check.
An order carries no expiry, but prices move. Reprice before booking anything quoted more than a few minutes ago.
curl -X POST "$BASE/v1/orders/ord_7Kd2m1RtY0/reprice" \
-u "$ELIVAAS_API_KEY:"Reading the total#
grandTotal = subtotal + taxTotalsubtotal is the value of the supply after any discount; taxTotal is GST on the discounted value.
Bank offers #
Bank offers are a commercial arrangement on your channel, and they are the one discount mechanism in this API.
Either name one with bankOfferCode, or set applyBestBankOffer: true and we apply the highest-value offer your channel carries. The applied offer comes back on the order so you can show it.
Cancellation terms are fixed at order time#
The order carries the cancellation policy windows the booking will inherit. Show them before the customer commits: after booking, what you can recover is determined by these windows and the date you cancel, not by negotiation. See Cancellations.