Sell Elivaas stays from your own product#
Search live inventory, price a stay to the paisa, book it against your credit line, and settle monthly by GST invoice. No card, no checkout, no logging into anyone else's dashboard — twenty-five HTTP endpoints and a key.
Quickstart →
Key to confirmed booking in six calls. Copy-paste the whole page and it runs.
Choose an integration path
Use our search, or cache ARI and run discovery yourself. It changes less than you would think.
Authentication
Basic auth, your key as the username, empty password. The key is the tenant.
API reference
All 25 operations, generated from the spec the running service publishes.
Get access
What we need, what you get, and the one step that is not self-service.
The shape of a sale#
Four calls, always in this order. Each one is a separate page in these docs.
Find something to sell — and this is the one choice you make#
Either we hold the index and you call
POST /v1/listings/search, or you hold it: sync availability, rates and inventory withGET /v1/listings,GET /v1/availabilityandGET /v1/rates, and run discovery in your own store.Path A is faster to launch and always current. Path B gives you your own ranking and merchandising, at the cost of owning freshness. Everything after this step is identical either way, so the decision is reversible.
Price it#
POST /v1/ordersreturns a priced order — the exact grand total, tax and cancellation terms the booking will use. Nothing is held and nothing is charged.Book it#
POST /v1/bookingsturns that order into a real booking, charged against your credit line. You pass the total you are accepting; a price that moved underneath you is rejected rather than silently charged.Settle it#
Charges accumulate on your ledger and become GST invoices on your billing cycle. You pay the invoices, not the bookings.
Three things that surprise people#
Worth knowing before you write code, because each one changes how you design your integration.
Your account#
Your account is the entity we contract with and bill: a travel agency, an OTA, a corporate travel desk, a reseller. It carries your channel, your credit limit, your billing cycle and usually your GSTIN.
Every request is scoped to it, and your API key is what identifies it. You never send an account id, a channel id, an agent id or a user id — there is no field for one on any payload, and none would be honoured if you invented it.
Environments#
Two environments, one contract. The API, the field names and the error envelope are identical — only the data and the keys differ.
| Base URL | ||
|---|---|---|
| Sandbox | https://sandbox.partner-api.elivaas.com | Test data. Bookings here are not real, cost nothing and never reach a property |
| Production | https://partner-api.elivaas.com | Live inventory. A booking is a real stay and a real charge against your credit line |
Keys are per environment and not interchangeable. A sandbox key sent to production is a 401, and so is the reverse — the same 401 you get for a revoked key, by design. Ask for a sandbox key during onboarding and integrate against it; move to production once your flow survives the errors you should expect.
Conventions#
| Base URL | https://partner-api.elivaas.com (production). Build against sandbox first |
| Versioning | Every path is under /v1. No tenant segment, no other prefix |
| Content type | JSON in, JSON out — except GET /v1/invoices/{id}/pdf, which returns application/pdf |
| Dates | ISO 8601. Plain dates (2026-08-10) for stay dates, instants (2026-05-21T11:09:03.024811Z) for timestamps |
| Bulk first | Read endpoints take lists of ids and date ranges. They are designed so you never loop one listing or one date at a time |
| Money | Catalogue, rate, search and promotion feeds quote integers in paise. Order, booking, ledger and invoice figures are decimal rupees. Every field says which — do not assume across endpoints |
| Errors | One envelope for every failure. See Errors |
The OpenAPI spec#
https://partner.elivaas.com/openapi/distribution.jsonGenerated from the running service, and the same source the API reference on this site is built from — so the two cannot disagree. Point your client generator at it.
Getting help#
api@elivaas.com. Include the path and timestamp from any error body; both are in every failure response and are enough for us to find the request.