Itinerary API (V7)

Overview

The Wetu Itinerary API allows you to integrate Wetu Itineraries into your software or website. The API supports both loading existing itineraries as well as creating or updating Itineraries programmatically. The API is intended to work in conjunction with the Wetu Content API, as Itineraries reference and rely on the content and IDs provided by that API.

Please see the accompanying Wetu Content API documentation.

Audience

This documentation is intended for a software developer intending to integrate their system or website with the Wetu Itinerary API. A familiarity with software development and web services is expected. Familiarising yourself with the online Wetu Itinerary Builder as well as the Virtual Itinerary, Digital Itinerary and Printable Itinerary is recommended, as seeing these will provide necessary context to the understanding of the underlying data model discussed later.

Endpoints

The Itinerary API is available via the following channels:


Functions (SOAP / XML)

LoadItinerary (Load a single itinerary)

This function returns a single itinerary. This can be used to integrate that itinerary into a webpage or back-office system.

  • Parameters
    • identifier (string) - the UUID-style unique identifier of the itinerary
    • sessionToken (string) - an optional session token identifying the requesting user
  • Result

LoadItineraries (List Available Itineraries)

This function returns a list of itineraries. This can be used to search for an itinerary to display or import.

  • Parameters
    • resultsPerPage (int) - limits the number of results returned per page
    • pageStart (int) - sets the initial page for the results, 0-based
    • typeFilter (ItinerarySearchFilterEnum)
      • Personal - only show Personal itineraries
      • Sample - only show Sample itineraries
      • AllItineraries - show Personal and Sample itineraries
      • DayComponent - only show single-day components
      • Component - only show multi-day components
      • AllComponents - show components (single-day and multi-day)
      • DayTours - only show day tours (unpublished)
      • PublishedDayTours - only show day tours (published)
      • MultiDayTours - only show multi-day tours (unpublished)
      • PublishedDayTours - only show multi-day tours (published)
      • All - show all
    • ownItinerariesOnly (bool) - limits the search to only itineraries built by the authenticated consultant, otherwise all itineraries for the operator will be returned
    • searchText (string) - optional text to filter the itineraries on; the search considers name, client name and reference number
    • sort (BrowseableItinerarySortOrderEnum)
      • ClientNameAsc OR ClientNameDesc - sort by the client name
      • ItineraryNameAsc OR ItineraryNameDesc - sort by the itinerary name
      • ReferenceNoAsc OR ReferenceNoDesc - sort by the reference number
      • StartDateAsc OR StartDateDesc - sort by the start date
      • DaysAsc OR DaysDesc - sort by the itinerary duration
      • LastModifiedAsc OR LastModifiedDesc - sort by the date of modification
      • LastViewedAsc OR LastViewedDesc - sort by the date on which the itinerary was last viewed by a client
      • ViewCountAsc OR ViewCountDesc - sort by the total number of views
      • BookingStatusAsc OR BookingStatusDesc - sort by the itinerary booking status
    • sessionToken (string) - a required session token identifying the requesting user

LoadDayTours

This function returns a list of day tours. The list includes both your private day tours (if any) and publically available day tours from other providers.

  • Parameters
    • searchText (string) - optional text to filter the day tours on; the search considers name and reference number
    • sort (SupplierItinerarySortOrderEnum)
      • ItineraryNameAsc OR ItineraryNameDesc - sort by the itinerary name
      • ReferenceNoAsc OR ReferenceNoDesc - sort by the reference number
      • DaysAsc OR DaysDesc - sort by the itinerary duration
      • LastModifiedAsc OR LastModifiedDesc - sort by the date of modification
    • sessionToken (string) - a required session token identifying the requesting user
  • Result - an array of SupplierItineraryPage

AuthenticateAndSaveItinerary (see also SaveItinerary)

This functions allows saving a new itinerary or updating an existing one. It provides a single-call alternative to calling AuthenticateUser + SaveItinerary in succession.

  • Parameters
    • itinerary (Itinerary) - the entire itinerary to save / update
    • username (string)
    • password (string)
  • Result - an ItinerarySummary

SaveItinerary (see also AuthenticateAndSaveItinerary)

This functions allows saving a new itinerary or updating an existing one. 

  • Parameters
    • itinerary (Itinerary) - the entire itinerary to save / update
    • sessionToken (string) - a required session token identifying the requesting user
  • Result - an ItinerarySummary

AuthenticateUser

This function allows authenticating a user with their username / password.

  • Parameters
    • username (string)
    • password (string)
  • Result - a Session

DeleteItineraries

This function allows deleting previously created itineraries.

  • Parameters
    • identifiers (array of string) - the set of itinerary identifiers to delete
    • sessionToken (string) - a required session token identifying the requesting user
  • Result - none (failure will be signalled with HTTP error status code)

LoadBranding

This function allows loading the branding for an itinerary, for display or generating external documents.

  • Parameters
    • identifier (string) - the UUID-style unique identifier of the itinerary
  • Result - an ItineraryBranding

LoadDefaultBranding

This function allows loading the default branding (in cases where the itinerary is branded as an agent / identity) for an itinerary, for display or generating external documents.

  • Parameters
    • identifier (string) - the UUID-style unique identifier of the itinerary
  • Result - an ItineraryBranding

GenerateMapViewForItinerary

