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 traveler/s to the reservation workbench. Traveler information can include traveler name and contact details. You can also use this request to send traveler-specific remarks including certain SSRs and travel documents such as a passport.
Request
Also see Authorization and Common Headers.
Query Parameters
None.
Request Body

Traveler object
Object |
Description |
Required/Optional |
---|---|---|
TravelerListRequest |
Wrapper object for request. Send with @type value Traveler. AirReservation 25.11.51 added this wrapper object to support the Traveler object as an array, which supports sending up to nine travelers in a single request. Best practice is to send TravelerListRequest for all add traveler requests, even for only one traveler. The previous payload, which sends a single instance of Traveler and supports only one traveler per request, is still supported.
|
Required for adding multiple travelers in one request; optional for adding a single traveler |
Traveler |
Array when sent with the TravelerListRequest object per the note above. Each instance sends details for one traveler. A single booking can have up to 9 travelers. When sent without TravelerListRequest, only one instance of Traveler is supported in a single request. Includes PersonName, Telephone, Email, Address, Comments, TravelDocument, and CustomerLoyalty objects. 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. |
Required (at least one instance is required) |
|
Passenger type code (PTC) for this traveler. |
Required for all PTCs other than ADT; if not sent defaults to ADT |
|
The JSON APIs require this object only for infant and child PTC types (e.g., INF, INS, CHD, UNN). Send in YYYY-MM-DD format, for example,
When sending minimum secure flight information, which is required by some carriers, this object is required for all PTCs. |
Required for infant and child PTCs, or as part of minimum secure flight information |
|
Traveler gender. Supported values:
When sending minimum secure flight information, which is required by some carriers, this object is required. |
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, Address, Email, CustomerLoyalty, Comments objects
Object |
Description |
Required/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 if Telephone sent |
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 |
Country of the traveler address. |
Optional |
PostalCode |
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 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 for GDS Required for NDC carriers |
|
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. |
TravelDocument object
Object |
Description |
Required/Optional |
---|---|---|
TravelDocument |
Optional details about traveler identification documents such as a passport or drivers license. Includes PersonName object. |
Optional |
|
Travel document number. |
Required if TravelDocument sent |
|
Travel document type. Supported values:
|
Required if TravelDocument sent |
|
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 if TravelDocument sent |
|
Traveler first or given name. |
Required if TravelDocument sent |
|
Traveler last name or surname. |
Required if TravelDocument sent |
|
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 adds two travelers. For the first traveler it sends TravelDocument with passport details, and for the second traveler sends TravelDocument with visa details.

{
"TravelerListRequest": {
"@type": "TravelerListRequest",
"Traveler": [
{
"@type": "Traveler",
"PersonName": {
"@type": "PersonNameDetail",
"Given": "JORDAN",
"Surname": "LOYTEST"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "2124561",
"extension": "123",
"id": "1",
"cityCode": "DEN",
"role": "Home"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "88789888",
"docType": "Passport",
"issueDate": "2019-07-06",
"expireDate": "2023-12-07",
"issueCountry": "USA",
"birthDate": "1997-12-20",
"birthPlace": "USA",
"Gender": "Male",
"PersonName": {
"@type": "PersonNameDetail",
"Given": "JORDAN",
"Surname": "LOYTEST"
},
"IssuedForGeoPoliticalArea": {
"value": "USA"
}
}
],
"Email": [
{
"value": "sgd@webjet.com"
}
],
"CustomerLoyalty": [
{
"value": "1295036",
"supplier": "AA"
}
]
},
{
"@type": "Traveler",
"PersonName": {
"@type": "PersonNameDetail",
"Given": "JORDAN",
"Surname": "LOYTEST"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "2124561",
"extension": "123",
"id": "1",
"cityCode": "DEN",
"role": "Home"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "V127",
"docType": "Visa",
"issueDate": "2019-07-04",
"expireDate": "2021-12-05",
"issueCountry": "LONDON",
"birthDate": "1982-01-24",
"birthPlace": "PARIS",
"IssuedForGeoPoliticalArea": {
"value": "USA"
},
"Address": {
"@type": "Address",
"role": "Destination",
"Street": "Travers Street",
"City": "Claremont",
"StateProv": {
"name": "Texas",
"value": "CA"
},
"Country": {
"value": "US"
},
"PostalCode": "917113323"
}
}
],
"Email": [
{
"value": "carlson.tang@webjet.com.au"
}
],
"CustomerLoyalty": [
{
"value": "1900007921",
"supplier": "AA"
}
]
}
]
}
}
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. This and the following examples send Traveler without the TravelerListRequest object, and only one passenger per request is supported in this format.

{
"Traveler": {
"birthDate": "2024-08-20",
"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 sends the CustomerLoyalty object to send a 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 a system-generated traveler identifier for each traveler added.

{
"TravelerResponse": {
"Traveler": {
"@type": "TravelerIdentifier",
"Identifier": {
"value": "1e0940e3-d9cb-4384-8824-4f1c160e7deb"
}
}
}
}