Supplier Cancellation Fees — How They Work in Practice

To be Reviewed

A practical guide to how supplier cancellation fees are calculated, how itinerary items behave when cancelled, and how confirmation status and mode changes affect what you owe your supplier.

Version 14 min read | March 31, 2026 Gallery

Supplier Cancellation Fees — How They Work in Practice

This guide covers what actually happens in Kaptio when you cancel a service that has been booked with a supplier. It explains the data changes, the fee calculation, and the confirmation workflow you need to follow.

Prerequisites: Supplier Cancellation Policies must already be configured and linked to Supplier Agreements. See the Supplier Agreements Configuration Guide for setup steps, or the Supplier Cancellation Fees outcome page for full configuration reference.


Supplier vs Customer Cancellation Fees

These are two separate features in Kaptio that often apply to the same booking.

Customer Cancellation Fee — What you charge your traveller when they cancel a booking. Configured via Cancellation Configurations (tiered rules on the booking or package level). Applies to the customer’s invoice and determines how much of the selling price the traveller forfeits. Direction: Traveller → You (the operator).

Supplier Cancellation Fee — What your supplier charges you when you cancel a booked service. Configured via Supplier Cancellation Policies — tiered rules linked to supplier agreements. Applies to your cost lines and margin. Direction: You (the operator) → Supplier.

Both fees are tracked independently on the same booking. When a cancellation happens, the customer pays you their cancellation fee and you pay the supplier theirs. The difference between what you retain from the traveller and what you owe the supplier is your margin on the cancellation.

Scope: Supplier cancellation fees are currently only supported in Operational Itineraries. Support for other itinerary types will be extended in a future release.


End-to-End Cancellation Walkthrough

  1. A cancellation is triggered via one of three paths: passenger cancellation triggering re-evaluation, the Cancel action on the Bookings tab, or a service deletion from the Builder or Costings tab.
  2. The system checks the gate: the itinerary must be Operational and the item’s ConfirmationStatusId__c must be in the qualifying list (21–25, 31–34, 41–45).
  3. If previously confirmed → status changes accordingly.
  4. The system identifies the supplier from the itinerary item’s service (Item__r.Supplier__c).
  5. The system resolves the active Supplier Agreement for that supplier, matching validity dates, brand, and channel. If the agreement has Supplier Agreement Assignments, the highest-priority match is used (Price Category > Service > Direct).
  6. Cancellation price lines are created if required.
  7. A cancellation itinerary item is created with Mode__c = 'Cancellation', Hidden__c = true, and ConfirmationStatusId__c = '13' (Unconfirmed Cancellation).
  8. Passenger assignments are split — passengers whose units were removed are assigned to the cancellation line; remaining passengers stay on the original item.
  9. The original item is updated: quantity reduced, repriced at the new lower quantity, confirmation status moves to Unconfirmed Amendment (12).
  10. The operator follows the standard supplier confirmation workflow: Send Cancellation → Sent Cancellation (33), then supplier acknowledges → Confirmed Cancellation (43).

Three Ways a Supplier Cancellation Can Be Triggered

There are three distinct paths that create a supplier cancellation line on an Operational Itinerary. Each path ultimately runs the same fee calculation, but they start from different user actions.

1. Passenger Cancellation via Re-evaluation

A passenger is cancelled (via API pax import or manual update — setting Cancelled__c = true). The Operational Itinerary re-evaluation process runs, KTAPI returns an updated quantity for each affected service line, and the system detects that quantity has dropped below the confirmed quantity. This creates a cancellation line for the difference.

This is the most common path in operational itinerary workflows.

2. Cancel Action on the Bookings Tab

An operator selects one or more service lines on the Bookings tab and uses the Cancel action. If the itinerary is Operational and the item’s confirmation status is in the qualifying list, the system marks the item as a cancellation line and applies fees.

3. Service Deleted from the Builder or Costings Tab

An operator deletes a service from the Itinerary Builder or Costings tab. If the itinerary is Operational and the item’s confirmation status qualifies, the system converts the deleted item into a cancellation line (instead of removing it) and applies fees.

