QuoteCloud Itinerary Sync API – Developer Guide

 

Overview

The QuoteCloud Itinerary Sync API enables seamless integration of travel booking data into the QuoteCloud platform. It accepts a JSON payload conforming to the BookingCI schema and synchronizes itinerary details via a secure HTTP POST request. You can find the full schema here.

  • Endpoint: https://workerapi.quote.cloud/service/jsonpost/itinerary-sync-api

  • Method: POST

  • Upload Type: multipart/form-data

This guide covers authentication, payload structure, integration examples, validation, and error handling.

 

Getting Started

Prerequisites

Before you begin, ensure you have:

  • A valid branch ID and password configured in QuoteCloud

  • A BookingCI-compliant JSON file

  • HTTPS support for secure transmission

Authentication

Authentication is handled via multipart/form-data fields:

Field Description
branch Branch identifier provided by QuoteCloud
password Password configured in QuoteCloud

 

🔐 These credentials must be provisioned in your QuoteCloud account. Store them securely in environment variables and avoid exposing them in client-side code.

 

Request Format

Required Form Fields

Field Type Description
branch string Branch ID configured for API integration in QuoteCloud
password string Password set for API integration in QuoteCloud
file file JSON file (BookingCI schema)

 

Example: cURL

bash

curl -X POST \
  -F "branch=$QC_BRANCH" \
  -F "password=$QC_ITINERARY_SYNC_PASSWORD" \
  -F "file=@/path/to/booking.json;type=application/json" \
  https://workerapi.quote.cloud/service/jsonpost/itinerary-sync-api

 

Payload Structure

The uploaded JSON must conform to the BookingCI schema. Key sections include:

  • bookingReference, systemType, bookingStatus

  • agency.agency.code, agency.consultant.consultant.code

  • passengers.passenger[] with names and emails

  • itinerary.itineraryItem[] with one or more segments.segment[]

Supported segment types:

  • flight, hotel, car, transfer, tour, bus, ferry, rail, cruise, surface, insurance, activity, miscellaneous, general

 

Minimal Valid Payload

JSON

{
  "bookingReference": "TI120920230931",
  "systemType": "CCTE",
  "agency": {
    "agency": { "code": "X12" },
    "consultant": {
      "consultant": { "code": "quotecloud" }
    }
  },
  "bookingStatus": { "bookingStatus": "ACTIVE" },
  "passengers": {
    "passenger": [
      {
        "firstname": "ALL SEGMENTS",
        "lastname": "TEST",
        "passengerNumber": 0,
        "leadPassenger": true,
        "emails": { "email": ["test@test.com"] }
      }
    ]
  },
  "itinerary": {
    "itineraryItem": [
      {
        "itemNumber": 1,
        "ccteStatus": "Confirmed",
        "segments": {
          "segment": [
            {
              "type": "Flight",
              "flight": {
                "departs": {
                  "date": "Jun 20, 2023 9:10:00 AM",
                  "airport": { "airportLocation": { "cityCode": "SYD" } }
                },
                "arrives": {
                  "date": "Jun 20, 2023 6:00:00 AM",
                  "airport": { "airportLocation": { "cityCode": "LAX" } }
                }
              }
            }
          ]
        }
      }
    ]
  }
}

📥 Need a more complex example? Download a JSON sample with multiple passengers, segments, and services here.

 

 

Consultant Mapping

The consultant code in your payload must match the Consultant ID configured in QuoteCloud.

Required Field: agency.consultant.consultant.code

Example:

JSON

{
  "agency": {
    "consultant": {
      "consultant": {
        "code": "quotecloud",
        "name": "quotecloud"
      }
    }
  }
}

❌ Uploads will be rejected if the consultant code does not match.