Add Traveler API Reference
POST |
book/traveler/reservationworkbench/{workbenchID}/travelers For {workbenchID} send the workbench identifier returned in ReservationResponse/Identifer/value in the workbench create response. Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Booking Guide, Booking Session Workflow
Send the Add Traveler request to add a traveler to the reservation workbench. You must add each traveler to the workbench in a separate POST request. Traveler information can include traveler name and contact details, add traveler-specific remarks including certain SSRs and travel documents such as a passport.
Travelers must be added one at a time. Send each traveler in a separate request.
Add travelers in the same order as their PTC was sent in preceding Search and/or Price requests. For example, if you searched for two ADT and one CHD, send an Add Traveler request for each of the two ADT passengers and then send a third Add Traveler request for the CHD passenger.
Any traveler sent without a PTC (passenger type code) value is defaulted to ADT. PTC can be sent or omitted for ADT travelers.
An INF (infant) cannot be added without an ADT (adult) PTC already on the itinerary.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body
Basic Traveler Add Request
Object |
Description |
Required/Optional |
---|---|---|
Traveler |
Traveler details such as name and contact information. Contains PersonName, may include Telephone, Email, Address, Comments, TravelDocument, and CustomerLoyalty objects. |
Required |
|
PTC for this traveler |
Required |
|
Required in the API only for infant and child PTC types (e.g., INF, INS, CHD, UNN). Send in YYYY-MM-DD format, for example,
Required for all PTCs as part of minimum secure flight information, which is required by some carriers. |
Required for infant and child PTCs, or as part of minimum secure flight information |
|
Required only as part of minimum secure flight information, which is required by some carriers. Supported values:
|
Optional Required only as part of minimum secure flight information |
PersonName |
Top level object. |
Required |
|
Traveler first or given name. |
Required |
|
Traveler last name or surname. |
Required |
|
Title such as Mr, Mrs, Ms. |
Optional |
|
Traveler middle name. |
Optional |
|
Traveler name suffix such as Jr or Sr. |
Optional |
Telephone |
Top level object. |
Optional |
|
Country code for phone number. |
Optional |
|
String. Phone number. |
Optional |
|
GDS only; not supported for NDC.
Extension for a phone number. |
Optional |
|
Custom user-assigned identifier to assign to this phone number. |
Optional |
|
City code for phone number. |
Optional |
|
Role to assign to this number. Supported values are as follows; case-sensitive:
|
Required |
Address |
Traveler address details. Includes Number, Street, City, StateProv, Country, and PostalCode objects. Sending Address is optional, but when sent it must have the role set to Delivery and include at least one of its objects, such as Number or City per below. |
Optional |
|
Must be set to Delivery. Traveler address details are sent as a client delivery remark when Address/role is sent with a value of Delivery. See more in the Remarks & Service Requests Guide. |
Optional |
Number |
Top level object for the street number of the address. |
Optional |
|
Value of street number. | |
Street |
The street name of the traveler address. |
Optional |
City |
The city of the traveler address. |
Optional |
StateProv |
Top level object for the street number of the address. |
Optional |
|
Name of state or province. |
Optional |
|
Postal abbreviation for state or province. |
Optional |
Country |
The country of the traveler address. |
Optional |
PostalCode |
The postal code of the traveler address. |
Optional |
Telephone |
Traveler phone information. |
Optional |
|
Country access code for phone number. |
Optional |
|
Area code for phone number. |
Optional |
|
Phone number. |
Optional |
|
Phone number extension. |
Optional |
|
Id for phone extension. |
Optional |
|
City code for Country access code for phone number. |
Optional |
|
Freeform text for type of phone number, such as office, cell, home. |
Optional |
|
Traveler email information. Array. Send one instance for each email address. |
Optional |
|
Any freeform note for the email, such as its purpose, e.g., work email. |
Optional |
|
Email address. |
Required if Email is sent |
CustomerLoyalty |
Object for sending frequent traveler details. If CustomerLoyalty is sent in the Search request, it must also be sent in the AirPrice request and the Add Traveler request. Because some carriers validate frequent traveler data through the workflow, failing to send the same CustomerLoyalty details, even if invalid, may cause a booking failure. If an invalid number is sent, the response returns the warning message M INVALID FQTV NAME OR NUMBER - {carrier code} and the JSON APIs cache the invalid number to prevent a potential booking failure.
|
Required if sent in previous Search and AirPrice requests |
|
Frequent flyer/frequent traveler (FQTV) number. |
Optional |
|
Airline or supplier providing loyalty program. |
Optional |
|
Name of person with frequent flyer number. |
Optional |
TravelDocument |
See TravelDocument table below. |
Optional |
Comments |
AirReservation 23.11.35 and later.
Use to send traveler name remarks. Includes Comment object. |
Optional |
Comment |
Use to send a custom freeform traveler name remark, such as a unique identifier for that traveler. Not supported for addition/deletion in Traveler Modify. |
Required if Comments is sent. |
|
Local identifier to use for this remark. |
Optional |
|
Freeform traveler name remark; up to 33 characters, only spaces and hyphens allowed for special characters. |
Required if Comments is sent. |
Traveler Add Request - TravelDocument object
Object |
Description |
Required/Optional |
---|---|---|
TravelDocument |
Optional details about traveler identification documents such as a passport or drivers license. Includes PersonName object. |
Required |
|
Travel document number. |
Required |
|
Travel document type. Supported values:
|
Required |
|
Expiration date of document. |
Optional Required for a visa |
|
Issue date of document. |
Optional Required for a visa |
|
Issuing country of document. |
Optional |
|
Send in YYYY-MM-DD format, for example, "birthDate":"2020-02-21" |
Optional |
|
Birth country as noted on document. |
Optional |
|
Supported values:
|
Optional |
PersonName |
Top level object. |
Required |
|
Traveler first or given name. |
Required |
|
Traveler last name or surname. |
Required |
|
Title such as Mr, Mrs, Ms. |
Optional |
|
Traveler middle name. |
Optional |
|
Traveler name suffix such as Jr or Sr. |
Optional |
IssuedForGeoPoliticalArea |
Geopolitical area. |
Optional |
Response
The response returns the system-generated traveler identifier. This identifier must be sent in any subsequent traveler-specific requests, such as ticketing and seat assignment.
Object |
Description |
---|---|
TravelerResponse |
Top level object. |
Traveler |
Top level object. |
Identifier |
Returns the system-generated traveler identifier in the following key value pairs; in this case authority, if returned, is Travelport:
|
Example Request
The following example request includes the TravelDocument object with passport details.
{
"Traveler": {
"@type": "Traveler",
"birthDate": "1999-02-22",
"gender": "Male",
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonNameDetail",
"Prefix": "Mr",
"Given": "Px ADTOne",
"Middle": "MdNm",
"Surname": "SrNmOne"
},
"Address": [
{
"@type": "Address",
"role": "Home",
"Number": {
"value": "539"
},
"Street": "East PeakView Avenue",
"City": "Englewood",
"County": "US",
"StateProv": {
"name": "Texas",
"value": "CA"
},
"PostalCode": "917113323"
}
],
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "212456121",
"extension": "1243",
"id": "4",
"cityCode": "ORD",
"role": "Office"
}
],
"Email": [
{
"value": "ADTTravelerOneOne@gmail.com"
},
{
"value": "ADTTravelerOneTwo@gmail.com"
}
],
"CustomerLoyalty":
{
"supplier": "DL",
"value": "DL2071983684"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "245968",
"docType": "Passport",
"issueDate": "2020-12-22",
"expireDate": "2027-02-22",
"issueCountry": "IND",
"birthDate": "1999-02-22",
"birthCountry": "IN",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "Px One",
"Middle": "MdNmOne",
"Surname": "SrNmOne"
},
"IssuedForGeoPoliticalArea": {
"value": "IN"
}
}
]
}
}
{
"Traveler": {
"@type": "Traveler",
"birthDate": "1999-02-22",
"gender": "Male",
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonNameDetail",
"Prefix": "Mr",
"Given": "Px ADTOne",
"Middle": "MdNm",
"Surname": "SrNmOne"
},
"Address": [
{
"@type": "Address",
"role": "Home",
"Number": {
"value": "539"
},
"Street": "East PeakView Avenue",
"City": "Englewood",
"County": "US",
"StateProv": {
"name": "Texas",
"value": "CA"
},
"PostalCode": "917113323"
}
],
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "212456121",
"extension": "1243",
"id": "4",
"cityCode": "ORD",
"role": "Office"
}
],
"Email": [
{
"emailType": "From",
"value": "ADTTravelerOneOne@gmail.com"
},
{
"emailType": "To",
"comment": "Two email Id",
"value": "ADTTravelerOneTwo@gmail.com"
}
],
"CustomerLoyalty":
{
"supplier": "DL",
"value": "DL2071983684"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "245968",
"docType": "Passport",
"issueDate": "2020-12-22",
"expireDate": "2027-02-22",
"issueCountry": "IND",
"birthDate": "1999-02-22",
"birthCountry": "IN",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "Px One",
"Middle": "MdNmOne",
"Surname": "SrNmOne"
},
"IssuedForGeoPoliticalArea": {
"value": "IN"
}
}
]
}
}
The following example request includes the TravelDocument object with drivers license details.
{
"Traveler": {
"id": "trav_1",
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonNameDetail",
"Given": "TestFirst",
"Middle": "TestMiddle",
"Surname": "TestLast"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "2",
"areaCityCode": "707",
"phoneNumber": "21245241",
"extension": "932",
"id": "3",
"cityCode": "LHR",
"role": "Home"
}
],
"Email": [
{
"comment": "Primary Email Id",
"value": "TravelerOne@gmail.com"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "V123",
"docType": "Visa",
"issueDate": "2011-08-04",
"expireDate": "{{passportExpiration}}",
"issueCountry": "LONDON",
"birthDate": "2011-01-12",
"birthPlace": "NEW YORK",
"IssuedForGeoPoliticalArea": {
"value": "USA"
},
"Address": {
"@type": "Address",
"role": "Home",
"Street": "Travers Street",
"City": "Claremont",
"StateProv": {
"name": "Texas",
"value": "CA"
},
"Country": {
"value": "US"
},
"PostalCode": "917113323"
}
},
{
"@type": "TravelDocumentDetail",
"docNumber": "D12345",
"docType": "DriversLicense",
"issueDate": "2018-07-04",
"expireDate": "2023-12-05",
"issueCountry": "US",
"birthDate": "2017-12-01",
"birthCountry": "US",
"birthPlace": "PARIS",
"Gender": "Male",
"PersonName": {
"@type": "PersonNameDetail",
"Given": "TestFirst",
"Surname": "TestLast"
}
}
]
}
}
If adding any traveler with the INF, INS, CHD, or UNN (infant without a seat, infant in seat, child, unaccompanied child) PTC types, you must also specify the child's age, per the following example for a child passenger.
{
"Traveler": {
"birthDate": "{{infantDateOfBirth}}",
"id": "trav_1",
"passengerTypeCode": "INF",
"PersonName": {
"@type": "PersonNameDetail",
"Given": "TestFirstInf",
"Middle": "",
"Surname": "TestLastInf",
"Suffix": "Jr"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "305",
"phoneNumber": "8675309",
"id": "telephone_1",
"role": "Home"
}
],
"TravelDocument": [
{
"@type": "TravelDocument",
"docNumber": "H294F6",
"docType": "Passport",
"expireDate": "{{passportExpiration}}",
"issueCountry": "US",
"birthDate": "{{infantDateOfBirth}}",
"birthCountry": "USA",
"Gender": "Female",
"PersonName": {
"@type": "PersonName",
"Given": "TestFirstInf",
"Surname": "TestLastInf"
}
}
]
}
}
The following example request for NDC sends the CustomerLoyalty object to send frequent traveler number.
{
"Traveler": {
"@type": "Traveler",
"birthDate": "1999-02-22",
"gender": "Male",
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonNameDetail",
"Prefix": "Mr",
"Given": "Px ADTOne",
"Middle": "MdNm",
"Surname": "SrNmOne"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "212456121",
"extension": "1243",
"id": "4",
"cityCode": "ORD",
"role": "Office"
}
],
"Email": [
{
"value": "ADTTravelerOneOne@gmail.com"
}
],
"CustomerLoyalty": [
{
"supplier": "QF",
"value": "1234"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "245968",
"docType": "Passport",
"issueDate": "2020-12-22",
"expireDate": "2027-02-22",
"issueCountry": "IND",
"birthDate": "1999-02-22",
"birthCountry": "IN",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "Px One",
"Middle": "MdNmOne",
"Surname": "SrNmOne"
},
"IssuedForGeoPoliticalArea": {
"value": "IN"
}
}
]
}
}
The following example includes the optional Comment object; include a value to specify a freeform unique customer ID of your choice.
{
"Traveler": {
"@type": "Traveler",
"birthDate": "1999-02-22",
"gender": "Male",
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonNameDetail",
"Prefix": "Mr",
"Given": "Px ADTOne",
"Middle": "MdNm",
"Surname": "SrNmOne",
"Suffix": "ADT"
},
"Comments": {
"@type": "Comments",
"Comment": [
{
"id": "comment_1",
"value": "ID-12345671"
}
]
}
}
}
Example Response
The response returns the system-generated traveler identifier.
{
"TravelerResponse": {
"Traveler": {
"@type": "TravelerIdentifier",
"Identifier": {
"value": "1e0940e3-d9cb-4384-8824-4f1c160e7deb"
}
}
}
}