All three paths check the same gate: the itinerary must be an Operational Itinerary and the item’s ConfirmationStatusId__c must be in the qualifying statuses list (see below).


Qualifying Confirmation Statuses

Supplier cancellation fees are only applied when the service item’s confirmation status at the time of cancellation is one of these qualifying statuses:

GroupStatusesCodes
ReviewReview, Review Rate, Review Availability, Review Rate & Availability, Reconfirmation Rejected21, 22, 23, 24, 25
SentSent Confirmation, Sent Amendment, Sent Cancellation, Sent Reconfirmation31, 32, 33, 34
ConfirmedConfirmed, Confirmed Amendment, Confirmed Cancellation, Reconfirmed, Pending Amendment41, 42, 43, 44, 45

Key behavioural difference by trigger path:

  • Re-evaluation (passenger cancellation) — creates a new, separate cancellation line alongside the original. The original item keeps its reduced quantity; the new hidden line carries the cancellation fee.
  • Cancel on Bookings tab / Delete from Builder or Costings — the fee is applied directly to the same service line. The existing item is converted into a cancellation line (mode → Cancellation, hidden); no additional line is created.

This means statuses like Sent Cancellation (33) and Confirmed Cancellation (43) — where the item is already in a cancellation workflow — still qualify. If a further cancel action occurs while in one of these statuses, the fee is applied to that same line rather than spawning a second cancellation record.

If the item’s status is not in this list — for example, Unconfirmed (11), Unconfirmed Amendment (12), Waiting List (14), Pending (15), or Confirmation Not Needed (51) — no cancellation line is created and no fee is charged, even if a valid cancellation policy exists.

The rationale: if the service was never sent to or confirmed by the supplier, the supplier has no booking to charge a fee against.


How Fee Resolution Works

When a service cancellation is being evaluated, the system resolves the applicable supplier fee in this order:

  1. Identify the supplier for the service being cancelled
  2. Find the active Supplier Agreement for that supplier (considering validity dates, brand, and channel)
  3. Read the Supplier Cancellation Policy linked to that agreement
  4. Evaluate the policy’s rules against the number of days between now and the travel date
  5. The rule whose DaysBeforeTravel threshold is the tightest match determines the fee

Worked Example

A hotel supplier has this cancellation policy:

RuleDays Before TravelCharge TypeValue
Early cancellation60Percentage10%
Standard cancellation30Percentage50%
Late cancellation5Percentage100%

If the travel date is April 15 and you cancel on:

  • February 1 (73 days out): The 60-day rule applies → 10% of service cost
  • March 20 (26 days out): The 30-day rule applies → 50% of service cost
  • April 10 (5 days out): The 5-day rule applies → 100% of service cost

What Happens When You Cancel an Itinerary Item

When an itinerary item is cancelled, Kaptio updates the item’s Mode, Confirmation Status, and price lines. The behaviour depends on the item’s confirmation status before cancellation.

Mode Changes

Itinerary items have a Mode field that tracks their lifecycle state. During cancellation, mode transitions follow this sequence:

ModeMeaning
ActiveItem is live and part of the booking
Operations PendingAll passengers have been removed from a confirmed item — a cancellation line is created and the original item moves to this mode while awaiting operational resolution
CancellationItem has been internally cancelled — cancellation price lines are applied, but the supplier may not yet be notified
DeletedItem is fully removed from the active booking — its amounts are no longer considered towards any itinerary totals. No cancellation fee applies to items in this mode.

When you cancel an item, it moves from ActiveCancellation. If all passengers are cancelled from a confirmed item (e.g. via re-evaluation), the original item moves to Operations Pending while the new cancellation line carries the fee. Completing the supplier cancellation workflow (Send Cancellation → Confirm, or Cancel Manually) on a fee-bearing row does not change mode to Deleted — those rows stay Cancellation so costs and fees remain on the booking for supplier invoicing. Deleted is for lines that are actually removed without that lifecycle (for example non-qualifying deletes or unconfirmed cancellations with no supplier booking).

Important: Do not confuse the Cancellation mode (an active fee line, visible in costings and supplier invoice lines) with the Cancelled mode (a deprecated status that is automatically rewritten to Deleted by the trigger on save).

