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