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 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.