Zum Inhalt

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: 1
  • RequestorID@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)"/>