I 80 Make it possible to refund booking parts of a fulfillment - UnionInternationalCheminsdeFer/OSDM GitHub Wiki

Business Need

One fulfillment consisting of multiple booking parts and a subset of the booking parts need to be refunded.

Example:

image

Initial Analysis

Approach: Perform an partial refund by indicating which booking parts should be refunded.

Thus, the system needs to price the remaining booking parts and generate a new fulfillment and invalidate invalidate the existing ones.

Initial Design

Model new endpoints similar to exchange called partial-refund. A partial refund request does not contain trip information but information about what part of the booking should be refunded.

Part of a booking that can be refunded are:

  1. Passenger(s)
  2. Optional reservation(s) or ancillarie(s)

Returned will be PartialRefundOffer exactly like a ExchangeOffer

POST /bookings/{bookingId}/partial-refund-offers

containing a PartialRefundOfferCollectionRequest like:

PartialRefundOfferCollectionRequest 
  overRuleCode
  refundDate
  passengerIdsToBeRemoved: [
    passengerId
  ]
  admissionsToBeRemoved: [
    bookingPartId
  ]
  reservationsToBeRemoved: [
    bookingPartId
  ]
  ancillariesToBeRemoved: [
    bookingPartId
  ]
  requestedFulfillmentOptions: [
    ..
  ]
  embed