/ Pricing and inventory

LUNA CONTRACTING

LIVE

Check the price. Hold the available space.

Configure rates and selling rules, then check the dates, party and available product. The booking flow rechecks availability at hold and returns the expiry time for confirmation.

Illustrative hold check

Cardiff to Southampton · 1 left

Hold A · example successful hold

Space held for this example. Use the returned expiry time to complete confirmation.

Hold B · example refused hold

Availability changed. Nothing written, nothing half made.

CHECK THE HOLD RESPONSE

Availability is checked again at hold. Read the response and expiry before confirming the booking.

ALLOCATION

Seats left

2

Stop sale

Off

Minimum stay

3 nights

MARKUP ON EVERY LINE

+20%

Net cost stays internal.

Markup

Allocation

Stop sales

Minimum stay

Net or gross, on every rate row.

Net means you enter the cost and add a markup, a percentage or a fixed amount. Gross means you enter the sell price and record your commission inside it. Both are stored, so cost, sell and margin are always known.

The published API returns sell-side prices and breakdowns. It does not expose the contract’s cost, markup, commission or margin.

One markup for a whole sheet, with a warning if rows use mixed settings

Extras across every family, compulsory or optional, prepaid or paid locally

Only Active contracts sell: draft, active, expired, archived

Rate basis

Villa Aegean · Peak

Row

Basis

You enter

Engine records

Double BB

Net

€162

+22% markup

Sell €197.64

cost, sell, margin

Twin HB

Gross

€217

12% commission

Cost €190.96

sell, commission

Validity

contract

1 May to 31 Oct 2027

Sell window

separate from validity

1 Nov 2026 to 31 Oct 2027

Status

only Active sells

Active

Check prices across the dates you sell.

Review the price breakdown for the product and journey. Include a stay across two seasons in your checks, so you can confirm which rate applies to each night.

If a night was covered only by a wider season, the quote says so, in words, on the quote.

Children by real age band, then free, fixed or a percentage of the adult rate, per night

Supplements with four independent scopes at once

Date surcharges that apply before markup

Quote working

Blue Bay Resort · 5 nights · 2 adults

Wed 29 Apr · Shoulder

£118

Thu 30 Apr · Shoulder

£118

Fri 1 May · Peak

£162

Sat 2 May · Peak · weekend supplement

£182

Sun 3 May · wider season only

£140

Sell total

Illustrative nightly sell prices

£720

Sunday 3 May fell back to the wider season

Load a Peak rate for it, or accept the wider price.

Check the selling price and the booking conditions

A price is only useful when its dates, occupancy, currency and conditions are clear. Use these checks with your own contract before opening the product for sale.

Markup and margin use different starting points

Here is an illustrative calculation: a net cost of £250 with a 20% markup gives a selling price of £300. The £50 difference is 16.67% of the selling price. That is why a markup percentage and a margin percentage should not be used interchangeably.


For a separate gross-rate example, a £300 selling price with 15% commission gives £45 commission and a £255 cost. These are simple examples, before other charges or adjustments. Compare the configured rule with your supplier agreement.

Keep the contract currency visible

The API conventions return amounts in each product’s contract currency and do not convert them. A response can therefore include different currencies. Confirm how your own website displays and collects payment before combining amounts in a total.


Check a cross-season stay and the actual party. Accommodation rules include room capacity, child ages and stay restrictions. Use the returned breakdown to compare the result with the source rates and review any local charge separately.

Understand what reserves inventory

Search results describe what was available when the response was produced. The booking flow checks availability again at hold. Read the returned expiry values and finish confirmation within the permitted window; a displayed price alone does not reserve the product.


The booking reference describes automatic expiry of unconfirmed holds. Follow the returned expiry time instead of building a checkout around an assumed fixed duration.

Test each product’s rules

Availability checks vary by product. The documentation describes accommodation inventory and occupancy controls, while its car-hire section describes contract dates, rate tiers and driver eligibility. Agree the actual capacity controls for the product you intend to sell.


Include a sold-out or closed date, a rejected occupancy and an expired hold in your test plan where applicable. These checks show what the traveller and your team will see when a booking cannot proceed.


Sources reviewed on 20 October 2026: Contracting API conventions, availability and booking flow and product coverage. The calculations and product illustrations on this page are examples, not supplier offers.

Check the inventory rules for each product.

The booking flow checks the selected product again at hold. Capacity and eligibility rules vary by product family.

Accommodation availability

The API reference describes room inventory, reservations, stop-sales, closures and occupancy checks. Review the applicable contract and dates before confirming.

Departure availability

For a tour, coach or train, check the chosen departure and its bookable status. Test a full or closed departure as well as one with available space.

Per-seat holds

Where seat selection is supported, use the returned seat information and check the response to the hold request.

Netted against everything at once

Accommodation availability nets the API holds, the property’s own in-app diary and room closures together.

Abandoned holds release themselves

An unconfirmed hold expires at the returned expiry time and releases its reserved inventory.

Capacity semantics are explicit

Check capacity and eligibility against the relevant product’s documentation and account setup.

Search it exactly like your customer will.

A search screen per product. Put in a date and a party and see what a customer would see: live prices, seats left, passenger type columns, the party total and a working Book button. Open the seat picker and choose a seat.

Price check on accommodation, car hire and transfers runs a real stay and shows the full working line by line, including the margin. Traveller preview shows a property exactly as it appears in a search.

The same engine your website uses

Spot an underprice or a missed child rate before anyone can buy it

Compare the result with your source contract before opening sales.

Coach search

Example journey · 2 adults, 1 child

Pick-up

Adult

Child

Seats left

Cardiff 06:15

£34.50

£22.00

18

Barry 06:40

£27.60

£18.00

18

Bristol 07:30

£24.20

£16.00

18

Party total from Cardiff

2 adults, 1 child

£91.00

Book

Questions people ask

What happens when two people book the last seat?

The booking flow rechecks availability at hold. Handle an availability-changed response by refreshing the quote and asking the traveller to review the available option.

How long does a hold last?

Read the expiry time returned with the hold. Confirm within that window; an expired hold needs a fresh quote and hold.

How are children priced?

By real age band, then by a rule that can be free, a fixed amount or a percentage of the adult rate, recalculated per night. If no band covers a child, the loader tells you before it saves.

Does the engine convert currencies?

No. Each contract prices in its own currency and a single response can contain several. Live contracts in two currencies are flagged on the readiness panel.

Review your rates and availability setup.

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