Luna Contracting · live
Load it once.
Sell it everywhere.
Luna Contracting is the contracting layer of the Travelgenix platform. You work in the Contract Loader. Type a supplier’s rate sheet in, scan it or upload a spreadsheet, set it Active, and it is priced, availability-checked, impossible to oversell and sellable through your Travelgenix website and the Contracting API. Every booking gets a voucher in your brand.
Type it, scan it or upload it · eight product types · your brand on every voucher
app.travelgenix.io/contracting
Load rates
Live on
Your website
Widgets
Your systems (API)
Your agents
In the app
PROPERTY
SELL
MARGIN

+22%

+20%

+18%

+19%

+24%
The rates are in a spreadsheet, and the website is a season behind.
Every one of these is a real behaviour the product was built against. In the customer’s words:
Loading a season is a week nobody has
“It is the job everyone puts off. Hours of typing rates into a grid with no reward at the end except that nothing broke.”
The mistakes cost money quietly
“A blank August column, so peak weeks sell at January prices. A child age band typed in backwards. A stop sale saved the wrong way round. None of these throws an error. You find out from a customer.”
Two people buy the last seat
“The coach has 49 seats. The website says 1 left. Two people click Book within the same second. Somebody is getting a phone call.”
Every product type needs a different system
“The hotel system does not do coaches. The coach system does not do villas. So we run three systems, or one system and a lot of email.”
Once it is loaded, you still cannot sell it
“The rates are in a system, but our own website cannot reach them, and a partner certainly cannot. So it gets re-keyed again.”
The voucher has somebody else’s name on it
“We did the contracting, we took the risk on the allocation, and the voucher arrives with a technology company’s logo on it.”
1
Load it: type it in, scan the supplier’s PDF or upload a spreadsheet
2
Check it: the loader names anything wrong, in plain English, before it saves
3
Set it Active: priced, availability-checked and sellable everywhere you sell
CONTRACT STATUS
Villa Aegean is Active
Live
Priced night by night
Availability checked
Live on your website
Sellable through the API
Voucher ready in your brand at £1,120
One contract, sellable everywhere you sell
just now
Hotels, villas, cars, transfers, attractions, tours, coaches, trains and flights.
Eight product families, one way of working. Each is a separate engine with its own vocabulary.
Accommodation
Hotels, villas and apartments. Night-by-night pricing, real child age bands, multi-room baskets, supplements and contract cloning.
Car hire
Length-of-rental tiers combined with per-day seasonal pricing. Driver age is a real gate.
Transfers
Direction-aware pricing, date surcharges that apply before markup, and automatic branded supplier letters.
Attractions and events
Options as variants, multi-day and city passes, family bundles, online versus gate pricing.
Tours
Day-by-day itineraries, dated departures with capacity and five statuses, bulk departure generation.
Coaches
Fare grids per pick-up point, paired outbound and return, named seat maps and cruise-feeder sailing data.
Trains
The coach model applied to rail: boarding stations in order, per-seat fares, seat maps and dated departures.
Flights
Contracted block seats and negotiated fares, a seat-map builder with real aircraft geometry, connecting itineraries.
Eight product types
One way of working, one engine underneath
Hotels, villas and apartments. Car hire. Transfers. Attractions and events. Multi-day tours. Coach routes. Train services. Flights. Each is a real engine with its own vocabulary, not a hotel product with the labels changed. Learn it once and the next type feels familiar.
Hotels
Cars
Transfers
Tours
Coaches
Property
Villa Aegean
Net rate
£918
Markup
22%
Sell price
£1,120
Save contract
Margin overview
This month
Property
Net
Sell
Margin
Villa Aegean
£918
£1,120
+22%
Blue Bay Resort
£783
£940
+20%
Chalet Mont
£729
£860
+18%
No guesswork
See your margin on everything
Load your net rate, set your price, and Luna shows your live margin on every property. Always know exactly what you’re making.
Everywhere you sell
Sellable through your website and your own systems
Once a contract is Active it is sellable through your Travelgenix website and widgets, and through the Contracting API to your own website and systems. Bookings from all of them land in one place.
Sellable through
5 routes in
Website
Synced
Widgets
Synced
Your systems (API)
Synced
Your agents
Synced
In the app
Synced
One contract, one price engine, one booking flow underneath
Greece · 7 nights · 2 adults
3 results

Blue Bay Resort
Your rate
7 nts · all inclusive
£940