Confirmation Status Transitions by Trigger Path

Confirmation status can change in two ways:

  1. System-driven (automatic on save) — When ConfirmationAction__c is empty, ItineraryItemAmendmentFactory runs on itinerary item save: quantity drops (re-evaluation or save from Builder/Costings) or Mode__c changes push the line into Unconfirmed Amendment (12) or Unconfirmed Cancellation (13) as appropriate. This is what moves the original service line after a partial passenger cancellation.
  2. Operator-driven (Bookings tab) — Actions such as Send Cancellation, Confirm, or Cancel Manually set ConfirmationAction__c on that update; the factory skips automatic status handling for that save, and the controller/confirmation workflow advances statuses (e.g. 13 → 33 → 43).

The tables below are right after the supplier cancellation trigger succeeds (fees applied where applicable), before the operator picks the next Bookings action.

Path 1 — Re-evaluation (passenger cancellation):

A new hidden cancellation line is created. The original item is not converted — it stays as a separate record with reduced quantity (or Operations Pending when no passengers remain).

ItemStatus after triggerMode after trigger
Cancellation line (new)Unconfirmed Cancellation (13)Cancellation, Hidden
Original line (partial — some pax remain)Unconfirmed Amendment (12) — automatic when Quantity__c drops while the line stays ActiveActive
Original line (all pax removed)Unconfirmed Cancellation (13) — automatic when Mode__c moves to Operations PendingOperations Pending

Path 2 — Cancel on Bookings tab:

The existing item is converted in place — no new line is created. The flow uses markAsCancellation on the line (status 13, hidden, mode Cancellation). On the same save, the line may already be tied to a Bookings Cancel action (ConfirmationAction__c populated), so the operator then advances status explicitly from the tab.

ItemStatus after triggerMode after trigger
Same line (converted)Unconfirmed Cancellation (13)Cancellation, Hidden

Path 3 — Delete from Builder or Costings tab:

Same as Path 2 when the qualifying gate is met — the item is converted in place (markAsCancellation: 13, hidden, Cancellation).

ItemStatus after triggerMode after trigger
Same line (converted)Unconfirmed Cancellation (13)Cancellation, Hidden

If the item’s status is not qualifying (e.g. Unconfirmed), the delete is a regular removal — mode → Deleted, no cancellation fee.

Post-cancellation workflow (all paths — after status 13 on cancellation line(s))

For Paths 2 and 3, the same line is the cancellation row at 13 — use the cancellation workflow on that row.

For Path 1 (partial), you have two supplier-facing rows: the original line at 12 follows the amendment confirmation path (reduced quantity), and the cancellation line at 13 follows the cancellation path (fee for dropped units).

Shared cancellation steps on the cancellation line(s):

  1. Send CancellationSent Cancellation (33), mode stays Cancellation (not Deleted)
  2. Supplier acknowledges → ConfirmConfirmed Cancellation (43), mode stays Cancellation (not Deleted)

Or Cancel ManuallyCancelled Manually (61), mode stays Cancellation (not Deleted), when no supplier notification is needed.

Note: Mode stays Cancellation for these fee rows because cost and fee amounts still drive supplier invoicing. Do not expect mode Deleted from these Bookings-tab steps — Deleted applies to non-qualifying deletes and similar removals, not to completing this workflow on a supplier-cancellation line.

Confirmation Status Reference

StatusCodeWhen It Appears
Unconfirmed11Item not yet sent to supplier
Unconfirmed Cancellation13Item cancelled internally, supplier not yet notified
Sent Cancellation33Cancellation request sent to supplier
Confirmed Cancellation43Supplier has acknowledged the cancellation
Cancelled Manually61Cancelled without supplier interaction (was unconfirmed, or manually overridden)

How Fees Are Applied Based on Confirmation Status

The confirmation status at the time of cancellation determines whether supplier costs are retained. See the Qualifying Confirmation Statuses section above for the full list of statuses that trigger fee calculation.

