<OTA_HotelRateAmountNotifRQ> की मदद से भेजे गए किराये में बदलाव किया जा सकता है, ताकि मेहमानों की मूल संख्या के साथ-साथ वयस्कों और बच्चों की संख्या भी शामिल की जा सके. ExtraGuestCharges मैसेज की मदद से, यह तय किया जा सकता है कि इन अतिरिक्त मेहमानों के लिए किराये का हिसाब कैसे लगाया जाए. साथ ही, यह भी तय किया जा सकता है कि किन कमरों, किराये के प्लान, और ठहरने की तारीखों के लिए इन मेहमानों से शुल्क लिया जाए.
कैपेसिटी से जुड़ी ज़रूरी शर्तें
ExtraGuestCharges मैसेज से कैलकुलेट की गई कीमतें सिर्फ़ तब मान्य होती हैं, जब सीटों की संख्या से जुड़ी सभी ज़रूरी शर्तें पूरी की गई हों. ज़्यादा जानकारी के लिए, लेन-देन (प्रॉपर्टी डेटा) देखें.
अनुरोध
सिंटैक्स
ExtraGuestCharges मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
                   id="message_ID"
                   timestamp="timestamp">
  <HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
    <ExtraGuestCharge>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
                   days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="float"/>
        <ChildAgeBrackets>
        <!-- The following are different ways child charges can be specified.
        Use the option that matches your system. -->
          <ChildAgeBracket max_age="integer" amount="float"
                           exclude_from_capacity="[true|false]"/>
          <ChildAgeBracket max_age="integer" percentage="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
          <ChildAgeBracket max_age="integer" discount_amount="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>
एलिमेंट और एट्रिब्यूट
ExtraGuestCharges मैसेज में ये एलिमेंट और एट्रिब्यूट होते हैं:
| एलिमेंट / @एट्रिब्यूट | आवृत्तियां | टाइप | ब्यौरा | 
|---|---|---|---|
| ExtraGuestCharges | 1 | Complex element | इस मैसेज का रूट एलिमेंट. | 
| ExtraGuestCharges / @partner | 1 | string | इस मैसेज के लिए पार्टनर खाता. यह स्ट्रिंग वैल्यू, Hotel Center में 
        खाते की सेटिंग वाले पेज पर दी गई Partner keyवैल्यू होती है.ध्यान दें: अगर आपके पास एक ऐसा बैकएंड है जो एक से ज़्यादा खातों के लिए फ़ीड उपलब्ध कराता है, तो यह वैल्यू उसी खाते के लिए,  | 
