Confirms baggage/seat pricing for a selected offer before booking. Requires an Idempotency-Key header.
POST/api/v1/FlightBooking/Extras
Ticketing strangler Phase 2 (2026-09-02, docs/MICROSERVICES_DECOMPOSITION.md) -- extras/ ancillaries, the step between search and book in the real flow, needed because the confirmed real consumer (ondgo-frontend's agency POS module) calls it there. Legacy's GetExtraChargesAndProducts dispatches per passenger-model on AirlineServiceType; this mirrors that with an explicit Crane/Videcom leg each (not an arbitrary N-model list -- a deliberate, stated scope simplification, matching real usage of at most one Crane and one Videcom selection per checkout).
Crane's leg (ondgo.gds's ISupportsExtras.GetExtrasAsync on CraneGdsAdapter) is a pure read, called straight through every time. Videcom's leg reuses VidecomGdsAdapter's own VerifyPriceAsync, which -- despite the "price" name -- creates a REAL reservation against live airline inventory (see ondgo.gds's ISupportsExtras/VidecomGdsAdapter doc comments for the full finding). The idempotencyKey header therefore gates the Videcom leg through ExtrasReservationStore: a repeat call with the same key returns the cached prior result instead of reserving again -- a real improvement over the legacy frontend's unprotected repeat-call behavior, not mere parity with it.
Response shape matches exactly what review-fare.component.ts's formatExtraCharges reads
(confirmed by direct read, not guessed): data[0].extraChargesResponseModels[]. craneExtraChargesResponse... for Crane, data[0].videComPricingResponses[].pnr... for
Videcom.
Request
Responses
- 200
- 400
- 401
OK
Bad Request
Unauthorized