OTA_HotelBookingRuleRQ
Methode zum Lesen von Restriktionen/ Buchungsregeln auf Zimmer- und Angebotsebene (RoomType/RatePlan Kombination) von Kurzurlaub.de.
Siehe auch Entwicklerhandbuch - Restrictionen Push API
LengthOfStay - Mindestaufenthalte MinLOS / MaxLOS
Normalerweise ignorieren wir LengthOfStay-Attribute, können sie aber bei Bedarf verarbeiten.
Da wir auf der Basis von Angebote arbeiten, welche eine feste Laufzeit haben, sind diese Werte vorrangig durch das Angebot selbst bestimmt.
- LengthOfStay (normalerweise
SetMinLOSoderSetMaxLOSgenannt) kann optional alsminimumStayodermaximumStaygesendet werden
Restriktionen Close, CTA, CTD
Wir verwenden das Attribut Restriction im RestrictionStatus mit Open / Close bspw.
- Master
<RestrictionStatus Status="Close"/>oder<RestrictionStatus Status="Open"/> - Close to arrival - CTA
<RestrictionStatus Status="Close" Restriction="Arrival"/> - Close to departure - CTD
<RestrictionStatus Status="Close" Restriction="Departure"/>
Wir beschreiben den OTA_HotelBookingRuleRQ Request (RQ) und Response (RS) am Beispiel des Testhotels. Das Senden der Daten erfolgt immer POST Request.
OTA_HotelBookingRuleRQ - Anfrage per POST
Endpunkt für POST Request:
POST /ota/api/HotelBookingRule
Verwendete Parameter
Parameter für Authentifizierung und Hotel:
Source@AgentDutyCode- Agent-ID: 1Source@HotelCode- Hotel-ID: 1234
Parameter für Verfügbarkeiten:
Erwartet wird eine Angebots-ID und Zimmer-ID und ein Zeitraum (Datum von/bis) im DateFormat als StatusApplication
StatusApplication@Start- Datum (DateFormat YYYY-MM-DD)StatusApplication@End- Datum (DateFormat YYYY-MM-DD)StatusApplication@InvTypeCode- Zimmer-IDStatusApplication@RatePlanCode- Angebots-ID
Parameter für Restriktionen:
RuleCategory@Name- Restriktionen (Werte: Arrival, Departure, Master, MinLOS, MaxLOS)
Validierung eingehender Daten
Validierung der eingehenden Parameter für Datumsbereich (Datum von/bis):
- eine gültige DatumsPeriode (
@Start-@End) - ein gültiges DatumsFormat (YYYY-MM-DD)
- nicht in der Vergangenheit
- nicht mehr als 2 Jahre im Vorraus
- nicht mehr als 3 Monate als zusammenhängender Zeitraum
Validierung sonstiger Parameter
- Hotel-ID gültig und Hotel ist online / aktiv
- Zimmer-ID gültig und Zimmer ist online / aktiv
- Angebots-ID gültig und Angebot ist online / aktiv
Hinweis:
Die vom OTA-Partner gesendeten Daten werden nur für Zimmer akzeptiert, die *aktiv und online* sind, alternativ werden Warnungen als Antwort gesendet.
Generell werden Zeilen mit Regeln einzeln betrachtet, d.h. ein Fehler im RoomTypeCode oder im Datumsformat, Datumsbreich wird nur für diese eine Zeile als Warnung gesendet. Alle weiteren Zeilen werden unabhängig davon bearbeitet.
Beispiel für Anfrage
Beispiel OTA_HotelBookingRuleRQ Request
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelBookingRuleNotifRQ Version="1.0" xmlns:ota="http://www.opentravel.org/OTA/2003/05"
TimeStamp="2023-10-25T16:34:23" Target="Production" PrimaryLangID="de">
<POS>
<Source AgentDutyCode="1" HotelCode="1234">
<RequestorID ID="1234" Name="TestHotel" MessagePassword="12swdedas"/>
</Source>
</POS>
<RuleMessage HotelCode="1234">
<StatusApplication Start="2024-05-17" End="2024-05-22" RatePlanCode="TEST-BAR-2N-MAI" RatePlanID="352547" InvTypeCode="16712"/>
<RuleCategories>
<RuleCategory Name="Arrival"/>
<RuleCategory Name="Departure"/>
<RuleCategory Name="Master"/>
<RuleCategory Name="MinLOS"/>
<RuleCategory Name="MaxLOS"/>
</RuleCategories>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleRQ>
OTA_HotelBookingRuleRS - Versionen der Response
Normalerweise wird ein <Success/> als Antwort gesendet oder entsprechende Fehlermeldungen (keine Warnungen)
Beispiel OTA_HotelBookingRuleRS Response - nur eine Restriktion angefragt
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelBookingRuleRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="aecb76dd4cea4ea9d72b4b3d17443139" PrimaryLangID="de"
TimeStamp="2024-07-11T13:00:01+02:00" Target="Production" Version="2.051">
<Success/>
<RuleMessage HotelCode="1234">
<StatusApplication RatePlanCode="KU-TEST" InvTypeCode="15815"/>
<BookingRules>
<BookingRule Start="2024-07-17" End="2024-07-22">
<RestrictionStatus Restriction="Master" Status="Open"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</OTA_HotelBookingRuleRS>
Beispiel OTA_HotelBookingRuleRS Response - alle Restriktionen angefragt
Für jede Restriktion wir eine BookingRule Zeile mit Zeitraum und Wert ausgebenen.
<OTA_HotelBookingRuleRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="5ac5c533f86a902a9b0016be8997c0cb" PrimaryLangID="de"
TimeStamp="2024-07-11T13:02:52+02:00" Target="Production" Version="2.051">
<Success/>
<RuleMessage HotelCode="2805">
<StatusApplication RatePlanCode="KU-TEST" InvTypeCode="15815"/>
<BookingRules>
<BookingRule Start="2024-07-17" End="2024-07-22">
<RestrictionStatus Restriction="Arrival" Status="Open"/>
</BookingRule>
<BookingRule Start="2024-07-17" End="2024-07-22">
<RestrictionStatus Restriction="Departure" Status="Open"/>
</BookingRule>
<BookingRule Start="2024-07-17" End="2024-07-22">
<RestrictionStatus Restriction="Master" Status="Open"/>
</BookingRule>
<BookingRule Start="2024-07-17" End="2024-07-22">
<RestrictionStatus Restriction="MinLOS" Status="Open"/>
</BookingRule>
<BookingRule Start="2024-07-17" End="2024-07-22">
<RestrictionStatus Restriction="MaxLOS" Status="Open"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</OTA_HotelBookingRuleRS>
Warnungen
Es werden keine Warungen gesendet, alle Ausgaben bspw. der Validieurng werden als Fehler gesendet
Fehlermeldungen
Wenn schwere Fehler bspw. in der Authentifizierung oder Validierung der Daten auftreten, senden wird diese in einer OTA_ErrorRS
Response mit @ErrorCode und @ErrorMessage
Hier eine Liste gängiger Fehlermeldungen beim Senden von Verfügbarkeiten
| ErrorCode | ErrorMessage |
|---|---|
| 210 | HotelNotLinked - Hotel linked to another channel manager |
| 211 | HotelNotActivated - Hotel not found |
| 104 | InternalError - Empty HotelCode (HotelId) in accepted params (agentdutycode, hotelcode, ...) |
| 220 | RoomMappingError - Hotel does not have rooms created or configured |
| 221 | RoomMappingError - Hotel does not have rates created or configured |
| 230 | RoomMappingError - Invalid room code |
| 232 | RoomMappingError - Invalid rate code (bei Room/Rate Kombinationen) |
| 240 | DateRangeError - Invalid date range |
| 448 | DateRangeError - Invalid start date |
| 448 | InternalError - unknown internal error |
Beispiel OTA_HotelBookingRuleRS Response mit Fehler
Variante 1: im Kontext der Anfrage mit OTA_HotelBookingRuleRS Response und <Errors>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelBookingRuleRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="eef8223c1e2468da575e2ce7d85eef9e" TimeStamp="2024-07-10T10:45:49+02:00"
Version="2.064">
<Errors>
<Error Code="448" Type="12">Invalid start date (2024-05-23) is in past</Error>
</Errors>
</OTA_HotelBookingRuleRS>
Variante 2: Alternativ als OTA_ErrorRS Response und Attributen ErrorCode und ErrorMessage
<?xml version="1.0" encoding="UTF-8"?>
<OTA_ErrorRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="eef8223c1e2468da575e2ce7d85eef9e" PrimaryLangID="de" TimeStamp="2022-03-08T15:57:43+01:00"
Target="Production" Version="2.064"
ErrorCode="448"
ErrorMessage="Invalid start date (2024-05-23) is in past"/>