Retrieve Reservations
The connected PMS should retrieve reservations, modifications and cancellations from SiteMinder using the OTA_ReadRQ message. PmsXchange will respond with a OTA_ResRetrieveRS that contain the reservations, modifications or cancellations that meet the request criteria in the read request.
OTA_ReadRQ
The message below will return all undelivered reservations, modifications and cancellations for the hotel with HotelCode ABC
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <ReadRequests> <HotelReadRequest HotelCode="ABC"> <SelectionCriteria SelectionType="Undelivered"/> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
The message below will return all undelivered reservations, modifications and cancellations for all hotels for the PMS with code PMS1. This message is only available for centrally located (uses centralised credentials to access all properties via pmsXchange) property management systems.
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <ReadRequests> <HotelReadRequest> <SelectionCriteria SelectionType="Undelivered"/> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
The message below will return all undelivered new reservation for the hotel with HotelCode ABC
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <ReadRequests> <HotelReadRequest HotelCode="ABC"> <SelectionCriteria SelectionType="Undelivered" ResStatus="Book"/> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
The message below will return all undelivered cancellations for the hotel with HotelCode ABC
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <ReadRequests> <HotelReadRequest HotelCode="ABC"> <SelectionCriteria SelectionType="Undelivered" ResStatus="Cancel"/> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
The message below will return all undelivered modifications for the hotel with HotelCode ABC
<OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:30:47+08:00" EchoToken="echo-abc123"> <POS> <Source> <RequestorID Type="22" ID="PMS1"/> </Source> </POS> <ReadRequests> <HotelReadRequest HotelCode="ABC"> <SelectionCriteria SelectionType="Undelivered" ResStatus="Modify"/> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ>
OTA_ReadRQ Specification
Element | Number | Description |
---|---|---|
OTA_ReadRQ | 1 | Root element |
@Version | 1 | Current Version 1.0 |
@EchoToken | 1 | Globally unique identifier for the request, value will be returned as an EchoToken in the response. |
@TimeStamp | 1 | Time of the transaction in xml schema dateTime format. Format like yyyy-MM-dd'T'HH:mm:ssZZ, (i.e '2021-03-09T20:05:52+08:00') |
OTA_ReadRQ / POS / Source / RequestorID | 1 | This identifies the system which is sending the reservation. This element must appear in the first Source element. |
@Type | 1 | Fixed at 22 (ESRP) |
@ID | 1 | The ID used will be agreed by the trading partners and remain the same throughout the messages. |
OTA_ReadRQ / ReadRequests | 1 | |
ReadRequests / HotelReadRequest | 1 | |
@HotelCode | 0..1 | Hotel code as recognised by pmsXchange. If omitted all reservations for the PMS will be returned. |
HotelReadRequest / SelectionCriteria | 1 | |
@SelectionType | 1 | Must be "Undelivered" |
@ResStatus | 0..1 | Allowed values are "Book", "Modify" or "Cancel". If omitted new, modified and cancelled reservations will be returned. |
OTA_ResRetrieveRS
This message is returned by pmsXchange in response to the OTA_ReadRQ. It's primary payload is a list of HotelReservations which meet the request criteria in the OTA_ReadRQ.
- Maximum Content XML Sample
- Minimum Content XML Sample
- Services XML Sample
- Modification XML Sample
- Cancellation XML Sample
- Multiple Room Types XML Samples
- Daily Rates XML Samples
- Payment XML Samples
- Document ID XML Sample
- Reservation with multi-rates XML Sample
- Reservation - Test Environment Example
Reservations that meet the request criteria are returned
PmsXchange is channeling reservations from multiple different booking sources. See Minimum Content XML Sample and Maximum Content XML Sample for two sample messages showing the minimum and maximum amount of data that can be expected in a HotelReservation. The OTA_ResRetrieveRS Specification below has a number listed next to the node name to indicate if the node is mandatory or not. The OTA_ResRetrieveRS spec below is not designed to appear exactly in the order presented below. Coding to pmsXchange v2 should be flexible and allow for order variations to nodes/elements.
- The <Success/> element indicates a successful response
In this example 2 new reservations are returned. As covered in Retrieve & Confirm Use Cases documents, the pmsXchange reservation identifiers are "WTF-001" and "HTL-002" and the message ids for these reservations are "1243132" and "1243133".
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:32:47+08:00" EchoToken="echo-abc123"> <Success/> <ReservationsList> <HotelReservation CreateDateTime="2022-12-09T08:51:45+00:00" ResStatus="Book"> <UniqueID Type="14" ID="WTF-001"/> <UniqueID Type="16" ID="1243132" ID_Context="MESSAGE_UNIQUE_ID"/> <!-- HOTEL RESERVATION DETAILS OMITTED --> </HotelReservation> <HotelReservation CreateDateTime="2022-12-09T08:51:45+00:00" ResStatus="Book"> <UniqueID Type="14" ID="HTL-002"/> <UniqueID Type="16" ID="1243133" ID_Context="MESSAGE_UNIQUE_ID"/> <!-- HOTEL RESERVATION DETAILS OMITTED --> </HotelReservation> </ReservationsList> </OTA_ResRetrieveRS>
No reservations are found that meet the request criteria
- The presence of the <Success/> element indicates successful processing but the lack of the ReservationsList element shows no reservations were available.
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:31:00+08:00" EchoToken="echo-abc123"> <Success/> </OTA_ResRetreiveRS>
An error occurred processing the request
- The presence of the <Errors/> element indicates an error in business logic occurred.
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2022-08-01T09:31:00+08:00" EchoToken="echo-abc123"> <Errors> <Error Type="3" Code="392">Invalid Hotel Code</Error> </Errors> </OTA_ResRetreiveRS>
OTA_ResRetrieveRS Specification
The main payload of the OTA_ResRetrieveRS message is a list of HotelReservation elements. The content will vary because PmsXchange is delivering reservations from many different upstream sources (Booking Channels), many of which have vastly different reservation formats and data structures.
In general, the following can be said about HotelReservations:
- A HotelReservation represents a single reservation made with an upstream system.
- A HotelReservation can have one or more RoomStays, one for each room type booked.
- A RoomStay represents a stay in one room type over a continuous timespan, non-continuous timespan stays (split stays) will result in multiple RoomStays.
- A HotelReservation can have zero, one or many ResGuests linked to either the RoomStay the guest stay in or the reservation.
Elements and attributes marked with Number=1 or more will always be sent. 0 means that the element or attribute is optional, while a second numeric value or 'n' indicates the element or attribute can repeat (where n = no limit)"
Element | Number | Description |
---|---|---|
OTA_ResRetrieveRS | 1 | Root element |
@EchoToken | 1 | Return the EchoToken from the request message. |
@Version | 1 | Current Version 1.0 |
@TimeStamp | 1 | Time of the transaction in xml schema dateTime format. |
OTA_ResRetrieveRS / Success | 0..1 | Should only be present if the request processed successfully. The Errors node will not be present if the Success node is present. |
OTA_ResRetrieveRS / Errors | 0..1 | Contains a list of errors if the request failed to process. |
Errors / Error | 1..n | Should be at least one node if there is an Errors Node. |
@Type | 1 | Mandatory if Error present. 3: Biz rule (The business rules for the request message were not met) |
@Code | 0..1 | Any code from the OTA code table for 'Error Codes (ERR)' can be used. |
OTA_ResRetrieveRS / ReservationsList | 0..1 | ReservationList is only present if there are HotelReservation elements. |
ReservationsList / HotelReservation | 1..n | At least one reservation element if ReservationList exists |
HotelReservationType
Element | Number | Description |
---|---|---|
@CreateDateTime | 1 | This is the date when the reservation was first made. Mandatory if ResStatus is "Book". |
@LastModifyDateTime | 0..1 | This indicates the last date and time when the reservation was last modified. Mandatory if ResStatus is "Modify" or "Cancel". |
@ResStatus | 1 | Status is "Book", "Modify" or "Cancel" |
HotelReservation / UniqueID | 1..2 | The reservation reference in PmsXchange. The first UniqueID element will contain the unique identifier for the entire reservation. This identifier will identify the reservation through any subsequent modifications or cancellations. The second UniqueID element with ID_Context="MESSAGE_UNIQUE_ID" is the unique id for this message. This identifier should be used to confirm the message once processed |
@Type | 1 | Value '14' is the unique id for the reservation in Siteminder. Value '16' is the unique id for the message transferring the reservation. |
@ID | 1 | Identifier of the reservation according to PmsXchange. Note, this is NOT the reservation id according to the upstream system. This is located in the HotelReservationID element. There is the possiblility that this ID will contain special characters such as '/'. |
@ID_Context | 0..1 | Only present for the second UniqueID element and when present it will always be "MESSAGE_UNIQUE_ID" |
HotelReservation / POS | 1 | Point of sale |
POS / Source | 1..2 | Source of the reservation. A second POS / Source node can be present to define a secondary channel source. |
Source / RequestorID | 0..1 | This identifies the system which is sending the reservation. This element will only appear in the first Source element. |
@Type | 1 | Fixed at 22 (ESRP) |
@ID | 1 | Value is always 'SITEMINDER' |
Source / BookingChannel | 1 | Contains booking channel information |
@Primary | 1 | Indicates the primary booking source |
@Type | 1 | Always '7' for 'Internet'. |
BookingChannel / CompanyName | 1 | Name of the Booking Channel. NOTE: This name is subject to change/variation by the Booking Channel. Please use the @Code attribute below to identify Booking Channels on incoming reservations. |
@Code | 0..1 | PmsXchange's code to identify the Booking Channel. See the OTA Booking Agent Code Table for reference. For secondary channels this code may not be available, when present it will be the secondary channel code as provided by the source channel. |
HotelReservation / RoomStays / RoomStay | 0..n | One instance of RoomStay per room booked. See RoomStayType |
HotelReservation / ResGuests / ResGuest | 0..n | One instance of ResGuest per reservation guests. This guest information is dependent on the sometimes limited information retrieved from the booking agents. ResGuests might not always be directly linkable to the RoomStays. Either all ResGuests are linked to RoomStays or none are. See ResGuestType |
HotelReservation / Services / Service | 0..n | A list of service fees and extra charges linked to the HotelReservation See ServiceType |
HotelReservation / ResGlobalInfo | 1 | Contains general information about the Reservation |
ResGlobalInfo
Element | Number | Description |
---|---|---|
HotelReservationIDs / HotelReservationID | 0..2 | Reference number/string or PNR as supplied by the Booking agent will be supplied here. If this reservation is linked under an itinerary, the itinerary id given by the source booking agent will be supplied in a second. |
@ResID_Type | 1 | Will be sent as 14 or 26. 14: OTA code for 'Travel Agent PNR'. If this type is used the @ResID_Value will be the reservation identifier as provided by the source booking channel. 26: OTA code for 'Associated itinerary reservation'. If this type is used the @ResID_Value will be the itinerary identifier for one or more bookings in an itinerary as provided by the source booking channel. |
@ResID_Value | 1 | Reference number/string supplied by the Booking agent. ResID_Value could potentially contain special characters such '/'. |
Total | 0..1 | The total amount for the Reservation. Will add up to the sum of the RoomStay totals PLUS any additional fees sent by the BookingAgent. NOTE: It is possible that some OTAs do not provide any form of Rate information. As such we cannot guarantee Rate information will be provided. Currently Hotelbeds (HBD) is a known channel that does not always provide Rate information. See TotalType |
Profiles | 0..1 | This is a listing of Profiles associated with the reservation that are not Guests. This includes Customers, Travel Agents and Travel Arrangers. The Customer is the contact person for the Reservation. If the customer is also a guest, they will also be included in the ResGuest profile. See ProfilesType |
Memberships / Membership | 0..n | A list of Memberships. Memberships provides a list of reward programs |
@ProgramCode | 0..1 | The code or name of the membership program ('Hertz', 'AAdvantage', etc.). |
@AccountID | 0..1 | The account identification number for this particular member in this particular program. |
Fees / Fee | 0..n | A container for added fees |
@TaxInclusive | 1 | If 'true' the commission amount provided is tax inclusive, if 'false' the commission amount is not tax inclusive |
@Type | 1 | Always 'Inclusive' as PmsXchange reports gross Totals. Totals are inclusive of fees |
@Code | 1 | See OTA Fee Tax Type (FTT) code table |
@Amount | 0..1 | Commission amount |
Fee / Taxes | 0..1 | See TaxesType |
Fee / Description / @Name | 0..1 | Identifies the type of fee. Current values allowed are Commission: Commission against the total of the reservation. |
Fee / Description / Text | 0..1 | A description of the fee |
DepositPayments | 0..1 | Contains the deposit information |
DepositPayments / GuaranteePayment / AmountPercent | 1 | |
@Amount | 0..1 | The deposit as a currency amount. At least @Amount or @Percent will be populated. |
@CurrencyCode | 0..1 | This is the ISO currency code of the deposit. Mandatory if @Amount exists. |
@Percent | 0..1 | This is the percentage of the Total charge for the deposit (rounded to 3 decimal places). If the the Total.amountAfterTax is provided, it will be a percentage of this value. If only the amountBeforeTax is provided it will be the percentage of this value. At least @Amount or @Percent will be populated. |
@TaxInclusive | 0..1 | Indicates if tax is included in @Amount |
DepositPayments / GuaranteePayment / Description / Text | 0..1 | A text description of the deposit |
Guarantee | 0..1 | Guarantee information See GuaranteeType |
Comments / Comment / Text | 0..n | Reservation comments |
BasicPropertyInfo | 0..1 | Holds information about the Hotelier which this reservation is for. BasicPropertyInfo will always be sent as either part of the RoomStay or Retrieve Reservations#ResGlobalInfo, depending on your setup in pmsXchange. We recommend receiving the BasicPropertyInfo as part of the ResGlobalInfo due to how Booking.com cancellation messages are sent. |
@HotelCode | 1 | The code for the Hotel for which the booking was made. |
ResGuestType
Element | Number | Description |
---|---|---|
@ResGuestRPH | 0..1 | This value links the ResGuest to RoomStay(s) where possible. You can find the links in RoomStay / ResGuestRPHs. |
@ArrivalTime | 0..1 | The arrival time of the guest in the form HH:mm:ss. |
@Age | 0..1 | The age of the guest. |
@PrimaryIndicator | 0..1 | When true indicates this is the primary guest |
ResGuest / Profiles | 1 | Contains the guest profile information See ProfilesType |
ResGuest / Comments / Comment | 0..1 | Container for extra information about the guest |
@Name | 0..1 | Identifier for the comment, current supported names are ArrivalDetails: Details about the guest's mode of arrival |
Comment / Text | 1 | Text for the guest extra information |
RoomStayType
Element | Number | Description |
---|---|---|
@MarketCode | 0..1 | If provided by the source channel, this indicates a code to match a market segment for the booking. |
@PromotionCode | 0..1 | If configured, this is the promotion code indicating, for instance, a specific marketing campaign – not the rate code. |
@SourceOfBusiness | 0..1 | To specify where the business came from e.g. radio, newspaper ad, etc. |
RoomStay / RoomTypes / RoomType | 0..1 | Container for room information, will be omitted if none was provided by the source channel. There will only ever be one RoomType per RoomStay |
@RoomType | 0..1 | The name of the RoomType as provided by source channel |
@RoomTypeCode | 0..1 | Room code, identifier for the room |
@NonSmoking | 0..1 | Whether or not the room is a smoking room. In the absence of this attribute, SiteMinder was not provided with the information by the source channel |
@Configuration | 0..1 | Information about the bedding configuration |
RoomType / RoomDescription / Text | 0..1 | A text description of the room |
RoomType / AdditionalDetails | 0..n | Container for additional information about this room provided by the source channel |
RoomStay / RatePlans | 0..1 | Container for room information, will be omitted if none was provided by the source channel |
RatePlans / RatePlan | 0..n | Contains information for the Rate Plan(s) used for the RoomStay. |
@RatePlanCode | 0..1 | Rate code, identifier for the rate plan |
@RatePlanName | 0..1 | Name of the rate plan as provided the source channel |
@EffectiveDate | 1 | The effective date of the RatePlan |
@ExpireDate | 1 | The expire date for a RatePlan, this should be considered an exclusive date, the date for which the current rate plan information is no longer valid. |
RatePlan / RatePlanDescription / Text | 0..1 | A text description of the rate |
RatePlan / AdditionalDetails | 0..n | Container for additional information for the room provided by the source channel |
RoomStay / RoomRates / RoomRate | 1..n | Multiple RoomRates per RoomStay. Multiple rates are listed under each RoomRate. This can happen when there is a single room booked but more than one rate plan applies during the stay. See RoomRateType |
RoomStay / GuestCounts / GuestCount | 0..3 | How many guests will be staying in the room. The count is split over potentially three GuestCount elements under GuestCounts, one for each type of guest: adult, child or infant. |
@AgeQualifyingCode | 1 | Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values |
@Count | 1 | The actual count for this type of guest |
RoomStay / TimeSpan | 1 | Contains the timespan which this RoomStay covers |
@Start | 1 | Check in date |
@End | 1 | Check out date |
RoomStay / Total | 0..1 | The total amount of the RoomStay. Will add up to the sum of Rate / Total*NumberOfUnits. If no Rate / Total is present, will be the sum of Rate / Base*NumberOfUnits plus any additional costs, such as fees/services etc. IE The total cost for the RoomStay. NOTE: It is possible that some OTAs do not provide any form of Rate information and as such a RoomStay / Total cannot be provided in such cases. Currently Hotelbeds (HBD) is a known channel that does not always provide Rate information. See TotalType |
RoomStay / BasicPropertyInfo | 0..1 | Holds information about the Hotelier which this reservation is for. BasicPropertyInfo will always be sent as either part of the RoomStay or Retrieve Reservations#ResGlobalInfo, depending on your setup in pmsXchange. We recommend receiving the BasicPropertyInfo as part of the ResGlobalInfo due to how Booking.com cancellation messages are sent. If you are requesting reservations for all your hotels, using a single OTA_ReadRQ (centralised) we recommend using ResGlobal / BasicPropertyInfo / @HotelCode. |
@HotelCode | 1 | The code for the Hotel for which the booking was made. |
RoomStay / ServiceRPHs / ServiceRPH | 0..n | Contains links to any service or extra charges for the room |
@RPH | 1 | Links a Service/@ServiceRPHA to this RoomStay |
RoomStay / ResGuestRPHs / ResGuestRPH | 0..n | Used to link guests from the ResGuests list to the RoomStay |
@RPH | 1 | Links a ResGuest/@ResGuestRPH to this RoomStay |
RoomStay / Comments / Comment / Text | 0..1 | RoomStay comments |
RoomRateType
Element | Number | Description |
---|---|---|
RoomStay / RoomRates / RoomRate | 1..n | Multiple RoomRates per RoomStay. Multiple rates are listed under each RoomRate. This can happen when there is a single room booked but more than one rate plan applies during the stay. |
@RoomTypeCode | 1 | The code of the room booked |
@NumberOfUnits | 1 | Always 1. Each room will be listed in it's own RoomStay element. |
@RatePlanCode | 1 | This is the rate booked for the room type code listed in the RoomTypeCode attribute. |
RoomRate / Rates | 0..1 | Container for the daily rate breakdown information, if none was provided by the channel this will be omitted |
Rates / Rate | 1..n | The Rate element contains a timespan with daily rate information. The dates covered in the Rates will cover all the dates in the RoomStay/TimeSpan element. |
@RateTimeUnit | 1 | Always "Day" |
@EffectiveDate | 1 | The starting date of the rate in the form yyyy-MM-dd. This date is inclusive. |
@ExpireDate | 1 | ExpireDate is the first day after the applicable period (e.g. when expire date is 2012-04-03 the last date of the period is 2012-04-02). Format yyyy-MM-dd. This date is exclusive. |
@UnitMultiplier | 1 | Will be equal to the number of days between EffectiveDate and ExpireDate. Multiply with the UnitMultiplier to get the total cost for the date span. |
Rate / Base | 0..1 | Specifies the base per-day rate for the room. This is the gross amount charged for the room, not including any discounts or extra charges. See TotalType |
Rate / Total | 0..1 | The total amount charged for the Rate. Will be equal to the Base amount with the extras and discounts applied. Note that the Total is gross, in other words the FULL amount charged for the per date rate as provided by the source channel. NOTE: It is possible that some OTAs do not provide any form of Rate information and as such a RoomRate / Rate / Total cannot be provided in such cases. Currently Hotelbeds (HBD) is a known channel that does not always provide Rate information. NOTE: Any extras that are to be included in the RoomRate total will be linked through the ServiceRPH node. See TotalType |
RoomRate / ServiceRPHs / ServiceRPH | 0..n | Contains links to any service or extra charges for the rate |
@RPH | 1..n | Links a Service/@ServiceRPHA to this RoomRate |
AdditionalDetails
Element | Number | Description |
---|---|---|
AdditionalDetails / AdditionalDetail | 0..n | Container for additional information provided by the source channel for the rate |
@Type | 1 | Describes the additional information, please refer to the OTA Additional Detail Type (ADT) Code Table Some common usages are 43: Meal plan information |
@Code | 0..1 | A reference code provided by the source channel for the additional details. For example promotional codes |
AdditionalDetail / DetailDescription | 0..1 | |
AdditionalDetail / DetailDescription / Text | 1..n | The actual details provided by the channel |
GuaranteeType
Element | Number | Description |
---|---|---|
Guarantee / GuaranteesAccepted / GuaranteeAccepted / PaymentCard | 0..1 | Contains payment card information |
@CardCode | 0..1 | The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference |
@CardType | 0..1 | The type of payment card, refer to the OTA Card Type code table for reference. Common usages are: 1: Credit |
@CardNumber | 0..1 | The number embossed on the payment card |
@ExpireDate | 0..1 | This is the expiry date of the payment card used in the format MMyy |
@MaskedCardNumber | 0..1 | May be used to send a concealed or partial credit card number (e.g. "xxxxxxxxxxxx4444" or "4444"). |
PaymentCard / CardHolderName | 0..1 | This is the name of the card holder. |
PaymentCard / ThreeDomainSecurity / Results | 0..1 | Transaction results. IMPORTANT NOTE: SCA / 3DS details will only be provided if received from an SCA / 3DS compatible booking agent. Information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager. |
@ThreeDSVersion | 1 | The 3DS version used for authentication |
@ECI | 1 | Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference. |
@CAVV | 0..1 | Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF) |
@PAResStatus | 0..1 | Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference. |
@SignatureVerification | 0..1 | Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference. |
@XID | 0..1 | Transaction identifier resulting from authentication processing |
@Enrolled | 0..1 | Status of Authentication eligibility. Please see Status of Authentication Codes table for reference. |
@DSTransactionID | 0..1 | Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction |
Guarantee / Comments / Comment | 0..n | Contains extra information about the payment |
@Name | 1 | The type of payment information, this can be one of PaymentGatewayName: The name of the payment gateway The comment Name will always be included if a Comment node is present here |
Guarantee / Comments / Comment / Text | 1 | The actual information related to the payment |
Guarantee / GuaranteeDescription | 0..1 | |
Guarantee / GuaranteeDescription / Text | 1 | Information about the form of guarantee |
ProfilesType
Element | Number | Description |
---|---|---|
Profiles / ProfileInfo | 1..n | Profile information |
ProfileInfo / UniqueID | 0..n | Contains profile ids provided by the source channel. There can 0 to many identifiers passed through here |
@Type | 1 | This will always be "16" to represent 'Reference' from the OTA code table Unique Id Type (UIT) |
@ID | 1 | The reference identifier for the profile as provided by the source channel |
@ID_Context | 1 | This can be one of 2 values: CHANNEL: To specify that this is a channel reference id |
ProfileInfo / Profile | 1 | Contains the profile information |
@ProfileType | 1 | The type of profile See OTA Profile Type (PRT) code table. Some common usages are below 1: Customer |
Profile / Customer | ||
Customer / Document | 0..1 | Detailed document information for the guest (e.g., driver license, passport, visa). |
@DocID | 1 | Unique number assigned by authorities to document. |
@DocType | 1 | Indicates the type of document (e.g. Passport, Military ID, Drivers License, national ID, Vaccination Certificate). Refer to the Document Type Code List |
@Gender | 0..1 | Identifies the gender. Possible values are "Female", "Male", or "Unknown". |
@BirthDate | 0..1 | Indicates the date of birth as indicated in the document, in ISO 8601 prescribed format (YYYY-MM-DD). |
@BirthCountry | 0..1 | Specifies the birth country of the document holder. |
@BirthPlace | 0..1 | Specifies the birth place of the document holder (e.g., city, state, county, province), when designating a country of birth, use BirthCountry. |
@DocHolderNationality | 0..1 | The country code of the nationality of the document holder. |
@DocIssueAuthority | 0..1 | Indicates the group or association that granted the document. |
@DocIssueCountry | 0..1 | Country where the document was issued. |
@DocIssueLocation | 0..1 | Indicates the location where the document was issued. |
@DocIssueStateProvince | 0..1 | State or Province where the document was issued. |
@EffectiveDate | 0..1 | Indicates the starting date, in format YYYY-MM-DD. |
@ExpireDate | 0..1 | Indicates the ending date, in format YYYY-MM-DD. |
Document / DocumentHolderName | 0..1 | The name of the document holder in unformatted text (Mr. Sam Jones). If no DocHolderName is included, the guest name fields will be assumed to be the name as per passport. |
Customer / PersonName | 0..1 | Profile name details. Always present for type Customer. |
PersonName / NamePrefix | 0..1 | Name prefix |
PersonName / GivenName | 0..1 | The name of the profile. Always present for type Customer. |
PersonName / MiddleName | 0..1 | The middle name of the profile |
PersonName / Surname | 0..1 | The last name of the profile. Always present for type Customer. |
Customer / Telephone | 0..4 | Contact telephone number for the profile if available |
@PhoneNumber | 0..1 | The actual number, will be there if the Telephone element is there |
@PhoneUseType | 0..1 | The type of phone use for example daytime, nighttime, work. If this field is blank this is the primary phone, otherwise PhoneUseType="4" denotes a secondary or nighttime phone |
@PhoneTechType | 0..1 | The type of phone technology, if not provided it should be assumed as a landline 5: Mobile |
Customer / Email | 0..1 | The email address of the profile if available |
Customer / Address | 0..1 | Address information for the profile if available |
Address / AddressLine | 0..n | One or more address lines for the profile |
Address / CityName | 0..1 | Customer city of residence if available |
Address / PostalCode | 0..1 | Post code for profile if available |
Address / StateProv | 0..1 | State or province name |
Address / CountryName | 0..1 | Country name |
Address / CompanyName | 0..1 | Company name |
Customer / CustLoyalty | 0..1 | A list of Memberships. Memberships provides a list of reward programs. |
@MembershipID | 0..1 | The account identification number for this particular member in this particular program. |
@ProgramID | 0..1 | The defined membership program name or ID applicable to program. This will be in the form as provided by the source booking channel. |
@ExpiryDate | 0..1 | The expiry date of the program membership issued to card holder. Date format is yyyy-MM-dd |
ServiceType
The Service structure is used for passing on information about charges for extras and services. Services can be provided at the HotelReservation level (no ServiceRPH) or to a RoomStay or RoomRate. The ServiceRPH serves only to link a charge to a room or a rate.
All Service totals provided should be considered full amounts added to the base reservation charge. In other words, the charges are not per person or per day but full charges. The total amounts provided for the RoomStay and Reservation should be considered as inclusive of extras.
Element | Number | Description |
---|---|---|
@ServiceInventoryCode | 1 | The identifier code for the service as given by the source booking channel will be provided here. In the absence of a specific code being provided by the channel, the type of charge will be specified via one of the types specified in the Service and Extra Charge Reference Table. |
@ServiceRPH | 0..1 | This links a Service to a RoomStay or a RoomRate. The absence of a ServiceRPH indicates that this is a HotelReservation level charge |
@Inclusive | 1 | Always 'true', PmsXchange reports totals as inclusive of charges and extras |
@Quantity | 0..1 | The number of units included in the charge. |
@ID | 0..1 | The reference id provided for a extra/service by the source booking channel |
@ID_Context | 0..1 | If ID present, will always be 'CHANNEL' |
@Type | 1 | A reference to the type of object defined by the UniqueID element. Always "18" to indicate other in the OTA Unique Id Type (UIT) table |
Service / Price | 1 | Container for the price |
Price / Base | 0.1 | The amount per unit for this extra charge as provided by the hotel. See BaseType (for details) |
Price / Total | 1 | The total amount for the extra charge for all units. See TotalType |
Price / RateDescription / Text | 0..1 | A text description of the service/extra |
Service / ServiceDetails | 0..1 | |
ServiceDetails / TimeSpan | 0..1 | Start date for which the extra charge applies |
@Start | 0..1 | Start date for which the extra charge applies |
@End | 0..1 | End date for which the extra charge applies. This is an inclusive date, the last date for which the charge applies |
BaseType
Element | Number | Description |
---|---|---|
@CurrencyCode | 0..1 | The ISO currency code for the unit amount |
@AmountAfterTax | 0..1 | The unit amount after tax |
@AmountBeforeTax | 0..1 | The unit amount before tax |
Taxes | 0..1 | The unit tax amount for the BaseType See TaxesType |
@Amount | 0..1 | The unit tax amount |
TotalType
Element | Number | Description |
---|---|---|
@CurrencyCode | 0..1 | The ISO currency code for the total |
@AmountAfterTax | 0..1 | The total amount after tax |
@AmountBeforeTax | 0..1 | The total amount before tax |
Taxes | 0..1 | The total tax amount for the TotalType See TaxesType |
@Amount | 0..1 | The total tax amount |
TaxesType
The tax breakdown will be provided in the case where the original reservation contained detailed tax breakdowns.
Element | Number | Description |
---|---|---|
Taxes / Tax | 0..n | Zero to many tax breakdowns |
@Code | 1 | The type of tax being applied to the total. Refer to the code table OTA Fee Tax Type (FTT) |
@Percentage | 0..1 | Tax percentage |
@Amount | 0..1 | Tax amount |
Tax / TaxDescription / Text | 0..1 | Text description of the tax |