OTA_HotelRateAmountNotifRQ

Requests

Syntaxe

Le message OTA_HotelRateAmountNotifRQ utilise la syntaxe suivante:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"
                                RatePlanType="[26]" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="float"
                                   AgeQualifyingCode="[10|8]"
                                   MaxAge="integer"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Éléments et attributs

Le message OTA_HotelRateAmountNotifRQ comporte les éléments et les attributs suivants:

Élément / @Attribut Occurrences Type Description
OTA_HotelRateAmountNotifRQ 1 Complex element Élément racine d'un message de tarifs.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) Espace de noms XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string Identifiant unique pour ce message de requête. Cette valeur est renvoyée dans le message de réponse. Caractères autorisés : a-z, A-Z, 0-9, _ (underscore) et - (dash).
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime Date et heure de création de ce message.
OTA_HotelRateAmountNotifRQ / @Version 1 decimal Version du message OpenTravel.
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 enum

Type de notification à appliquer à chaque <RateAmountMessage>.

Les valeurs possibles sont les suivantes :

Pour comprendre le fonctionnement de ces attributs, consultez les exemples.

  • Overlay: Supprimez tous les tarifs par nombre de personnes pour le type de chambre, le plan tarifaire et les dates spécifiés dans <StatusApplicationControl>, et remplacez-les par de nouveaux tarifs.
  • Remove: Supprimez tous les tarifs par nombre de personnes existants pour le type de chambre, le plan tarifaire et les dates spécifiés dans <StatusApplicationControl>.
  • Delta: (par défaut si NotifType n'est pas spécifié) : ajoutez ou modifiez les tarifs par nombre de personnes existants pour le type de chambre, le plan tarifaire et les dates spécifiés dans <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Champ d'application du NotifType à appliquer à chaque <RateAmountMessage>.

Les valeurs possibles sont les suivantes :

  • ProductRate: (par défaut si NotifScopeType n'est pas spécifié) NotifType s'applique aux produits : combinaisons de type de chambre (InvTypeCode) et de plan tarifaire (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS Conteneur permettant de spécifier le compte partenaire pour ce message (généralement utilisé si votre backend fournit des flux de prix pour plusieurs comptes partenaires).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Obligatoire si <POS> est présent. Conteneur pour <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Obligatoire si <POS> est présent. Définit le compte partenaire.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string Compte partenaire pour ce message. Cette valeur de chaîne correspond à la valeur "Partner key" (Clé partenaire) indiquée sur la page Paramètres du compte dans Hotel Center.

Remarque:Si vous disposez d'un backend qui fournit des flux pour plusieurs comptes, cette valeur doit correspondre à la valeur de l'attribut partner de votre message Transaction (données sur un établissement) et à la valeur de l'attribut ID dans l'élément <RequestorID> de votre message <OTA_HotelAvailNotifRQ> pour le même compte.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages Ensemble d'éléments <RateAmountMessage> qui définissent des tarifs.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string Identifiant unique de la propriété. Cette valeur doit correspondre à l'ID de l'hôtel spécifié à l'aide de <id> dans l'élément <listing> du flux Hotel List Feed. L'ID de l'hôtel est également indiqué dans Hotel Center.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage Conteneur permettant de définir le prix d'une chambre (combinaison entre un type de chambre et un plan tarifaire sur une période).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl Définit la plage de dates, ainsi que les identifiants du type de chambre (InvTypeCode) et du plan tarifaire (RatePlanCode).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date Date de début (en fonction du fuseau horaire de l'établissement), incluse, de la plage de dates.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date Date de fin (en fonction du fuseau horaire de l'établissement), incluse. Doit être supérieure ou égale à la valeur de start. Si les valeurs start et end sont égales, la mise à jour s'applique à cette date. Notez que Google accepte jusqu'à trois ans de données.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean Définissez cet attribut sur true ou 1 pour inclure explicitement les lundis.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Définissez cette valeur sur true ou 1 pour inclure explicitement le mardi.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Définissez cette valeur sur true ou 1 pour inclure explicitement les mercredis.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Définissez cet attribut sur true ou 1 pour inclure explicitement les jeudis.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Définissez cet attribut sur true ou 1 pour inclure explicitement les vendredis.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean Définissez cette valeur sur true ou 1 pour inclure explicitement les samedis.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Définissez cet attribut sur true ou 1 pour inclure explicitement les dimanches.

Si la valeur est true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus (ils sont en effet exclus des dates Start et End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 string Identifiant unique de l'inventaire (type de chambre). Cette valeur correspond à <RoomID> dans un message Transaction (Données sur un établissement).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string Identifiant unique du plan tarifaire. Cet identifiant correspond au <PackageID> dans un message Transaction (Property Data). Le plan tarifaire est davantage défini et référencé dans <StatusApplicationControl> dans les messages <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string Identifiant indiquant le type de modèle de tarification ARI qui s'applique à cette mise à jour des prix. Ce paramètre ne doit être spécifié qu'avec la valeur 26 lorsque vous utilisez le modèle de tarification basée sur la DDS. L'exclusion de cet attribut indique qu'il s'agit d'une tarification par date.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Conteneur pour une collection d'éléments <Rate>. Si NotifType est défini sur “Remove”, cet élément ne doit pas être spécifié. Sinon, cet élément doit être spécifié exactement une fois.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Conteneur pour une collection d'éléments <BaseByGuestAmts>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit 0..1 String Unité de durée de séjour. La seule valeur acceptée est “Day”, ce qui signifie que la durée de séjour sera spécifiée en jours.

Pour utiliser la tarification basée sur la DDS, vous devez spécifier RateTimeUnit et UnitMultiplier. Sinon, vous ne devez pas spécifier aucun.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer Nombre de RateTimeUnits qui composent la durée du séjour pour ce tarif.

Par exemple, si la valeur de RateTimeUnits est "Day", une UnitMultiplier de 5 indique que le ou les tarifs spécifiés dans cet objet Rate s'appliquent à chaque nuit d'un séjour de cinq nuits.

Le ou les taux d'occupation spécifiés dans cet objet Rate seront multipliés par la durée du séjour (UnitMultiplier) pour atteindre le prix total du séjour.

Pour utiliser la tarification basée sur la DDS, vous devez spécifier RateTimeUnit et UnitMultiplier. Sinon, vous ne devez pas spécifier aucun.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Conteneur pour un ensemble de frais de base.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt Spécifie les prix des chambres dans une devise spécifiée. Le prix peut être appliqué par nombre de personnes en utilisant plusieurs éléments <BaseByGuestAmt>, chacun avec une valeur NumberOfGuests différente. Sinon, le prix s'applique pour un nombre maximal de personnes défini par NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

Prix quotidien du prix de la chambre, hors taxes et frais.

AmountBeforeTax et AmountAfterTax peuvent être spécifiés. Si AmountBeforeTax n'est pas spécifié, AmountAfterTax doit l'être. Si AmountBeforeTax est spécifié, mais pas AmountAfterTax, les taxes et les frais doivent être spécifiés dans un message <TaxFeeInfo>.

Si vous utilisez des promotions, la remise est appliquée à AmountBeforeTax. Les pourcentages de remise sont également appliqués à AmountAfterTax. Étant donné que cela ne fonctionne pas avec certaines structures fiscales, nous vous recommandons vivement de ne spécifier que AmountBeforeTax ici, et d'utiliser <TaxFeeInfo> pour spécifier des taxes et des frais.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Prix quotidien du prix de la chambre après l'inclusion des taxes et des frais applicables. Si AmountAfterTax est spécifié, il n'est pas nécessaire d'envoyer des messages <TaxFeeInfo> distincts pour chaque propriété. Cet attribut peut être utilisé en combinaison avec AmountBeforeTax pour fournir des tarifs de base et totaux applicables aux utilisateurs de certaines régions.

Avertissement:Si vous utilisez des promotions, nous vous déconseillons vivement d'utiliser des montants AmountAfterTax. Si vous souhaitez utiliser les remises, spécifiez les taxes et les frais à l'aide du message <TaxFeeInfo>. Vos remises seront ensuite appliquées à des montants AmountBeforeTax.

Remarque:Si AmountBeforeTax n'est pas spécifié, AmountAfterTax doit l'être.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum Code alpha ISO 4217 (3) d'une unité monétaire spécifique.

Consultez la liste des devises acceptées.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer Nombre maximal de clients pouvant accueillir ce tarif. S'il n'est pas fourni, la valeur par défaut est "2".

Notez que si <AdditionalGuestAmounts> contient des frais pour les enfants, NumberOfGuests ne fait référence qu'aux adultes. Si <AdditionalGuestAmounts> n'est pas spécifié ou ne contient aucuns frais pour les enfants, NumberOfGuests fait référence au nombre total de personnes, y compris les adultes et les enfants.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Conteneur pour un ensemble de frais pour les invités supplémentaires.

Cette syntaxe est utile si des tarifs supplémentaires d'invités ou d'enfants changent en fonction de la date. Envisagez d'utiliser le message ExtraGuestCharges plus efficace si ces montants peuvent être définis de manière statique au niveau de la propriété.

Les montants supplémentaires des clients sont appliqués comme suit :
  • Elles sont appliquées au taux d'occupation de base. Le taux d'occupation de base est le taux d'occupation le plus élevé spécifié dans <BaseByGuestAmts>. Il est inférieur ou égal au nombre d'adultes dans une recherche utilisateur.
  • Elles sont appliquées tant que le nombre de personnes figurant dans la recherche d'un utilisateur correspond à la capacité de la salle.
  • <AdditionalGuestAmounts> remplace toujours les montants supplémentaires précédemment spécifiés par de nouveaux lorsque NotifType est Delta ou Superposition.
  • <AdditionalGuestAmounts> peut être envoyé indépendamment des tarifs de base uniquement lorsque NotifType est Delta. <BaseByGuestAmts> doit être spécifié lorsque NotifType est Overlay.
  • Un élément <AdditionalGuestAmounts> vide avec NotifType défini sur Delta supprime les montants supplémentaires existants sans affecter les tarifs de base.
  • Ils sont appliqués dans la devise spécifiée dans <BaseByGuestAmt>.

Par exemple, supposons que les tarifs de base soient spécifiés pour un et deux adultes.

  • Si un utilisateur recherche trois adultes, le tarif d'une chambre double est sélectionné comme tarif de base, auquel s'ajoute un montant supplémentaire pour un adulte.
  • Si l'utilisateur recherche un adulte et deux enfants, le tarif d'occupation unique est sélectionné comme tarif de base, qui est appliqué en plus des deux enfants.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Spécifie les prix en fonction du type de client, spécifié via AgeQualifyingCode et, le cas échéant, de l'âge du client spécifié via MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Définit le type d'invité supplémentaire (adulte ou enfant). Les options suivantes sont valides :
  • 10: pour adultes.
  • 8: Enfant.

AgeQualifyingCode peut être défini sur 10 pour un élément AdditionalGuestAmount au maximum.

MaxAge doit être spécifié lorsque la valeur de AgeQualifyingCode est 8.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer MaxAge doit être spécifié lorsque la valeur de AgeQualifyingCode est 8. Il ne doit pas être spécifié lorsque AgeQualifyingCode est défini sur 10.

MaxAge doit être un entier compris entre 0 et 17.

Vous pouvez spécifier plusieurs tranches d'âge enfants via des éléments AdditionalGuestAmount distincts. Les tranches d'âge doivent être contiguës et ne pas se chevaucher.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float Montant hors taxes et frais au tarif de base pour chaque client supplémentaire.

Les taxes et les frais qui dépendent de l'âge des occupants doivent être spécifiés via l'élément <AgeBrackets> dans un message <TaxFeeInfo>.

Exemples

Cette section fournit des exemples de code qui expliquent comment:

Lorsque vous définissez les valeurs add, overlay ou remove, les plages de dates peuvent être identiques ou différentes en fonction de vos objectifs. Par exemple, vous pouvez utiliser overlay pour ne définir que quelques semaines pour les jours fériés en décembre, et non pour l'ensemble de la plage définie pour le message "Ajouter un tarif". Ils ne remplaceront les taux d'occupation que pour cette période.

Tarification par date

Configurer les tarifs de base et les tarifs totaux

Exemple 1

Tarif de base (sans taxes ni frais) pour le nombre de personnes par défaut (deux). Dans ce modèle, les taxes et les frais liés à l'établissement doivent être définis à l'aide d'un message <TaxFeeInfo>. Le tarif de base sera plus visible pour les utilisateurs effectuant des recherches dans certaines régions.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Exemple 2

Tarif de base et tarif total pour le nombre de personnes par défaut (double). Dans ce modèle, les taxes et les frais ne doivent pas être définis séparément à l'aide de messages <TaxFeeInfo>. Le tarif de base sera plus visible pour les utilisateurs effectuant des recherches dans certaines régions.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Exemple 3

Tarif total (taxes et frais compris) pour plusieurs nombres de personnes. Dans ce modèle, les taxes et les frais ne doivent pas être définis séparément à l'aide de messages <TaxFeeInfo>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Exemple 4

Tarif de base et tarif total pour plusieurs types de chambres et plans tarifaires sur différentes plages de dates.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Ajouter, superposer et supprimer des tarifs

Ajouter des tarifs

Définissez NotifType sur Delta pour ajouter les tarifs par nombre de personnes pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021. Notez que Google accepte jusqu'à trois ans de données.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Taux de superposition

Définissez NotifType sur Overlay pour supprimer tous les tarifs par nombre de personnes pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021, et les remplacer par les nouveaux tarifs par nombre de personnes spécifiés.

Par exemple, si ce message a été envoyé après le message "Ajouter des tarifs", les tarifs des personnes 1, 2 et 3 seront supprimés, et seul le nouveau taux d'occupation 1 sera stocké. Vous pouvez également définir une plage de dates plus courte (par exemple, 20/12/2021 et 2021-12-21) pour remplacer seulement certains taux d'occupation à certaines dates, comme les jours fériés.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Supprimer les tarifs

Définissez NotifType sur Remove pour supprimer tous les tarifs par nombre de personnes pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021.

Par exemple, si ce message a été envoyé après l'un des autres exemples, aucun tarif par occupation n'est stocké.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Ajouter, superposer et supprimer des montants d'invités supplémentaires

Ajouter des montants

Définissez NotifType sur Delta pour ajouter des tarifs de base pour le nombre de personnes 1 et 2, ainsi que des montants supplémentaires pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021.

Des frais supplémentaires s'ajouteront au tarif de base, lequel sera déterminé par l'occupation dans la recherche d'un utilisateur. L'utilisateur spécifié doit accueillir la capacité de RoomID_1.

Dans cet exemple, des montants supplémentaires s'appliquent comme suit:

  • 5 $ pour les enfants âgés de 0 à 10 ans (inclus).
  • 10 $ pour les enfants entre 11 et 17 ans.
  • 20 $ pour les adultes.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
            <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
            <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Superpositions

Définissez NotifType sur Overlay pour supprimer tous les tarifs par nombre de personnes et tous les montants supplémentaires pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021, et les remplacer par les nouveaux tarifs par nombre de personnes et les montants supplémentaires.

Par exemple, si ce message est envoyé après le message "Ajouter des tarifs", les tarifs de base 1 et 2 seront supprimés, et seuls les nouveaux tarifs de base 1 seront stockés. L'ensemble précédent de montants d'invités supplémentaires sera supprimé, et seul l'ensemble des nouveaux montants sera stocké. Les montants supplémentaires des invités utiliseront désormais le nouveau tarif "occupation 1" comme tarif de base. Notez qu'après cette mise à jour, aucuns frais supplémentaires ne seront définis pour les enfants.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Supprimer des montants

Définissez NotifType sur Delete pour supprimer tous les tarifs de base par nombre de personnes et tous les montants supplémentaires des invités pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021.

Par exemple, si ce message a été envoyé après l'un des autres exemples, aucun tarif de base par nombre de personnes ni aucun montant supplémentaire d'invité ne sont stockés.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Supprimer uniquement les montants des invités supplémentaires

Définissez NotifType sur Delta avec un élément <AdditionalGuestAmounts> vide pour supprimer tous les montants supplémentaires pour RoomID_1 et PackageID_1 sans affecter les tarifs de base entre le 20/10/2021 et le 31/12/2021.

Par exemple, si ce message a été envoyé après l'un des autres exemples, seuls les montants de base sont stockés.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <AdditionalGuestAmounts/>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Tarifs basés sur la DDS

Configurer des tarifs basés sur la DDS

Exemple 1

Fixez des tarifs pour des séjours de 1, 2 et 3 nuits à partir du 18/05/2020. Dans cet exemple, le tarif total pour un séjour de 1, 2 et 3 nuits serait de 100 $, 180 $ et 240 $.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="1" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="2" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Ajouter, superposer et supprimer des tarifs basés sur la DDS

Ajouter la durée du séjour

Avec la tarification basée sur la DDS, une opération Delta permet de mettre à jour les tarifs de manière incrémentielle pour les plages de dates d'arrivée indiquées dans <StatusApplicationControl> et pour toutes les durées de séjour indiquées par le UnitMultiplier de chaque élément Rate.

Pour chaque date d'arrivée et chaque durée de séjour, tous les tarifs d'occupation doivent être spécifiés.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Superposition(s) du séjour

Avec la tarification basée sur la DDS, une opération Overlay remplace les tarifs pour toutes les durées de séjour du produit et plage de dates d'arrivée indiquées dans <StatusApplicationControl>.

Avec ce message, les tarifs par nombre de personnes pour toutes les durées de séjour aux dates d'arrivée spécifiées seront supprimés et remplacés par un taux de chambre double qui n'est défini que pour la durée du séjour : 3.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Supprimer la durée du séjour

Avec la tarification basée sur la DDS, une opération Remove supprime les tarifs pour toutes les durées de séjour du produit et plage de dates d'arrivée indiquées dans <StatusApplicationControl>.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

Réponses

Syntaxe

Le message OTA_HotelRateAmountNotifRS utilise la syntaxe suivante:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>

Éléments et attributs

Le message OTA_HotelRateAmountNotifRS comporte les éléments et les attributs suivants:

Élément / @Attribut Occurrences Type Description
OTA_HotelRateAmountNotifRS 1 Complex element Élément racine d'une réponse à un message de disponibilité.
OTA_HotelRateAmountNotifRS / @TimeStamp 1 DateTime Date et heure de création de ce message.
OTA_HotelRateAmountNotifRS / @EchoToken 1 string Identifiant unique du message OTA_HotelRateAmountNotifRQ associé.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Indique que le message OTA_HotelRateAmountNotifRQ a bien été traité.

<Success> ou <Errors> est présent dans chaque message.

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Conteneur pour un ou plusieurs problèmes rencontrés lors du traitement du message OTA_HotelRateAmountNotifRQ.

<Success> ou <Errors> est présent dans chaque message.

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error Description d'une erreur rencontrée lors du traitement du message OTA_HotelRateAmountNotifRQ. Pour en savoir plus sur ces erreurs, consultez Messages d'erreur concernant l'état du flux.
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 integer EWT (OpenTravel Alliance type) associé à l'erreur. Seule la valeur 12 (Processing exception) est utilisée.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer Le code ERR (OpenTravel Alliance) (code d'erreur) associé à l'erreur. Seule la valeur 450 (Unable to process) est utilisée.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 enum État de la demande initiale. Seule la valeur NotProcessed est utilisée.
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText 1 string Identifiant Google du problème. Pour en savoir plus sur ces erreurs, consultez Messages d'erreur concernant l'état du flux.

Exemples

Réussite

Voici une réponse à un message OTA_HotelRateAmountNotifRQ traité avec succès.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>

Erreurs

Voici une réponse à un message OTA_HotelRateAmountNotifRQ non traité en raison d'erreurs.

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>