Sunset Bay Hotel
Supplier network
7 nts · B&B
£1,050

Villa Aegean
Your rate
7 nts · sea view
£1,120
Best of both
Your rates and the supplier network, side by side
Sell the deals you’ve contracted direct right beside the supplier network, so your customers always see your best available price.
Built for the product you contracted yourself.
The product you contracted yourself is the product you make real money on. It is also the product no system will hold for you, so it ends up in spreadsheets and in people’s heads.
Tour operators and packagers
“Our rates live in six spreadsheets and the website is always a season behind.”
Specialist operators
“Our product does not fit anybody else’s system, so we do it by hand.” Ski, villa, cruise, faith, sport.
Coach and transfer operators
“Every system out there is built for hotel rooms. We sell seats.”
Independent agencies with direct deals
“We negotiate a great rate and then the only way to sell it is by email.”
Larger operators with a dev team
“We do not want another portal. We want an API.”
Travelgenix customers
Luna Contracting is a layer of the Travelgenix platform, not another system to buy. Talk to your account manager about switching it on.
It catches the mistakes that cost you money quietly.
Every guard in the engine exists because something went wrong once.
It checks your work, in English
A season that ends before it starts. A blank August column that would sell peak weeks at the wider season’s price. A discount typed as 150%. A child age band with its minimum above its maximum. Each one named on screen before it saves.
It knows that 90,50 is ninety euros fifty
European decimal commas are read correctly. Where a number is honestly ambiguous, the importer refuses to guess and asks you to type it plainly.
It cannot oversell
The database itself takes the lock, not application code. Two people cannot both get the last seat, and an abandoned checkout puts the seats back on sale by itself.
Your brand, never ours
There is no Travelgenix logo on any voucher, any supplier letter or any document your customer ever sees. Not a small one. None. Even the PDF’s author metadata is your brand.
Everything you load, sellable through one API.
49 documented endpoints across all eight product families, one authentication model, one error format
One booking flow for all eight: quote, hold, confirm, cancel. An integrator writes the checkout once
Sell prices only. Cost, margin, markup and commission never leave the engine
Your product, your margin, your brand.
Net means you enter the cost and add a markup. Gross means you enter the sell price and record your commission inside it. Cost and margin never leave the engine.
Run a real stay through Price check and see the working line by line, margin included, before anyone can buy it.
Your direct deals are sold alongside the wider Travelgenix supplier network, so your customer sees the best price and you keep the margin on yours.
Questions people ask
Will the AI get our rates wrong?
It never invents a price. An unreadable amount is dropped and reported, not guessed, and every number it returns is re-checked in code before it reaches the screen. It writes nothing to your inventory: it fills in the loader, shows you a list of things to check and waits for you to press Save.
Loading a season takes us a week. Does this help?
Three ways in: type it, scan the supplier’s PDF, or fill in a spreadsheet template. Then fill a column down, copy a season across with an uplift, paste a block straight from the supplier’s own spreadsheet, and generate a year of departures from a date range.
We have already got a system for hotels. Why this?
This is for the product you contracted yourself, across eight types, in one place. If your hotel system does coaches, seat maps, cruise-feeder departures and per-day car hire tiers, keep it.
What happens when two people book the last seat?
One gets it. The other gets a clean availability changed message. The lock is taken by the database, not by application code, so it cannot be got round.
We do not have a developer. Is that a problem?
No. Everything is loaded in the browser, and the API is there for when you want it, not a requirement to use the product.
Will our customers see your name?
No. Not on the voucher, not on the supplier letter, not in the PDF’s file metadata. Your logo, your colour, your wording, your email address.
How do we know it loaded correctly?
Search it exactly like a customer would, on the same engine your website uses. Or run a real stay through Price check and see the working line by line, margin included.
Our product is unusual. Will it fit?
Probably less unusual than a coach that feeds a named cruise sailing, books both legs of a round trip or neither, and emails the operator when it passes 75% full. That is in production.
Is our data separate from other clients?
One account per client, enforced in four places: every query, deny-by-default database security, a public key with zero privileges, and 47 triggers that block a cross-tenant write. Plus a full audit trail of every change, written by the database itself.

Put your best rates to work.
Contact your account manager to switch on Luna Contracting, or book a demo and we will show you the Contract Loader running with your own rate sheet.
Explore the platform
Everything you need to sell more travel online, in one connected platform.