Prior StatusCost LinesSupplier FeeRationale
Unconfirmed / Confirmation Not NeededZeroed outNoneNo booking existed with the supplier
Any qualifying status (Review, Sent, Confirmed groups)PreservedCalculated from policySupplier has a confirmed booking and may charge
Unconfirmed AmendmentPreservedCalculated from policyOriginal booking was confirmed; amendment was pending

When fees apply, the system creates cancellation price lines on the cancellation itinerary item:

  • COSTCANCELLATION — a negative price line that reduces the operator’s cost by the refundable portion (cost minus supplier fee). For example, if cost is $200 and the policy says 30%, the COSTCANCELLATION line is -$140 (the 70% refund).
  • SUPCOMMISSIONCANCELLATION — if the supplier agreement is a Commission-type agreement, a separate negative line that reduces the supplier commission proportionally. Only present when the agreement has AgreementType__c = 'Commission' and the original item had SUPCOMMISSION price lines.
  • COSTTAX — the tax line on the cancellation item is recalculated after the fee is applied.

Note: Sell-side cancellation lines are not created on Operational Itineraries, since operational items typically do not carry sell prices. The COSTCANCELLATION and SUPCOMMISSIONCANCELLATION lines are cost-side only.


Service-Based vs Passenger-Based Cancellation

Supplier cancellation fees are evaluated per itinerary item (service line) — the line you cancel or reduce. They are not defined as “cancelling the whole itinerary” (other services on the same operational itinerary are unaffected unless you act on them).

There are two ways the platform applies that scope:

Service-Based Cancellation

You cancel the full booked quantity for one service line — not the entire itinerary, only the item you use Cancel on (Bookings tab) or remove from Builder / Costings. There is no separate “partial quantity” path on this trigger; the whole line’s units on that record are treated together.

The existing itinerary item is converted in place into a cancellation line (mode → Cancellation, hidden, status → 13). No new line is created; the fee is applied directly to the same record. All passengers assigned to that item are included on the cancellation line.

Passenger-Based Cancellation

Passengers are removed from a service — typically by cancelling a passenger via API or pax import (Cancelled__c = true), which triggers re-evaluation. The platform then splits full vs partial for that same service line:

  • Partial (some passengers remain): KTAPI returns a lower updated_quantity. A new hidden cancellation itinerary item is created for the quantity delta; the original item stays Active with reduced quantity and the remaining passenger assignments.
  • Full (every passenger removed from that line): The cancelled quantity is the whole booked amount for that item. A cancellation line still carries the fee; the original item typically moves to Operations pending while operations resolve the now-inactive service (see Itinerary item modes above).

The re-evaluation flow (partial or full passenger removal) follows these steps:

  1. Re-evaluation detects reduced quantity: KTAPI returns updated_quantity for the service. If updated_quantity < confirmedQuantity, a cancellation is needed.
  2. Cancellation line is cloned: the system clones the original itinerary item. The cancellation line’s quantity is set to confirmedQuantity - updated_quantity (e.g., 4 confirmed rooms minus 3 remaining = 1 cancellation room).
  3. Passenger assignments are split: the system compares the updated occupancy from KTAPI against the original passenger assignments. Passengers who are still on the active service stay on the original item. Passengers whose units were removed are assigned to the cancellation line. Each cancellation line carries exactly the right passengers — no more, no fewer.
  4. Cancellation line is marked: the cloned item is set to Mode__c = 'Cancellation', Hidden__c = true, ConfirmationStatusId__c = '13' (Unconfirmed Cancellation), and ConfirmedQuantity__c = null.
  5. Prices are recalculated: KTAPI reprices both the original line (at the new lower quantity) and the cancellation line (at the cancelled quantity). The repriced cost on the cancellation line becomes the base for fee calculation.
  6. Cancellation fees are applied: the system calls the /supplier_cancellation_fees API endpoint, which resolves the supplier agreement and policy and returns COSTCANCELLATION and (if applicable) SUPCOMMISSIONCANCELLATION price lines with negative values. COSTTAX on the cancellation line is also recalculated.
  7. Original item is updated: the original item’s quantity is reduced, confirmation status moves to Unconfirmed Amendment (12), and its prices reflect the remaining passengers.

