Book 30 min
White-label booking engine

One engine. Any interface. Any provider.

Chat is one way to shop. A web form is another. Both sit on the same engine: one search across every supplier you hold, one cart across them, one checkout. Your brand, your contracts, your prices.

Read the spec now, no key. Try the bot now, no signup. Keys for the full storefront come by request: its inventory runs on our providers’ own sandboxes, and we keep those working for the people using them.

No key
Read the whole API contract before you talk to us
15+
Provider APIs we already speak, including the one you are on
6
Chat channels live, plus your own app
3
Pilot places open this quarter

This is a real cart, not a mockup.

Partners run around 5,000 bookings a quarter through it, and 64% of those carts hold more than one item. We cannot tell you whose they are: the engine is white-label, and naming them would remove the thing they bought.

A traveller assembling an itinerary across several messages, then removing an item from the cart and having the total re-derive. Live inventory, real prices, real booking references.

We would rather show one unretouched screenshot than a page of illustrations. Open the sandbox and put the same flow through it yourself.

Open the sandbox

Keys from the request form, or open it in Telegram with none. Test card 4242 4242 4242 4242, any future expiry, any CVC.

A chat conversation showing a two-item cart — a WestJet flight from Winnipeg to London and a Hampton by Hilton hotel — then the flight being removed and the cart recalculating to the hotel alone. A traveller's bookings list holding items from several suppliers, with a cancellation dialog open on a WestJet flight. It states the fare is non-refundable, that the refund would be USD 0.00 against a cancellation fee of USD 228.55, that changes are not allowed, and that the action cannot be undone.
Cancelling quotes the real penalty before you commit — in the same place the trip was booked, with no phone call in the loop.

One engine. You choose how much of it you touch.

The same deterministic Rust core underneath all three. What changes is how much of the interface is yours.

The API

You own the interface. We aggregate your providers into one result list, then handle the cross-supplier cart, booking and post-sale.

  • Your NDC carriers direct, the rest from the GDS, one list
  • Public OpenAPI spec, no key needed to read it
  • Hotels, flights, events and car rental in one cart
  • Checkout, bookings and cancellation in the same contract
  • The chat assistant itself, as an endpoint
  • Your auth, or delegate ours
  • For teams with their own front end

API overview →

Reference storefront

The sandbox is a working storefront built on that same public API — every screen in it is a call you can make. Brand it and ship it rather than build from nothing.

  • Every screen is a documented API call
  • Multi-item cart across suppliers
  • Checkout, saved travellers and a bookings page
  • Your brand, your domain
  • For sellers who need a site, not a spec

Chat channels

Fully turnkey. We configure the channel, the branding and the providers; nothing for your team to build.

  • WhatsApp, Telegram, Slack, Teams, Messenger, Instagram
  • Live and taking real bookings
  • Your suppliers and rates, or ours
  • For sellers with no engineering to spare

You are not buying inventory. You are buying a shop to sell it in.

A channel you cannot currently sell in

Today that thread ends in a link to your website, and most of them never come back. With the engine behind it, it ends in a booking.

One cart, the whole trip

Three hotels, two flights, a car and an event, from different suppliers, in one basket, checked out together. Any number of items, and the basket is not fussy about what they are: if you sell it and it has a supplier behind it, it goes in the same cart.

Your contracts, your prices, your margin

Your credentials, your rates, your customer. The commercial relationship stays yours end to end.

As much engineering as you want, including none

Turnkey: nothing to design, nothing to integrate. Or take the API and build your own front end. Your developers are in the critical path only if you put them there.

One cart across suppliers, one checkout A flight, a hotel, a car and an event, each shopped from a different supplier API, are held together in a single cart. One checkout settles all of them and returns confirmed bookings. Each item keeps its own provider, its own currency and its own cancellation terms. Flight · supplier A Hotel · supplier B Car · supplier C Event · supplier D One cart any number of items One checkout confirmed bookings every item keeps its own provider, currency and cancellation terms

You have already paid to acquire this customer.

The margin is rarely in the first booking. It is in the hotel beside the flight, the car, the event, the insurance. Attach rates stay low anyway, and rarely because of intent. There is no basket open, and no conversation to offer into.

A confirmation page gives you one moment. An email gives you an open rate. Neither knows the trip is eleven weeks away, and neither can ask a question.

A conversation does not close. The trip context is already in it, so an offer needs no form and no second round of acquisition spend. And because the cart is already there, the distance between yes and paid is one tap.

Every one of those is margin on a customer whose acquisition cost you have already written off. That is the whole argument.

This lands hardest when four things are already true.

  1. Customers already message you

    A WhatsApp number, a Telegram channel, a Messenger page, or chat in your own app — with real traffic in it. We add selling to a conversation that already happens.

  2. You have inventory, or a reason to sell ours

    Your own contracts and negotiated rates, connected as they are. Or no supply of your own, and you sell on ours.

  3. Someone owns the number

    Someone accountable for revenue on the travel line. Pilots that belong to no one's P&L produce a demo and nothing after it.

  4. Enough volume to be worth automating

    Enquiries arriving faster than a team can answer them one by one. That is where this starts showing up in the numbers.