This returns a URL to a representative map image for the itinerary. This can be used to generate external documents.

  • Parameters
    • identifier (string) - the UUID-style unique identifier of the itinerary
    • width (int) - the css pixel width of the desired image; limited to 640
    • height (int) - the css pixel height of the desired image; limited to 640
    • scale (int) - a scale multiplier to request a higher resolution image; 1 or 2; using 2 will return an image zoomed to double the requested height / width (i.e. 1280x1280 at max)
  • Result
    • a string

Search

This function allows simple searching of the Wetu content available. This can be used to map between databases. An alternative to this for bulk mapping purposes is to use the comprehensive Wetu Content API.

  • Parameters
    • name (string) - a name to search for
    • type (string) - a type hint to bias search results with (most common is Accommodation)
    • sessionToken (string) - a required session token identifying the requesting user
  • Result - an array of SearchPin

Functions (JSON)

Please note that the JSON API is read-only and uses a different property naming scheme from the SOAP / XML API. SOAP / XML properties are named in CamelCase, whereas JSON properties use snake_case (e.g. ItineraryId becomes itinerary_id). Property names are otherwise as documented below. Request parameters can be passed either in the querystring or as POST variables. URLs below typically demonstrate the parameters in the querystring.

LoadItinerary (Load a single itinerary)

This function returns a single itinerary. This can be used to integrate that itinerary into a webpage or back-office system.

Load Supporting Content (Loads all supporting content for an itinerary, including Day Tours and Content Entities)

Branding

This function allows loading the branding for an itinerary, for display or generating external itinerary views.

DefaultBranding

This function allows loading the default branding (in cases where the itinerary is branded as an agent / identity) for an itinerary, for display or generating external itinerary views.

List (List Available Itineraries)

This function returns a list of itineraries. This can be used to search for an itinerary to display or import.

  • URL
  • Parameters
    • search - optional text to search on
    • type - filter for what itinerary types to return
      • default "AllItineraries"
      • "Personal", "Sample", "All", "DayComponent", "Component", "AllComponents", "AllItineraries"
    • own - default false, whether to filter and show only the itineraries from the authenticated user
    • sort - sort order for results
      • default "LastModifiedDesc"
      • "ClientNameAsc", "ClientNameDesc", "ItineraryNameAsc", "ItineraryNameDesc", "ReferenceNoAsc", "ReferenceNoDesc", "StartDateAsc", "StartDateDesc", "LastModifiedAsc", "LastModifiedDesc"
    • start - numeric offset to begin listing itineraries from, default 0
    • results - maximum number of results to return, default 100
    • tags - comma seperated list of tag filters
      • filters are inclusive - an itinerary must match all of them (e.g. beach and safari)
      • tags are specific to a client
    • operatorid - only available with App key integrations; filters results down to a specific operator

MapView

This returns a URL to a representative map image for the itinerary. This can be used to generate external documents.

  • URL
  • Parameters
    • width (int) - the css pixel width of the desired image; limited to 640
    • height (int) - the css pixel height of the desired image; limited to 640
    • scale (int) - a scale multiplier to request a higher resolution image; 1 or 2; using 2 will return an image zoomed to double the requested height / width (i.e. 1280x1280 at max)

Itinerary Examples

Simple Example - One Accommodation

<?xml version="1.0"?>
<Itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Type>Personal</Type>
    <Identifier>27BCEA41-DA52-493E-92A6-7B2E9A25EE35</Identifier>
    <Days>2</Days>
    <Name>Minimal Example</Name>
    <Summary>A description of this itinerary: minimal example - 1 night at Ellerman House, departure</Summary>
    <StartDate>2016-01-01T00:00:00</StartDate>
    <Legs>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>1</ItineraryLegId>
            <Sequence>0</Sequence>
            <ContentEntityId>3733</ContentEntityId>
            <Nights>1</Nights>
            <Type>Standard</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>2</ItineraryLegId>
            <Sequence>1</Sequence>
            <ContentEntityId>0</ContentEntityId>
            <Nights>0</Nights>
            <Type>Departure</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
    </Legs>    
</Itinerary>

Simple Example - Two Accommodation, with transfer

<?xml version="1.0"?>
<Itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Type>Personal</Type>
    <Identifier>5A00FFF2-4F56-41A1-AC6F-C902917729ED</Identifier>
    <Days>3</Days>
    <Name>Minimal Example</Name>
    <Summary>A description of this itinerary: two accommodation example - 1 night at Ellerman House, 1 night at Cape Grace, departure</Summary>
    <StartDate>2016-01-01T00:00:00</StartDate>
    <Legs>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>1</ItineraryLegId>
            <Sequence>0</Sequence>
            <ContentEntityId>3733</ContentEntityId>
            <Nights>1</Nights>
            <Type>Standard</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>2</ItineraryLegId>
            <Sequence>1</Sequence>
            <ContentEntityId>1158</ContentEntityId>
            <Nights>1</Nights>
            <Type>Standard</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>3</ItineraryLegId>
            <Sequence>2</Sequence>
            <ContentEntityId>0</ContentEntityId>
            <Nights>0</Nights>
            <Type>Departure</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
    </Legs>
    <Routes>
        <ItineraryRoute>
            <Mode>Transfer</Mode>
            <StartLegId>1</StartLegId>
            <EndLegId>2</EndLegId>
            <StartContentEntityId>3733</StartContentEntityId>
            <EndContentEntityId>1158</EndContentEntityId>
            <Sequence>0</Sequence>
            <Type>InterLeg</Type>
        </ItineraryRoute>
    </Routes>
