LUNA CONTRACTING

LIVE

Everything you load, sellable through one API.

49 documented endpoints, all eight product families, one authentication model, one error format. An integrator writes the checkout once: quote, hold, confirm, cancel. Published and public, with no login wall.

Request to result

POST /v1/coach/quote

REQUEST

POST /v1/coach/quote

{ route: sou-feeder-out, date: 2026-10-11,

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

RESULT · price locked for 30 minutes

Cardiff to Southampton · Sat 11 Oct

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

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

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