Each request to GP Travel HUB has to identify particular booking to be processed. For that purpose special unique identifiers are used.
You should store the necessary identifiers received from a response in your application, to be able then pass it to request on the next step.
There are identifiers that are used on different request/response chains.
11.1.1. EXCURSIONRESERVATIONIDS
The ExcursionReservationIDs is used as unique identifier of a booking.
The next values of ResID_Source attribute defines three possible types of ExcursionReservationID element:
"client". It is mandatory identifier required in all requests/responses. It can be any character string, but it must be unique in your system. This element allows GP Travel HUB to identify your booking within it.
"agent". This element is optional in request, but it is mandatory in response. If you did not pass "agent" identifier explicitly in request, GP Travel HUB will create it automatically (normally we just copy the "client" identifier) and return it in response. GP Travel HUB passes this identifier to supplier as client booking reference for booking identification. You can also use it as booking reference number in your system. Unlike "client" identifier, "agent" identifier may be the same for several booked services. This may be used for spanning several ordered services into one order.
"supplier". Each actual reservation returns "supplier" identifier - the unique identifier of the booking in supplier's system. ResID_SourceContext attribute identifies the supplier. It is not necessary to pass the "supplier" identifier in all following requests; only "client" is required.
You have to store all values of ExcursionReservationIDs in your system, and use it unchanged through whole booking's life cycle.
Diagram 11.1.1.1. ExcursionReservationIDs flow
ExcursionReservationIDs example:
<ExcursionReservationIDs> <ExcursionReservationID ResID_Source="agent" ResID_Value="hjo8dfg"/> <ExcursionReservationID ResID_Source="client" ResID_Value="34rf4g3frre45"/> <ExcursionReservationID ResID_Source="supplier" ResID_SourceContext="supplierCode" ResID_Value="164-4732160"/> </ExcursionReservationIDs>
14.1.2. BOOKINGCODE
The BookingCode attribute in ExcursionRate element is used as unique identifier of an offer starting Hotel Availability response and till the time the booking is confirmed. The BookingCode is valid for limited time (normally 15 minutes); if the reservation was not confirmed (or at least initiated) during this time limit, then new search should be performed again.
As the unique offer identifier, BookingCode should also be used in Price Breakdown and Hotel Charges requests.
BookingCode may change between Availability search and Reservation Initiate response (it depends on supplier specific). In Reservation Confirm request, the BookingCode must be taken from the Reservation Initiate response.
Diagram 11.1.2.1. BookingCode usage
Since an excursion booked, the BookingCode does not play role for the reservation any more. The ExcursionReservationIDs should be used for the booking cancellation.