Compliance

To be compliant with the OSDM specification in total a party must be compliant with the offline as well as the online part of the specification. However, a party can decide based on their business need to implement the offline or the online part online based on the role they want to play in the sales process.

Compliance

Compliance with the Offline Part

An implementation of the bulk data exchange specification is compliant with the specification if

  • A feature specified in the data structure is implemented

Or

  • A fare providing the feature in its data is excluded from sale

A system receiving data for a fare must be able to understand all features and rules of the fare defined in the data and obey these features and rules or must not sell such a fare.

Compliance with the Online Part

Compliance as a Distributor

The following services/features are mandatory/optional to implement:

Resources Description Need to Support
/offers Resources to get bookable offers Mandatory is to provide at least admission offers.
/bookings Resources to manipulate bookings Mandatory
/bookings/{bookingId}/passengers Resources to manipulate passenger information at every stage of the flow Mandatory
/bookings/{bookingId}/purchaser Resources to manipulate a purchasers information at every stage of the flow Mandatory
/bookings/{bookingId}/fulfillments Resources to retrieve fulfillments, e.g. tickets Mandatory is to support A4 PDF tickets.
/bookings/{bookingId}/refund-offers Resources to get and accept a refund offer Mandatory is to support full refund.
/bookings-search/ Resources to search for bookings Mandatory
/fulfillments Resources to retrieve fulfillments, e.g. tickets Mandatory is to support A4 PDF tickets.
Trip planning Resources Description Need to Support
/places Resources to search for a place Optional
/trips Resources to search for trips Optional
Booking Modifications Resources Description Need to Support
/bookings/{bookingId}/booked-offers/{bookedOfferId}/ancillaries Resources to manipulate parts of a booking consisting of ancillaries Conditional
/bookings/{bookingId}/booked-offers/{bookedOfferId}/reservations Resources to manipulate parts of a booking consisting of reservations Conditional; mandatory to be supported in case seat assignment is provided.
Reservation Resources Description Need to Support
/availabilities Resources to get information on available seats for a booking Conditional; mandatory to be supported in case seat assignment is provided.
Advanced After Sales Resources Description Need to Support
/bookings/{bookingId}/documents Resources to add documents to a booking Optional
/bookings/{bookingId}/exchange-operations Resources to manage exchange operations Optional
/bookings/{bookingId}/release-offers Resources to get and accept a release offer to return a ticket as a preliminary step for a refund Optional
/bookings/{bookingId}/reimbursements Resources to manage reimbursements of unused tickets Optional
/bookings/{bookingId}/onHoldOffers Resources to manage on hold offers (extensions of the booking time limit) Optional
/bookings/{bookingId}/cancelFulFillmentOffers Resources to cancel a fulfillment Optional
Complaint Resources Description Need to Support
/complaints Resources to manage complaints Optional
Master Data Resources Description Need to Support
/coach-layouts Resources to get layouts of coaches Optional
/places Resources to get all places Optional
/products Resources to retrieve products information on one or more products Optional
/reduction-cards Resources to retrieve reduction Optional
/zones Resources to retrieve zone information Optional

All non-functional requirements defined in the services must be fulfilled.

Especially all implementations most support the Tolerant Reader pattern. This integration pattern helps creating robust communication systems. The idea is to be as tolerant as possible when reading data from another service. This way, when the communication schema changes, the readers must not break.

Compliance as a Carrier aka. Fare Provider

The following services/features are mandatory/optional to implement:

Resources Description Need to Support
/offers Resources to get bookable offers Mandatory is to provide fare offers
/bookings Resources to manipulate bookings Mandatory
/bookings/{bookingId}/passengers Resources to manipulate passenger information at every stage of the flow Mandatory
/bookings/{bookingId}/purchaser Resources to manipulate a purchasers information at every stage of the flow Mandatory
/bookings/{bookingId}/fulfillments Resources to retrieve fulfillments, e.g. tickets Mandatory is to support A4 PDF tickets.
/bookings/{bookingId}/refundOffers Resources to get and accept a refund offer Mandatory is to support full refund.
/booking-search/ Resources to search for bookings Mandatory
/fulfillments Resources to retrieve fulfillments, e.g. tickets Mandatory is to support A4 PDF tickets.
Trip planning Resources Description Need to Support
/places Resources to search for a place Optional
/trips Resources to search for trips Optional
Booking Modifications Resources Description Need to Support
/bookings/{bookingId}/booked-offers/{bookedOfferId}/ancillaries Resources to manipulate parts of a booking consisting of ancillaries Conditional
/bookings/{bookingId}/booked-offers/{bookedOfferId}/reservations Resources to manipulate parts of a booking consisting of reservations Conditional; mandatory to be supported in case seat assignment is provided.
Reservation Resources Description Need to Support
/availabilities Resources to get information on available seats for a booking Conditional; mandatory to be supported in case seat assignment is provided.
Advanced After Sales Resources Description Need to Support
/bookings/{bookingId}/documents Resources to add documents to a booking Optional
/bookings/{bookingId}/exchange-operations Resources to manage exchange operations Optional
/bookings/{bookingId}/release-offers Resources to get and accept a release offer to return a ticket as a preliminary step for a refund Optional
/bookings/{bookingId}/reimbursements Resources to manage reimbursements of unused tickets Optional
/bookings/{bookingId}/on-hold-offers Resources to manage on hold offers (extensions of the booking time limit) Optional
/bookings/{bookingId}/cancel-fulfillment-offers Resources to cancel a fulfillment Optional
Complaint Resources Description Need to Support
/complaints Resources to manage complaints Optional
Master Data Resources Description Need to Support
/coach-layouts Resources to get layouts of coaches Optional
/places Resources to get all places Optional
/products Resources to retrieve products information on one or more products Optional
/reduction-cards Resources to retrieve reduction Optional
/zones Resources to retrieve zone information Optional

All non-functional requirements defined in the services must be fulfilled.

On a technical level the implementation must support the Tolerant Reader pattern. This integration pattern helps creating robust communication systems. The idea is to be as tolerant as possible when reading data from another service. This way, when the communication schema changes, the readers must not break.

An implementation of specification is compliant with the specification if for a given version

  • A feature specified in the data structure is implemented

Or

  • A fare providing the feature in its data is excluded from sale

A system receiving data for a fare must be able to understand all features and rules of the fare defined in the data and obey these features and rules or must not sell such a fare.