</Itinerary>

Extended Example - One Accommodation (3 nights, with activities)

<?xml version="1.0"?>
<Itinerary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Type>Personal</Type>
    <Identifier>3B289D89-945F-4328-A7A4-D345E780BD0F</Identifier>
    <Days>4</Days>
    <Name>Minimal Example Three</Name>
    <Summary>A description of this itinerary: extended example - 3 nights at Ellerman House with activities, departure</Summary>
    <StartDate>2016-01-01T00:00:00</StartDate>
    <Legs>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>1</ItineraryLegId>
            <Sequence>0</Sequence>
            <ContentEntityId>3733</ContentEntityId>
            <Nights>3</Nights>
            <Type>Standard</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                    <Notes>Today, you enjoy a ride up the cableway to the top of the world famous Table Mountain. In the afternoon, relax and explore the Kirstenbosch Botanical Gardens.</Notes>
                    <Activities>
                        <ItineraryLegDayActivity>
                            <Sequence>0</Sequence>
                            <Name>Table Mountain Cableway</Name>
                            <Type>Included</Type>
                            <ContentEntityId>231</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>1</Sequence>
                            <Name>Table Mountain Cableway</Name>
                            <Type>Included</Type>
                            <ContentEntityId>728</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                    </Activities>
                </ItineraryLegDay>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                    <Notes>Head out the Cape Winelands and enjoy a tasting at Spier Wine Estate, followed by lunch at "The Goatshed" and another wine tasting at Fairview.</Notes>
                    <ConsultantNotes>You mentioned being an avid wine lover, so we've organised this excursion for you.</ConsultantNotes>
                    <Activities>
                        <ItineraryLegDayActivity>
                            <Sequence>0</Sequence>
                            <Name>Wine Tasting at Spier</Name>
                            <Type>Included</Type>
                            <ContentEntityId>245</ContentEntityId>
                            <TimeSlot>Morning</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>1</Sequence>
                            <Name>The Goatshed</Name>
                            <Type>Included</Type>
                            <ContentEntityId>1284</ContentEntityId>
                            <TimeSlot>Lunch</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>2</Sequence>
                            <Name>Wine Tasting at Fairview</Name>
                            <Type>Included</Type>
                            <ContentEntityId>1282</ContentEntityId>
                            <TimeSlot>Afternoon</TimeSlot>
                        </ItineraryLegDayActivity>
                    </Activities>
                </ItineraryLegDay>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                    <Notes>Spend today exploring Cape Town at your leisure. We've suggested a few ideas.</Notes>
                    <Activities>
                        <ItineraryLegDayActivity>
                            <Sequence>0</Sequence>
                            <Name>Robben Island Ferry</Name>
                            <Type>Recommended</Type>
                            <ContentEntityId>144</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>1</Sequence>
                            <Name>Robben Island</Name>
                            <Type>Recommended</Type>
                            <ContentEntityId>45</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>2</Sequence>
                            <Name>Two Oceans Aquarium</Name>
                            <Type>Recommended</Type>
                            <ContentEntityId>145</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>3</Sequence>
                            <Name>V&A Waterfront</Name>
                            <Type>Recommended</Type>
                            <ContentEntityId>140</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>4</Sequence>
                            <Name>Simonstown</Name>
                            <Type>Recommended</Type>
                            <ContentEntityId>77</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                        <ItineraryLegDayActivity>
                            <Sequence>5</Sequence>
                            <Name>Cape Point Nature Reserve</Name>
                            <Type>Recommended</Type>
                            <ContentEntityId>72</ContentEntityId>
                            <TimeSlot>None</TimeSlot>
                        </ItineraryLegDayActivity>
                    </Activities>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
        <ItineraryLeg xsi:type="ItineraryLegByDay">
            <ItineraryLegId>2</ItineraryLegId>
            <Sequence>1</Sequence>
            <ContentEntityId>0</ContentEntityId>
            <Nights>0</Nights>
            <Type>Departure</Type>
            <Days>
                <ItineraryLegDay>
                    <Day>0</Day>
                    <RoomBasis>BedAndBreakfast</RoomBasis>
                    <DrinksBasis>None</DrinksBasis>
                    <Notes>Unfortunately, today is your last day.</Notes>
                </ItineraryLegDay>
            </Days>
        </ItineraryLeg>
    </Legs>
</Itinerary>

BrowseableItineraryPage

  • Properties
    • Itineraries (array of BrowseableItinerary)
    • TotalResults (int) - total number of results available, used for paging

BrowseableItinerary

  • Properties
    • Type (ItineraryTypeEnum)
    • Identifier (string) - the unique GUID for this itinerary
    • IdentifierKey (string) - a shorter, 6 character key used for loading this itinerary via the mobile app
    • Days (int) - the duration of the itinerary, in days
    • Name (string) - the name of the itinerary
    • ReferenceNumber (string) - the operator's reference number for this itinerary / booking
    • ClientName (string) - the name of the client
    • ClientEmail (string) - the email address of the client
    • StartDate (datetime) - the starting date of the itinerary; null for Sample itineraries, Components and Day Tours
    • LastModified (datetime) - the UTC timestamp of the last modification of the itinerary
    • AccessCount (int) - the number of times the itinerary has been viewed (across both web and mobile)
    • IsDisabled (bool) - whether the itinerary has been disabled by the operator (prevents viewing on web and mobile)
    • Categories (array of string) - a list of identifying tags / categories for the itinerary
    • LastViewed (datetime) - the UTC timestamp of the last viewing of this itinerary
    • BookingStatus (BookingStatusEnum)

