OTA_HotelInvCountNotifRQ
Methode zum Senden von Verfügbarkeiten auf Zimmerebene (RoomType only) an Kurzurlaub.de.
Siehe auch Entwicklerhandbuch - Verfügbarkeiten Push API
Wir beschreiben den OTA_HotelInvCountNotifRQ Request (RQ) und Response (RS) am Beispiel des Testhotels. Das Senden der Daten erfolgt immer POST Request.
OTA_HotelInvCountNotifRQ - Anfrage per POST
Endpunkt für POST Request:
POST /ota/api/HotelInvCountNotif
Verwendete Parameter
Parameter für Authentifizierung und Hotel:
@AgentDutyCode- Agent-ID: 1RequestorID@ID- Hotel-ID: 4
Parameter für Verfügbarkeiten:
Erwartet wird eine Zimmer-ID und ein Zeitraum (Datum von/bis) im DateFormat als StatusApplicationControl
@Start- Datum (DateFormat YYYY-MM-DD)@End- Datum (DateFormat YYYY-MM-DD)-
@InvTypeCode- Zimmer-ID -
InvCount@Count- Anzahl freier Zimmer (Wert >= 0)
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
- nicht mehr als 4000 Zeilen pro Anfrage
- BookingLimit - Anzahl freier Zimmer als integer >= 0
- Zimmer-ID gültig und Zimmer 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 Verfügbarkeiten einzeln betrachtet, d.h. ein Fehler im InvTypeCode oder im Datumsformat, Datumsbreich wird nur für diese eine Zeile als Warnung gesendet. Alle weiteren Zeilen werden unabhängig davon bearbeitet.
Jede Nachricht enthält bspw. ein oder mehrere StatusApplicationControl-Elemente
für ein oder mehrere Zimmer eines Hotels (RequestorID@ID).
Beispiel für Anfrage
Beispiel OTA_HotelInvCountNotifRQ Request
<OTA_HotelInvCountNotifRQ>
<POS>
<Source AgentDutyCode="1">
<RequestorID ID="4" Type="4"/>
</Source>
</POS>
<Inventories>
<Inventory>
<StatusApplicationControl Start="2022-03-17" End="2022-03-21" InvTypeCode="2625"/>
<InvCounts>
<InvCount CountType="1" Count="5"/>
</InvCounts>
</Inventory>
<Inventory>
<StatusApplicationControl Start="2022-03-25" End="2022-03-26" InvTypeCode="2625"/>
<InvCounts>
<InvCount CountType="1" Count="0"/>
</InvCounts>
</Inventory>
<Inventory>
<StatusApplicationControl Start="2022-03-28" End="2022-03-31" InvTypeCode="2625"/>
<InvCounts>
<InvCount CountType="1" Count="10"/>
</InvCounts>
</Inventory>
</Inventories>
</OTA_HotelInvCountNotifRQ>
OTA_HotelInvCountNotifRS - Versionen der Response
Normalerweise wird ein <Success/> als Antwort gesendet oder entsprechende Fehlermeldungen und / oder Warnungen
Beispiel OTA_HotelInvCountNotifRS Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelInvCountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="f92a277f4fc936924932a684e176f5e8" PrimaryLangID="de"
TimeStamp="2022-03-08T15:21:45+01:00" Target="Production" Version="2.01">
<Success/>
</OTA_HotelInvCountNotifRS>
Warnungen
Jede gesendete Zeile mit Verfügbarkeiten wird einzeln betrachtet und verarbeitet, daher werden Fehler in der Validierung von Parametern nur für diese eine Zeile als Warnung gesendet. (Siehe auch Liste gängiger Fehlermeldungen)
Alle weiteren Zeilen werden unabhängig davon bearbeitet.
Für jede Warnung werden die benutzten Attribute zur Kontrolle mit ausgegeben.
Sofern Warnungen vorhanden sind, wird die Anzahl der erfolgreich verarbeiteten Zeilen am Ende als separater Hinweis mit gesendet. bspw.
1 of 3 incoming InvCountMessages processed. See warnings before
Beispiel OTA_HotelInvCountNotifRS Response mit Warnungen
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelInvCountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="fa9c12edfe5baba3b98deac1138ed5b2" PrimaryLangID="de"
TimeStamp="2022-03-08T15:48:27+01:00" Target="Production" Version="2.01">
<Warnings>
<Warning Code="240" Type="1">Invalid start date (2022-01-01) is in past</Warning>
<Warning Code="120" Type="1">InvCountMessage validation failed - used attributes (BookingLimit: 5, Start:
2022-01-01, End: 2022-02-01, InvTypeCode: 2625, RatePlanCode: n/a, RatePlanID: 0)
</Warning>
<Warning Code="240" Type="1">Invalid date period (2022-04-01 - 2023-05-01) range is to large (max +12 months)
</Warning>
<Warning Code="120" Type="1">InvCountMessage validation failed - used attributes (BookingLimit: 5, Start:
2022-04-01, End: 2023-05-01, InvTypeCode: 2625, RatePlanCode: n/a, RatePlanID: 0)
</Warning>
<Warning Code="500" Type="1">1 of 3 incoming InvCountMessages processed. See warnings before</Warning>
</Warnings>
</OTA_HotelInvCountNotifRS>
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 |
| 231 | RoomMappingError - Invalid room quantity |
| 232 | RoomMappingError - Invalid rate code (bei Room/Rate Kombinationen) |
| 240 | DateRangeError - Invalid date range |
Beispiel OTA_HotelInvCountNotifRS Response mit Fehler
<?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="968209e6b51ffeba7b2953801c4c8fce" PrimaryLangID="de" TimeStamp="2022-03-08T15:57:43+01:00"
Target="Production" Version="1.000"
ErrorCode="211"
ErrorMessage="HotelNotActivated - Hotel not found (HotelCode 1234 / AgentDutyCode 1)"/>