Message Description
protel I/O uses a request and response message pair to push upsell information from an external system that wishes to modify an existing reservation. The message allows Integration Partners to modify reservation information residing in the PMS. For reservation data, protel supports stay level detail where each record represents a single stay. Protel provides potentially a different rate, rate code and room type for each night of the reservation.
The message supports the following functionality:
- UseCase1: Create a room type change
- UseCase2: Room type change with Upsell (fixed charges)
- UseCase3: Room type change with rate change (only pAir)
- UseCase4: Create fixed charges TAA
- UseCase5: Create fixed charges article
- UseCase6: Assign package to a reservation
- UseCase7: Assign traces to a reservation
- UseCase8: Assign a RoomID
- UseCase9: Move reservation in time
- UseCase10: Add or modify arrival and departure time (only OnPremise)
- UseCase11: Change attached guest profile *
- UseCase11a: Add attached guest profile (pAir)
- UseCase11b: Add attached guest profile (OnPremise)
- UseCase12: Change the invoice profile
- UseCase13: Add a routing instruction (only pAir)
- UseCase14: Add a routing instruction for an item group to another invoice window of the same reservation (only OnPremise)
- UseCase15: Add a routing instruction for specific items to another reservation
- UseCase16: Add a routing instruction using a template (only pAir)
*: OnPrem: It is only possible to change the main guest of the reservation, not profiles that are on the attached guest profiles list!
Message Attributes
IO_ResModifyNotifRQ
Element | @Attribute | Type | Num | Description | Comments + Content inbound | pAIR | OnPrem |
IO_ResModifyNotifRQ | ||||||
@CorrelationID | string | 1 | CorrelationID for RQ and RS | |||
@TimeStamp | dateTime | 1 | ISO DateTime of message creation | |||
@Version | string | 0..1 | Version of the message. | "1.00" | ||
@EchoToken | string | 0..1 | Echotoken for RQ and RS | |||
IO_ResModifyNotifRQ | Reservations | 1 |
| ||||
@HotelCode | string | 0..1 | Global Hotel ID | |||
@HotelID | string | 0..1 | Internal Hotel ID | |||
@HotelName | string | 0..1 | Internal Hotel Name | |||
@ChainCode | string | 0..1 | The code that identifies a hotel chain per management group. The hotel code is decided btw vendors. The attribute is optional if the hotel is independent property that can be identified by the HotelCode attribute. | |||
IO_ResModifyNotifRQ | Reservations | Reservation | 1..n |
| ||||
@ResStatus | IOCodeString | 0..1 | Currently not interpreted | |||
@ArrivalDate | date | 0..1 | Move reservation in time | New arrival date | ||
@DepartureDate | date | 0..1 | Move reservation in time | New departure date | ||
@ArrivalTime | time | 0..1 | Arrival time | |||
@DepartureTime | time | 0..1 | Departure time | |||
IO_ResModifyNotifRQ | Reservations | Reservation | UniqueID | 1..n |
| ||||
@ID | string | 1 | Unique identifier of the reservation | Reservation ID | ||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the identifier | "Reservation" (OTA 14) | ||
IO_ResModifyNotifRQ | Reservations | Reservation | GuestCounts | 0..1 | A collection of GuestCount by age group. | ||||
---|---|---|---|---|---|---|
IO_ResModifyNotifRQ | Reservations | Reservation | GuestCounts | GuestCount | 1..10 | A recurring element that identifies the number of guests and ages of the guests. | ||||
@AgeQualifyingCode | OTA_CodeType AQC | A code representing a business rule that determines the charges for a guest based upon age range (e.g. Adult, Child, Senior, Child With Adult, Child Without Adult). This attribute allows for an increase in rate by occupant class. Refer to OpenTravel Code List Age Qualifying Code (AQC). | ||||
@Count | integer | 0..1 | Count | |||
IO_ResModifyNotifRQ | Reservations | Reservation | Packages | 0..1 | Modify packages of a reservation | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | Packages | Package | 1..n |
| ||||
@Code | IOCodeString | 0..1 | Code of bookable package (calculation) to use | |||
@Action | IOTransactionActionType | 0..1 | Action to be done for the bookable package | |||
@Recurrence | RecurrenceType | 0..1 | Recurrence of the booked package | |||
@From | date | 0..1 | Valid from | |||
@To | date | 0..1 | Valid to | |||
IO_ResModifyNotifRQ | Reservations | Reservation | Packages | Package | UniqueID | 1..n | Mandatory for OnPrem | ||||
@ID | string | 1 | ID of package booked | |||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the identifier | "Package" | "18" (OnPremise) "PackageItem" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | Packages | Package | InvoiceText | string | 0..1 | Text to post to invoice | |||
IO_ResModifyNotifRQ | Reservations | Reservation | Slices | 0..1 | Modify existing reservation slices. | NOTE: for OnPrem there can only be ONE slice for the whole stay! | |||
IO_ResModifyNotifRQ | Reservations | Reservation | Slices | Slice | 1..n | Slice between arrival and departure date | ||||
@From | dateTime | 0..1 | Apply change on slice valid from | DateTime | ||
@To | dateTime | 0..1 | Apply change on slice valid to | DateTime | ||
IO_ResModifyNotifRQ | Reservations | Reservation | Slices | Slice | Room | 0..1 | Modify room type | ||||
@RoomType | IOCodeString | 0..1 | Room type code the guest wants | Category short name Please note: for Use Case "Assign RoomID" the RoomType is mandatory for OnPrem! | ||
@RoomTypePreset | IOCodeString | 0..1 | Room type code the guest previously had booked | Category short name | ||
@RoomID | IOCodeString | 0..1 | Room ID the guest wants | |||
@UpsellInd | boolean | 0..1 | true = Do not recalculate the room rates within PMS |
| ||
IO_ResModifyNotifRQ | Reservations | Reservation | Slices | Slice | Rate | 0..1 | Change the rate code in reservation slice. NOTE: only supported in pAIR | ||||
@RateCode | IOCodeString | 0..1 | Change the rate to be used | Rate short name | ||
@RateID | IOCodeString | 0..1 | Change the rate to be used | Rate ID | ||
IO_ResModifyNotifRQ | Reservations | Reservation | Slices | Slice | Rate | Price | 1 | Daily price to overwrite in reservation slice | ||||
@SingleAmountAfterTax | decimal | 0..1 | Amount to charge for the room per day | Daily amount after tax | ||
@SingleAmountBeforeTax | decimal | 0..1 | Amount to charge for the room per day | Daily amount before tax | ||
@CurrencyCode | IOCodeString | 0..1 | Currency of amount to charge for upgrade | Currency code | ||
IO_ResModifyNotifRQ | Reservations | Reservation | Slices | Slice | Segmentation | 0..1 | Modify the codes for analysis. NOTE: only supported in pAIR | ||||
@MarketCode | IOCodeString | 0..1 | Market segment | Market code | ||
@SourceOfBusiness | IOCodeString | 0..1 | Distribution channel the business came from | Distribution channel | ||
@TravelReason | IOCodeString | 0..1 | Reason for the vacation/stay | Come reason | ||
IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | 0..1 |
| ||||
IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | 1..n |
| ||||
@Action | IOTransactionActionType | 0..1 | Action to be done for the fixed charge | |||
@Code | IOCodeString | 0..1 | Code will be written to invoice | |||
@From | date | 0..1 | Valid from | |||
@To | date | 0..1 | Valid to | |||
@Recurrence | RecurrenceType | 0..1 | Recurrence of the fixed charge | |||
@Quantity | integer | 0..1 | Quantity of item to book per recurrence | |||
@UpsellInd | boolean | 0..1 | For protel OnPremise you can define a TAA to be used automatically if no Reservations/Reservation/FixedCharges/FixedCharge/Item is provided AND UpsellInd=true. |
| ||
IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | UniqueID | 0..n | Mandatory for actions UPDATE and DELETE | ||||
@ID | string | 1 | ID to find FixedCharge for update or deletion | ID provided in RS of CREATE message | ||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the identifier | "FixedCharge" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | Price | 0..1 |
| ||||
@SingleAmountAfterTax | decimal | 0..1 | Amount to charge | Amount after tax | ||
@SingleAmountBeforeTax | decimal | 0..1 | Amount to charge | Amount before tax | ||
@CurrencyCode | IOCodeString | 0..1 | Currency of the amount to charge | Hotel currency expected | ||
IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | InvoiceText | 0..1 | Text to post to invoice | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | FixedCharges | FixedCharge | Item | 0..1 | OnPremise: | ||||
@ItemID | IOCodeString | 0..1 | protel internal Item ID | |||
@Code | IOCodeString | 0..1 | protel internal Item Code | |||
IO_ResModifyNotifRQ | Reservations | Reservation | Traces | 0..1 | Modify reservation traces | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | Traces | Trace | 1..n |
| ||||
@Action | IOTransactionActionType | 1 | Action to be done for the trace | |||
@TraceDepartment | IOCodeString | 0..1 | Name of the department as configured | Trace department short name | ||
@TraceBegin | date | 0..1 | Trace begin | Date | ||
@TraceEnd | date | 0..1 | Trace end | Date | ||
@TraceTime | time | 0..1 | Trace time | Time incl. Timezone | ||
@Recurrence | RecurrenceType | 0..1 | Recurrence of the trace | |||
IO_ResModifyNotifRQ | Reservations | Reservation | Traces | Trace | InfoText | 1..n | Trace Text | ||||
@Language | string | 1 | Trace language | Language Code | ||
IO_ResModifyNotifRQ | Reservations | Reservation | Traces | Trace | UniqueID | 1..n | Mandatory for actions UPDATE and DELETE | ||||
@ID | string | 1 | ID to find Trace for update or deletion | ID provided in RS of CREATE message | ||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the identifier | "Trace" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | Segmentation | 0..1 | |||||
@MarketCode | IOCodeString | 0..1 | ||||
@SourceOfBusiness | IOCodeString | 0..1 | ||||
@TravelReason | IOCodeString | 0..1 | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | 0..1 | |||||
IO_ResModifyNotifRQ | Reservations | Reservation | ProfileReferences | ProfileReference | 1..n | |||||
@Role | IOCodeString | 0..1 | Role of the profile ID pAir: always mandatory! |
| ||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@ID | string | 1 | Reference to the profile in the PMS | |||
@Type | IOCodeString | 0..1 | Type of the profile according to PIT Code list | |||
@AgeQualifyingCode | OTA_CodeType AQC | A code representing a business rule that determines the charges for a guest based upon age range (e.g. Adult, Child, Senior, Child With Adult, Child Without Adult). This attribute allows for an increase in rate by occupant class. Refer to OpenTravel Code List Age Qualifying Code (AQC). pAir: always mandatory | ||||
@Action | IOTransactionActionType | 1 | Action to be done for the profile OnPrem: For Use Case 11 (change attached guest profile) only one ProfileReference element with Action=DELETE and one ProfileReference element with Action=CREATE is allowed. | |||
@RelationToPrimary | string | 0..1 | Indicates the relationship status to the main guest of a reservation (Additional Profiles) | |||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceReferences | 0..1 | References to folios attached to a reservation | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceReferences | InvoiceReference | 1..n | Reference to a folio that is attached to a reservation | ||||
@ID | string | 1 | Reference to a folio ID | |||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the identifier | "Invoice" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceReferences | InvoiceReference | ProfileReferences | 0..1 | Profile references for this folio | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceReferences | InvoiceReference | ProfileReferences | ProfileReference | 1..n | Reference to a profile that is attached to a folio | ||||
@ID | string | 1 | Reference to the profile in the PMS | |||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the profile according to PIT Code list | |||
@Action | IOTransactionActionType | 1 | Action to be done for the profile | |||
@Role | IOCodeString | 0..1 | Role of the profile ID pAir: always mandatory! |
| ||
@AgeQualifyingCode | OTA_CodeType AQC | A code representing a business rule that determines the charges for a guest based upon age range (e.g. Adult, Child, Senior, Child With Adult, Child Without Adult). This attribute allows for an increase in rate by occupant class. Refer to OpenTravel Code List Age Qualifying Code (AQC). | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | 0..1 | Routings of items to other folios | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | 1..n | Routing of items to other folio | ||||
@Action | IOTransactionActionType | 1 | Action to be done for the routing | |||
@Name | IOCodeString | 0..1 | Name of the new payment instruction or the to be used template. Mandatory for pAir, not used for OnPrem | |||
@Type | IOCodeString | 0..1 | Type of routing Mandatory for pAir, not used for OnPrem | "PaymentInstruction" "InvoiceRoutingTemplate" | ||
@ID | string | 0..1 | ID of the new payment instruction, empty for using a template. Not used for OnPrem | |||
@ID_Context | string | 0..1 | Used to identify the source of the identifier | "protelIO" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | Target | 1 | Target of the routing | ||||
@ID | string | 1 | ID of the target | Depending on the type of the target:
| ||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the target pAir is only supporting "Invoice" |
| ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | Source | 0..1 | Source of the routing | ||||
@ID | string | 1 | Reservation ID of the source | |||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the source | "Reservation" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | 1 | Items to route to another folio | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | Posting | 0..1 | |||||
@From | date | 0..1 | Start date of the payment instruction | "2020-01-01" | ||
@To | date | 0..1 | End date of the payment instruction | "2020-01-03" | ||
@Mon | boolean | 0..1 | Valid on Mondays |
| ||
@Tue | boolean | 0..1 | Valid on Tuesdays |
| ||
@Wed | boolean | 0..1 | Valid on Wednesdays |
| ||
@Thu | boolean | 0..1 | Valid on Thursdays |
| ||
@Fri | boolean | 0..1 | Valid on Fridays |
| ||
@Sat | boolean | 0..1 | Valid on Saturdays |
| ||
@Sun | boolean | 0..1 | Valid on Sundays |
| ||
@GeneratedByRate | boolean | 0..1 | Only pAir |
| ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | ItemGroups | 0..1 | Item groups to be routed | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | ItemGroups | ItemGroup | 1..n | Item group to be routed | ||||
@Code | IOCodeString | 0..1 | Code of the item group | pAir: Code (PLU) of the article group OnPrem: either one of the predefined values
or the internal ref of an item group defined by the hotel using routing codes(e.g. "-3464") OR the short description of the created item group | ||
@ID | IOCodeString | 0..1 | ID of the item group | OnPrem: "-1" | ||
@ID_Context | IOCodeString | 0..1 | Used to identify the source of the identifier | "protelIO" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | Items | 0..1 | Items to be routed | ||||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | Items | Item | 1..n | Item to be routed | ||||
@Code | IOCodeString | 0..1 | Item code | pAir: Code (PLU) of the article OnPrem: ukto.ktonr | ||
@ID | IOCodeString | 0..1 | Item ID | OnPrem: "-1" | ||
@ID_Context | IOCodeString | 0..1 | Used to identify the source of the identifier | "protelIO" | ||
IO_ResModifyNotifRQ | Reservations | Reservation | InvoiceItemRoutings | InvoiceItemRouting | ItemFilter | Info | 0..1 |
IO_ResModifyNotifRS
Element | @Attribute | Type | Num | Description outbound | Content outbound | pAIR | OnPrem |
---|---|---|---|---|---|---|
IO_ResModifyNotifRS | ||||||
@CorrelationID | string | 1 | CorrelationID for RQ and RS | |||
@TimeStamp | dateTime | 1 | Timestamp of message creation | DateTime | ||
@Version | string | 0..1 | "1" | |||
@EchoToken | string | 0..1 | Echotoken for RQ and RS | |||
IO_ResModifyNotifRS | Errors | 0..1 | Indicates an error occurred during the processing of the message. If the message successfully processes, but there are business errors, those errors should be passed in the warning element instead. | ||||
IO_ResModifyNotifRS | Errors | Error | 0..n | An error that occurred during the processing of a message. | ||||
@Type | OTA_CodeType EWT | 0..1 | Mandatory. Refers to the OTA Code List: Error Warning Type (EWT). | |||
@Code | OTA_CodeType ERR | 0..1 | Refers to the OTA Code List: Error Codes (ERR). | |||
@ReferenceCode | string | 0..1 | Business object causing the warning | |||
@Message | string | 0..1 | Description of the issue | |||
IO_ResModifyNotifRS | Success | 0..1 | Returning an empty element of this type indicates the successful processing of the message. It could be combined with warning message/s if the message had issue/s. | ||||
IO_ResModifyNotifRS | Warnings | 0..1 | Used when a message has been successfully processed to report any warnings or business errors that occurred. | ||||
IO_ResModifyNotifRS | Warnings | Warning | 0..n | Used in conjunction with the Success element to define a business error. | ||||
@Type | OTA_CodeType EWT | 0..1 | Mandatory. Refer to the OTA Code List: Error Warning Type (EWT). | |||
@Code | OTA_CodeType ERR | 0..1 | Refers to the OTA Code List: Error Codes (ERR). | |||
@ReferenceCode | string | 0..1 | Business object causing the warning | |||
@Message | string | 0..1 | Description of the issue | |||
IO_ResModifyNotifRS | Reservations | 1 | |||||
IO_ResModifyNotifRS | Reservations | Reservation | 1 | Copy of reservation in it's current state | ||||
@ResStatus | IOCodeString | 0..1 | Currently not interpreted | |||
@ArrivalDate | date | 0..1 | Move reservation in time | New arrival date | ||
@DepartureDate | date | 0..1 | Move reservation in time | New departure date | ||
@ArrivalTime | time | 0..1 | Arrival time | |||
@DepartureTime | time | 0..1 | Departure time | |||
IO_ResModifyNotifRS | Reservations | Reservation | UniqueID | 1..n |
| ||||
@ID | string | 1 | Unique identifier of the reservation | Reservation ID | ||
@ID_Context | string | 1 | Used to identify the source of the identifier | "protelIO" | ||
@Type | IOCodeString | 0..1 | Type of the identifier | "Reservation" (OTA 14) | ||
IO_ResModifyNotifRS | References | 0..1 | References to actions actually taken | ||||
@HotelCode | string | 0..1 | Global Hotel ID | |||
@HotelID | string | 0..1 | Internal Hotel ID | |||
@HotelName | string | 0..1 | Internal Hotel Name | |||
@ChainCode | string | 0..1 | The code that identifies a hotel chain per management group. The hotel code is decided btw vendors. The attribute is optional if the hotel is independent property that can be identified by the HotelCode attribute. | |||
IO_ResModifyNotifRS | References | CrossRef | 1..n | |||||
@RequestCode | IOCodeString | 1 | Code in requesting system | |||
@ResponseCode | IOCodeString | 0..1 | Code in receiving system | |||
@RequestID | IOCodeString | 0..1 | ID in requesting system | |||
@ResponseID | IOCodeString | 0..1 | ID in receiving system | |||
@Action | IOTransactionActionType | 0..1 | Action taken | |||
@Type | IOCodeString | 0..1 | ||||
IO_ResModifyNotifRS | References | CrossRef | Name | 0..1 | Name of reservation part / extra modified |
| |||
@Language | string | 0..1 | Hotel language | Language code | ||
IO_ResModifyNotifRS | References | CrossRef | Description | 0..1 | Description of reservation part / extra modification | ||||
@Language | string | 0..1 | Hotel language | Language code |