Confirm Reservation

The OTA_NotifReportRQ message is sent by the PMS to PmsXchange in order to confirm the delivery of one of more reservations, modifications or cancellations. If a reservation, modification or cancellation is not confirmed as delivered, it will continue to be delivered to the PMS in response to the OTA_ReadRQ message. Please note that confirming the delivery of a reservation does not necessarily mean that the reservation was successfully created in the PMS. The OTA_NotifReportRQ message allows for confirming a delivery which was erroneous.

NOTE: pmsXchange will automatically 'Error' (fail) any reservation that meets the following criteria:

  • Delivery attempts: 20 (Has been requested (OTA_ReadRQ) at least 20 times, with no valid  OTA_NotifReportRQ returned from requesting PMS.)
  • Timeout with no delivery attempts: 14 days
  • Timeout with at least 1 delivery attempt: 1 hour (starting from the time of the first delivery attempt)

IMPORTANT: The above-mentioned functionality is a fail-safe feature, we expect to always receive either a 'Success' or 'Error' OTA_NotifReportRQ. This failsafe mechanism cannot be relied upon to fail reservations when they cannot be processed.

OTA_NotifReportRQ

Note that a OTA_NotifReportRQ must contain either a Success or an Errors element. If multiple reservations were processed and both a success and an error message need to be returned then two OTA_NotifReportRQ messages need to be sent. One containing the Success element and IDs for the successfully processed reservations and one containing the Errors and IDs for the reservations that failed to process.

Example of PMS confirming the delivery of a reservation that was processed successfully

  • The presence of the <Success/> element indicates that the reservation was created in the PMS
  • The UniqueID Type 16 element informs PmsXchange which reservation message is being confirmed
  • The HotelReservationID holds the ID of the newly created reservation in the PMS
<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-08-20T09:29:47+02:00" EchoToken="echo-abc123">
  <Success/>
  <NotifDetails>
    <HotelNotifReport>
      <HotelReservations>
        <HotelReservation CreateDateTime="2024-08-20T09:28:47+02:00" ResStatus="Book">
          <UniqueID Type="16" ID="qlmumfgwx85nlkgmtb"/>
          <ResGlobalInfo>
            <HotelReservationIDs>
              <HotelReservationID ResID_Type="14" ResID_Value="PMS-111333"/>
            </HotelReservationIDs>
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>
<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-08-20T09:45:47+02:00" EchoToken="echo-abc123">
  <Success/>
  <NotifDetails>
    <HotelNotifReport>
      <HotelReservations>
        <HotelReservation LastModifyDateTime="2024-08-20T09:44:47+02:00" ResStatus="Modify">
          <UniqueID Type="16" ID="bxlumfgwx85nlkgmtc"/>
          <ResGlobalInfo>
            <HotelReservationIDs>
              <HotelReservationID ResID_Type="14" ResID_Value="PMS-111333"/>
            </HotelReservationIDs>
          </ResGlobalInfo>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>

Example of PMS confirming multiple reservations that was processed successfully

  • The presence of the <Success/> element indicates that the reservations were created in the PMS
  • The UniqueID Type 16 element informs PmsXchange which reservation messages are being confirmed
  • The HotelReservationID holds the ID of the newly created reservations in the PMS
<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-11-30T14:40:04-3:00" EchoToken="abc-123">
	<Success/>
	<NotifDetails>
		<HotelNotifReport>
			<HotelReservations>
				<HotelReservation CreateDateTime="2024-11-30T14:37:11-03:00" ResStatus="Book">
					<UniqueID Type="16" ID="qlmumfgwx85nlkgmtb"/>
					<ResGlobalInfo>
						<HotelReservationIDs>
							<HotelReservationID ResID_Type="14" ResID_Value="PMSID01"/>
						</HotelReservationIDs>
					</ResGlobalInfo>
				</HotelReservation>
				<HotelReservation CreateDateTime="2024-11-30T14:37:17-03:00" ResStatus="Book">
					<UniqueID Type="16" ID="2frbvhw0e6ho89mkkq"/>
					<ResGlobalInfo>
						<HotelReservationIDs>
							<HotelReservationID ResID_Type="14" ResID_Value="PMSID02"/>
						</HotelReservationIDs>
					</ResGlobalInfo>
				</HotelReservation>
				<HotelReservation CreateDateTime="2024-11-30T14:37:23-03:00" ResStatus="Book">
					<UniqueID Type="16" ID="nnlek0hyw6ffbfubej"/>
					<ResGlobalInfo>
						<HotelReservationIDs>
							<HotelReservationID ResID_Type="14" ResID_Value="PMSID03"/>
						</HotelReservationIDs>
					</ResGlobalInfo>
				</HotelReservation>
			</HotelReservations>
		</HotelNotifReport>
	</NotifDetails>
</OTA_NotifReportRQ>

