Quick Integration Guide

TripCreator can rather quickly integrate with any content provider if it provides the following means to access static and live data.

Introduction

This integration guide briefly specifies the anticipated minimal partner API required for TripCreator to operate. TripCreator can process and display much more data than is specified in this document.

The anticipated partner API can be divided into two major parts: static data and real-time operations.

  1. Static Data
    TripCreator builds a static data index of all partner items locally. Simply put this index is a local cache that only includes static item information like title, description, location, images, etc. It is used whenever a quick lookup of item attributes is required. For example, the local cache will be accessed whenever user opens the image gallery for the item or uses item on the map.
    TripCreator performs regular updates of local cache to keep it in sync with partner inventory. This usually happens during the quiet period when the traffic is at its lowest. Optionally, partner can push update notifications to TripCreator to keep local cache as up to date as possible.

    • Images
      TripCreator will fetch partner images only once when the image is requested by the end-user for the first time. TripCreator will download the image, resize it and cache it on the content delivery network. All subsequent user requests will be served from that cache bypassing the partner servers. If original image url changes the cache will be invalidated and new replica will be made.
  2. Real-Time Data
    Availability/pricing caching is kept to the minimum to ensure correct status and real-time feeling of each item. Whenever a new trip is being created or an item is added to the trip TripCreator will fetch the latest availability and pricing from the partner. Also TripCreator will perform regular availability refresh for older trips to ensure that user is seeing the latest status and price.

Accommodations

  1. API methods to crawl and cache all static accommodation content regularly
    TripCreator needs to build a local search index to assure quick and flexible access to static data. The required static accommodation fields:

    Field Type
    Title* Text
    Description Text
    Image URL
    Type Enumeration
    Rank* Number
    Coordinates* (Latitude, Longitude)
    Facilities Text

    Accommodation type must specify the type of facility such as Hotel, Hostel, Apartment, etc. TripCreator will map partner type to the internal enumeration to allow user to filter accommodations by type.

    A note about rank: TripCreator is rather flexible on this field. It might be ok to have hotel stars or rating or review score or something similar that would allow to sort all accommodations from the best to the worst.

  2. API method to query availability by id
    This can be one API call.

    1. API method to query generic availability by id
      TripCreator will filter and pick accommodations from local search index based on user actions. Once a set of accommodation ids is selected TripCreator needs to query availability for each accommodation. This happens in real-time whenever user interacts with accommodations on the map.
    2. API method to query room availability by id
      TripCreator will show room availability in details view of the available accommodation.

      Field Type
      Title* Text
      Image Url
      Capacity* Number
      Price* Number
      Currency USD, EUR, CAD, AUD, ISK, etc.
      Facilities Text

      Room availability API must allow to fetch data for multiple accommodations at the same time.

  3. API method to book and charge on behalf of TripCreator
    TripCreator will send the customer credit card data to the API provider. The API provider is responsible for charging the customer credit card.

*Required fields


Tours & Activities

  1. API methods to crawl and cache all static tour & activity content regularly
    TripCreator needs to build a local search index to assure quick and flexible access to static data. The required static tour & activity fields:

    Field Type
    Title* Text
    Description Text
    Image Url
    Departure Point* (Latitude, Longitude)
    Duration* Number
    Availability Period (Seasonality)* Timeframe

    A note about availability period: TripCreator requires preliminary availability information to cache. For example, if some tour is available all year round, during winter months or during Christmas period. This is used to make a quick decision whether it is worth to try to schedule some tour during the trip period.

  2. API method to query tour & activity availability by id
    This can be one API call.

    1. API method to query available start times per day
      TripCreator will query the API when trying to build an itinerary for the user. The availability response should include the following required fields:

      Field Type
      Departure Date* Date
      Departure Time* Time
      Seats Available* Number
      Price Per Seat* Number
      Currency USD, EUR, CAD, AUD, ISK, etc.

      Optionally TripCreator can support different seat prices per age interval. The partner can provide seat prices per age interval but at any case, age interval must be of a strict structure that is possible to parse.

    2. API method to query available days per period
      TripCreator will query available days API when suggesting alternative days for a particular tour.
  3. API method to book and charge on behalf of TripCreator
    TripCreator will send the customer credit card data to the API provider. The API provider is responsible for charging the customer credit card.

*Required fields


Car Rental

  1. API method to crawl and cache all possible pickup/dropoff locations regularly
    TripCreator needs to build a local search index of all possible pickup/dropoff locations to assist the user with nearby locations. Each location must provide the following required fields:

    Field Type
    Title Text
    Coordinates (Latitude, Longitude)

    TripCreator needs to build a local search index of all possible pickup/dropoff locations to assist the user with nearby locations. Whenever a user tries to add a car TripCreator will automatically suggest the nearest pickup location based on the traveler position at that time.

  2. API method to query available cars by given pickup and dropoff locations
    TripCreator will query available cars every time user tries to add a new car. The availability response must include car description and pricing information. The required fields:

    Field Type
    Title (Model)* Text
    Image Url
    Acriss code* Number
    Max Passengers* Text
    Transmission* Text
    Air Conditioning* Boolean
    Price* Number
    Currency USD, EUR, CAD, AUD, ISK, etc.

    Static car type information (Title, Max Passengers, etc) can also be provided together with rental car locations or another API call.

  3. API method to book and charge on behalf of TripCreator
    TripCreator will send the customer credit card data to the API provider. The API provider is responsible for charging the customer credit card.

*Required fields


Booking

TripCreator will forward customer profile and credit card details alongside the item being booked. The API provider is responsible for charging the customer credit card and making sure that the reservation actually happens. TripCreator will expect at least the following fields for the booking response:

Field Type
Booking Reference* Text
Booking status* Enumeration
Voucher Text

TripCreator is rather flexible on voucher structure. This can be anything from pdf ticket to url on the partner website. Voucher will be presented to the user as a proof that booking has been made.

*Required fields


The information above represents the information we need to for a quick/best case scenario for TripCreator and how the integration effort can be minimized.

We can of course adapt to different APIs given a bit more time and find solutions that fit your and our needs.