SupplierItineraryPage

  • Properties
    • Supplier (string) - the name of the supplier / tour operator
    • Itineraries (array of SupplierItinerary)

SupplierItinerary

  • Properties
    • Type (ItineraryTypeEnum)
    • Identifier (string) - the unique UUID for this itinerary
    • Days (int) - the duration of the itinerary, in days
    • Name (string) - the name of the itinerary
    • ReferenceNumber (string) - the operator's reference number for this itinerary / booking
    • Supplier (string) - the name of the supplier / tour operator
    • LastModified (datetime) - the UTC timestamp of the last modification of the itinerary
    • Categories (array of string) - a list of identifying tags / categories for the itinerary
    • DepartureLocations (string) - the locations from which the day tour departs
    • DepartureTimes (string) - the times of the tours departure
    • ReturnLocations (string) - the locations to which the day tour returns
    • ReturnTimes (string) - the times of the tours return
    • GroupSize (string) - the number of people the day tour can accommodate

ItinerarySummary

  • Properties
    • Name (string) - the name of the itinerary
    • Identifier (string) - the unique UUID for this itinerary
    • IdentifierKey (string) - a shorter, 6 character key used for loading this itinerary via the mobile app (only for Personal itineraries with dates)

Session

  • Properties
    • ExpiryDate (datetime) - the expiry date of the session; the session token will NOT be accepted past this date
    • OperatorId (int) - the id of the authenticated operator
    • OperatorUserId (int) - the id of the authenticated user
    • OperatorName (string) - the name of the authenticated operator
    • Username (string) - the username of the authenticated user
    • SessionStatuses (array of SessionStatus)
    • Token (string) - a token for this session, used by many other functions

SessionStatus (Enumeration)

  • Values
    • AuthenticationFailure
    • User
    • Admin
    • Disabled

ItineraryBranding

  • Properties
    • Name (string) - the name of the company
    • LogoUrl (string) - the full path to a logo for the company
    • LogoUrlFragment (string) - a partial url to a logo; for use in conjunction with the Wetu Image Scaler
    • Website (string) - a url to the company's website
    • Email (string) - a contact email for the company
    • Phone (string) - a contact phone number for the company
    • Facebook (string) - a url to the company's facebook page
    • TwitterAccount (string) - the twitter handle for the company
    • Description (string) - the description of the company
    • ConsultantName - the name of the consultant (if available)
    • ConsultantEmail (string) - a contact email for the consultant (if available)
    • ConsultantPhone (string) - a contact phone number for the consultant
    • ConsultantSkype (string) - the skype address for the consultant
    • ConsultantPhotoUrl (string) - the full path to a photo of the consultant (if available)
    • ConsultantPhotoUrlFragment (string) - a partial url to a logo; for use in conjunction with the Wetu Image Scaler
    • ConsultantDescription (string) - a description of the consultant
    • EnquiryUrl (string) - a url for booking enquiries
    • Terms (string) - a set of terms and conditions for the company

SearchPin

  • Properties
    • ContentEntityId (int) - the unique Wetu id for the property
    • Name (string) - the name of the property
    • Area (string) - an indicative area for the property
    • Latitude (double) - the latitude of the property (in decimal degrees)
    • Longitude (double) - the longitude of the property (in decimal degrees)
    • IBrochure (int) - the id of the associated Wetu iBrochure, if any
    • Country (string) - the country the property resides in
    • Location (string) - a tighter location for the property
    • Stars (int) - a star rating for the property
    • Category (string) - a category classification for the property
    • Subcategory (string) -  a secondary classification for the property (tighter than category)

