OTA_HotelInvCountRQ
Methode zum Lesen von Verfügbarkeiten auf Zimmerebene (RoomType only) und optional auch auf Angebotsebene (RoomType/RatePlan Kombination) von Kurzurlaub.de.
Siehe auch Entwicklerhandbuch - Verfügbarkeiten Push API
Wir beschreiben den OTA_HotelInvCountRQ Request (RQ) und Response (RS) am Beispiel des Testhotels. Das Senden der Daten erfolgt immer POST Request.
Je nach gesendeten Parametern gibt es 2 unterstützte Varianten
- Verfügbarkeiten auf Zimmerebene
- Verfügbarkeiten auf Zimmer- und Angebotsebene in Kombination (nach Absprache mit dem Support)
OTA_HotelInvCountRQ - Anfrage per POST
Endpunkt für POST Request:
Verwendete Parameter
Parameter für Authentifizierung und Hotel:
@AgentDutyCode- Agent-ID: 1HotelRef@HotelCode- Hotel-ID: 4
Parameter für Verfügbarkeiten:
Erwartet wird eine Zimmer-ID und ein Zeitraum (Datum von/bis) im DateFormat als HotelInvCountRequest
DateRange@Start- Datum (DateFormat YYYY-MM-DD)DateRange@End- Datum (DateFormat YYYY-MM-DD)RoomTypeCandidate@RoomTypeCode- Zimmer-ID
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
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 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_HotelInvCountRQ Request
<OTA_HotelInvCountRQ TimeStamp="2024-03-22T10:52:54+01:00" Version="1.000">
<HotelInvCountRequests>
<HotelInvCountRequest>
<DateRange Start="2024-07-23" End="2024-07-25"/>
<RoomTypeCandidates>
<RoomTypeCandidate RoomTypeCode="2625"/>
<RoomTypeCandidate RoomTypeCode="16712"/>
<RoomTypeCandidate RoomTypeCode="15816"/>
<RoomTypeCandidate RoomTypeCode="DZ1"/>
</RoomTypeCandidates>
<HotelRef HotelCode="4"/>
</HotelInvCountRequest>
</HotelInvCountRequests>
</OTA_HotelInvCountRQ>
Alernative als SOAP Request mit auth im Header
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://www.opentravel.org/OTA/2003/05"
xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<SOAP-ENV:Header>
<ns2:Security SOAP-ENV:mustUnderstand="1">
<ns2:UsernameToken>
<ns2:Username>my-test-user</ns2:Username>
<ns2:Password>abcd1234</ns2:Password>
</ns2:UsernameToken>
</ns2:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:OTA_HotelInvCountRQ TimeStamp="2024-03-22T10:52:54+01:00" Version="1.000">
<ns1:HotelInvCountRequests>
<ns1:HotelInvCountRequest>
<ns1:DateRange Start="2024-07-23" End="2024-07-25"/>
<ns1:RoomTypeCandidates>
<ns1:RoomTypeCandidate RoomTypeCode="2625"/>
<ns1:RoomTypeCandidate RoomTypeCode="15815"/>
</ns1:RoomTypeCandidates>
<ns1:HotelRef HotelCode="4"/>
</ns1:HotelInvCountRequest>
</ns1:HotelInvCountRequests>
</ns1:OTA_HotelInvCountRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
OTA_HotelInvCountRS - Versionen der Response
Normalerweise wird ein <Success/> als Antwort gesendet oder entsprechende Fehlermeldungen (keine Warnungen)
Beispiel OTA_HotelInvCountRS Response
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelInvCountRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="aeefeef224d939e19a6a6d1252d639eb" TimeStamp="2024-07-10T12:49:18+02:00"
Version="2.064">
<Success/>
<Inventories HotelCode="2805">
<Inventory>
<StatusApplicationControl Start="2024-07-23" End="2024-07-25" InvTypeCode="2625" RatePlanCode="KU-TEST" RatePlanId="27173" IsRoom="true"/>
<InvCounts>
<InvCount CountType="2" Count="0"/>
</InvCounts>
</Inventory>
<Inventory>
<StatusApplicationControl Start="2024-07-23" End="2024-07-24" InvTypeCode="15815" RatePlanCode="KU-TEST" RatePlanId="27173" IsRoom="true"/>
<InvCounts>
<InvCount CountType="2" Count="4"/>
</InvCounts>
</Inventory>
<Inventory>
<StatusApplicationControl Start="2024-07-24" End="2024-07-25" InvTypeCode="15815" RatePlanCode="KU-TEST" RatePlanId="27173" IsRoom="true"/>
<InvCounts>
<InvCount CountType="2" Count="2"/>
</InvCounts>
</Inventory>
</Inventories>
</OTA_HotelInvCountRS>
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_HotelInvCountRS Response mit Fehler
Variante 1: im Kontext der Anfrage mit OTA_HotelInvCountRS Response und <Errors>
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelInvCountRS 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_HotelInvCountRS>
Variant 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"/>