OTA_HotelRatePlanRQ
Methode zum - Abrufen von Zimmerdaten und Angebotsdaten von Kurzurlaub.de - Abrufen von Tagesraten für ausgewählte Ratenpläne / Angebote und zugeordnete Zimmer
OTA_HotelRatePlanRQ - Anfrage per GET - REST-API
jede Methode kann per REST-API mittels GET aufgerufen werden.
Verwendete Parameter:
AgentDutyCode(optional, sofern IP WhiteList oder HTTP Basic Auth verwendet wird)HotelCode(mandatory)
Beispiel:
GET /ota/api/HotelRatePlan?AgentDutyCode=1&HotelCode=4
OTA_HotelRatePlanRQ - Anfrage per POST
Abrufen von Zimmerdaten und Angebotsdaten von Kurzurlaub.de
Diese Methode wird in der Regel für das Mapping der Zimmer und Ratenpläne beim Channelmanager verwendet.
HotelRatePlan Request (RQ) und Response (RS) am Beispiel des Testhotels mit erforderlichen Attributen für
@AgentDutyCode(Agent-ID): 1@HotelCode(Hotel-ID): 4RequestorID@ID(Hotel-ID): 4
Beispiel OTA_HotelRatePlanRQ (Request)
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRatePlanRQ xsi:schemaLocation="http://opentravel.org/2010A/OTA_HotelRatePlanRQ.xsd" EchoToken="938a6a32-c526-485b-b641-f69d635cda41" TimeStamp="2011-11-23T09:44:06" Version="1.001" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLXSchema-instance">
<POS>
<Source AgentDutyCode="1">
<RequestorID ID="4" Type="4"/>
</Source>
</POS>
<RatePlans>
<RatePlan>
<HotelRef HotelCode="4"/>
</RatePlan>
</RatePlans>
</OTA_HotelRatePlanRQ>
Abrufen von Tagesraten für ausgewählte Ratenpläne / Angebote und zugeordnete Zimmer (mit RatePlanCode)
Diese Methode wird bspw. für die Kontrolle gesendeter Daten wie Tagesraten für Zimmer oder Angebote verwendet.
Die Abfrage der Preise erolgt für ein Angebot und Zeitraum mit (mit RatePlanCode)
Wenn im Request ein Parameter RatePlanCode im RatePlanCandidate angegeben wurde, liefert die Antwort alle Preise für die zugehörigen Zimmer im angefragten Zeitraum.
Hier werden auch dynamische Raten (sofern verwendet) beachtet und geliefert.
Bspw.
DateRange@Start(Startdatum): YYYY-MM-DDDateRange@End(Enddatum): YYYY-MM-DDRatePlanCandidate@RatePlanCode(RatenCode): KU-TEST
Beispiel OTA_HotelRatePlanRQ (Request mit RatePlanCode)
für die Abfrage von Raten für 2 Ratenpläne im Zeitraum 01.06.2024 - 10.06.2024
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRatePlanRQ TimeStamp="2024-03-29T08:40:10+01:00" Version="1.000">
<POS>
<Source AgentDutyCode="1">
<RequestorID ID="4" Type="4"/>
</Source>
</POS>
<RatePlans>
<RatePlan>
<DateRange Start="2024-06-01" End="2024-06-10"/>
<RatePlanCandidates>
<RatePlanCandidate RatePlanCode="KU-TEST"/>
<RatePlanCandidate RatePlanCode="KU-TEST-BAR-MAI"/>
</RatePlanCandidates>
<HotelRef HotelCode="4"/>
</RatePlan>
</RatePlans>
</OTA_HotelRatePlanRQ>
OTA_HotelRatePlanRS - Versionen der Response
Response mit allen Kombinationen der Zimmerdaten und Angebotsdaten
Die Antwort OTA_HotelRatePlanRS ohne Angabe weitere Parameter im Request liefert Zimmerdaten und Angebotsdaten
Hier wird eine RoomType / RatePlan Kombination geliefert d.h. verfügbaren Angebote (RatePlan) mit Attributen und alle dazugehörigen Zimmer mit Preisen in diesem Angebot.
Für die Zimmer (SellableProduct) werden folgende Attribute verwendet
@InvCode(RoomID)@InvType(immer ROOM)@RoomTypeName(Zimmername, Größe und max. Belegung)@Quantity(Zimmeranzahl 1-n)
Beispiel SellableProduct:
<SellableProduct InvCode="5306" InvType="ROOM">
<GuestRoom Code="5306" RoomTypeName="Doppelzimmer (20m², ID:5306, 2E/1K)" Quantity="43"/>
</SellableProduct>
Für die Angebote (RatePlan) werden folgende Attribute verwendet
RatePlan@RatePlanIDRatePlan@RatePlanCodeDescription@NameText- Angebotszeitraum (
@Start-@End)
Die RatePlanID und RatePlanCode (bspw. BEST-RATE oder BAR - Best Available Rate) sind in der Regel unterschiedlich. Sofern kein RatePlanCode angegeben ist, wird hier auch die ID gesendet.
Beispiel RatePlan Block:
<RatePlan RatePlanID="20540" RatePlanCode="BEST-BAR">
<DestinationSystemsCode/>
<Description Name="Testarrangement schönes Schwerin - bitte nicht buchen">
<Text>Kurzurlaub Angebot 2 ÜN gültig bis 11.04.2022</Text>
</Description>
<Rates>
<Rate Start="2017-03-01" End="2022-04-11" InvCode="3">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="99.00" CurrencyCode="EUR"/>
</BaseByGuestAmts>
</Rate>
...
</RatePlan>
Beispiel OTA_HotelRatePlanRS (Response)
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRatePlanRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EchoToken="4fdb4388d960c0242f1ea79b6c3a41b5" PrimaryLangID="de" TimeStamp="2022-02-03T15:27:58+01:00" Target="Production" Version="1.000">
<Success/>
<RatePlans HotelCode="4">
<RatePlan RatePlanID="20540" RatePlanCode="test">
<DestinationSystemsCode/>
<Description Name="Testarrangement schönes Schwerin - bitte nicht buchen">
<Text>Kurzurlaub Angebot 2 ÜN gültig bis 11.04.2022</Text>
</Description>
<Rates>
<Rate Start="2017-03-01" End="2022-04-11" InvCode="3">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="99.00" CurrencyCode="EUR"/>
</BaseByGuestAmts>
</Rate>
<Rate Start="2017-03-01" End="2022-04-11" InvCode="2625">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="799.00" CurrencyCode="EUR"/>
</BaseByGuestAmts>
</Rate>
<Rate Start="2017-03-01" End="2022-04-11" InvCode="5306">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="995.00" CurrencyCode="EUR"/>
</BaseByGuestAmts>
</Rate>
<Rate Start="2017-03-01" End="2022-04-11" InvCode="5307">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="1200.00" CurrencyCode="EUR"/>
</BaseByGuestAmts>
</Rate>
</Rates>
<SellableProducts>
<SellableProduct InvCode="3" InvType="ROOM">
<GuestRoom Code="3" RoomTypeName="Appartement Wasserseite (12m², ID:3, 2E/2K)" Quantity="1"/>
</SellableProduct>
<SellableProduct InvCode="2625" InvType="ROOM">
<GuestRoom Code="2625" RoomTypeName="Appartement/s (28m², ID:2625, 4E/2K)" Quantity="10"/>
</SellableProduct>
<SellableProduct InvCode="5306" InvType="ROOM">
<GuestRoom Code="5306" RoomTypeName="Doppelzimmer (20m², ID:5306, 2E/1K)" Quantity="43"/>
</SellableProduct>
<SellableProduct InvCode="5307" InvType="ROOM">
<GuestRoom Code="5307" RoomTypeName="Einzelzimmer (15m², ID:5307, 1E/0K)" Quantity="5"/>
</SellableProduct>
</SellableProducts>
</RatePlan>
</RatePlans>
</OTA_HotelRatePlanRS>
Response mit Tagesraten für ausgewählte Ratenpläne / Angebote und zugeordnete Zimmer (mit RatePlanCode)
wenn im Request ein Parameter für RatePlanCode angegeben wurde, liefert die Antwort alle Preise für die zugehörigen Zimmer im angefragten Zeitraum.
Hier werden auch dynamische Raten (sofern verwendet) beachtet und geliefert.
Bspw. für die Abfrage von Raten für 1 Ratenplan im Zeitraum 01.06.2024 - 10.06.2024
<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelRatePlanRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="4f2f572109b0cdcdac77523676198e38" TimeStamp="2024-05-29T11:17:55+02:00"
Version="2.064">
<Success/>
<RatePlans HotelCode="4">
<RatePlan RatePlanID="123467" RatePlanCode="TEST-BAR-2N-MAI" CurrencyCode="EUR">
<Rates>
<!-- Rates for Single Room 1234 -->
<Rate InvTypeCode="1234" Start="2024-06-01" End="2024-06-02" CurrencyCode="EUR" IsRoom="true">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="220.00"/>
</BaseByGuestAmts>
</Rate>
<Rate InvTypeCode="1234" Start="2024-06-03" End="2024-06-08" CurrencyCode="EUR" IsRoom="true">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="218.00"/>
</BaseByGuestAmts>
</Rate>
<Rate InvTypeCode="1234" Start="2024-06-09" End="2024-06-10" CurrencyCode="EUR" IsRoom="true">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="230.50"/>
</BaseByGuestAmts>
</Rate>
<!-- Rates for Double Room 2345 -->
<Rate InvTypeCode="2345" Start="2024-06-01" End="2024-06-09" CurrencyCode="EUR" IsRoom="true">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="280.00"/>
</BaseByGuestAmts>
</Rate>
<Rate InvTypeCode="2345" Start="2024-06-10" End="2024-06-10" CurrencyCode="EUR" IsRoom="true">
<BaseByGuestAmts>
<BaseByGuestAmt AmountAfterTax="290.00"/>
</BaseByGuestAmts>
</Rate>
</Rates>
<Description Name="Test OTA Raten">
<Text>Kurzurlaub Angebot 2 ÜN gültig bis 30.06.2024</Text>
</Description>
</RatePlan>
</RatePlans>
</OTA_HotelRatePlanRS>
Fehlermeldungen
Wenn Fehler auftreten, senden wird diese in einer OTA_ErrorRS
Response mit @ErrorCode und @ErrorMessage
Hier eine Liste gängiger Fehler
| ErrorCode | ErrorMessage |
|---|---|
| 210 | HotelNotLinked - Hotel (HotelCode 1234) linked to another channel manager (your AgentDutyCode is 123) |
| 211 | HotelNotActivated - Hotel not found (HotelCode 1234 / AgentDutyCode 123) |
| 104 | InternalError - Empty HotelCode (HotelId) in accepted params (agentdutycode, hotelcode, ...) |
| 249 | InvalidRateCode - No RatePlan found for requested RatePlanCode (RATE-PLAN-CODE) |
Beispiel OTA_ErrorRS (Response)
<OTA_ErrorRS xmlns="http://www.opentravel.org/OTA/2003/05"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
EchoToken="29419a3b53ee97680b01c40f377eb98f"
PrimaryLangID="de"
TimeStamp="2022-02-03T15:18:47+01:00"
Target="Production"
Version="1.000"
ErrorCode="210"
ErrorMessage="HotelNotLinked - Hotel (HotelCode 4) linked to another channel manager (your AgentDutyCode is 22)"
/>