Itinerary

  • Properties
    • OperatorId (int) - the id of the operator the itinerary belongs to; this will be set automatically by the system if needed
    • OperatorUserId (int) - the id of the consultant the itinerary belongs to; this will be set automatically by the system if needed
    • OperatorIdentityId (int) - the id of branding identity for the itinerary; use 0 to indicate use the default operator branding
    • OperatorThemeId (int) - the id of the styling theme for the itinerary; use 0 to indicate use the default theme
    • Type (ItineraryTypeEnum) - see ItineraryTypeEnum below for values; normal itineraries for clients are Personal
    • Identifier (string) - the unique identifier for this itinerary; value is a UUID / GUID; can be provided or will be generated by Wetu if not supplied
    • IdentifierKey (string) - a shorter, 6 character key used for loading this itinerary via the mobile app (only for Personal itineraries with dates)
    • Days (int) - the total duration of the itinerary, including arrival and departure travel
    • Name (string) - the label for the itinerary (e.g. Smith - Summer Vacation 2016)
    • Language (string) - the language to use for itinerary outputs, expressed as a 2-character ISO language code (e.g. en / de / fr / es); contact Wetu for a list of supported languages
    • ReferenceNumber (string) - the operators reference number for the booking / quote
    • Summary (string) - a summary description of the itinerary
    • Description (string) [Day Tour only] - a longer form, point-by-point description of the day tour
    • Categories (array of string) - a set of tags for describing this itinerary; these are shown to the user
    • ClientName (string) - the name of the client
    • ClientEmail (string) - the email address of the client; not used by Wetu
    • ClientPhone (string) - the phone number of the client; not used by Wetu
    • StartDate (datetime) - the start date of the itinerary; null for Sample itineraries, Components and Day Tours; can also be null for a Personal to indicate it has not yet been scheduled
    • Legs (array of ItineraryLeg) - the collection of accommodation stays, own arrangements and overnight travel for the itinerary; legs further hold details such as daily activities
    • Routes (array of ItineraryRoute) - the collection of routes between legs (accommodation); these include transfers and scheduled flights
    • Documents (array of ItineraryDocument) - a collection of supplementary documents; such as brochures / pricing summaries / travel guidance; usually in Word / PDF formats
    • HideRouteInformation (bool) - if true, this prevents display route details like travel times or flight arrangements
    • BoundLat1, BoundLat2, BoundLng1, BoundLng2 (double) - these can be used to set the initial viewport when viewing the itinerary on a map; provide 0 as defaults
    • Price (string) - pricing information for the itinerary; this should ideally be a simple currency / price (e.g. $ 10800 per person) but can be as complicated as needed (multiple lines, options, etc)
    • PriceIncludes (string) - details on items included in the pricing
    • PriceExcludes (string) - details on items excluded in the pricing
    • CarHire (array of ItineraryCarHire) - a collection of car hire arrangements for the itinerary
    • IsDisabled (bool) - if true; the itinerary is marked as disabled and cannot be viewed by a client
    • TravellersAdult (int) - the number of adult travellers
    • TravellersChildren (int) - the number of child travellers
    • Travellers (array of ItineraryTraveller) - a collection of the travellers on the itinerary
    • RoomsSingle, RoomsDouble, RoomsTwin, RoomsTriple, RoomsFamily (int) - a default set of room arrangements for the itinerary, this can be overriden per leg
    • StartTravelDays (int) - the number of days spent travelling before arriving at the first leg (accommodation); overnight travel legs can be used instead if more detail is needed
    • EndTravelDays (int) - the number of days spent travelling after the last accommodation; overnight travel legs can be used instead if more detail is needed
    • BookingStatus (BookingStatusEnum) - see BookingStatusEnum below for values; Booked is a special case that will disable "enquire now / book now" prompts
    • Contacts (array of ItineraryContact) - a collection of additional contact details for this itinerary (e.g. ground handlers or regional offices)
    • Services (array of string) - a set of services to include when producing a pricing output from Wetu for this itinerary
    • SpecialInterests (array of string) - a set of tags indicating the target audience for this itinerary; primarily for Sample itineraries
    • NotificationFrequency (NotificationFrequencyEnum) - how / when to send itinerary view notifications
    • Images (array of ItineraryImage) [Day Tour only] - a collection of images representing the Day Tour
    • Departures (string) [Day Tour, Sample only] - the departure schedule for this itinerary, usually "On Request" or "Set Departures"
    • DepartureLocations (string) [Day Tour only] - text describing the locations / pick up points for the Day Tour
    • DepartureTimes (string) [Day Tour only] - text describing the departure times for the Day Tour
    • Returns (string) [Day Tour only] - text describing the return times / locations for the Day Tour
    • Duration (string) [Day Tour only] - the duration of the tour; usually as "5h30"
    • AdditionalInfo (string) [Day Tour only] - any extra information for the trip, such as deposit policies, packing / clothing guidance, etc.
    • SpokenLanguages (string) [Day Tour only] - a list of languages spoken by guides on the tour
    • GroupSize (string) [Day Tour, Sample only] - information on the optimal group size, usually as a range (e.g. 4-12)
    • Published (bool) [Day Tour only] - if true, this Day Tour will be available to all Wetu Operators to include in their itineraries and use; requires special permissions
    • TravelArrangements (array of ItineraryTravelArrangement) - a collection of travel related information; used as a recommended alternative to ItineraryRoute
    • RouteHandlingMode (ItineraryRouteHandlingModeEnum) - sets the behavior of an itinerary with regards to routes / travel arrangements

ItineraryTraveller

  • Properties
    • Type (ItineraryTravellerTypeEnum) - the type of traveller (Adult or Child)
    • Title (string) - the title of the traveller (e.g. Mr or Ms)
    • Name (string) - the travellers name
    • Age (int) - the age of the traveller, 0 indicates unspecified

ItineraryContact

  • Properties
    • Company (string) - the name of the company
    • Telephone (string) - a telephone contact number for the company
    • ContactPerson (string) - the name of the preferred contact at the company
    • Email (string) - the email address for the company

