Skip to main content

Changes and refunds

A customer-initiated change that removes something from a trip is previewed and applied with one contract. The order engine computes the impact per passenger and per line, applies it to the purchase orders, re-runs allocation and refunds what is no longer needed.

KindRemovesRequired field
remove_passengersThe named passengers from every line they travel on.passengers
cancel_cabinOne cabin line; its passengers leave the trip.lineId
cancel_purchase_orderOne whole purchase order; the trip's other orders stay.poId
POST /api/journeys/v1/oms-ops/changes/preview
POST /api/journeys/v1/oms-ops/changes

Both take the same body: tripId, kind, the field the kind requires, reason, actor, and optionally asOf (the date the cancellation tier is read at; default now). The preview writes nothing. Applying is idempotent on the Idempotency-Key header (or body idempotencyKey), and a preview and an apply of the same request give the same figures.

Fees​

Fees come from the tenant's cancellation policies: tiers by days before departure, each with a percentage of the unit price and an optional fixed fee per passenger. The policy for a line is chosen by its cancellationPolicyId, then by product type, then the default. For example, a cruise fare with 10% from 90 days, 25% from 60, 50% from 30 and 100% inside 30 days; drinks and excursions refundable until departure.

What the impact contains​

PartContent
passengersPer passenger leaving: price, paid, fee, retained, refund, held and still-open amounts, unit by unit with the policy applied.
reappliedToOther passengers' units that receive money released by the change.
lines, purchaseOrdersOld and new amounts; whether each order is cancelled.
payments, refundsPer payment: released, re-applied, refunded and held amounts; the refund records created.
reconciliationPaid, fees retained, refunded, held and re-applied totals, with balanced: true when every cent is accounted for at unit and trip level.

What applying does​

  1. Each affected purchase order receives an order change (a revision with the new line amounts and the passenger shares). An order whose lines all fall to zero is cancelled. The owning systems receive modify or cancel requests.
  2. Allocation is re-run for the trip.
  3. Money no longer needed is refunded to the payments it came from (or held as credit, by policy), and oms.refund.requested is published for the payment owner.
  4. oms.change.applied is published with the full impact.

In the end-to-end example, cancelling the excursion order refunds the €247.00 paid for it, while the booking order is unchanged.

Other changes​

ChangeHow
Change cabin, fare or sailing (repricing)A repricing proposal applied with POST /order-orchestration/purchase-orders/{poId}/changes.
Add productsA new purchase order on the trip.
Move many bookings after a disruptionA mass change.
A refund not caused by a change (goodwill, price match)POST /oms-ops/payments with kind: refund.
Not available

A name change or a passenger substitution as a single operation is not available on individual trips (group agreements support substitution between trips). Model it as removing the passenger and adding a purchase order for the new one. See Availability.

See the reference for Changes and cancellations.