Three pilot partners. Not a waiting list.

The banking, OTA and loyalty modules are built and running. A pilot configures what already exists against your brand and your suppliers. Three at a time is what gets our full attention.

What a pilot is

  • One surface and one supplier set, fully branded as you
  • Live and taking real bookings, not a demo environment
  • Your rates, your rules, your customer
  • Scoped and agreed before anything longer is signed

Why this year

  • Retail settled cart and checkout two decades ago. Travel still sells one vertical at a time
  • One cart, one total, one confirmation, one cancellation that needs no phone call
  • That plumbing takes years to build. It is running now
  • The teams buying an LLM chatbot this year are buying something that cannot take a payment

Every trip your customers book today is bought in pieces, because nothing you can hand them holds the whole thing in one cart.

Take one of the three

What you bring, what we do.

You bring

  • A surface: your engineers, a storefront to brand, or a channel
  • Your supplier credentials and negotiated rates, where you have them
  • Brand: name, colours, tone, domain
  • Your pricing rules and commercial terms

We do

  • Issue API credentials, brand the storefront, or connect the channels — whichever you came for
  • Wire in your providers and merge them into one result list, or run you on ours
  • Wire up payment — Stripe in your account, your own gateway, or your existing rails
  • Run it, monitor it, and handle post-sale automation

API credentials: same day. A branded storefront or a live channel is scoped work, and we put a date on it in the first conversation.

Where the model is, and where it isn't.

A monolithic service in Rust handling availability, pricing, cart state, booking and post-sale. Deterministic: same input, same itinerary, same price, every time.

A normalisation layer maps every supplier schema into one internal representation, so adding a supplier never changes booking logic.

Language models do one job: talking to the end user. They never select inventory, compute a price or commit a booking. Remove them and the engine still runs.

Rust core
Deterministic booking path
Provider-agnostic normalisation
Per-partner provider config
No token cost per booking
Architecture diagram. A conversation layer running a language model sits to one side of the booking path, not within it: it interprets intent and phrases replies, and holds no booking authority. It passes a structured request sideways into the deterministic core, written in Rust, which owns availability, pricing, cart state, booking, cancellation and refunds, and contains no model inference. The core connects to a payment layer running on Stripe or the partner's own gateway, holding no card data. Below the core, a provider-agnostic normalisation layer maps every supplier into one internal schema, and beneath that sit the supplier APIs — more than fifteen integrated, across GDS, NDC and bedbanks. Partners connect their own credentials, or use ours.

What the platform actually does

Capabilities, not superlatives. Each one is something you can put in front of a customer.

01

Deterministic booking path

Same input, same itinerary, same price. No model inference decides what gets booked, so a bad model day cannot become a bad booking.

Reproducible
02

One cart, every supplier

The customer builds an itinerary across messages and reviews it as one summary. Checkout books every supplier in it as one run, stopping at the first item that baulks rather than charging on in silence.

Multi-item cart
03

Payment on your rails

Cards in your own checkout, a provider's hosted page, or Stripe. Each provider is charged as its own item books, and the card is never stored. Your own gateway or internal rails connect instead. Merchant of record is set per partner.

Payments your way
04

Cross-sell in the same thread

Ancillaries offered in the conversation that produced the booking. No redirect, no second checkout.

Ancillary revenue
05

Closed user group distribution

Closed user group and private rate channels are supported. The supplier decides what goes to a closed channel; we carry that decision.

CUG / private rates
06

Automated post-sale, or we don't ship it

A provider goes live only when cancellation and refund work without a call centre. Your customer changes or cancels where they booked — no phone number, no ticket for your support team.

Full lifecycle
07

Full white label

Your domain, brand, tone, pricing rules and reporting. GoChatTravel is not named anywhere the customer can see. You own the relationship and the margin.

Invisible engine
08

Six live channels, plus your own app

WhatsApp, Telegram, Slack, Teams, Messenger and Instagram Direct are live. Slack and Teams reach a different buyer — corporate travel is already discussed there. Other messengers and your own app on request.

Multi-channel
09

Travel policy, applied before the booking

Caps, cabin and room class, advance purchase, preferred suppliers — applied while the traveller is still shopping. Out-of-policy is labelled there, not found by finance a month later.

Policy engine
10

Approvals where the work already happens

Sign-off goes to the approver in the Slack or Teams channel the company already lives in. One tap, and the held cart checks out. This runs in front of whatever programme you already have, and it is the step those tools lose people on.

Approval flow
A checkout run with nothing booked yet. The flight from Montreal to Paris is marked Under review, with the line: a payment was sent for this item and we are still confirming it with the provider. The hotel below it is still waiting. A control offers to stop after the current item.
Money left, the provider has not answered yet. Every risk team asks what happens here. It is a state the traveller can see, not a spinner — and nothing retries a charge behind their back.

