Booking v1.1
The Booking resource represents booking segments in the SAP Concur Travel system. TripLink suppliers use this resource to display a subset of the full booking fields.
Version
Version 1.1
Limitations
Access to this documentation does not provide access to the API.
URI
/travel/booking/v1.1/{query_parameters}
Scope
In order to obtain itinerary data when making Itinerary API calls, the value of the OAuth scope parameter must be set to: ITINER
Create or Update Booking
Creates a new booking or updates an existing booking. A new booking will be assigned to the specified trip, or if no trip is specified, the first itinerary that spans the booking dates. If no trip is specified and no itinerary exists that spans the booking dates, a new itinerary will be created.
This endpoint can be used to create/update bookings for a user that is not the OAuth consumer. This is most often done when a travel supplier or Travel Management Company needs to create/update a booking on behalf of a user. The supplier or TMC must be registered with SAP Concur, and must have an account that has one of the following user roles: Web Services Administrator for Professional, or Can Administer for Standard.
Request
POST /api/travel/booking/v1.0?tripId=12345678 HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Request Parameters
Query Parameters - Optional
- tripId={tripId} The unique identifier for the trip. Supplied in order to add a booking to an existing trip.
- userid_type=login_id&userid_value={loginID} The SAP Concur login ID of the user who owns the booking. Only provided when the booking owner is not the OAuth consumer. Can only be used when the OAuth consumer has the required user role.
Examples:
https://www.concursolutions.com/api/travel/booking/v1.1?tripId={tripId}
https://www.concursolutions.com/api/travel/booking/v1.1?userid_type=login_id&userid_value={loginID}
Content Type
application/xml
Authorization Header
Authorization header with OAuth token for a valid SAP Concur user. In order to create or update booking for anyone other than the OAuth consumer, the OAuth consumer must have one of the following user roles in SAP Concur: Company Administrator or Web Services Administrator for Professional, or Can Administer for Standard.
Create or Update Booking Request Schema
The request contains a Booking parent element with the following child elements:
Required Element | Description |
---|---|
BookingSource |
The supplier’s name. |
RecordLocator |
Record locator for this booking. This is often six alphanumeric characters but can have other formats depending on the booking source |
Optional Element | Description |
---|---|
DateBookedLocal |
The date the booking was created, in the booking location’s local time. Format: YYYY-MM-DDThh:mm:ss |
FormOfPaymentName |
The name of the form of payment for the booking. |
FormOfPaymentType |
The type of the form of payment. |
TicketMailingAddress |
The mailing address for the booked ticket, if available. |
TicketPickupLocation |
The pickup location for the booked ticket, if available. |
TicketPickupNumber |
The confirmation number to pick up the booked ticket, if available. |
AirfareQuotes |
List of stored airfare quotes for this booking. |
AirlineTickets |
List of Airline Tickets for this booking. |
Charges |
List of Charges for this booking. |
MiscChargeOrders |
List of Miscellaneous AirCharges for this booking. |
Passengers |
The Passengers element contains a Passenger child element for each booked passenger. The description of each child element can be seen in a subsequent table. |
PassPrograms |
List of Pass Programs for this booking. |
PhoneNumbers |
List of Phone numbers associated with this booking. |
RailPayments |
List of Rail payments associated with rail segments in this booking. |
Segments |
List of Segments in this booking. This parent element contains one or more Air , Car , Hotel , Dining , Ride , Rail , Parking , or Event parent elements for the booking. Refer to Booking Object Elements for more information about the child elements contained in the booking elements. |
Delivery |
The method this booking was delivered. |
WaitListSegments |
The segments that the traveler is waitlisted for this booking. |
Warnings |
The warnings associated with the booking. |
WebAddresses |
List of web addresses such as emails, pickup URLs, etc. associated with this bookings |
Passenger Child Elements
Required Element | Description |
---|---|
NameFirst |
The first name of the passenger. |
NameLast |
The last name of the passenger. |
Optional Element | Description |
---|---|
NameMiddle |
The middle name of the passenger. |
NamePrefix |
The name prefix of the passenger. |
NameRemark |
Additional details about the passenger’s name. |
NameSuffix |
The name suffix of the passenger. |
NameTitle |
The title of the passenger. |
TextName |
The user’s full name as entered in the booking tool if different from the name in the database. |
FrequentTravelerProgram |
Passenger’s loyalty programs |
Response
This function returns the full trip details, as documented in the Response of the Get Itinerary Details function.
If the end user updates an existing reservation which results in a new confirmation number, the old booking must be explicitly cancelled in addition to posting the new booking to SAP Concur. If the previous booking is not cancelled, the user will see both bookings in their SAP Concur trip list.
Examples
Example 1: XML Example Request
POST /api/travel/booking/v1.0?tripId=12345678 HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
...
<Booking xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Segments>
<Car>
<Vendor>AL</Vendor>
<VendorName>Alamo</VendorName>
<Status>HK</Status>
<StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
<EndDateLocal>2013-12-23T12:00:00</EndDateLocal>
<StartDateUtc>2013-12-21T20:00:00</StartDateUtc>
<EndDateUtc>2013-12-23T20:00:00</EndDateUtc>
<ConfirmationNumber>F16726AIUS</ConfirmationNumber>
<DateCreatedUtc>2012-07-22T11:55:42</DateCreatedUtc>
<DateModifiedUtc>2012-07-22T11:55:42</DateModifiedUtc>
<StartCityCode>SEA</StartCityCode>
<EndCityCode>SEA</EndCityCode>
<StartLocation>SEA</StartLocation>
<EndLocation>SEA</EndLocation>
<Class>E</Class>
<Body>C</Body>
<Transmission>A</Transmission>
<AirCondition>R</AirCondition>
<NumPersons>1</NumPersons>
<NumCars>1</NumCars>
<DiscountCode>4321</DiscountCode>
<DailyRate>35.0000</DailyRate>
<TotalRate>105.0000</TotalRate>
<RateType>D</RateType>
<Currency>USD</Currency>
</Car>
</Segments>
<RecordLocator>PANAMA50</RecordLocator>
<BookingSource>Alamo</BookingSource>
<DateCreatedUtc>2012-07-22T11:55:42</DateCreatedUtc>
<DateModifiedUtc>2012-07-22T11:55:42</DateModifiedUtc>
<DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
<Passengers>
<Passenger>
<PassengerKey>0</PassengerKey>
<NameFirst>Chris</NameFirst>
<NameLast>Miller</NameLast>
</Passenger>
</Passengers>
</Booking>
Example 2: XML Example of Successful Response
<Itinerary xmlns="https://www.concursolutions.com/api/travel/trip/2010/06">
<id>https://www.concursolutions.com/api/travel/trip/v1.1/CNQR1234567890</id>
<ItinLocator>CNQR1234567890</ItinLocator>
<ClientLocator>KK-CNQ-1M1P6-5HJ</ClientLocator>
<ItinSourceName>TravelSupplier</ItinSourceName>
<TripName>Trip to Seattle</TripName>
<Comments />
<StartDateLocal>2013-12-21T07:25:00</StartDateLocal>
<EndDateLocal>2013-12-23T23:59:00</EndDateLocal>
<DateModifiedUtc>2012-07-24T19:15:52</DateModifiedUtc>
<BookedVia>EveryGDS</BookedVia>
<BookedByFirstName>Chris</BookedByFirstName>
<BookedByLastName>Miller</BookedByLastName>
<DateBookedLocal>2012-07-24T19:15:52</DateBookedLocal>
<Booking>
<Segments>
<Car>
<Vendor>AL</Vendor>
<VendorName>Alamo</VendorName>
<Status>HK</Status>
<StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
<EndDateLocal>2013-12-23T12:00:00</EndDateLocal>
<StartDateUtc>2013-12-21T20:00:00</StartDateUtc>
<EndDateUtc>2013-12-23T20:00:00</EndDateUtc>
<ConfirmationNumber>F16726AIUS</ConfirmationNumber>
<DateCreatedUtc>2012-07-22T11:55:42</DateCreatedUtc>
<DateModifiedUtc>2012-07-22T11:55:42</DateModifiedUtc>
<StartCityCode>SEA</StartCityCode>
<EndCityCode>SEA</EndCityCode>
<StartLocation>SEA</StartLocation>
<EndLocation>SEA</EndLocation>
<Class>E</Class>
<Body>C</Body>
<Transmission>A</Transmission>
<AirCondition>R</AirCondition>
<NumPersons>1</NumPersons>
<NumCars>1</NumCars>
<DiscountCode>4321</DiscountCode>
<DailyRate>35.0000</DailyRate>
<TotalRate>105.0000</TotalRate>
<RateType>D</RateType>
<Currency>USD</Currency>
</Car>
</Segments>
<RecordLocator>PANAMA50</RecordLocator>
<BookingSource>Alamo</BookingSource>
<DateCreatedUtc>2012-07-22T11:55:42</DateCreatedUtc>
<DateModifiedUtc>2012-07-22T11:55:42</DateModifiedUtc>
<DateBookedLocal>2013-11-10T13:01:00</DateBookedLocal>
<ItinSourceName>TravelSupplier</ItinSourceName>
<Passengers>
<Passenger>
<PassengerKey>0</PassengerKey>
<NameFirst>Chris</NameFirst>
<NameLast>Miller</NameLast>
</Passenger>
</Passengers>
</Booking>
</Itinerary>
Cancel a Booking
Cancels an existing booking. By default, the OAuth consumer should be the owner of the booking. This endpoint can also be used to cancel bookings that the OAuth consumer does not own. This is most often done when a Travel Management Company needs to cancel bookings on behalf of a user. The TMC must be registered with SAP Concur and have a SAP Concur account that has one of the following user roles: Web Services Administrator for Professional, or Can Administer for Standard.
NOTE:
- Booking records can only be updated by the booking source that created them. SAP Concur verifies the source information before processing the request.
Example:
https://{baseUri}/api/travel/booking/v1.1/cancel?bookingSource={Supplier}&confirmationNumber={confnum}
Request
POST /api/travel/booking/v1.1/cancel?bookingSource={FastTravel}&confirmationNumber={098765431} HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Request Parameters
Query Parameters - Required
- cancel?bookingSource={Supplier}
The cancel keyword and the unique identifier for the supplier, configured by SAP Concur during the application review. The bookingSource must match the Supplier Name associated with the booking.
- confirmationNumber={confnum}
The confirmation number for the booking to cancel.
Example:
https://www.concursolutions.com/api/travel/booking/v1.1/cancel?bookingSource={Supplier}&confirmationNumber={confnum}
Query Parameters - Optional
- userid_type=login_id&userid_value={loginID}
The SAP Concur login ID of the user who owns the booking. Only provided when the booking owner is not the OAuth consumer. Can only be used when the OAuth consumer has the required user role.
Example:
https://www.concursolutions.com/api/travel/booking/v1.1/cancel?bookingSource={Supplier}&confirmationNumber={confnum}&userid_type=login_id&userid_value={loginID}
Content Type
application/xml
Authorization Header
The authorization header must have an OAuth token for valid SAP Concur user. The OAuth consumer must be registered as a Supplier or TMC with SAP Concur, and must have one of the following user roles in SAP Concur: Company Administrator or Web Services Administrator for Professional, or Can Administer for Standard.
Response
This function returns the full booking details, as specified in the Booking Object Elements section.
If the booking is not found, the function returns a HTTP 404 error and the following element:
Status: This element contains the value: NotFound.
Examples
Examples 1: XML Example Request
POST /api/travel/booking/v1.1/cancel?bookingSource={FastTravel}&confirmationNumber={098765431} HTTPS/1.1
Host: www.concursolutions.com
Authorization: OAuth {access token}
Examples 2: XML Example of Successful Response
<Car>
<Vendor>ZE</Vendor>
<Status>HK</Status>
<StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
<EndDateLocal>2013-12-24T12:00:00</EndDateLocal>
<TimeZoneId xsi:nil="true"/>
<StartDateUtc>2013-12-21T20:00:00</StartDateUtc>
<EndDateUtc>2013-12-24T20:00:00</EndDateUtc>
<ConfirmationNumber>0987654321</ConfirmationNumber>
<CancellationNumber>1029384756</CancellationNumber>
<DateCreatedUtc>2012-07-22T11:55:42</DateCreatedUtc>
<DateCancelledUtc>2012-07-25T14:21:35</DateCancelledUtc>
<DateModifiedUtc>2012-07-22T11:55:42</DateModifiedUtc>
<UpgradedDateTime xsi:nil="true"/>
<IsUpgradeAllowed xsi:nil="true"/>
<FrequentTravelerId/>
<StartCityCode>SEA</StartCityCode>
<EndCityCode>SEA</EndCityCode>
<StartLocation>SEA</StartLocation>
<EndLocation>SEA</EndLocation>
<Class>E</Class>
<Body>C</Body>
<Transmission>M</Transmission>
<AirCondition>R</AirCondition>
<PhoneNumber/>
<NumPersons xsi:nil="true"/>
<NumCars>1</NumCars>
<DiscountCode>346660</DiscountCode>
<Charges>
<Fixed>
<Description>Dropoff Fee</Description>
<Currency>USD</Currency>
<Amount>0.0000</Amount>
<StartDateLocal xsi:nil="true"/>
<IsPaid xsi:nil="true"/>
<SemanticsCode>DROPOFFFEE</SemanticsCode>
<SemanticsVendorType>C</SemanticsVendorType>
</Fixed>
<RateWithAllowance>
<Currency>USD</Currency>
<Amount>44.0000</Amount>
<StartDateLocal>2013-12-21T12:00:00</StartDateLocal>
<IsPaid xsi:nil="true"/>
<SemanticsCode>DAYS</SemanticsCode>
<SemanticsVendorType>C</SemanticsVendorType>
<PerUnit>DAY</PerUnit>
<NumUnits>1.0000</NumUnits>
<AllowanceUnit/>
<AllowanceNumUnits>250.0000</AllowanceNumUnits>
<AllowanceAmount>0.2400</AllowanceAmount>
<AllowanceIsUnlimited>false</AllowanceIsUnlimited>
</RateWithAllowance>
</Charges>
<Remarks/>
<PerDiemLocation/>
</Car>