Remarks & Service Requests Guide & API Reference
The JSON APIs support several types of remarks and service requests as part of the booking workflow:
-
Some remarks, such as travel document details, are sent in the Add Traveler payload in the initial booking workflow. For an existing reservation, these remarks can be added, modified, or deleted using the Traveler Updatable Items and Traveler Update requests detailed in the Traveler Modify Guide.
-
Other remarks are sent in a separate payload. These can be added or deleted with a single direct request in either the initial booking workflow or for an existing reservation.
This combined guide and API reference provides endpoints and examples for adding all remarks, and for deleting remarks sent in payloads other than the Add Traveler payload. To modify or delete Add Traveler remarks, see the Traveler Modify Guide.
Related Content: JSON APIs Guide, Booking Guide, Traveler Modify Guide
In this topic:
This topic groups remarks by the request payload in which they are sent, as follows:
- Basic Concepts
- Remarks and Service Requests Support
- Workflows to Add and Delete Remarks
- Add Traveler Remarks and SSRs
- Primary Contact Remarks
- Special Service List SSRs
- Document Overrides
- Accounting Remarks
- Reservation Comments Remarks
- Add Offer SSRs
Basic Concepts
Remarks and optional services cover many kinds of notes and special requests that can be added to a reservation.
A service request, also known in the airline industry as an SSR, for special service request, is a message sent directly to carriers to communicate traveler preferences, special services needed by a traveler, or a procedural requirement necessary of the carrier. These service requests include information such as meal preference or special assistance required for the traveler. Because the carrier must take action, there is usually a reply in the form of the status code on the SSR (HK, UN, etc.).
Service requests can be programmatic or manual. Programmatic SSRs use a code recognized by the airline and are associated with both an air segment and a booking file. Manual SSRs do not have an associated code and are associated only to a booking file.
Each SSR uses a four-character IATA code that specifies the type of service requested. These codes and their recommended use are predefined by IATA; however, not all carriers support the use of all SSR codes. The JSON APIs do not send or return the IATA SSR codes; instead, they send specific information during booking and/or ticketing to the carrier, which transforms the necessary information into the appropriate SSR as needed.
You can also add various remarks to the reservation. Sometimes called OSI requests, for other service information, these are informational messages sent directly to the carrier to communicate traveler preferences or requirements. Unlike SSRs, OSIs are typically used to notify a carrier of special circumstances and do not require the carrier to take action.
Remarks and Service Requests Support
The following table outlines the remarks and service requests supported in the JSON APIs, and when in the workflow those requests can be added or deleted.
To modify or delete the remarks added via the Add Traveler Payload, see the Traveler Modify Guide.
To delete remarks not sent in the Add Traveler payload, use the DEL requests in this topic. AirReservation does not support PUT commands to directly modify these remarks. Instead, delete the remark and add a new remark; see Workflows to Add and Delete Remarks next.
Remark/service request sent in payload |
GDS |
NDC |
Add in initial booking workflow |
Delete in initial booking workflow |
Add to an existing reservation |
Delete from existing reservation |
Returned in reservation retrieve |
|||
---|---|---|---|---|---|---|---|---|---|---|
Add Traveler payload - only during initial booking (modify, delete, and add per the Traveler Modify Guide) |
||||||||||
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes for GDS Not returned for NDC |
||||
Yes |
No |
Yes |
Yes |
Yes |
Yes |
Yes |
||||
Yes |
Yes |
Yes |
No |
Yes |
No |
No |
||||
Yes |
No |
Yes |
No |
Yes |
No |
Yes |
||||
Yes |
No |
Yes |
No |
No |
No |
Yes |
||||
Yes |
No |
Yes |
No |
No |
No |
Yes |
||||
Primary Contacts payload (delete these and all following remarks in this table using the DEL requests in this topic for each payload) |
||||||||||
Yes |
Yes, specific carriers only |
Yes |
No |
Yes |
Yes |
Yes |
||||
Special Service List payload |
||||||||||
Yes |
Yes |
Yes |
No |
Yes |
No |
Yes |
||||
Yes |
Yes, specific carriers only |
Yes |
Yes |
Yes |
Yes |
Yes |
||||
Reservation Comments payload |
||||||||||
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
||||
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
||||
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
||||
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
||||
Document Overrides payload |
||||||||||
Yes |
No |
Yes |
No |
Yes |
No |
Returned if detailViewInd query parameter is set to true |
||||
Accounting payload |
||||||||||
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Returned if detailViewInd query parameter is set to true | ||||
Add Offer payload |
||||||||||
Yes |
Yes |
Yes |
No |
No |
No |
Yes for GDS Not returned for NDC |
Workflows to Add and Delete Remarks
The following tables outline the process for adding remarks in the initial booking workflow, and for adding and deleting remarks from an existing reservation.
Remarks sent in the Add Traveler payload can be added, modified, or deleted using the Traveler Updatable Items and Traveler Update requests detailed in the Traveler Modify Guide.
During any workbench session, if you retrieve the workbench to view updates, the retrieved workbench does not yet show the added or deleted remarks. The change appears only after the workbench is committed. After you commit the workbench you can retrieve the reservation to see the changes.
Adding/deleting remarks in the initial booking workflow
Step # |
Workflow Step |
Description and Notes |
API Reference |
---|---|---|---|
1 |
Create workbench |
Create a new workbench. Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench. |
|
2 or 3 |
Add offer |
Add the air offer. |
|
2 or 3 |
Add traveler |
Add each traveler. Include in the Add Traveler payload any remarks supported in that payload as desired. (After the booking is created, remarks sent in the Add Traveler payload are added, modified, or deleted using the Traveler Updatable Items and Traveler Update requests detailed in the Traveler Modify Guide.) |
See Add Traveler Remarks and SSRs below Also see the Add Traveler API Reference
|
4 |
Add other remarks as needed |
Per the sections below, send the appropriate POST request to add any remarks not sent in the Add Traveler payload. For special service requests, only one kind of service request is supported in the same payload. For example, you can send multiple special assistance requests (disability SSRs) but not a request for a wheelchair and a special meal request (disability and meal SSRs). |
See section in this topic for each remark |
5 |
Retrieve workbench (optional - only if deleting a remark) |
If needed, retrieve the workbench to get the identifier/s for the item/s to modify. |
Retrieve Workbench API Reference |
6 |
Delete a remark if needed (optional - only if deleting a remark) Not all remarks are supported for deletion. See the Support section above.
|
Send the DEL request from the appropriate section below to delete a remark. AirReservation does not support PUT commands to directly modify these remarks. Instead, delete the remark and add the new remark. |
See section in this topic for each remark |
5 |
Commit workbench |
Final step in the workflow. The response returns the reservation in the same format as a reservation retrieve response, including updates for most remarks. |
Commit Workbench API Reference
|
Adding/deleting remarks for existing reservation
Step # |
Workflow Step |
Description and Notes |
API Reference |
---|---|---|---|
1 |
Create workbench |
Create a post-commit workbench for an existing booking. Returns a system-generated identifier for the workbench that must be sent in subsequent requests for that workbench. |
|
as needed |
Add remark as needed (optional) |
Send the appropriate POST request to add any remark not sent in the Add Traveler payload, per the sections below. (To modify/delete/add remarks from the Add Traveler payload, see the Traveler Modify Guide.) |
See section in this topic for each remark |
as needed |
Send DEL request to delete remark if needed (optional) Not all remarks are supported for deletion. See the Support section above.
|
Send the DEL request from the appropriate section below to delete a remark. AirReservation does not support PUT commands to directly modify these remarks. Instead, delete the remark and add the new remark. |
See section in this topic for each remark |
as needed |
Additional request for same type of item (optional) |
On an existing reservation, to send an additional request for the same type of item (such as deleting an SSR and adding a new SSR, or deleting two SSRs):
|
Workbench Retrieve for GDS For NDC, go to next step for Workbench Commit, then repeat workflow. |
final step |
Commit workbench |
Final step in the workflow. The response returns the reservation in the same format as a reservation retrieve response, including updates for most remarks. |
Commit Workbench API Reference
|
Add Traveler Remarks and SSRs
Endpoints and Response
Remarks in this section are sent in the Add Traveler payload during the following initial booking workflow.
After the reservation is created, these remarks can be added, modified, or deleted using the Traveler Updatable Items and Traveler Update requests detailed in the Traveler Modify Guide.
Send the following POST request for the Add Traveler step. See the Add Traveler API Reference for additional details and examples.
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/ |
See the following sections for the payload for each traveler remark.
The Add Traveler response returns a confirmation identifier per the following example.
{
"TravelerResponse": {
"Traveler": {
"@type": "TravelerIdentifier",
"Identifier": {
"value": "b42c1b9e-5b1b-4e31-b635-aa138b84fcb6"
}
}
}
}
Travel Documents (SSR DOCO and DOCS)
Travel documents are sent as part of the Add Traveler payload per above. Some carriers require specific traveler information on certain routes, such as valid travel documents for international routes. Send passport, visa, etc. details in the TravelDocument object. If multiple travel documents are needed, include additional instances of TravelDocument.
AirReservation supports the following types of travel documents and converts them to the appropriate remark or SSR code as follows. No special formatting is required, and the information is automatically populated for the reservation.
Type of travel document |
Value to send in TravelDocument/docType |
SSR Code (informational only - not sent or returned in AirReservation) |
Passport |
Passport |
SSR DOCS P |
Redress |
Redress |
SSR DOCO R |
Known Traveler |
KnownTraveler |
SSR DOCO K |
Visa |
Visa |
SSR DOCO V |
When adding visa information, both issueDate and expireDate are required. Date formats are the Travelport JSON API standard YYYY-MM-DD.
All traveler information sent is returned in the reservation retrieve.
{
"Traveler": {
"id": "trav_1",
"passengerTypeCode": "ADT",
"PersonNameDetail": {
"Prefix": "",
"Given": "TestFirst",
"Middle": "TestMiddle",
"Surname": "TestLast",
"Suffix": ""
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "719",
"phoneNumber": "6401108",
"extension": "123",
"id": "1",
"cityCode": "DEN",
"role": "Mobile"
}
],
"TravelDocument": [
{
"@type": "TravelDocumentDetail",
"docNumber": "245968",
"docType": "Passport",
"issueDate": "2019-12-22",
"expireDate": "2025-08-20",
"issueCountry": "IND",
"birthDate": "1999-02-22",
"birthCountry": "IND",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "Px One",
"Middle": "MdNm One",
"Surname": "SrNmOne"
},
"IssuedForGeoPoliticalArea": {
"value": "USA"
}
}
],
"Address": [
{
"role": "Delivery",
"Number": "1220",
"Street": "Travers Street",
"City": "Claremont",
"StateProv": {
"name": "Texas",
"value": "CA"
},
"Country": {
"value": "US"
},
"PostalCode": "917113323"
}
],
"Email": [
{
"value": "test@gmail.com"
}
],
"CustomerLoyalty": [
{
"value": "1234123412",
"supplier": ""
}
]
}
}
Form of ID (SSR FOID)
GDS only; not supported for NDC.
Form of ID is sent in the Add Traveler request. For carriers who require it, the JSON APIs convert information about the form of ID used to the SSR Form of ID (FOID). You can send any of these types of ID to be converted to the SSR FOID:
- passport (send TravelDocument object with docType Passport)
- driver's license (send TravelDocument object with docType DriversLicense)
- frequent flyer (send CustomerLoyalty object)
All traveler information sent is returned in the commit step and in the reservation retrieve.
{
"Traveler": {
"birthDate": "1990-12-01",
"id": "trav_1",
"passengerTypeCode": "ADT",
"PersonName": {
"@type": "PersonNameDetail",
"Prefix": "Mr",
"Given": "JORDAN",
"Middle": "",
"Surname": "LOYTEST",
"Suffix": "ADT"
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "909",
"phoneNumber": "212456121",
"extension": "1243",
"id": "4",
"cityCode": "ORD",
"role": "Office"
}
],
"Address": [
{
"@type": "Address",
"role": "Delivery",
"id": "address_1",
"BldgRoom": {
"value": "Bldg H",
"buldingInd": true
},
"Number": {
"value": "563"
},
"City": "Los Angeles",
"Country": {
"value": "US"
},
"PostalCode": "91711"
}
],
"Email": [
{
"comment": "Primary Email Id",
"value": "TravelerOne@gmail.com"
}
],
"PassengerCriteria": [
{
"number": 1,
"age": 25,
"passengerTypeCode": "ADT"
}
],
"TravelDocument": [
{
"@type": "TravelDocument",
"docNumber": "H294F4",
"docType": "Passport",
"expireDate": "2025-12-12",
"issueCountry": "IND",
"birthDate": "1990-12-01",
"birthCountry": "IND",
"Gender": "Male",
"PersonName": {
"@type": "PersonName",
"Given": "JORDAN",
"Middle": "",
"Surname": "LOYTEST"
}
}
],
"CustomerLoyalty": [
{
"value": "2071983684DEF",
"supplier": "DL"
}
]
}
}
Client Delivery Remark
A client delivery remark is sent in the Add Traveler request by sending Address/role with a value of delivery.
Client delivery remarks are not returned in the reservation retrieve.
The following example sends Traveler/Address/role set to Delivery, causing this address information to be recorded as the client delivery address. All of the information below becomes part of the remark.
{
"Traveler": {
"id": "trav_1",
"passengerTypeCode": "ADT",
"PersonNameDetail": {
"Prefix": "",
"Given": "TestFirst",
"Middle": "TestMiddle",
"Surname": "TestLast",
"Suffix": ""
},
"Telephone": [
{
"@type": "Telephone",
"countryAccessCode": "1",
"areaCityCode": "719",
"phoneNumber": "6401108",
"extension": "123",
"id": "1",
"cityCode": "DEN",
"role": "Mobile"
}
],
"Address": [
{
"role": "Delivery",
"Number": "1220",
"Street": "Travers Street",
"City": "Claremont",
"StateProv": {
"name": "Texas",
"value": "CA"
},
"Country": {
"value": "US"
},
"PostalCode": "917113323"
}
],
"Email": [
{
"value": "test@gmail.com"
}
],
"CustomerLoyalty": [
{
"value": "1234123412",
"supplier": ""
}
]
}
}
Minimum Secure Flight Information (SSR DOCS)
Minimum secure flight information is sent in the Add Traveler request. Certain carriers on certain routes are required by the US Transportation Security Administration (TSA) to send the following required minimum secure flight information for every traveler as part of the Add Traveler payload; AirReservation converts this data to the format required by carriers:
- traveler name
- birthdate
- gender (supported values are Male, Female, and Unknown)
All traveler information sent is returned in the reservation retrieve.
If a gender is not provided or is invalid, AirReservation creates the reservation and returns the warning INVALID - PASSENGER GENDER MISSING.
Birthdate is mandatory. If not provided, AirReservation creates the reservation and returns the warning INVALID - DATE OF BIRTH MISSING. The minimum SSR DOCS is not created.
Neither situation returns an error. Until update/change functionality is fully implemented, you must resolve the issue by canceling the reservation and creating a new reservation with the correct details.
Child DOB (SSR CHLD)
For GDS only, AirReservation creates a child SSR (SSR CHLD) when a child traveler (any of the Travelport child traveler PTC codes) is on the reservation with date of birth (DOB) information. To ensure the carrier receives the required information, you must include the birthdate in Traveler/birthDate when you add the child traveler in the Add Traveler payload.
The workbench commit response returns the traveler date of birth when it is sent for a child, as does the reservation retrieve. Traveler birthdate information cannot be added or modified after that traveler is added.
Traveler Name Remarks
The optional Comments object in the Add Traveler request payload supports sending custom, freeform traveler name remarks, such as a unique identifier for that traveler. Send Comments/Comment with the following:
-
value: Free text traveler name remark. Up to 33 characters, only spaces and hyphens allowed for special characters.
-
id: Local identifier to use for this remark.
Returned in the reservation retrieve response in Traveler/Comments.
{
"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"
}
]
}
}
}
Primary Contact Payload Remarks
Endpoints and Response
Remarks in this section use the following POST request to create the remark.
POST |
book/primarycontact/reservationworkbench/{workbenchID}/primarycontacts Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Use the following DEL request to delete any primary contact remark.
DEL |
book/primarycontact/reservationworkbench/{workbenchID}/primarycontacts/{PrimaryContactID}/ For {PrimaryContactID} above send the system-generated identifier for the contact to delete. 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/ |
AirReservation does not support PUT commands for directly modifying these remarks. Instead you must delete a remark and then add the new remark. See Workflows to Add and Delete Remarks above.
See the following sections for the payload for each primary contact remark.
The Primary Contact request returns the following response. Primary contact details are returned in the reservation retrieve.
{
"PrimaryContactResponse": {
"@type": "PrimaryContactResponse"
}
}
Primary Contact Information (email, phone, or contact refused) (SSR CTCE, CTCM, CTCR)
AirReservation supports the following types of optional remarks for primary contact information, also known by the following SSR codes:
- E-mail address contact information (SSR CTCE)
- Mobile phone number contact information (SSR CTCM)
- Primary contact information refused (SSR CTCR)
At many airlines this information is used for passenger contact automation systems to automatically send customer flight information as an email, digital message, or voice message.
AirReservation does not use IATA SSR contact codes. Instead, after adding a traveler, send a PrimaryContacts payload with contact information for mobile number and/or email address. AirReservation sends the necessary information to the carrier for the SSR.
To create a SSR CTCR (primary contact information refused), send PrimaryContact without any contact information. AirReservation creates the SSR CTCR on the GDS reservation to send to the airline.
Notes on contact information
You can send multiple types of contact information in a single request, but you can send only one traveler ID per request.
To send the information to all suppliers, send shareWithSupplier with value YY. Or, specify one or more suppliers with their two-letter airline code.
AirReservation automatically converts the email @ sign sent for an email address to the appropriate Galileo native format for the native reservation/BF.
Send the mobile number either as a single number sequence (e.g., 9515550963) or with dashes (e.g., 951-555-0963), up to a maximum of 50 characters.
Supported for GDS. Supported for NDC as follows:
- NDC does not require primary contact information on a booking. Instead, contact information can be added for each passenger.
- You can delete contact information prior to committing the initial booking workbench.
- CTCM and CTCE are supported during the initial booking workflow only for carriers SQ, AA, AF/KL, LHG , BA, EK.
- Adding CTCM and CTCE to or deleting from an existing reservation is supported only for AA, AF/KL, LHG, BA, EK.
- CTCR is supported only for QF, AF/KL, and LHG.
The following example PrimaryContact payload sends email and mobile phone contact details.
{
"PrimaryContact": {
"shareWithSupplier": [
"YY"
],
"Email": {
"value": "testEmail@test.com"
},
"Telephone": {
"@type": "Telephone",
"role": "Mobile",
"phoneNumber": "581478"
},
"TravelerIdentifier": {
"Identifier": {
"value": "75985d72-eb3b-4e33-9699-7c29f8b2766c"
}
}
}
}
Omitting contact information indicates the passenger refused to provide it.
{
"PrimaryContact": {
"shareWithSupplier":["YY"],
"shareWith":"Supplier", }
}
Special Service List SSRs
Endpoints and Response
All remarks in this section use the following POST request to create the remark.
POST |
book/specialservices/reservationworkbench/{workbenchID}/specialservices/list 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/ |
Use the following DEL request to delete any Meal SSR. Disability SSRs are not supported for deletion at this time.
DEL |
book/specialservices/reservationworkbench/{workbenchID}/specialservices/{SpecialServiceID} For {SpecialServiceID} send the system-generated identifier for the remark to delete. 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/ |
AirReservation does not support PUT commands for directly modifying these remarks. Instead you must delete a remark and then add the new remark. See Workflows to Add and Delete Remarks above.
See the following sections for the payload for each special service list remark.
The response returns an HTTP 200 No Content message for GDS and HTTP 204 No Content message for NDC.
Special Service Request - Disability SSR
Optional remarks for disability special service requests can be added either during the initial reservation workflow, or to an existing reservation.
Disability service details are returned in the reservation retrieve. They cannot be deleted, but they can be added to an existing reservation.
Only one kind of special service request is supported in the same payload. For example, you can send multiple special assistance requests in the following payload but not a request for a wheelchair and a special meal request.
Specific disability SSRs require varying formats. You can send SSR disability requests for a specific traveler or for all travelers on the reservation, and you can send an SSR for a specific offer or for all segments on the reservation. For detailed examples download the Disability Request Payload Options guide.
The following SSR codes are supported. Do not send the SSR codes; instead, refer to the Disability Request Payload Options guide for the specific payload for each type of disability request by SSR code.
SSR Code (informational only; do not send ) | Description |
---|---|
BLND |
Traveler is blind. |
DEAF |
Traveler is deaf. |
DPNA |
Disabled Passenger with intellectual or development disability needing assistance. |
WCHC |
Wheelchair is needed – traveler is completely immobile. |
WCHR |
Wheelchair is needed – traveler can ascend/descend stairs. |
WCHS |
Passenger cannot ascend/descend steps but is able to make own way to/from cabin seat. Requires wheelchair for distance to/from aircraft or mobile lounge and must be carried up/down steps. |
WCLB |
Wheelchair Lithium ION battery to be transported by a passenger which will require advance notification/preparation. Weight and dimensions may be specified. Wheelchair and battery must be claimed and rechecked at each interline transfer point. |
WCMP |
Wheelchair manual power to be transported by passenger. Weight and dimensions may be specified. |
WCBW |
Wet cell battery to be transported by passenger. Will require advance notification and may require preparation/(dis)assembly. Weight and dimensions may be specified. Wheelchair and battery must be claimed and rechecked at each interline transfer point. |
WCBD |
Wheelchair non-spillable battery to be transported by a passenger which will require advance notification/preparation. Weight and dimensions may be specified. Wheelchair and battery must be claimed and rechecked at each interline transfer point. |
The following example shows the payload to create an SSR for BLND.
{
"SpecialServiceListRequest": {
"SpecialServiceID": [
{
"@type": "SpecialServiceBlind",
"blindAssistanceRequestedInd": true,
"id": "specialService_1",
"Identifier": {
"authority": "Travelport",
"value": "A0656EFF-FAF4-456F-B061-0161008D7C4E"
},
"TravelerIdentifier": {
"id": "trav_1",
"Identifier": {
"authority": "Travelport",
"value": "5250500b-51ab-4f79-82bc-494753114b74"
}
}
}
]
}
}
Special Service Request - Meals (SSR meal code)
You can send special meal requests for passengers with dietary constraints when a meal service is offered by the airline on a flight. At this time special meal requests are supported for GDS, and for NDC only on carriers American Airlines (AA), Qantas Airways (QF), and United Airlines (UA). Additional NDC airlines and pre-paid ancillary meal requests will be available later.
Special meal requests are returned in the reservation retrieve in the SpecialService object. Special meal requests can be added during booking or to an existing reservation, and can be deleted.
The JSON APIs support the 21 most commonly requested free meal types as an enumeration per the mapping below. The carrier must also support the requested meal type for the meal to be provided to the traveler.
Free meals are usually only offered in premium cabins, or on flights that are more than six hours. However, each airline may support free meal type requests using different criteria.
As currently supported by airlines, all free meal requests are on a request-only basis, and neither the airline nor Travelport guarantee the specific meal offering will be available, supported, and provided to the traveler on their selected flight. Travelers should always advise the airline at check-in, boarding, and/or with cabin staff about special meal requests.
IATA Code (informational only; do not send) | Enumeration Values Mapping (send in SpecialMealTypeEnum per example below) |
---|---|
BBML |
Baby |
CHML |
Child |
DBML |
Diabetic |
FPML |
FruitPlatter |
HNML |
Hindu |
VJML |
Jain |
KSML |
Kosher |
LCML |
LowCalorie |
LFML |
LowFat |
LSML |
LowSalt |
MOML |
Muslim |
NLML |
NonLactos |
NOML |
None |
SFML |
Seafood |
VGML |
Vegan |
AVML |
VegetarianHindu |
VLML |
VegetarianLactoOvo |
VOML |
VegetarianOriental |
RVML |
VegetarianRaw |
The following example requests a fruit platter meal for trav_1 and VegetarianLactoOvo for trav_2.
{
"SpecialServiceListRequest": {
"SpecialServiceID": [
{
"@type": "SpecialServiceMeal",
"id": "specialService_1",
"Identifier": {
"authority": "Travelport",
"value": "A0656EFF-FAF4-456F-B061-0161008D7C4E"
},
"AppliesTo": {
"@type": "AppliesToOffer",
"OfferIdentifier": [
{
"id": "o0",
"offerRef": "o0",
"Identifier": {
"authority": "AA",
"value": "UG9QMURGNDY4ODgtNzAyMS00QTI0LTLTEtMXxBQQ=="
}
}
]
},
"TravelerIdentifier": {
"id": "trav_1",
"Identifier": {
"value": "5ef113cc-3b08-45b4-9e97-7393a1b7e6d4"
}
},
"SpecialMealTypeEnum": "FruitPlatter"
},
{
"@type": "SpecialServiceMeal",
"id": "specialService_2",
"Identifier": {
"authority": "Travelport",
"value": "A0656EFF-FAF4-456F-BBBB-0161008D7C4E"
},
"AppliesTo": {
"@type": "AppliesToOffer",
"OfferIdentifier": [
{
"id": "o0",
"offerRef": "o0",
"Identifier": {
"authority": "AA",
"value": "UG9QMURGNDY4ODgtNzAyMS00QTI0LTl5REM3LTEtMXxBQQ=="
}
}
]
},
"TravelerIdentifier": {
"id": "trav_2",
"Identifier": {
"value": "6b20f372-4ea4-48b2-9dc1-d22a5f184c2f"
}
},
"SpecialMealTypeEnum": "VegetarianLactoOvo"
}
]
}
}
<div><pre class="line-numbers"><code class="language-json">&</code></pre></div>
{ "SpecialServiceListResponse": { "@type": "SpecialServiceListResponse", "Identifier": { "value": "138f269e-f114-4ce5-ae81-3ac540ba2d54" } } }
Document Overrides Payload Remarks
GDS only; not supported for NDC.
Endpoint
All remarks in this section use the following POST request to create the remark. See Workflows to Add and Delete Remarks above.
POST |
book/documentoverride/Reservation/{workbenchID}/documentoverrides 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/ |
AirReservation does not support DEL or PUT commands for deleting or modifying document override remarks.
See the following sections for the payload for each document override remark.
All document override requests return the response in the following format.
{
"DocumentOverridesResponse": {
"Identifier": {
"authority": "Travelport",
"value": "003865ac-9186-4323-b046-811411803dfa"
}
}
}
Document Override Remarks (tour code, commission, endorsement)
GDS only; not supported for NDC.
Use document overrides to send remarks such as tour code, commission, or endorsements/restrictions.
Document override remarks are returned in the reservation retrieve only when the detailViewInd query parameter is set to true. Document override remarks can be added to a reservation but cannot be deleted.
The following example sends several types of document override remarks.
{
"DocumentOverrides": {
"id": "documentOverrides_1",
"DocumentOverridesRef": "documentOverrides_1",
"Commissions": [
{
"Commission": {
"@type": "CommissionAmount",
"Amount": {
"code": "USD",
"value": 123
}
}
}
],
"TourCodes": [
{
"TourCode": {
"tourCodeType": "Bulk Tour",
"value": "TCS"
}
}
],
"Restrictions": [
{
"Restriction": [
"NON Refundable"
]
}
],
"DestinationPurpose": [
{
"purpose": "Business",
"destination": "Europe"
}
]
}
}
Traveler-specific commissions
To send a commission to be applied only to the fare of one or more specific travelers, send traveler details in TravelerIdentifierRef along with the commission to be applied. Commission can be sent as either an amount or percentage.
{
"DocumentOverrides": {
"id": "documentOverrides_1",
"DocumentOverridesRef": "documentOverrides_1",
"Commissions": [
{
"TravelerIdentifierRef": [
{
"id": "trav_1"
}
],
"Commission": {
"@type": "CommissionAmount",
"Amount": {
"code": "USD",
"value": 205.66
}
}
}
]
}
}
Document Overrides in GDS Exchanges (change fee collection, EMD endorsement, commission)
Several specific document override remarks can be used when exchanging a GDS ticket with the Exchange Ticketing API. Use the same endpoint and payload as for Document Overrides above with the following additions.
Change fee collection method
You can use document override remarks to override the change fee collection method from what is returned in the Exchange Search response. Include the ChangeFeeCollectionMethod object per the example below. If you override from TAX to EMD and the change fee includes a VAT tax, include in the payload the taxIncludedInBaseAmountInd indicator to note how the VAT tax should be collected:
-
True: VAT tax should be included in the change fee amount. The VAT tax will be added to the change fee amount in the SVC segment and an EMD issued for one amount.
-
False: VAT tax should be separated from the change fee amount. The VAT tax will not be added to the change fee amount in the SVC segment and an EMD issued with the change fee amount and a separate tax amount.
{
"DocumentOverrides": {
"id": "documentOverrides_1",
"DocumentOverridesRef": "documentOverrides_1",
"ChangeFeeCollectionMethod": {
"extension": "Other_Value",
"code": "D",
"subCode": "997",
"description": "REBOOKING",
"value": "EMD",
"taxIncludedInBaseAmountInd": true
}
}
}
You can also specify that a tax should be used to collect the change fee. ChangeFeeCollectionMethod indicates that the change fee collection method returned in the Exchange Search response is being overridden. Specify the two-character tax code to be used as the collection method in code (e.g., OA, DU, CP, XP).
In the following example, the only value that should change is the tax code.
{
"DocumentOverrides" : {
"@type" : "DocumentOverrides",
"id" : "documentOverrides_1",
"DocumentOverridesRef" : "documentOverrides_1",
}
} ],
"ChangeFeeCollectionMethod" : {
"extension" : "Other_Value",
"code" : "OA",
"description" : "REBOOKING FEE",
"value" : "Tax"
}
}
}
EMD endorsements
The Restrictions/DocumentType object supports endorsements for EMDs as follows. The text of the EMD endorsement itself is sent in Restrictions/Restriction. Supported values for DocumentType are EMD and Ticket:
-
EMD: Up to 145 characters and 1 endorsement line allowed.
-
Ticket: Up to 29 characters and 3 endorsement lines allowed.
{
"DocumentOverrides": {
"id": "documentOverrides_1",
"DocumentOverridesRef": "documentOverrides_1",
"Restrictions": [
{
"Restriction": [
"NON Refundable"
],
"DocumentType": {
"value": "EMD"
}
}
]
}
}
Commissions
The Commissions/ApplyTo object allows you to apply an instance of Commissions/Commission to either the change fee (send with a value of Fee) or the base fare (send with a value of Base). To apply a commission to both the change fee and the base fare, send one instance of Commission for each. ApplyTo is supported only in document overrides sent as part of Exchange Ticketing.
The following example sends one instance of Commission that applies to the change fee and a second instance that applies to the base fare.
{
"DocumentOverrides": {
"id": "documentOverrides_1",
"DocumentOverridesRef": "documentOverrides_1",
"Commissions": [
{
"ApplyTo": "Fee",
"Commission": {
"@type": "CommissionAmount",
"Amount": {
"code": "USD",
"value": "5"
}
}
},
{
"ApplyTo": "Base",
"Commission": {
"@type": "CommissionAmount",
"Amount": {
"code": "USD",
"value": "10"
}
}
}
]
}
}
Ticket Designator
The TicketDesignator object in the Document Overrides request allows ARC and BSP Canada API customers to add a ticket designator or modify an existing ticket designator during the exchange flow. The ticket designator applies to all travelers on the reservation.
{
"DocumentOverrides": {
"id": "documentOverrides_1",
"DocumentOverridesRef": "documentOverrides_1",
"TicketDesignator": "AB123"
}
}
Accounting Remarks
Endpoints and Response
All remarks in this section use the following POST request to create the remark.
POST |
book/accounting/reservationworkbench/{workbenchID}/accountings 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/ |
Use the following DEL request to delete an accounting remark.
DEL |
book/reservationworkbench/{workbenchID}/accountings/{id}/namevaluepairs?NameValuePairIds=/{NameValuePairvalue}/ 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/ |
AirReservation does not support PUT commands for directly modifying these remarks. Instead you must delete a remark and then add the new remark. See Workflows to Add and Delete Remarks above.
See the following sections for the payload for each accounting remark.
AirReservation returns an identifier in the response for all remarks added with the Accounting payload. The following sections provide examples of the remark as returned in the reservation retrieve response.
https://api.pp.travelport.com/11/air/book/accounting/reservationworkbench/af146c9e-e88e-4c35-8e35-7bf167f96a58/accountings/
Accounting_1/namevaluepairs?NameValuePairIds=ActComment_2
{
"AccountingResponse": {
"Accounting": {
"@type": "AccountingID",
"Identifier": {
"authority": "Travelport",
"value": "9658ae33-c031-42d6-9035-69bf0b38ca8d"
}
}
}
}
Accounting, Historical, and DOCI Remarks
Optional accounting remarks can be added to the reservation and are typically used in some way by an agency's back-office system. The remarks can include ticket numbers, customer or account numbers, fares offered to the customer but refused, and canned remarks that document fare rules. Accounting remarks are added to the booking as historical notepad remarks.
To send an accounting free-text remark, or DOCI remark, send an accounting remark with Accounting/dataType value of DOCI and NameValuePair/name value of FT, per the examples below.
Accounting remarks are returned in the reservation retrieve only when the detailViewInd query parameter is set to true. They can be added to an existing reservation and deleted.
Accounting DOCI remarks
{
"Accounting": {
"id": "accounting_1",
"dataType": "DOCI",
"AccountingRef": "accounting_1",
"NameValuePair": [
{
"value": "documentInvoice.INV 41641463345",
"name": "FT"
},
{
"value": "offerNumber.PTR 41641463345",
"name": "FT"
},
{
"value": "Commission.CMM 0/3.6",
"name": "FT"
}
]
No
{
"Accounting": {
"@type": "Accounting",
"dataType": "DOCI",
"id": "accounting_1",
"AccountingRef": "accounting_1",
"NameValuePair": [
{
"name": "AC",
"value": "A53.IBM213.JAMES"
},
{
"name": "TK",
"value": "2040805184"
},
{
"name": "FT",
"value": "offerNumber.PTR 41641463345"
}
]
}
}
"Accounting": {
"@type": "Accounting",
"dataType": "DOCI",
"id": "Accounting_1",
"Identifier": {
"authority": "Travelport",
"value": "8d92d4ea-0d97-4319-9f6b-fd7f9604da5a"
},
"NameValuePair": [
{
"id": "ActComment_1",
"name": "AC",
"value": "A53.IBM213.JAMES"
},
{
"id": "ActComment_2",
"name": "TK",
"value": "2040805184"
},
{
"id": "ActComment_3",
"name": "FT",
"value": "offerNumber.PTR 41641463345"
}
]
}
}
}
}
"Accounting": {
"@type": "Accounting",
"dataType": "DOCI",
"Identifier": {
"authority": "Travelport",
"value": "212225a6-a198-45a4-9c8f-19126e7443d5"
},
"NameValuePair": [
{
"name": "FT",
"value": "documentInvoice.INV 41641463345"
},
{
"name": "FT",
"value": "offerNumber.PTR 41641463345"
},
{
"name": "FT",
"value": "Commission.CMM 0/3.6"
}
]
}
}
Accounting historical remarks
{
"Accounting": {
"@type": "Accounting",
"id": "accounting_1",
"AccountingRef": "accounting_1",
"NameValuePair": [
{
"name": "QF",
"value": "ACCOUNTING REMARKS TESTING"
},
{
"name": "UA",
"value": "FREETEXT REMARKS TESTING"
},
{
"name": "H*",
"value": "H remark"
},
{
"name": "FT",
"value": "Added name FT for acntng rematks testing"
}
]
}
}
{
"Accounting": {
"id": "accounting_1",
"AccountingRef": "accounting_1",
"NameValuePair": [
{
"value": "ACCOUNTING REMARKS TESTING",
"name": "UA"
}
]
}
}
}
"Accounting": {
"@type": "Accounting",
"id": "Accounting_1",
"Identifier": {
"authority": "Travelport",
"value": "89cc8a38-e107-42bd-a4a7-eed4e7b0259d"
},
"NameValuePair": [
{
"id": "GenComment_4",
"name": "QF",
"value": "ACCOUNTING REMARKS TESTING"
},
{
"id": "GenComment_5",
"name": "UA",
"value": "FREETEXT REMARKS TESTING"
},
{
"id": "GenComment_6",
"name": "H*",
"value": "H remark"
},
{
"id": "GenComment_7",
"name": "FT",
"value": "Added name FT for acntng rematks testing"
}
]
}
}
"Accounting": {
"@type": "Accounting",
"Identifier": {
"authority": "Travelport",
"value": "94982e30-6fc1-4ea6-83f8-ee60967ea591"
},
"NameValuePair": [
{
"name": "UA",
"value": "ACCOUNTING REMARKS TESTING"
}
]
}
}
Reservation Comments Payload Remarks
Endpoints and Response
All remarks in this section use the following POST request to create the remark.
POST |
book/remarks/reservationworkbench/{workbenchID}/reservationcomments/list 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/ |
Use the following DEL request to delete any remark sent in the Reservation Comments payload.
DEL |
reservationworkbench/{workbenchID}/reservationcomments/{id}/comments 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/ |
AirReservation does not support PUT commands for directly modifying these remarks. Instead you must delete a remark and then add the new remark. See Workflow to Add and Delete Remarks above.
See the following sections for the payload for each reservation comment remark.
AirReservation returns the following response for all remarks added with the Reservation Comments payload. The following sections provide examples of the remark as returned in the reservation retrieve response.
{
"ReservationCommentListResponse": {
"@type": "ReservationCommentListResponse"
}
}
OSI Remarks
Other Service Information (OSI) remarks are messages sent directly to the supplier to communicate traveler preferences or requirements that are informational only, and do not require the carrier to take action.
Send OSI remarks per the example below. Send multiple remarks by including each remark in its own name and/or value key value pair.
To ensure the remark is added as an OSI remark, send the following required objects in ReservationCommentID per the examples below:
-
commentSource with the value Agency
-
shareWith with the value Supplier
-
shareWithSupplier is optional; when sent the value is the carrier code of the specific carrier to share with
OSI remarks are returned in the reservation retrieve, where they are identified with a value of Agency in ReservationComment/commentSource.
From 1 to 99 characters inclusive are supported for OSI remarks. AirReservation returns the error message "OSI REMARK TEXT MUST BE BETWEEN 1 AND 99 CHARACTERS LONG" if the length is outside the required range.
OSI remarks support the special characters . (period), / (forward slash), and - (dash). AirReservation returns the error message "INVALID CHARACTER IN TEXT" if other special characters are sent.
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"id": "ReservationComment_1",
"commentSource": "Agency",
"shareWith": "Supplier",
"shareWithSupplier": [
"UA"
],
"Comment": [
{
"name": "OSI Remarks",
"value": "ADDING OSI REMARK FOR AIRLINE"
}
]
}
]
}
}
{ "ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"id": "reservationComment_1",
"commentSource": "Agency",
"shareWith": "Supplier",
"shareWithSupplier": [
"JL"
],
"Comment": [
{
"value": "INVOLUNTARY REROUTE PER PUBLISHED FARE RULE",
"name": "OSI"
}
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Supplier",
"shareWithSupplier": [
"UA"
],
"id": "RSRVComment_2",
"Comment": [
{
"id": "SinComment_1",
"name": "OSI Remarks",
"language": "EN",
"value": "ADDING OSI REMARK FOR AIRLINE"
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Supplier",
"shareWithSupplier": [
"UA"
],
"id": "RSRVComment_2",
"Comment": [
{
"id": "SinComment_1",
"name": "OSI Remarks",
"language": "EN",
"value": "ADDING OSI REMARK FOR AIRLINE"
}
]
},
Notepad Remarks
Optional notepad remarks can be added to the reservation. To ensure the remark is added as a notepad remark, send the following required objects in ReservationCommentID per the examples below:
-
commentSource with the value Agency
-
shareWith with the value Agency
-
shareWithSupplier is optional; when sent the value is the carrier code of the specific carrier to share with
Notepad remarks are returned in the reservation retrieve by default, where they are identified with a value of Agency in ReservationComment/commentSource.
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Agency",
"Comment": [
{
"name": "QF",
"value": "QF 674 E 09JUN ADLMEL HS2 0905 1055"
},
{
"name": "HG",
"value": "Historical Notepad Remark"
}
]
}
]
}
}
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"id": "reservationComment_1",
"Comment": [
{
"name": "QF",
"value": "QF 674 E 09JUN ADLMEL HS2 0905 1055"
},
{
"name": "HG",
"value": "Historical Notepad Remark"
}
]
}
]
}
}
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Agency",
"Comment": [
{
"name": "QF",
"value": "QF 674 E 09JUN ADLMEL HS2 0905 1055"
},
{
"name": "HG",
"value": "Historical Notepad Remark"
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Agency",
"Comment": [
{
"name": "QF",
"value": "QF 674 E 09JUN ADLMEL HS2 0905 1055"
},
{
"name": "HG",
"value": "Historical Notepad Remark"
}
]
}
Spanish Residency and Large Family Discount Fares
Spanish residency and large family discount fares are available to residents of Spain for NDC on carrier IB only, When booking these fares, use notepad remarks as follows:
Send one remark per traveler. Either an HR Resident or HR Family remark is required. This is used to validate traveler residency and documentation.
For Spanish residency discount:
-
Send Comment/name with the value HR
-
Send Comment/value with the exact string format RESIDENT {Type of ID}/{Number of ID}/{Municipal Code}//{Traveler Ref}]//
-
RESIDENT is expected by the carrier.
-
Supported values for type of ID:
-
DN: DNI/National Document
-
GR: Senator/Representative
-
TR: NIE/Foreign resident card
-
MR: Minor of 14 years old with no DNI
-
-
[Number of ID] is the ID number. When the type of ID is MR, send date of birth in the format DDMMYYYY
-
[Municipal Code]
-
[Traveler Ref]: Do not send a JSON API traveler identifier. Instead send P1 for the first traveler, P2 for the second traveler, etc.
-
// notes the end of string
-
Example: RESIDENT DN/12345678Z/070027/P1//
For large family discount, send Comment/name with the value HF and Comment/value with FAMILY at the beginning of the string.
-
Send Comment/name with the value HF
-
Send Comment/value with the exact string format FAMILY {Family Category}{Type of ID}/{Number of ID}/{Municipal Code}/{Certificate Number}//{Traveler Ref}//
-
FAMILY is expected by the carrier.
-
{Family Category} supported values:
-
F1 = for families with 3 children
-
F2 = for families with 4 or more children
-
-
{Type of ID}
-
DN: DNI/National Document
-
TR: NIE/Foreign resident card
-
MR: Minor of 14 years old with no DNI
-
-
[Number of ID] is the ID number. When the type of ID is MR, send date of birth in the format DDMMYYYY
-
{Municipal Code}
-
{Certificate Number}
-
[Traveler Ref]: Do need send a JSON API traveler identifier. Instead send P1 for the first traveler, P2 for the second traveler, etc.
-
// notes the end of the string
-
Example: FAMILY F1DN/12345678Z/410917/9999999999/P1//
Send HR SARA only if a traveler has a second last name. If a SARA remark exists then this name will be sent to the carrier and used to issue the ticket. The traveler name in the workbench is used to create the name field on the booking.
-
Send Comment/name with the value HR
-
Send Comment/value with the exact string format SARA {1stlastname}/{2ndlastname}/{1stname middlename}/{Traveler Ref}//
-
SARA is expected by the carrier.
-
{1stlastname}
-
{2ndlastname}
-
{1stname middlename}
-
A space is required between the first name and middle name.
-
[Traveler Ref]: Do need send a JSON API traveler identifier. Instead send P1 for the first traveler, P2 for the second traveler, etc.
-
// notes the end of the string
-
Example: SARA: Ortega Smith/Molina/Francisco Javier/P1//
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Agency",
"Comment": [
{
"name": "HR",
"value": "RESIDENT DN/12345678Z/410917//P2//"
}
]
}
]
}
}
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Agency",
"id": "RSRVComment_1",
"Comment": [
{
"name": "HR",
"value": "RESIDENT DN/101/380201//P1//"
},
{
"name": "HR",
"value": "SARA ORTEGA SMITH/MOLINA/FRANCISCO JAVIER//P1//"
}
]
}
]
}
}
Vendor Remarks
Vendor remarks are usually comments made by the airline to send to an agent. These vendor input remarks are not sent in the JSON APIs but rather are typically generated automatically once the booking or request is completed. These usually include the airline's own record locator, replies to special requests, and advice on ticketing time limits.
It is also possible for an agent to send vendor remarks to an airline, called vendor output remarks. When creating a vendor output remark, send the following required values in ReservationCommentID per the examples below:
-
commentSource with the value Supplier
-
shareWith with the value Agency
-
shareWithSupplier is optional; when sent the value is the carrier code of the specific carrier to share with
Vendor remarks for GDS are returned in the reservation retrieve, where they are identified with a value of Supplier in ReservationComment/commentSource. Vendor remarks for NDC are not returned in the reservation retrieve.
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"id": "reservationComment_1",
"commentSource": "Supplier",
"shareWith": "Agency",
"shareWithSupplier": [
"QF"
],
"Comment": [
{
"id": "comment_1",
"name": "Vendor Remarks",
"language": "EN",
"value": "VendorTest"
}
]
}
]
}
}
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Supplier",
"shareWithSupplier": [
"QF"
],
"Comment": [
{
"id": "comment_1",
"name": "Vendor Remarks",
"language": "EN",
"value": "VendorTest"
}
]
}
]
}
}
This example excerpt returns several types of remarks. The first two instances of ReservationComment are both vendor remarks. Comment/id identifies the first instance as a vendor output remark with the initial letters Veo while Comment/id identifies the second instance as a vendor input remark with the initial letters Vei.
"ReservationComment": [
{
"@type": "ReservationComment",
"commentSource": "Supplier",
"shareWithSupplier": [
"YY"
],
"id": "RSRVComment_1",
"Comment": [
{
"id": "VeoComment_1",
"value": "VENDORTEST"
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Supplier",
"shareWithSupplier": [
"QF"
],
"id": "RSRVComment_2",
"Comment": [
{
"id": "VeiComment_2",
"value": "MISSING SSR CTCM MOBILE OR SSR CTCE EMAIL OR SSR CTCR NON-CONSENT FOR QF"
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Supplier",
"shareWithSupplier": [
"YY"
],
"id": "RSRVComment_3",
"Comment": [
{
"id": "SinComment_1",
"name": "OSI Remarks",
"language": "EN",
"value": "THIS IS OSI REMARK"
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Agency",
"id": "RSRVComment_4",
"Comment": [
{
"id": "GenComment_1",
"name": "QF",
"value": "QF 674 E 09JUN ADLMEL HS2 0905 1055"
},
{
"id": "GenComment_2",
"name": "HG",
"value": "Historical Notepad Remark"
}
]
},
{
"@type": "ReservationComment",
"id": "RSRVComment_5",
"Comment": [
{
"id": "ItuComment_2",
"name": "ITIN COMMENTS",
"value": "Itinerary Unassociated Remarks Addition"
}
]
},
{
"@type": "ReservationComment",
"id": "RSRVComment_6",
"Comment": [
{
"id": "ItaComment_1",
"name": "ITIN COMMENTS",
"value": "THIS IS SINGLE COMMENT WITH SINGLE PRODUCT 1"
}
],
"AppliesTo": [
{
"@type": "AppliesToOfferProductSegment",
"OfferIdentifier": {},
"ProductIdentifier": {
"productRef": "product_1"
},
"SegmentSequenceList": [
1
]
}
]
}
],
"ReservationDisplaySequence": {
"@type": "ReservationDisplaySequence",
"DisplaySequence": [
{
"@type": "DisplaySequence",
"displaySequence": 1,
"OfferRef": "offer_1",
"ProductRef": "product_1",
"Sequence": 1
}
]
},
"Accounting": {
"@type": "Accounting",
"id": "Accounting_1",
"Identifier": {
"authority": "Travelport",
"value": "001700f5-7830-4cb1-b98c-8810525c64bc"
},
"NameValuePair": [
{
"id": "GenComment_6",
"name": "UA",
"value": "FREETEXT REMARKS TESTING"
},
{
"id": "GenComment_7",
"name": "H*",
"value": "H remark"
},
{
"id": "GenComment_8",
"name": "FT",
"value": "Added name FT for acntng rematks testing"
}
]
}
}
}
}
"ReservationComment": [
{
"@type": "ReservationComment",
"commentSource": "Supplier",
"shareWithSupplier": [
"QF"
],
"Comment": [
{
"value": "VENDORTEST"
},
{
"value": "MISSING SSR CTCM MOBILE OR SSR CTCE EMAIL OR SSR CTCR NON-CONSENT FOR QF"
}
]
},
Itinerary Remarks - Associated and Unassociated
Associated and unassociated remarks are optional, multi-item freeform strings of text. Associated remarks can be added for an offer, product, or a segment. Unassociated remarks apply to the itinerary and are not associated with a segment.
Per the following examples, use AppliesTo with these @type values:
-
AppliesToOffer for remarks associated with the offer (the entire itinerary)
-
AppliesToOfferProduct for remarks associated with the product (one leg of the itinerary)
-
AppliesToOfferProductSegment for remarks associated with the segment (one flight on the itinerary)
To ensure the remark is added as an itinerary remark, per the examples below, send the following required objects in ReservationCommentID:
-
commentSource with the value Agency
-
shareWith with the value Traveler
-
shareWithSupplier is optional; when sent the value is the carrier code of the specific carrier to share with
The following example requests are from AirReservation 23.11.29. Previous versions did not support sending itinerary remarks but returned them if entered outside the JSON APIs.
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "This remarks has single offer with all segments"
}
],
"AppliesTo": [
{
"@type": "AppliesToOffer",
"OfferIdentifier": [
{
"Identifier": {
"authority": "Travelport",
"value": "9658ae33-c031-42d6-9035-69bf0b38ca8d"
}
}
]
}
]
}
]
}
}
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "This is single comment with single product 1"
}
],
"AppliesTo": [
{
"@type": "AppliesToOfferProduct",
"OfferIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "ef30b4cf-951a-400d-87f0-8691bc6056ce"
}
},
"ProductIdentifier": [
{
"Identifier": {
"authority": "Travelport",
"value": "0a2692dc-1c94-4e12-bef0-06772cf45f65"
}
}
]
}
]
}
]
}
}
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "Testing single ITIN associated remarks -segment"
}
],
"AppliesTo": [
{
"@type": "AppliesToOfferProductSegment",
"OfferIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "feedba3d-51ec-4175-9f1a-d05efed57aa9"
}
},
"ProductIdentifier": {
"Identifier": {
"authority": "Travelport",
"value": "0a2692dc-1c94-4e12-bef0-06772cf45f65"
}
},
"SegmentSequenceList": [
1
]
}
]
}
]
}
}
The following excerpts shows the itinerary remarks as returned in the Reservation Retrieve response for both offer and segment-level remarks.
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "TESTING SINGLE ITIN ASSOCIATED REMARKS -SEGMENT"
}
],
"AppliesTo": [
{
"@type": "AppliesToOfferProductSegment",
"OfferIdentifier": {
"offerRef": "offer_1"
},
"ProductIdentifier": {
"productRef": "product_1"
},
"SegmentSequenceList": [
1
]
}
]
}
"ReservationComment": [
{
"@type": "ReservationComment",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "TESTING SINGLE ITIN ASSOCIATED REMARKS -SEGMENT"
}
],
"AppliesTo": [
{
"@type": "AppliesToOfferProductSegment",
"OfferIdentifier": {
"offerRef": "offer_1"
},
"ProductIdentifier": {
"productRef": "product_1"
},
"SegmentSequenceList": [
1
]
}
]
}
]
The following excerpts show the request and response for unassociated itinerary remarks, which could be sent starting with AirReservation 23.11.29.
{
"ReservationCommentListRequest": {
"ReservationCommentID": [
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "Testing ITIN UnAsso remarks one"
}
]
}
]
}
}
{
"@type": "ReservationComment",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "Testing ITIN UnAsso remarks one"
}
]
},
{
"@type": "ReservationComment",
"commentSource": "Agency",
"shareWith": "Traveler",
"Comment": [
{
"name": "ITIN COMMENTS",
"value": "Testing ITIN UnAsso remarks one"
}
]
},
Add Offer Payload
Endpoint
All remarks in this section are sent in the Add Offer request. Use the endpoint for either the Add Offer reference payload or Add Offer full payload.
Modifying and deleting remarks sent in the Add Offer payload is not supported.
India GST SSR
To accommodate travel within and from India, AirReservation supports sending GST details as part of the Add Offer payload, which are converted to GST SSRs as applicable. Send GST details as part of the Add Offer request in OrganizationInformation/GSTRegistrationNumber.
IATA created the following four industry standard SSRs to send GST data to the validating carrier where required:
-
GSTN - Goods and Services Tax Number
-
GSTA - Goods and Services Tax Business Address
-
GSTP - Goods and Services Tax Business Phone Number(s)
-
GSTE - Goods and Services Tax Business Email
AirReservation does not validate whether the itinerary originates in India.
It is assumed that customers know the restrictions/limitations for the SSR format including usage of any special characters. If any required details for any of the four GST SSRs are missing, none of the SSRs are added.
GST data is applied to all travelers and all carriers in that reservation. Travelport recommends booking only the applicable traveler and carrier if GST is not relevant to other passengers on a reservation.
GST SSRs cannot be modified on or added to an existing reservation.
For GDS, the OrganizationInformation object with the India GST details is returned in the commit step and in the reservation retrieve in an instance of TermsAndConditionsFullAir.
For NDC, the reservation retrieve does not return OrganizationInformation. Note that the example below could not be used for NDC, which supports OrganizationInformation/GSTRegistrationNumber only in the reference payload, not the full payload Add Offer request shown below, which is supported only for GDS.
{
"OfferQueryBuildFromProducts": {
"returnBrandedFaresInd": true,
"BuildFromProductsRequest": {
"@type": "BuildFromProductsRequestAir",
"PricingModifiersAir": {
"@type": "PricingModifiersAirDetail",
"currencyCode": "AUD",
"FareSelection": {
"@type": "FareSelectionDetail",
"fareType": "PublicAndPrivateFares"
},
"Brand": {
"@type": "BrandSummary"
},
"OrganizationInformation": {
"GSTRegistrationNumber": [
{
"country": "IND",
"address": "2240 RMILLS COMP//MUMBAI/MAHARAHTRA",
"companyName": "GTTY",
"email": "GST.INFO@IBMGST.IN",
"telephone": "9103555559023",
"value": "22AAAAA0000A1Z5"
}
]
}
},
"PassengerCriteria": [
{
"number": 1,
"age": 25,
"passengerTypeCode": "ADT"
}
],
"ProductCriteriaAir": [
{
"SpecificFlightCriteria": [
{
"flightNumber": "52",
"carrier": "CI",
"departureDate": "2020-07-21",
"departureTime": "22:10:00",
"arrivalDate": "2020-07-22",
"arrivalTime": "05:40:00",
"from": "SYD",
"to": "TPE",
"classOfService": "N",
"cabin": "Economy",
"segmentSequence": 1
},
{
"flightNumber": "903",
"carrier": "CI",
"departureDate": "2020-07-22",
"departureTime": "08:10:00",
"arrivalDate": "2020-07-22",
"arrivalTime": "10:05:00",
"from": "TPE",
"to": "HKG",
"classOfService": "N",
"cabin": "Economy",
"segmentSequence": 2
}
]
}
]
}
}
}