ItineraryLeg (Abstract - see ItineraryLegByDay and ItineraryLegByDestination for concrete instances)

  • Properties
    • ItineraryLegId (int) - an id uniquely identifying this leg within this itinerary; not unique across different itineraries; used by ItineraryRoute to associate routes with legs
    • Sequence (int) - the order of this leg within the itinerary; 0-based
    • ContentEntityId (int) - the id of the overnight accommodation (i.e. hotel) for this leg; required for Standard and Mobile legs
    • AlternateAccommodations (array of ItineraryLegAlternateAccommodation) - alternative accommodation options
    • Nights (int) - the number of nights
    • BookingReference (string) - a booking reference for the accommodation
    • Rooms (array of ItineraryLegRoom) - a collection of details of room arrangements, including room types
    • DayRooms (ItineraryLegDayRooms) - an optional day room
    • Type (ItineraryLegTypeEnum) - normal accommodation legs are standard; and personal / sample itineraries will have a final departure leg

ItineraryLegDayRooms

  • Properties
    • ContentEntityId (int) - the id of the accommodation (i.e. hotel) for the day room
    • BookingReference (string) - a booking reference for the day room
    • Rooms (array of ItineraryLegRoom) - a collection of details of room arrangements, including room types

ItineraryLegRoom

  • Properties
    • Rooms (int) - the number of rooms of this type; can be 0 which indicates unspecified
    • Name (string) - the name of the room
    • SimpleItemId (string) - an identifier linking this room type to a room type provided by the content entity; allows displaying a description and images
    • RoomType (ItineraryLegRoomTypeEnum)

ItineraryLegByDestination (extends ItineraryLeg)

  • Properties
    • Activities (array of ItineraryActivity) - a collection of activities, recommendations and other supporting information; shares sequence with DayTours below
    • DayTours (array of ItineraryDayTour) - a collection of day tours; shares sequence with Activities above
    • RoomBasis (ItineraryRoomBasisEnum) - see ItineraryRoomBasisEnum below for values
    • DrinksBasis (ItineraryDrinksBasisEnum) - see ItineraryDrinksBasisEnum below for values
    • Notes (string) - general notes
    • ConsultantNotes (string) - specific notes from the consultant; these are show to the client
    • Included (string) - details on items included in pricing
    • Excluded (string) - details on items excluded from pricing

ItineraryLegByDay (extends ItineraryLeg)

  • Properties
    • Days (array of ItineraryLegByDay) - the details for each day of this leg, must match the number of nights for the leg EXCEPT for Departure legs which have a single Day despite have 0 nights

ItineraryLegAlternateAccommodation

  • Properties
    • ContentEntityId (int) - the id of the accommodation (i.e. hotel) for this alternate accommodation option

ItineraryLegDay

  • Properties
    • Day (int) - the day offset WITHIN the leg; 0-based; i.e. day 0 is the 1st day for that leg (may be 3rd day of the itinerary)
    • RoomBasis (ItineraryRoomBasisEnum)
    • DrinksBasis (ItineraryDrinksBasisEnum)
    • Notes (string) - general notes
    • ConsultantNotes (string) - specific notes from the consultant; these are show to the client
    • Included (string) - details on items included in pricing
    • Excluded (string) - details on items excluded from pricing
    • Routes (array of ItineraryRoute) - day travel routes; usually these begin and end at the same place (the hotel)
    • Activities (array of ItineraryLegDayActivity) - a collection of activities, recommendations and other supporting information; shares sequence with DayTours below
    • DayTours (array of ItineraryDayTour) - a collection of day tours; shares sequence with Activities above

ItineraryElement (Abstract - see ItineraryActivity, ItineraryDayTour, ItineraryLegDayActivity, ItineraryLegDayDayTour for concrete instances)

  • Properties
    • Sequence (int) - the order of this activity / day tour within the day, shared across activities and day tours on the same destination leg or day; 0-based
    • Name (string) - the name of the activity
    • IsHighlight (bool) - if true, this activity is highlighted within the itinerary
    • Type (ItineraryElementTypeEnum) - normal scheduled activities / day tours are Included
    • Reference (string) - a booking reference for this activity / day tour
    • PreventVoucher (bool) - if true, this activity / day tour does not generate a voucher in the Wetu Voucher output

ItineraryActivity (extends ItineraryElement)

  • Properties
    • ContentEntityId (int) - the id of the detailed content entity containing descriptions / pictures of this activity; optional
    • SimpleItemId (string) - a seconday id referring to an activity at a lodge / game reserve / hotel, used in conjunction with the ContentEntityId above

ItineraryLegDayActivity (extends ItineraryActivity)

  • Properties
    • StartTime (string) - that start time for this activity (e.g. 10h30)
    • Duration (string) - the likely duration of this activity (e.g. 1h30)
    • EndTime (string) - the likely end time of this activity (e.g. 14h30)
    • TimeSlot (ItineraryLegDayElementTimeEnum) - used to generally indicate when an activity / day tour occurs instead of specifying exact times

ItineraryDayTour (extends ItineraryElement)

  • Properties
    • ItineraryIdentifier (string) - an id referencing the itinerary containg the detail for this day tour; required

ItineraryLegDayDayTour (extends ItineraryDayTour)

  • Properties
    • StartTime (string) - that start time for this activity (e.g. 10h30)
    • Duration (string) - the likely duration of this activity (e.g. 1h30)
    • EndTime (string) - the likely end time of this activity (e.g. 14h30)
    • TimeSlot (ItineraryLegDayElementTimeEnum) - used to generally indicate when an activity / day tour occurs instead of specifying exact times
    • Routes (array of ItineraryRoute) - if present, this overrides the default routes from the Day Tour

