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 moresegments.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.