OTA_HotelRateAmountNotifRQ

Requêtes

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 inclut les éléments et les attributs suivants :

Élément / @Attribut Occurrences Type Description
OTA_HotelRateAmountNotifRQ 1 Complex element Élément racine d'un message sur les tarifs.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) Espace de noms XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string Identifiant unique pour ce message de demande. Cette valeur est renvoyée dans le message de réponse. Les caractères autorisés sont 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 valides sont les suivantes :

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

  • Overlay: Supprime tous les tarifs par nombre de personnes pour le type de chambre, le plan tarifaire et les dates spécifiés dans <StatusApplicationControl>, puis les remplace par de nouveaux tarifs.
  • Remove: Supprime 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: : (valeur par défaut si l'attribut NotifType n'est pas spécifié) permet d'ajouter ou de mettre à jour 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 de l'attribut NotifType à appliquer à chaque <RateAmountMessage>.

Les valeurs valides sont les suivantes :

  • ProductRate: : (valeur par défaut si l'attribut NotifScopeType n'est pas spécifié) l'attribut NotifType s'applique à des produits, c'est-à-dire à des 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 l'élément <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 avez 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 de propriété)" 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> définissant des tarifs.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string Identifiant unique de l'établissement. Cette valeur doit correspondre à l'identifiant 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 d'un type de chambre et d'un plan tarifaire sur une plage de dates).
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, de la plage de dates. Doit être supérieure ou égale à la valeur start. Si les valeurs start et end sont égales, la mise à jour s'applique à cette date. Notez que Google accepte les données jusqu'à trois ans.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon 0..1 boolean Définissez cet attribut sur true ou 1 pour inclure explicitement les lundis.

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs Start et End.

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

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs Start et End.

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

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs 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.

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs 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.

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs Start et End.

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

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs 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.

S'il est défini sur true, les autres jours de la semaine qui ne sont pas explicitement définis sur true sont exclus. En effet, ils sont éliminés des dates comprises entre les valeurs 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 à la valeur <PackageID> dans un message Transaction (Données sur un établissement). Le plan tarifaire est également défini et référencé dans l'élément <StatusApplicationControl> des messages <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string Identifiant qui indique le type de modèle tarifaire ARI qui s'applique à cette mise à jour des tarifs. Cette valeur ne doit être spécifiée (avec la valeur 26) que lorsque vous utilisez le modèle tarifaire basé sur la durée du séjour. L'absence de cet attribut indique qu'il s'agit d'une mise à jour des prix par date.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Conteneur pour un ensemble d'éléments <Rate>. Si NotifType est défini sur "Remove", cet élément ne doit pas être spécifié. Dans le cas contraire, il ne doit être spécifié qu'une seule fois.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Conteneur pour un ensemble d'éléments <BaseByGuestAmts>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit 0..1 String Unité dans laquelle la durée du séjour est spécifiée. La seule valeur acceptée est "Day", ce qui signifie que la durée du séjour sera spécifiée en jours.

Pour utiliser les tarifs basés sur la DDS, vous devez spécifier RateTimeUnit et UnitMultiplier. Sinon, aucun des deux ne doit être spécifié.

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 RateTimeUnits est "Day", une UnitMultiplier de 5 indique que le ou les tarifs spécifiés sous cet objet Rate s'appliquent à chaque nuit d'un séjour de cinq nuits.

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

Pour utiliser les tarifs basés sur la durée du séjour, vous devez spécifier RateTimeUnit et UnitMultiplier. Sinon, aucun des deux ne doit être spécifié.

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 Indique le 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 ayant une valeur différente pour NumberOfGuests. Sinon, le prix est applicable pour un nombre maximal de personnes défini par NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

Prix de la chambre à la journée, avant ajout des taxes et des frais.

