TourCMS, a leading online booking and channel management solution is operated by Palisis.

Contact Info

Palisis AG
Florastrasse 18A
8610 Uster
+41 44 533 40 40

Follow Us

home > support > API > update booking component

Update booking component

Change some details of a particular booking component (tour/option/fee)


Designed to be used by tour operators only, Marketplace Agents cannot update booking components.

REST info

ExampleURL: /c/booking/component/update.xml
POST data:
<?xml version="1.0"?>

 Code samples

PHP examples use the PHP Client Library with SimpleXML


object booking_update_component ( SimpleXmlElement $component_data, int $channel )


SimpleXmlElement containing the tour data
ID number for the channel the booking is being made with


// Set the channel this booking will be made with
$channel = 3930;

// Start building the booking XML
$component_data = new SimpleXMLElement('<booking />');

// Set the ID for the booking the tour is on
$component_data->addChild('booking_id', 'BOOKING_ID_HERE');

// Add a component node
$component = $component_data->addChild('component');

// Set the ID for the tour to update, obtained from the Show booking API
$component->addChild('component_id', 'COMPONENT_ID_HERE');

// Set the quantity for the tour to update

// Query the TourCMS API, updating a tour, option or fee from a regular (i.e. non-temporary, non-archived) booking
$result = $tourcms->booking_update_component($component_data, 3930);

// Check the result, will be "OK" if the tour was updated
switch ($result->error) {
     case "OK":
     // Print a success message
     print "Thanks, your booking component (tour/option/fee) has been updated.";
     // Some other problem (could check error to see what)
     print "Sorry, unable to update the tour at this time.";
     print $result->error;

Thanks, your booking component (tour/option/fee) has been updated.

C# examples use the .Net Client Library

Code sample here soon

VB examples use the .Net Client Library

Code sample here soon

NodeJS examples use the NodeJS Wrapper


// Update a component to a booking
    channelId: 3930,
    booking: {
      booking_id: 12920,
      component: {
          component_id: 8286216,
          sale_quantity: 3
    callback: function(response) {

Looking for sample code in a different language? TourCMS and community provided API libraries

 Post fields

Post fields
XML NodeNotes

The root XML element

XML NodeNotes
booking_idThe ID for the booking the component is on

The root XML element

XML NodeNotes
component_idThe ID for the component to update, obtained from the Show booking API
date_idQuick change the component from one departure to another. Does not sanity check availability (you can do that first with Check Availability), prices, costs, validity of any Options etc - so use with caution.
noteFreetext note related to this component. For example if this is a hotel transfer, this could be the customers flight details
pickup_keySelect a pickup point. Pickup keys can be obtained via Check Availability, if setting to a freetext pickup, that key can also be obtained via Tour Show.
To update an existing hotel pickup from the component set the value of this node to UPDATE
pickup_noteGenerally used to supply freetext pickup info (when combined with the pickup on request key)
pickup_timeOverride the configured route code for the selected pickup
pickup_route_codeOverride the configured time for the pickup, e.g. 20:00
supplier_refSupplier reference for this component, often a booking id for a third party downstream system
sale_quantityQuantity of the component booked
sale_quantity_ruleEither PERSON if the sale_price is multiplied by the quantity, or GROUP if the sale_price is the total
sale_priceThe price, either per person or per group (depending on the above)
net_quantity_ruleEither PERSON if the net_price is multiplied by the quantity, or GROUP if the net_price is the total
net_priceThe net price, either per person or per group (depending on the above)
customer_paymentOn bookings where the agent is set to pay the balance, specific items can be added as customer payable by setting this field to 1

If any Questions are to be answered, add a replies node containing:

XML NodeNotes

A reply node for each question to be answered containing:

XML NodeNotes
Question key identifying the question to be answered, obtained from Check Tour Availability.

An answers node containing:

XML NodeNotes

An answer node for each answer to the question:

XML NodeNotes
The answer

Response fields

Response fields
XML NodeNotes
request Confirmation of the request that you sent
error Any error message returned, if there is no error this will just contain the text OK.

More information