We are the layer, not the supply.

We do not sell you inventory and we are not trying to out-supply the people who do. We connect to them — Duffel, Nuitée, the GDSs, bedbanks, your own direct agreements — and put one cart, one checkout and one post-sale flow on top, in whatever interface you sell through.

  1. You only need hotel supply

    Go to a hotel specialist directly. More properties, cheaper, and you will not be paying for a layer you are not using.

  2. You only need flights

    Same answer: go direct to a flight API. One vertical, one supplier, no cart to speak of — you do not need us for that.

  3. You already have a corporate travel programme

    Good — keep it for duty of care, expense and mid-office. We go in front of it: the basket, the checkout, and the approval where your people already talk.

  4. You want a cart and a checkout over what you already have

    That is us. Several suppliers in one basket, settled together, with policy and approvals running where your people already talk — on top of the programme or the supplier you already pay for.

We do not charge for search, because we are not the one selling you the inventory. If a supplier you brought charges for its own searches, that stays between you and them.

How this compares

Not against the suppliers themselves — we sit on top of those. Against the two things you would otherwise do: build this layer yourself on their APIs, or hand the job to an LLM-agent tool.

Capability comparison between GoChatTravel, building directly on supplier APIs, and LLM-agent travel tools.
Capability GoChatTravel Direct on supplier APIs LLM agent tools
Deterministic booking path Yes Yes No
Runs inside chat with no front end to build Yes No Yes
Persistent multi-item cart across messages Yes You build it No
Checkout included, or your own rails Yes You build it No
Travel policy and approval flow Per partner You build it No
Automated cancellation, or the provider is not shipped Yes, or we drop the supplier Provider-dependent Rarely
Closed user group / private rate channel Yes Provider-dependent No
Bring your own GDS / NDC credentials Yes Sometimes No
Engineering effort required from you None, or as much as you want Substantial Moderate
Per-booking token cost None None Yes

Almost none of this has to be ours.

The engine is a core with adapters around it. Every one of these slots takes what you already have, or ours if you would rather not hold it.

Your suppliers

Your credentials, your negotiated rates, and those are the rates your customers see. One we have not met before is an adapter, not a project — connecting it never touches booking logic.

  • Amadeus, Sabre, Travelport GDS
  • Direct NDC agreements at your fares
  • Bedbanks, wholesalers, direct chain APIs
  • One we have not connected yet: weeks, not a quarter
  • Or run on ours, where you hold none

Your interface

Chat is one way to shop, a web form is another. Both sit on the same engine, so the surface is a choice rather than the product.

  • Call the API from your own web or mobile app
  • Brand the reference storefront and ship it
  • Embed the assistant, or leave it out
  • Or take a chat channel, turnkey

Your channels

The numbers and workspaces your customers already message. We configure them; you keep them.

  • Your WhatsApp Business number
  • Your Telegram bot token
  • Your Slack or Microsoft Teams workspace
  • Your Messenger and Instagram pages

Your payment rails

Each provider is charged as its own item books, and the card is never stored. Whose rails carry that is yours to decide.

  • Your PSP, gateway or internal rails
  • A provider’s own hosted payment page
  • Or Stripe, with nothing to set up
  • Merchant of record set per partner

Your customer’s identity

You issue the token, we verify it. We never become the identity provider for someone else’s customer.

  • A delegated JWT you already issue
  • SSO, or your own IdP
  • Server-to-server API keys
  • No second account for your customer to hold

Who this fits today

Four shapes of partner the engine already fits, and what each one plugs in.

Regional OTAs & tour operators

Add a chat channel and inventory breadth without hiring an engineering team to build distribution.

  • Sell in chat alongside your existing site
  • Your supplier contracts, or ours
  • Cross-sell inside one conversation
  • Your brand, your margins

Loyalty programmes & fintechs

Turn points, cashback or a card programme into a travel product without owning travel technology.

  • Booking inside your app or chat channel
  • Payment flow adapted to your rails
  • Points and rewards applied at checkout
  • Closed user group rates for members

TMCs & corporate travel

We are not the travel programme. We are where the trip gets bought — in front of whatever you already run, in the channel your people already use.

  • Travel policy applied at search and at checkout
  • Approvals in Slack or Teams, not by email
  • Hotels, flights, car rental and events in one cart
  • Your negotiated corporate rates

Airlines & larger enterprises

Add hotels, car rental and events to your existing channels, on your own NDC and GDS connections.

  • Ancillary attach in chat channels
  • NDC and GDS connections supported
  • Private fare distribution via CUG
  • Closed-channel member pricing

Commercial terms are set per partner.

A loyalty programme with its own hotel contracts and an OTA on our suppliers are not the same deal. Tell us which you are and we put numbers on it in the first conversation.