| ExtraGuestCharges / @id | 1 | string | अनुरोध मैसेज के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, रिस्पॉन्स मैसेज में दिखती है. इन वर्णों का इस्तेमाल किया जा सकता है: a-z,A-Z,0-9,_(अंडरस्कोर), और-(डैश). | 
| ExtraGuestCharges / @timestamp | 1 | DateTime | इस मैसेज को बनाने की तारीख और समय. | 
| ExtraGuestCharges / HotelExtraGuestCharges | 0..n | HotelExtraGuestCharges | किसी एक प्रॉपर्टी के लिए शुल्कों का कंटेनर. | 
| ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id | 1 | string | प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, होटल सूची फ़ीड में <listing>एलिमेंट में<id>का इस्तेमाल करके बताए गए होटल आईडी से मेल खानी चाहिए. होटल आईडी, Hotel Center में भी मौजूद होता है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / @action | 0..1 | enum | इससे पता चलता है कि अपडेट कैसे लागू किया जाता है. सिर्फ़ overlayका इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, ओवरले का इस्तेमाल किया जाता है. अपडेट लागू होने से पहले, इस प्रॉपर्टी के लिए किए गए सभी पुराने शुल्क हटा दिए जाते हैं. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge | 0..99 | ExtraGuestCharge | किसी प्रॉपर्टी के लिए शुल्कों का एक सेट. इसमें ये पाबंदियां शामिल हो सकती हैं कि शुल्क कैसे लागू किया जा सकता है और उम्र या मेहमान की कैटगरी के हिसाब से शुल्क का हिसाब कैसे लगाया जाता है. 
 | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets | 1 | AgeBrackets | उम्र के ब्रैकेट का कंटेनर, जो उम्र या मेहमान की कैटगरी के हिसाब से शुल्क का हिसाब लगाने के लिए होता है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge | 0..1 | AdultCharge | किसी और वयस्क के लिए शुल्क का कंटेनर. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount | 0..1 | float | दशमलव वाली ऐसी वैल्यू जो किसी और वयस्क के लिए, एक तय रकम बताती है. इस शुल्क के लिए वही मुद्रा इस्तेमाल की जाती है जो हर रात के किराये के लिए तय की गई है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets | 0..1 | ChildAgeBrackets | बच्चों के लिए अतिरिक्त शुल्क के लिए कंटेनर. उम्र की इन सीमाओं में सिर्फ़ 0 से 17 साल की उम्र शामिल हो सकती है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket | 1..99 | ChildAgeBracket | यह किराया, तय उम्र सीमा के बच्चों पर लागू होता है. इन्हें सबसे कम max_ageसे लेकर सबसे ज़्यादाmax_ageतक के क्रम में लगाया जाना चाहिए. शुल्क की जानकारी देने के लिए,amount,percentageयाdiscount_amountका इस्तेमाल किया जा सकता है. हर<ChildAgeBracket>के लिए, इनमें से किसी एक एट्रिब्यूट की वैल्यू देना ज़रूरी है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age | 1 | integer | <ChildAgeBracket>में बताए गए शुल्क, ज़्यादा से ज़्यादा किस उम्र तक के लिए लागू हो सकते हैं. अगर इस<ChildAgeBracket>से पहले कोई दूसरा<ChildAgeBracket>नहीं दिया गया है, तो कम से कम उम्र शून्य होगी. अगर ऐसा नहीं है, तो यह पिछले ब्रैकेट की सबसे बड़ी उम्र से एक ज़्यादा है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity | 1 | boolean | यह एक बूलियन वैल्यू है. इससे पता चलता है कि इस उम्र सीमा के बच्चे को कमरे की कुल क्षमता और बच्चों की क्षमता में शामिल करना है या नहीं. इन कैपेसिटी को ट्रांज़ैक्शन(प्रॉपर्टी डेटा) के साथ सेट किया जा सकता है. उदाहरण के लिए, हो सकता है कि किसी तय उम्र से कम उम्र के शिशुओं को, बच्चों की संख्या में न गिना जाए. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount | 0..1 | float | यह दशमलव वाली ऐसी वैल्यू होनी चाहिए जो शून्य से ज़्यादा हो. इससे इस ब्रैकेट में, एक और बच्चे के लिए लिया जाने वाला शुल्क पता चलता है. इस शुल्क के लिए उसी मुद्रा का इस्तेमाल किया जाता है जिसका इस्तेमाल, हर रात के लिए तय की गई दरों के लिए किया जाता है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage | 0..1 | float | यह वैल्यू दशमलव वाली होती है और 1 से 99 के बीच होती है. इससे पता चलता है कि वयस्क के लिए तय की गई कीमत का कितना प्रतिशत, इस ब्रैकेट में आने वाले एक और बच्चे के लिए लिया जाना चाहिए. इस शुल्क के लिए वही मुद्रा इस्तेमाल की जाती है जो एक रात के ठहरने की कीमत के लिए बताई गई है. वयस्कों के लिए कीमत तय करने के तरीके के बारे में जानकारी पाने के लिए,  | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount | 0..1 | float | दशमलव वाली ऐसी वैल्यू जो इस ब्रैकेट में एक और बच्चे के लिए, वयस्क की कीमत पर मिलने वाली छूट की रकम बताती है. इस शुल्क के लिए वही मुद्रा इस्तेमाल की जाती है जो हर रात के लिए तय की गई किराये की दरों के लिए इस्तेमाल की जाती है. आम तौर पर, इस ब्रैकेट में आने वाले बच्चे के लिए शुल्क का हिसाब लगाने के लिए, "यूनिट की कीमत" से तय रकम को घटाया जाता है. इकाई की कीमत के बारे में ज़्यादा जानकारी के लिए,  | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant | 0..1 | string | अगर  यहां हमारा मकसद "इकाई की कीमत" हासिल करना है, ताकि असल शुल्क का हिसाब लगाया जा सके. 
 इस एट्रिब्यूट की वैल्यू,  
 | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes | 0..1 | RoomTypes | उन कमरों के टाइप की सूची के लिए कंटेनर जिन पर शुल्क लागू होता है.
        ये शुल्क, बताए गए हर <RoomType>पर लागू होते हैं. अगर<RoomTypes>की वैल्यू नहीं दी गई है, तो तय की गई प्रॉपर्टी के सभी कमरों पर शुल्क लागू होंगे. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType | 1..n | RoomType | कमरे का टाइप बताता है. कमरे के टाइप की जानकारी, लेन-देन (प्रॉपर्टी डेटा) मैसेज में मौजूद <RoomData>एलिमेंट में दी जाती है. साथ ही, इसकी<RoomID>वैल्यू का इस्तेमाल करके इसका रेफ़रंस दिया जाता है. (इसकी<RoomID>वैल्यू का रेफ़रंस, OTA_HotelRateAmountNotifRQ मैसेज मेंInvTypeCodeएट्रिब्यूट से भी दिया जाता है.) | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id | 1 | string | इन्वेंट्री (कमरे का टाइप) के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी डेटा) मैसेज में <RoomID>पर मैप होती है.
        इसमें ज़्यादा से ज़्यादा 50 वर्ण हो सकते हैं. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans | 0..1 | RatePlans | किराये के उन प्लान की सूची के लिए कंटेनर जिन पर शुल्क लागू होते हैं.
        अगर <RatePlans>की वैल्यू नहीं दी गई है, तो शुल्क सभी किराये के प्लान पर लागू होंगे. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan | 1..n | RatePlan | किराये का प्लान बताता है. किराये के प्लान को पैकेज, किराये, और उपलब्धता के कॉम्बिनेशन से तय किया जाता है. इसकी जानकारी, लेन-देन (प्रॉपर्टी डेटा), OTA_HotelRateAmountNotifRQ, और OTA_HotelAvailNotifRQ मैसेज में दी गई होती है. साथ ही, PackageID से भी इसकी पहचान की जा सकती है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id | 1 | string | किराया प्लान का यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी डेटा) मैसेज में <PackageData>में मौजूद PackageID वैल्यू और<OTA_HotelRateAmountNotifRQ>और<OTA_HotelAvailNotifRQ>, दोनों मैसेज में<StatusApplicationControl>में मौजूदRatePlanCodeएट्रिब्यूट में मैप होती है.
        इसमें ज़्यादा से ज़्यादा 50 वर्ण हो सकते हैं. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates | 0..1 | StayDates | एक या उससे ज़्यादा तारीख की सीमाओं के लिए कंटेनर, जिससे यह तय होता है कि शुल्क कैसे लागू किए जाएंगे. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange | 1..99 | DateRange | तारीख की वह सीमा जिसमें प्रमोशन लागू करना है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start | 0..1 | Date | तारीख की सीमा के साथ-साथ, शुरू होने की तारीख (प्रॉपर्टी के टाइम ज़ोन के आधार पर). यह तारीख, endकी तारीख से पहले की होनी चाहिए या उसी तारीख की होनी चाहिए. अगरstartकी जानकारी नहीं दी गई है, तो तारीख की सीमा के लिए शुरू होने की तारीख की कोई सीमा नहीं होती. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end | 0..1 | Date | तारीख की सीमा के साथ-साथ, खत्म होने की तारीख (प्रॉपर्टी के टाइम ज़ोन के आधार पर). यह तारीख, startकी तारीख के बराबर या उसके बाद की होनी चाहिए. अगरendकी जानकारी नहीं दी जाती है, तो तारीख की सीमा के लिए, खत्म होने की तारीख असीमित होती है. | 
| ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week | 0..1 | string | तारीख की सीमा में हफ़्ते के वे दिन जिनमें प्रॉडक्ट दिखाए जा सकते हैं. अगर इस बारे में जानकारी न दी गई हो, तो तारीख की सीमा में सभी दिन शामिल किए जा सकते हैं. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में, हफ़्ते के कामकाजी दिन शामिल हैं. मान्य वर्ण ये हैं: 
 वर्णों का कोई भी कॉम्बिनेशन मान्य है. | 
उदाहरण
वयस्कों के लिए शुल्क
अन्य वयस्कों के लिए, सिर्फ़ एक तय रकम के तौर पर शुल्क दिखाया जा सकता है. यहां दिए गए उदाहरण में, ExtraGuestCharges मैसेज दिखाया गया है. इसमें, वयस्कों के लिए तय किए गए शुल्क की जानकारी दी गई है:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <StayDates />
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>
इनके लिए शुल्क की दरें यहां दी गई हैं:
<?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="ABC">
    <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>
जब कोई उपयोगकर्ता Google पर चार वयस्कों के लिए खोज करता है, तो कुल किराया 170 = 120 + 50 होगा.
120, <BaseByGuestAmt> की दर में NumberOfGuests="3" और 50
AdultCharge amount="50" से मिलता है.
चाइल्ड खाते के लिए शुल्क
बच्चों के लिए तय किए गए शुल्क, 17 साल तक की उम्र के बच्चों के लिए तय किए जाते हैं. इन्हें तय रकम, प्रतिशत या छूट के तौर पर दिखाया जा सकता है.
यहां दिए गए उदाहरण में, ExtraGuestCharges मैसेज दिखाया गया है, जिसमें बच्चों के लिए लिए जाने वाले शुल्क की जानकारी दी गई है:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <AgeBrackets>
        <ChildAgeBrackets>
          <ChildAgeBracket max_age="3" percentage="10"
                           counts_as_base_occupant="never" />
          <ChildAgeBracket max_age="10" percentage="30"
                           counts_as_base_occupant="preferred"/>
          <ChildAgeBracket max_age="17" discount_amount="10"
                           counts_as_base_occupant="always" />
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>
इनके लिए शुल्क की दरें यहां दी गई हैं:
<?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="ABC">
    <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"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```
  1.  Suppose you want the total price for 2 adults and 1 child of 2 years
      of age.
      Children aged 0-3 are never included in the rate's occupancy,
      so here you should take the double occupancy rate and divide by 2 to
      get the unit price. Then, multiply by the percentage rate and sum
      with the rate to get the total price.
      `unit price ` = 110 / 2 = 55
      `total price` = 110 + 55 * 0.1 = 115.5
  1.  Suppose you want the total price for 1 adult and 2 children, both of 5
      years of age.
      Children aged 4-10 are preferably included in the rate's
      occupancy. you should start by looking for a 3 adult rate since both
      children are preferably included in the rate's occupancy. Since
      that doesn't exist you should fall back to the 2 adult rate and then,
      take this rate and divide by two to get the unit price. Finally,
      multiply by the percentage rate and sum with the scaled rate to
      get the total price.
      `unit price` = 110 / 2 = 55
      `total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88
  1.  Suppose you want the total price for 1 adult and 1 child of 17
      years of age.
      Children aged 11-17 are always included in the rate's occupancy, so,
      in this case, take the double occupancy rate and divide by 2 to get
      the unit price. Then, deduct it by the discount amount and sum with
      the scaled rate to get the total price.
      `unit price` = 110 / 2 = 55
      `total price` = 55 + (55 - 10) = 100
शुल्क से जुड़ी पाबंदियां
सभी तरह की पाबंदियां ज़रूरी नहीं हैं. साथ ही, इनका कोई भी कॉम्बिनेशन इस्तेमाल किया जा सकता है.
यहां दिए गए उदाहरण में, ExtraGuestCharges मैसेज दिखाया गया है, जिसमें पाबंदियों के बारे में बताया गया है:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>
ऊपर दिए गए मैसेज से पता चलता है कि 1 सितंबर, 2020 से 14 सितंबर, 2020 के बीच, "फ़्री-वाई-फ़ाई" या "हॉट-ब्रेकफ़ास्ट" किराया प्लान वाले "क्वीन" या "किंग" रूम टाइप वाले किसी भी प्रॉडक्ट के लिए, वयस्कों से शुल्क लिया जाना चाहिए.
ओवरलैप होने वाले शुल्क
इस सेक्शन में, अमान्य मैसेज का एक उदाहरण दिया गया है. इसमें तारीखों और प्रॉडक्ट के एक ही कॉम्बिनेशन के लिए, अलग-अलग शुल्क बताया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-05"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="20" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>
ऊपर दिया गया मैसेज अमान्य है, क्योंकि पहले <ExtraGuestCharge> में बताया गया है कि 1 से 14 सितंबर के लिए, "क्वीन" और "फ़्री-वाई-फ़ाई" के लिए, वयस्कों से 50 रुपये अतिरिक्त लिए जाने चाहिए. दूसरे <ExtraGuestCharge>
से पता चलता है कि 1 से 5 सितंबर के लिए, "फ़्री-वाई-फ़ाई" या "हॉट-ब्रेकफ़ास्ट" के साथ "क्वीन" या "किंग" में से किसी भी रूम के लिए, वयस्कों से 20 डॉलर अतिरिक्त लिए जाने चाहिए.
1 से 5 सितंबर के लिए, "क्वीन" और "फ़्री-वाई-फ़ाई" के लिए, किराये में ओवरलैप है. साथ ही, एक और वयस्क के लिए 20 या 50 रुपये का शुल्क लेने के बारे में जानकारी नहीं दी गई है.
जवाब
सिंटैक्स
ExtraGuestChargesResponse मैसेज में, इस सिंटैक्स का इस्तेमाल किया जाता है:
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</ExtraGuestChargesResponse>
एलिमेंट और एट्रिब्यूट
ExtraGuestChargesResponse मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:
| एलिमेंट / @एट्रिब्यूट | आवृत्तियां | टाइप | ब्यौरा | 
|---|---|---|---|
| ExtraGuestChargesResponse | 1 | Complex element | रूट एलिमेंट, जो मिले ExtraGuestChargesअनुरोध मैसेज के लिए, अनुरोध पूरा होने या उससे जुड़ी समस्याओं के बारे में बताता है. | 
| ExtraGuestChargesResponse / @timestamp | 1 | DateTime | इस मैसेज को बनाने की तारीख और समय. | 
| ExtraGuestChargesResponse / @id | 1 | string | उससे जुड़े ExtraGuestChargesमैसेज का यूनीक आइडेंटिफ़ायर. | 
| ExtraGuestChargesResponse / @partner | 1 | string | इस मैसेज के लिए पार्टनर खाता. | 
| ExtraGuestChargesResponse / Success | 0..1 | Success | इससे पता चलता है कि ExtraGuestChargesमैसेज को बिना किसी चेतावनी, गड़बड़ी या फ़ेल होने के प्रोसेस कर लिया गया है.हर मैसेज में  | 
| ExtraGuestChargesResponse / Issues | 0..1 | Issues | ExtraGuestChargesमैसेज को प्रोसेस करते समय, एक या उससे ज़्यादा समस्याओं के लिए कंटेनर.हर मैसेज में  | 
| ExtraGuestChargesResponse / Issues / Issue | 1..n | Issue | ExtraGuestChargesमैसेज को प्रोसेस करते समय मिली चेतावनी, गड़बड़ी या समस्या के बारे में जानकारी. इन समस्याओं के बारे में जानकारी, फ़ीड की स्थिति से जुड़ी गड़बड़ी के मैसेज में देखी जा सकती है. | 
| ExtraGuestChargesResponse / Issues / Issue / @code | 1 | integer | समस्या का आइडेंटिफ़ायर. | 
| ExtraGuestChargesResponse / Issues / Issue / @status | 1 | enum | आपको किस तरह की समस्या आ रही है. मान्य वैल्यू  | 
उदाहरण
पुष्टि हो गई
यहां, प्रोसेस किए गए ExtraGuestCharges मैसेज का जवाब दिया गया है.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</ExtraGuestChargesResponse>
समस्याएं
यहां ExtraGuestCharges मैसेज के जवाब के बारे में बताया गया है, जिसे गड़बड़ियों की वजह से प्रोसेस नहीं किया जा सका.
<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</ExtraGuestChargesResponse>