After the split, the original item (with fewer passengers) needs to go through the standard supplier confirmation workflow for the amendment, while the cancellation item follows the cancellation confirmation workflow.


What the Cancellation Line Looks Like

When a supplier cancellation is processed, the resulting cancellation line is a separate Itinerary_Item__c record with specific characteristics:

FieldValue
Mode__cCancellation
Hidden__ctrue — the line is hidden from the traveller-facing view
ConfirmationStatusId__c13 (Unconfirmed Cancellation)
ConfirmedQuantity__cnull
Quantity__cThe cancelled quantity (e.g., 1 room if 1 of 4 rooms was cancelled)

The cancellation line carries its own price lines:

Entry TypePurposeTypical Value
COSTFull cost of the cancelled quantity (before fee offset)Positive (e.g., $200)
COSTTAXTax on the cancellation line (recalculated after fee)Positive
COSTCANCELLATIONNegative offset representing the refundable portionNegative (e.g., -$140 for a 30% fee)
SUPCOMMISSIONSupplier commission on the cancelled quantityPositive (if commission agreement)
SUPCOMMISSIONCANCELLATIONNegative offset for the refundable commission portionNegative (if commission agreement)

The net of COST + COSTCANCELLATION gives the actual fee owed to the supplier (e.g., $200 + (-$140) = $60).

Finding the cancellation line: There is no ParentItineraryItem__c or other foreign key linking the cancellation line back to the original. Find it by querying the same itinerary for items with Mode__c = 'Cancellation' and Hidden__c = true, then match to the original by Item__c, service dates, and passenger context.

Bookings tab view: On the Bookings tab, the cancellation line appears as a row in cancellation/unconfirmed cancellation status. The total displayed for the line sums COST + COSTTAX + COSTCANCELLATION (it excludes SUPCOMMISSION and SUPCOMMISSIONCANCELLATION). For items with add-on or fee services, those services’ cost-side lines are included in the same way.


Supplier Invoice Lines After Cancellation

After cancellation, the booking will contain two sets of supplier invoice lines for the affected service:

Invoice LineModeRepresents
Original service lineActive (reduced quantity after a partial re-evaluation) or Operations Pending (original line when every passenger is removed and a separate cancellation line holds the fee)The remaining booking with the supplier, or a shell awaiting ops resolution
Cancellation fee lineCancellationThe fee the supplier charges for the cancelled portion

The cancellation fee line amount is determined by the Supplier Cancellation Policy rules. If the policy says 50% at 30 days and the service cost was $1,000, the cancellation fee line will show $500.


Common Patterns

Confirmed service, cancelled 45 days before travel

  • Policy: 60 days → 10%, 30 days → 50%, 5 days → 100%
  • Result: 10% cancellation fee (the 60-day rule applies)
  • Cost lines preserved, cancellation price lines created for 90% refund

Unconfirmed service cancelled

  • No supplier booking exists
  • Cost lines zeroed out, no cancellation fee
  • Status → Cancelled Manually, mode → Deleted

Partial cancellation — 1 of 4 passengers removed (re-evaluation flow)

  • 4 passengers in 4 rooms, confirmed with supplier. 30% cancellation policy (5-day rule).
  • Pax D is cancelled. Re-evaluation returns updated_quantity = 3.
  • Cancellation line created with quantity = 1 (4 - 3), assigned to Pax D only
  • Original line repriced at quantity = 3, passengers = Pax A, B, C
  • Cancellation line price lines: COST = $200, COSTTAX recalculated, COSTCANCELLATION = -$140 (70% refund)
  • If commission agreement (15%): SUPCOMMISSION = $30, SUPCOMMISSIONCANCELLATION = -$21
  • Original item moves to Unconfirmed Amendment (12) for supplier notification

Partial cancellation with commission-type agreement

When the Supplier Agreement has AgreementType__c = 'Commission', the system creates a SUPCOMMISSIONCANCELLATION price line alongside the COSTCANCELLATION line. The commission cancellation is calculated proportionally — the same percentage offset applied to the commission that was applied to the cost. Both cancellation lines appear on the cancellation item; the original item retains its standard SUPCOMMISSION line at the repriced value.


Back to Gallery