Les attributs AmountBeforeTax et AmountAfterTax peuvent tous deux être spécifiés. Si AmountBeforeTax n'est pas spécifié, AmountAfterTax doit l'être. Si AmountBeforeTax est spécifié et que AmountAfterTax ne l'est pas, les taxes et les frais doivent être indiqué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. Comme 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 les taxes et les frais.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Prix de la chambre à la journée, après ajout des taxes et frais applicables. Si AmountAfterTax est spécifié, il n'est pas nécessaire d'envoyer des messages <TaxFeeInfo> distincts pour chaque établissement. Cet attribut peut être utilisé en association avec AmountBeforeTax pour fournir à la fois un tarif de base et un tarif total, qui peuvent être présentés aux utilisateurs de certaines régions.

Avertissement : Si vous utilisez des promotions, nous vous recommandons vivement de ne pas utiliser de montants AmountAfterTax. Si vous souhaitez utiliser des remises, indiquez 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 ISO 4217 à trois caractères alphabétiques pour 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 bénéficier de ce tarif. Si aucune valeur n'est indiquée, cet attribut est défini par défaut sur 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 pas de frais pour les enfants, NumberOfGuests fait référence au nombre total d'occupants, 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 clients supplémentaires.

Cette syntaxe est utile si les tarifs supplémentaires pour les invités ou les 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 pour les clients supplémentaires sont appliqués comme suit :
  • Elles s'appliquent en plus du taux d'occupation de base. Le taux d'occupation de base est le taux d'occupation le plus élevé, spécifié dans <BaseByGuestAmts>, qui est inférieur ou égal au nombre d'adultes dans la recherche d'un utilisateur.
  • Ils sont appliqués tant que l'occupation dans la recherche d'un utilisateur est dans la limite de la capacité de la chambre.
  • <AdditionalGuestAmounts> remplace toujours les montants supplémentaires spécifiés précédemment par de nouveaux lorsque NotifType est défini sur Delta ou Overlay.
  • <AdditionalGuestAmounts> peut être envoyé indépendamment des tarifs de base uniquement lorsque NotifType est défini sur Delta. <BaseByGuestAmts> doit être spécifié lorsque NotifType est défini sur Overlay.
  • Un élément <AdditionalGuestAmounts> vide avec NotifType défini sur Delta supprime les montants supplémentaires existants sans affecter les tarifs de base.
  • Elles sont appliquées à l'aide de la devise spécifiée dans <BaseByGuestAmt>.

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

  • Si un utilisateur recherche un hébergement pour trois adultes, le tarif en chambre double est sélectionné comme tarif de base, et un montant supplémentaire pour un adulte est appliqué.
  • Si l'utilisateur recherche un tarif pour un adulte et deux enfants, le tarif pour une personne sera sélectionné comme tarif de base, et des montants supplémentaires seront appliqués en plus pour les deux enfants.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Spécifie les prix en fonction du type de client, indiqué par AgeQualifyingCode, et, le cas échéant, de l'âge du client, indiqué par MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Définit le type de personne supplémentaire (adulte ou enfant). Les options valides sont les suivantes :
  • 10: Adulte
  • 8: enfant.

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

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

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

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

Définir la valeur sur 0 désactive les occupants enfants.

Les valeurs supérieures à 17 seront traitées comme la valeur maximale acceptée de 17.

Vous pouvez spécifier plusieurs tranches d'âge pour les enfants à l'aide d'é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 avant taxes et frais ajoutés 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 à l'aide de l'élément <AgeBrackets> dans un message <TaxFeeInfo>.

Exemples

Cette section fournit des exemples de code qui expliquent comment effectuer les opérations suivantes :

Lorsque vous définissez les valeurs add, overlay ou remove, les plages de dates peuvent être identiques ou différentes selon vos objectifs. Par exemple, vous pouvez utiliser overlay pour définir quelques semaines pour les fêtes de fin d'année plutôt que la plage entière définie pour le message "Ajouter un tarif". Les taux d'occupation ne seront remplacés que pour cette période.

Tarification par date

Pour une chambre et un plan tarifaire donnés, vous pouvez indiquer jusqu'à 50 taux d'occupation par établissement. Si les tarifs sont identiques pour toutes les capacités, vous devez simplement envoyer les capacités maximales avec le prix requis. Google en déduit que les taux d'occupation inférieurs reçoivent également le même tarif de base.

Configurer des tarifs de base et des tarifs totaux

Exemple 1