ItineraryRoute

  • Properties
    • Mode (ItineraryRouteModeEnum) - this indicates the type of route (e.g. self drive, scheduled flight, transfer)
    • StartLegId (int) - the id of the leg this route "begins" at; 0 for routes occurring before any leg (i.e. arrival routes or routes from an airport to the first hotel)
    • EndLegId (int) - the id of the leg this route "ends" at; 0 for routes occurring after any leg (i.e. departure routes or routes from a hotel to the departing airport)
    • StartContentEntityId (int) - the id of the Wetu entity this route starts at; required
    • EndContentEntityId (int) - the id of the Wetu entity this route ends at; required
    • Sequence (int) - the order of this route within the set of routes with the same StartLegId and EndLegId
    • Agency (string) - the company providing this route service (e.g. airline for a scheduled flight, transfer agency for a transfer)
    • Vehicle (string) - detail on the vehicle for a transfer or the plane for a scheduled flight
    • ReferenceCodes (string) - the reference codes / ticket numbers for this route; semicolon (;) delimited if multiples are needed
    • Notes - special case; these notes are only for arrival and departure routes
    • Start (datetime) - the start date of this travel; only necessary for overnight travel
    • StartTime (string) - the departure time of this route; important for flights
    • End (datetime) - the end date of this travel; only necessary for overnight travel
    • EndTime (string) - the arrival time of this route
    • Points (string) - a set of latitude / longitude pairs used to draw the route on the map; default values will be provided by Wetu if not provided
    • ViaPoints (string) - a set of specific points the route should travel through; mostly used for guiding self drives or road transfers
    • Directions (string) - step-by-step text directions for travel
    • ContactNumbers (string) - phone numbers relevant to this route, e.g. airport contact numbers
    • StartTerminal (string) - the departure terminal
    • EndTerminal (string) - the arrival terminal
    • TicketClass (string) - the class of the ticket; also used for the vehicle class for transfer arrangements if needed
    • CheckInTime (string) - the recommended time to check in before the travel; usually as hours (e.g. check in 2 hours before)
    • Type (ItineraryRouteTypeEnum) - routes between accommodation are usually InterLeg
    • Variant (string) - allows setting an alternative icon for the route type (e.g. a 4x4 instead of a car for a transfer)
    • Duration (string) - the estimated duration of this route
    • Distance (double) - the estimated length of this route

ItineraryTravelArrangement

  • Properties
    • Mode (ItineraryTravelArrangementModeEnum) - this indicates the type of travel arrangement (e.g. scheduled flight, transfer)
    • FirstContentEntityId (int) - the first id of the Wetu entity this travel arrangement is between
    • SecondContentEntityId (int) - the second id of the Wetu entity this travel arrangement is between
    • Agency (string) - the company providing this service (e.g. airline for a scheduled flight, transfer agency for a transfer)
    • Vehicle (string) - detail on the vehicle for a transfer or the plane for a scheduled flight
    • ReferenceCodes (array of string) - the reference codes / ticket numbers for this travel arrangement
    • Notes (string) - journey notes; should be populated only if details such as locations are otherwise unavailable
    • Day (int) - the date of this travel; 0-based day offset from the start of the itinerary
    • FirstTime (string) - the first time of this travel arrangement
    • SecondTime (string) - the seond time of this travel arrangement
    • Directions (array of string) - step-by-step text directions for travel
    • ContactNumbers (array of string) - phone numbers relevant to this travel arrangement, e.g. airport contact numbers
    • FirstLocation (string) - the first location of this travel
    • SecondLocation (string) - the second location of this travel
    • TicketClass (string) - the class of the ticket; also used for the vehicle class for transfer arrangements if needed
    • CheckInTime (string) - the recommended time to check in before the travel; usually as hours (e.g. check in 2 hours before)
    • Duration (string) - the estimated duration of this travel
    • Distance (double) - the estimated length of this travel

ItineraryCarHire

  • Properties
    • Collection (string) - the collection location
    • DropOff (string) - the drop off location
    • CollectionContentEntityId (int) - the id of the Wetu location for collection
    • DropOffContentEntityId (int) - the id of the Wetu location for drop off
    • CollectionAddress (string) - the address of the collection location
    • DropOffAddress (string) - the address of the drop off location
    • Agency (string) - the car hire agency / company
    • Vehicle (string) - the model of vehicle
    • VehicleClass (string) - the general class of the vehicle (e.g. class B)
    • ReferenceCodes (string) - any reference codes for this car hire arrangement; semicolon (;) delimited if multiples are needed
    • CollectionDate (datetime) - the date of collection
    • CollectionTime (string) - the time of collection (e.g. 08h30)
    • DropOffDate (datetime) - the date of drop off
    • DropOffTime (string) - the time of drop off(e.g. 08h30)
    • Included (string) - any specific items included in the car hire
    • ContactNumbers (string) - phone numbers relevant to this route, e.g. agency contact numbers

ItineraryDocument

  • Properties
    • ItineraryDocumentId (int) - a unique id for this document, can be used to add or remove documents via supporting services
    • Name (string) - the display name for this document
    • Hidden (bool) - if set to true, this prevents the document from being shown to the client
    • Element (string) - the filename of the document within Wetu

