LUNA CONTRACTING

LIVE

Everything you load, sellable through one API.

One API for eight families of directly contracted product. Browse, price, quote, hold, confirm and cancel using the published reference, with clear test-key limits and a documented booking flow.

Request to result

POST /v1/bookings/quote

REQUEST

POST /v1/bookings/quote

Rate reference from search

boarding: cardiff, party: { adult: 2, child: 1 } }

RESULT · price locked for 30 minutes

Cardiff to Southampton · example journey

2 adults, 1 child · 18 seats left

£91.00

Feeds

return coach 18 Oct

Iona · P426

Rate reference

re-quote it weeks later

does not expire

DOCUMENTED PATHS

49

Published and public

No login wall to read it

Quote

Hold

Confirm

Cancel

One booking flow for all eight.

Quote locks the price

For 30 minutes, and reserves nothing, so it never blocks a room or a seat.

Hold re-prices from live data

Refused if the total has moved by a penny, so a stale price can never be booked. Holds last 30 minutes and release themselves.

Bulk priced search

One call returns options, prices, extras and full product detail for every family, with a partial flag when something was dropped.

Two idempotency layers

A dropped connection or a retried request returns the booking you already made, never a second one.

Rate references that do not expire

Cache one, put it in a basket or an email, and re-quote it weeks later. The price resolves live at quote time.

Sell prices only

Cost, margin, markup and commission never leave the engine.

One key per client account

It reaches every engine that account has loaded and picks up new ones automatically.

Booking state by polling

There are no webhooks or callbacks. Your integration asks, and gets a consistent answer.

Test it honestly.

Build and verify your whole read and pricing integration with a read-only test key that cannot touch real inventory, then swap in a live key. A test key is refused at the first booking call, by design. There is no separate test environment to keep in sync.

Read-only test key for search, quote and product detail

Swap in a live key when you are ready to hold and confirm

Three key states: active, disabled, revoked. Both off states fail closed

API keys

Seaside Travel

sk_test_7f3a… · read-only

Search, quote and detail work. The first hold is refused.

sk_live_c91d… · active

Full booking flow. Only the SHA-256 hash is stored.

sk_live_20b4… · revoked

Permanent. Fails closed.

The raw key is shown once at creation and cannot be recovered afterwards, by anyone.

Published and public. No login wall.

A developer landing page, a hosted interactive reference, a full OpenAPI 3.1 spec you can generate a typed client from, and a written guide with a worked example from search to confirmed booking.

No SDK is shipped in any language. Generate a typed client from the spec instead.

Developer landing page at contracts.travelify.io/connect

Hosted interactive reference and OpenAPI 3.1 spec

A written guide with a worked example

A practical handover for your developer

The Contracting API serves a client’s directly contracted product. The public reference covers accommodation, car hire, transfers, attractions, flights, tours, coaches and trains. It is a separate integration scope from the wider Travelgenix booking API.

Start with the current reference

Read the developer guide, written reference and OpenAPI specification together. On 20 October 2026, the published specification identified itself as version 1.31.0 using OpenAPI 3.1.0. Use the live specification for request fields and response formats because an older copied example may miss a change.

Plan two kinds of testing

A read-only test key can browse, search, price and quote the product it is authorised to access. It cannot create or change a booking. The documentation says there is one API host and one dataset, rather than a separate sandbox.

For a complete booking test, the written reference says to ask Travelgenix for a live key on an agreed demo account. Agree that setup first, then test the hold, confirmation and cancellation flow there. A normal live key can affect real inventory.

Make retries and status checks deliberate

The reference documents an Idempotency-Key header for booking writes. Reusing the same key with the same body returns the original result; reusing it with a different body returns an error. Keep the booking reference and check the resulting state before your interface tells the traveller that an action succeeded.

The Contracting API documents polling for booking state and says there are no webhooks. Travelgenix’s separate platform webhook guide does not change that Contracting API behaviour.

Handle changes according to their scope

The v1 reference allows specified contact, note and traveller-detail amendments. It describes date, occupancy, room or vehicle changes as a fresh pricing and availability decision, handled through cancellation and rebooking in v1. Review the relevant product’s conditions and the supported action before building an amendment promise into your interface.

Keep the integration maintainable

Keep API keys on your server, as the authentication guide requires. Record the specification version you built against and review the published change notes before updating. Confirm the product scope, test account, error handling and person responsible for a failed booking with your implementation team.

These are recommended handover checks based on the published API contract. The page does not imply that a live booking was made as part of this documentation review.

Sources and review

Reviewed 20 October 2026. Product descriptions on this page are based on the linked official documentation. Examples and recommended checks are labelled in the text.

Questions people ask

Do we need a developer to use Luna Contracting?

No. Everything is loaded in the browser. The API is there for when your own website or systems want in.

Is there a separate test environment?

No. You test with a read-only key that cannot touch real inventory, then swap in a live key for holds and confirmations.

Is there an SDK?

No. The OpenAPI 3.1 spec is public, so generate a typed client in your language from it.

Do you push booking updates to us?

No webhooks or callbacks. Your integration polls for booking state and gets a consistent answer, with idempotent retries.

Sell it through your own systems.

Luna Contracting is live for Travelgenix customers. Contact your account manager to switch it on, or book a demo if you are new to Travelgenix.

More about Luna Contracting