Start a project

Digital products · Case study

From reservation to settlement.

Five fulfilment partners, four settlement currencies, and six roles across three levels of access.

Sector
Car rental
Year
2026
Kind of work
Digital products

Situation

The business brokers car rentals it does not own. Online travel agents sell the rentals and local partners hand over the cars, at stations in nine countries. Every booking comes from the supplier, which emails a spreadsheet of them several times a day.

Challenge

Every supplier booking had to become counter work and a partner settlement.

The operation needed a shared view of what is arriving at each station, a structured check-in and handover, and commission settled against each partner's agreement across five partners and four currencies.

Our approach

We treated the supplier's file as an input, not the record, and built one flow to settlement.

A booking starts as a line in the supplier's spreadsheet; when the customer collects the car, it goes through the counter to the partner's settlement. We recommended treating the supplier's file as an input rather than the record: each booking becomes one record that the counter work and the settlement attach to. On that basis we built one flow. Staff check cars in and hand them over from a phone, with checklists and photos. Commission is worked out against each partner's agreement, including dated exceptions. Automatic checks catch any booking that fails to arrive, raise an alarm when the supplier's files stop arriving on time, and close no-shows. Each day brings one report across all partners; partners see their own bookings directly; and each person sees only what their role allows.

  1. Booking importSupplier booking files collected from the mailbox several times a day, each booking created or updated by its reservation code.
  2. Check-in and handoverDone from a phone at the counter, with checklists, photos and deductions recorded against the booking.
  3. Commission settlementWorked out against the agreement in force on the day, with dated exceptions, and never added up across currencies.
  • Deposit and close-outMoney taken and returned is recorded in the currency it moved in, against the booking it belongs to.
  • Automatic checksBookings the supplier's file silently dropped, an alarm when the files stop arriving on time, and no-shows closed automatically.
  • Daily reportingA report across all partners each day, with a PDF statement for every booking behind it.
  • Partner templatesRate, fleet and location lists that export in the supplier's exact upload format.
  • Partner accessEach partner's own system reads its own bookings directly, and only its own.
  • Roles and accessSix roles across a station, a partner and the whole business, each seeing only what it allows, enforced throughout rather than only on screen.

How it works

One flow, start to finish.

Workflow

Select a stage to see what it does, what it receives and what it hands on.

ControlSourcesCaptureWorkOutcomeControlSourcesCaptureWorkOutcome

Select a stage to see what it does, what it receives and what it hands on.

  1. Sources: Supplier journal. Receives from: Nothing. Hands on to: Booking import.
  2. Capture: Booking import. Supplier booking files collected from the mailbox several times a day, each booking created or updated by its reservation code. Receives from: Supplier journal. Hands on to: Check-in and handover, Automatic checks.
  3. Work: Check-in and handover. Done from a phone at the counter, with checklists, photos and deductions recorded against the booking. Receives from: Booking import. Hands on to: Settlement per agreement, Deposit and close-out.
  4. Work: Deposit and close-out. Money taken and returned is recorded in the currency it moved in, against the booking it belongs to. Receives from: Check-in and handover. Hands on to: Settlement per agreement.
  5. Outcome: Settlement per agreement (Commission settlement). Imported bookings, counter work and partner settlement are recorded against the same booking, and a booking the supplier's file silently drops raises an alert instead of waiting to be found. Receives from: Check-in and handover, Deposit and close-out. Hands on to: Nothing.
  6. Control: Automatic checks. Bookings the supplier's file silently dropped, an alarm when the files stop arriving on time, and no-shows closed automatically. Receives from: Booking import. Hands on to: Nothing.
Workflow diagram, drawn from this case study: the steps the system is built around, and the part of it that handles each. Not a product screenshot.

A station opens on what is arriving today. A booking goes from arrival to check-in with a checklist and photos, to handover, to close-out with deposit and deductions. Above the station, each partner and the business as a whole see the same bookings rolled up: what settled, what is in dispute, what the supplier's file should have sent and didn't.

What changed · As at September 2026

Thousands of bookings, every voucher matched.

5,236bookings, stations in nine countries
693supplier imports
1,285vouchers matched, 0 open gaps
2,227requests from partner systems, no failures

Imported bookings, counter work and partner settlement are recorded against the same booking, and a booking the supplier's file silently drops raises an alert instead of waiting to be found.

Live and processing daily. The station rollout to counter staff has not happened yet; today the automated import and an internal group use it.

For technical teams

Engineering decisions

How it was built.

Treat the spreadsheet as an input, not a record. A worker drains the mailbox through Microsoft Graph, parses each journal, resolves station and car group, and creates or updates each booking by the supplier's reservation code.

Everything the Terminal records (checklists, photos, deductions, outcomes, money at close-out) lives in side tables keyed to the imported booking, so re-importing a journal can correct a booking's details without ever overwriting work done at the counter. Commission is a pure function of the booking and the agreement in force on its date, which makes settlement reproducible and an exception explainable; currencies are never added together and Gulf currencies are held at three decimals. Watchdogs detect reservations the feed silently dropped, alarm on import cadence and auto-close no-shows. Partner systems read through read-only APIs, each partner with its own bearer key, and rate, fleet and location templates export in the supplier's 18-column upload format. Six roles across three scopes (station, partner, global) are enforced in every query and structurally: composite foreign keys make a cross-station row unrepresentable rather than merely filtered out.

Built with

Next.js 15PostgreSQLRedisMicrosoft Graph