undefined - QuoteCloud API for Itinerary Sync - illustration 06a6cdda-2e0c-4345-a3de-6be30f5393ad

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:

FieldDescription
branchBranch identifier provided by QuoteCloud
passwordPassword 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

FieldTypeDescription
branchstringBranch ID configured for API integration in QuoteCloud
passwordstringPassword set for API integration in QuoteCloud
filefileJSON 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.