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.

Frequently Asked Questions

What is the QuoteCloud Itinerary Sync API?

The QuoteCloud Itinerary Sync API lets travel systems push booking and itinerary data into QuoteCloud so travel agents can manage itineraries alongside quotes and proposals. The API accepts a BookingCI-compliant JSON file via a secure HTTP POST and is designed to integrate itinerary details into QuoteCloud's platform (used as quote software and proposal software for travel agencies).

What is the endpoint, HTTP method, and upload type for the Itinerary Sync API?

Use the following endpoint and request format:

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

Method: POST

Upload type: multipart/form-data (file field must contain BookingCI JSON with Content-Type application/json).

What are the prerequisites and how does authentication work?

Prerequisites: a valid QuoteCloud branch ID, a configured integration password, a BookingCI-compliant JSON file, and HTTPS support for secure transmission.

Authentication is sent as multipart/form-data fields: branch (branch ID) and password (integration password). These credentials must be provisioned in your QuoteCloud account and should be stored securely (for example, in environment variables) and never exposed in client-side code.

What form fields are required in the POST request and what file format should I upload?

Required multipart/form-data fields:

- branch: string — your QuoteCloud branch ID

- password: string — the integration password for that branch

- file: file — the BookingCI JSON file (Content-Type: application/json)

The uploaded file must be valid JSON that conforms to the BookingCI schema.

What must the BookingCI payload include and which segment types are supported?

The uploaded BookingCI JSON must include core booking and itinerary sections such as bookingReference, systemType, bookingStatus, agency.agency.code, agency.consultant.consultant.code, passengers (passenger[] with names and emails), and itinerary.itineraryItem[] containing one or more segments.segment[].

Supported segment types include: flight, hotel, car, transfer, tour, bus, ferry, rail, cruise, surface, insurance and act. Ensure required fields for each segment type are present according to the BookingCI schema.

Can you provide a sample cURL request and an outline of a minimal valid payload?

Sample cURL (replace environment variables with your values):

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

Minimal valid payload outline: include bookingReference, systemType, bookingStatus, agency.agency.code, agency.consultant.consultant.code, at least one passenger (with name/email) and at least one itineraryItem with a segment[]. Consult the BookingCI schema in the developer docs for exact field names and types.

How does validation and error handling work for itinerary syncs?

The API validates the uploaded JSON against the BookingCI schema. If validation fails, the API returns error details and an HTTP error status. For successful requests you should receive confirmation and the synced itinerary will appear in QuoteCloud.

Best practices: perform local schema validation before upload, log responses and errors, implement retries for transient network errors, and surface server error messages to support/debug flows when needed.

What are security and integration best practices when using the Itinerary Sync API?

Security recommendations: always use HTTPS, store branch IDs and passwords in server-side environment variables or a secrets manager, rotate integration passwords periodically, and never embed credentials in client-side code or public repositories.

Integration tips: validate BookingCI payloads locally before uploading, batch or queue uploads to avoid rate spikes, and combine itinerary data with QuoteCloud's quoting and proposal workflows so agents can include synced itineraries in documents generated by QuoteCloud's sales quoting software and sales proposal software.