ItineraryImage

  • Properties
    • Url (string) - the full url to the image
    • UrlFragment (string) - a partial uri to the image; for use in conjunction with the Wetu Image Scaler

ItineraryTypeEnum (Enumeration)

  • Values:
    • Personal - a personal itinerary for an individual client / booking
    • Sample - a sample itinerary; for sending as an example or for display on a website
    • DayComponent - a pre-built component for a single day (excludes accommodation)
    • Component - a multi-day component (includes accommodation)
    • DayTour - a single-day tour
    • MultiDayTour - a multi-day tour

BookingStatusEnum (Enumeration)

  • Values
    • None
    • AwaitingQuotation
    • Quoted
    • Booked
    • DidNotBook
    • Invoiced
    • PaymentDue
    • Paid
    • Travelled
    • Cancelled
    • Provisional

ItineraryRouteHandlingModeEnum (Enumeration)

  • Values
    • UseRoutesOnly - ignore travel arrangements; default for itineraries built through the Wetu itinerary builder
    • UseProvidedRoutesWithTravelArrangements - reserved mode; not recommended for use
    • AutoGenerateRoutesFromTravelArrangements - default for travel arrangement integrations; instructs Wetu front-ends to render detailed map lines
    • PlaceholderRoutesWithTravelArrangements - alternate for travel arrangement integrations; instructs Wetu front-ends to render simple placeholder map lines

ItineraryRouteTypeEnum (Enumeration)

  • Values
    • None - invalid value
    • InLeg - a day route
    • InterLeg - a route between two accommodation
    • Arrival - a "pre itinerary" route (e.g international flights before their arrival in-country)
    • Departure - a "post itinerary" route (e.g. international return flights)
    • Mobile - a travel path for "mobile" accommodation such as a boat cruise, a train trip, etc; only valid within a Mobile leg
    • Overnight - a route for overnight travel; only valid within an Overnight leg
    • DayTour - a route for a day tour; only valid within a Day Tour itinerary or as a custom route within a Day Tour Activity on an itinerary

ItineraryTravelArrangementModeEnum (Enumeration)

  • Values
    • ScheduledFlight - a regularly scheduled flight / air transfer
    • CharterFlight - a chartered flight / air transfer
    • Transfer - a road transfer
    • Train - a train trip
    • Boat - a boat trip
    • Helicopter - a helicopter flight

ItineraryRouteModeEnum (Enumeration)

  • Values
    • Selfdrive - a road route, in the clients own (possibly rented) vehicle
    • ScheduledFlight - a regularly scheduled flight / air transfer
    • CharterFlight - a chartered flight / air transfer
    • Transfer - a road transfer
    • Train - a train trip
    • Boat - a boat trip
    • Hike - a hiking trip
    • Helicopter - a helicopter flight
    • Other
    • NoTransit - a "null" route, do not display

Many of the options above have a corresponding "NoRoute" variant (e.g. SelfdriveNoRoute) - this indicates that a straight line between locations should be used instead of a more accurate path. Alternatively, a custom path can be provided for NoRoute variants by providing latitude / longitude pairs in the accompanying Points collection on the route itself.


ItineraryRoomBasisEnum (Enumeration)

  • Values
    • None
    • RoomOnly
    • SelfCatering
    • OwnArrangement
    • HalfBoard
    • BedAndBreakfast
    • DinnerBedAndBreakfast
    • DinnerBedBreakfastAndLunch
    • DinnerBedBreakfastLunchAndActivities
    • FullyInclusive

ItineraryDrinksBasisEnum (Enumeration)

  • Values
    • None
    • DrinksLocalBrands
    • DrinksExclSpirits
    • AllDrinks

ItineraryLegDayElementTimeEnum (Enumeration)

  • Values
    • None
    • Start
    • Morning
    • Lunch
    • Afternoon
    • Dinner
    • Evening

ItineraryLegRoomTypeEnum (Enumeration)

  • Values
    • Single
    • Double
    • Twin
    • Triple
    • Family

ItineraryElementTypeEnum (Enumeration)

  • Values
    • Included - a standard activity / day tour
    • Recommended - a recommendation rather than a scheduled activity
    • Optional - an optional activity / day tour
    • Stop - special case option for Mobile legs, indicates an activity or location along the route
    • Information - supporting information, not an activity (e.g. local cultural information, regional guidance, travel tips, etc)
    • Destination - an additional destination being visited on the day, either as part of an activity or during other travel

ItineraryTravellerTypeEnum (Enumeration)

  • Values
    • Adult
    • Child

ItineraryLegTypeEnum (Enumeration)

  • Values
    • Standard - a stay of one or more nights at a hotel / guest house / game reserve
    • Mobile - one or more nights aboard a train / boat / cruise ship (NB Mobile legs have additional complexities compared to Standard legs)
    • OwnArrangement - one or more nights of "unspecified" accommodation, optionally with a guest house or general area specified
    • OvernightTravel - one night without accommodation due to travel
    • Departure - the final leg in the itinerary

NotificationFrequencyEnum (Enumeration)

  • Values
    • Always - send a notification each time a client opens the itinerary, whether on the web or via the mobile app
    • None - no notifications
    • FirstView - send a notification only the first time a client opens the itinerary; each "distinct" viewer will send a new notification (e.g. if the client forwards it to friends / family / other travellers)

Still need help? Contact Us Contact Us