Example of PMS confirming the delivery of a reservation that was NOT processed successfully

  • The presence of the <Error/> element indicates that the reservation was not created in the PMS
  • The UniqueID Type 16 element informs PmsXchange which reservation is being confirmed
  • No HotelReservationID is present if the PMS was unable to save the reservation
<OTA_NotifReportRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-08-20T09:30:47+02:00" EchoToken="echo-abc123">
  <Errors>
    <Error Type="3" Code="402">Invalid room type</Error>
  </Errors>
  <NotifDetails>
    <HotelNotifReport>
      <HotelReservations>
        <HotelReservation CreateDateTime="2024-08-20T09:28:00+02:00" ResStatus="Book">
          <UniqueID Type="16" ID="3123456"/>
        </HotelReservation>
      </HotelReservations>
    </HotelNotifReport>
  </NotifDetails>
</OTA_NotifReportRQ>

OTA_NotifReportRQ Specification

Node

Number

Description

OTA_NotifReportRQ

1

Root element

@Version1Current Version 1.0

@EchoToken

1

Globally unique identifier for the request, the value will be returned in the response EchoToken.

@TimeStamp1

Time of the transaction in xml schema dateTime format.
Format like yyyy-MM-dd'T'HH:mm:ssZZ, (i.e '2024-03-20T20:05:52+08:00')

OTA_NotifReportRQ / Success

0..1

Either Success or Error element present

OTA_NotifReportRQ / Errors0..1Contains a list of errors if the reservation, modification or cancellation failed to process.
Errors / Error1..nShould be at least one node if there is an Errors Node.
@Type1

Mandatory if Error present.
Any type from the OTA code table for 'Error Warning Type (EWT)' can be used. In particular, the following types are used.

3: Biz rule (The business rules for the request message were not met)
4: Authentication error (If username and password are not authenticated)
6: Authorization error (If authenticated username is not authorized to alter hotel data)
10: Required field missing (If xml does not meet the schema, i.e missing request fields or invalid data types.)

@Code0..1Any code from the OTA code table for 'Error Codes (ERR)' can be used.

OTA_NotifReportRQ / NotifDetails / HotelNotifReport

1

Container for HotelReservations

HotelNotifReport / HotelReservations / HotelReservation

1..n

One for each reservation being confirmed

@CreateDateTime

0..1

The time the reservation was created in the PMS. Mandatory if ResStatus is "Book".

@LastModifyDateTime0..1The time the reservation was updated in the PMS. Mandatory if ResStatus is Modify or Cancel.

@ResStatus

0..1

Allowed values are "Book", "Modify" or "Cancel"

HotelReservation / UniqueID

1

The identifier of the reservation message as known to PmsXchange
The HotelReservation UniqueID of Type 16 from the OTA_ResRetrieveRS response

@Type

1

Value of '16' which refers to 'Reference' in the OTA Unique Id Type (UIT) code table

@ID

1

PmsXchange identifier of the reservation. UniqueID of Type 16 from the OTA_ResRetrieveRS

HotelReservation / ResGlobalInfo

0..1

Present if the reservation is part of a successful delivery batch

HotelReservation / ResGlobalInfo / HotelReservationIDs / HotelReservationID

1

Container for the PMS reservation identifier

@ResID_Type

1

Value of '14' which refers to 'Reservation' in the OTA Unique Id Type (UIT) code table

@ResID_Value

1

The identifier of the reservation created by the PMS. This is the reservation ID in the PMS.

OTA_NotifReportRS

This message is sent to the PMS in response to the OTA_NotifReportRQ message. It confirms the PmsXchange processed the OTA_NotifReportRQ message successfully.

Success Response
<OTA_NotifReportRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-08-20T09:30:47+02:00" EchoToken="echo-abc123">
  <Success/>
</OTA_NotifReportRS>

Failure Response
<OTA_NotifReportRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2024-08-20T09:30:47+02:00" EchoToken="echo-abc123">
  <Errors>
    <Error Type="3" Code="385">Could not find Notifications to confirm with notification id='3123456'</Error>
  </Errors>
</OTA_NotifReportRS>

OTA_NotifReportRS Specification

ElementNumberType
OTA_NotifReportRS1Root element
@Version1Current version is 1.0

@EchoToken

1

Return the EchoToken from the request message.

@TimeStamp1Time of the transaction in xml schema dateTime format

OTA_NotifReportRS / Success

0..1

Either Success or Error element present

OTA_NotifReportRS / Errors0..1Contains a list of errors if the confirmation failed to process.
Errors / Error1..nShould be at least one node if there is an Errors Node.
@Type1

Mandatory if Error present.
Any type from the OTA code table for 'Error Warning Type (EWT)' can be used. In particular, the following types are used.

3: Biz rule (The business rules for the request message were not met)
4: Authentication error (If username and password are not authenticated)
6: Authorization error (If authenticated username is not authorized to alter hotel data)
10: Required field missing (If xml does not meet the schema, i.e missing request fields or invalid data types.)

@Code0..1Any code from the OTA code table for 'Error Codes (ERR)' can be used.