Tarif de base (hors taxes ou 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 important 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 (deux). 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 important 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

Vous pouvez indiquer jusqu'à 5 000 produits (combinaisons type de chambre et séjour organisé) par établissement. Utilisez les types de notification Overlay ou Remove pour supprimer les produits précédemment définis.

Ajouter des tarifs

Définissez NotifType sur Delta pour ajouter des 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 les données jusqu'à trois ans.

<?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>

Superposer des tarifs

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.

Par exemple, si ce message a été envoyé après le message "Ajouter des tarifs", les tarifs par nombre de personnes 1, 2 et 3 sont supprimés, et seul le nouveau tarif par nombre de personnes 1 est stocké. Vous pouvez également définir une plage de dates plus courte (par exemple : 2021-12-20 et 2021-12-31) pour remplacer uniquement 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 des 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 de messages, aucun tarif par nombre de personnes 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 pour les clients supplémentaires

Ajouter des montants

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

Des frais supplémentaires par personne seront appliqués en plus d'un tarif de base, qui sera déterminé par l'occupation dans la recherche d'un utilisateur. L'occupation spécifiée par l'utilisateur doit être inférieure à la capacité de RoomID_1.

Dans cet exemple, les montants supplémentaires pour les clients supplémentaires seront appliqués comme suit :

  • 5 $ pour les enfants âgés de 0 à 10 ans (inclus)
  • 10 $ pour les enfants âgés de 11 à 17 ans (inclus)
  • 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>

Montants de superposition

Définissez NotifType sur Overlay pour supprimer tous les tarifs par nombre de personnes et tous les montants supplémentaires pour les invités 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 montants supplémentaires.

Par exemple, si ce message a été envoyé après le message "Ajouter des tarifs", les tarifs de base pour 1 et 2 personnes sont supprimés, et seul le nouveau tarif de base pour 1 personne est stocké. L'ensemble précédent de montants supplémentaires pour les invités est supprimé, et seul le nouvel ensemble de montants est stocké. Les montants supplémentaires pour les invités utiliseraient désormais le nouveau tarif pour une personne comme tarif de base. Notez qu'après cette mise à jour, aucun frais supplémentaire pour les invités n'est défini 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 par personne 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 de messages, aucun tarif de base par nombre de personnes ni aucun montant supplémentaire par personne ne sera 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>

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 les invités 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 de messages, 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>

Tarification basée sur la durée du séjour

Configurer des tarifs basés sur la durée du séjour

Exemple 1

Définissez les tarifs pour les séjours d'une, deux et trois nuits à partir du 18/05/2020. Dans cet exemple, le tarif total pour un séjour d'une, deux ou trois nuits serait respectivement 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 durée du séjour

Ajouter une ou plusieurs durées de séjour

Avec la tarification basée sur la durée du séjour, une opération Delta permet de mettre à jour progressivement les tarifs pour les plages de dates d'arrivée indiquées dans <StatusApplicationControl> et pour toutes les durées de séjour indiquées par l'attribut UnitMultiplier de chaque élément enfant Rate.

Pour chaque date d'arrivée et durée du séjour applicables, 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>

Superposer des durées de séjour

Avec la tarification basée sur la durée du séjour, une opération Overlay remplace les tarifs pour toutes les durées de séjour de la gamme de produits et 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 tarif pour deux personnes qui n'est défini que pour la durée de 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 une ou plusieurs durées de séjour

Avec la tarification basée sur la durée du séjour, une opération Remove supprime les tarifs pour toutes les durées de séjour du produit et la 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 inclut 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é.

Chaque message contient soit <Success>, soit <Errors>.

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

Chaque message contient soit <Success>, soit <Errors>.

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 Type d'avertissement d'erreur (EWT) OpenTravel Alliance associé à l'erreur. Seule la valeur 12 (Processing exception) est utilisée.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer Code d'erreur (ERR) OpenTravel Alliance associé à l'erreur. Seule la valeur 450 (Unable to process) est utilisée.
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 enum État de la demande d'origine. 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

Opération réussie

Vous trouverez ci-dessous 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

La réponse ci-dessous est 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>