EDistribution API

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
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"
  }'
201 (trimmed)
{
  "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"
}
listingIdstringrequired

The listing to price.

checkIn / checkOutstring<date>required

ISO 8601 plain dates. checkOut is the morning you leave — a 10th-to-13th stay is three nights.

adults / children / infantsinteger

Occupancy. Drives which properties fit and how they price.

selectedPropertiesarray

Specific properties from the listing with per-property quantity. Omit to let us choose.

meals / vasarray

Add-ons. Priced and invoiced as separate lines.

bankOfferCodestring

Apply one specific bank offer. Only offers on your channel are accepted.

applyBestBankOfferboolean

Apply the highest-value offer available on your channel instead of naming one.

externalRefstring

Your 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
curl -X POST "$BASE/v1/orders/ord_7Kd2m1RtY0/reprice" \
  -u "$ELIVAAS_API_KEY:"

Reading the total#

code
grandTotal = subtotal + taxTotal

subtotal 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.

Next#

Book the order on credit.