टैक्सफ़ी

अनुरोध

सिंटैक्स

TaxFeeInfo मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="timestamp"
            id="message_ID"
            partner="partner_key">
  <Property action="[overlay]">
    <ID>HotelID</ID>
    <Taxes>
      <Tax>
        <RoomTypes>
          <RoomType id="RoomID_1"/>
          <RoomType id="RoomID_2"/>
        </RoomTypes>
        <RatePlans>
          <RatePlan id="PackageID_1"/>
          <RatePlan id="PackageID_2"/>
        </RatePlans>
        <BookingDates>
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </BookingDates>
        <CheckinDates>
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </CheckinDates>
        <CheckoutDates>
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </CheckoutDates>
        <StayDates application="[all|any|overlap]">
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </StayDates>
        <Type>[percent|amount|cumulative_percent]</Type>
        <Basis>[room|person]</Basis>
        <Period>[stay|night]</Period>
        <Currency>currency_code</Currency>
        <Amount>tax_amount</Amount>
        <ApplicableNights max="integer" excluded="integer"/>
        <LengthOfStay min="integer" max="integer"/>
        <!-- Use either <Amount> or <Brackets> -->
        <Brackets base_amount="tax_amount"/>
          <Bracket starts_at="nightly_rate" amount="tax_amount"/>
        </Brackets>
        <AgeBrackets>
          <AdultCharge amount="tax_amount"/>
          <ChildAgeBrackets>
            <ChildAgeBracket max_age="max_age" amount="tax_amount"/>
          </ChildAgeBrackets>
        </AgeBrackets>
        <UserCountries type="[include|exclude]">
          <Country code="country_code1"/>
          <Country code="country_code2"/>
        </UserCountries>
        <!--"exclusive" parameter is optional -->
        <Rank exclusive="[true|false]">integer</Rank>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <RoomTypes>
          <RoomType id="RoomID_1"/>
          <RoomType id="RoomID_2"/>
        </RoomTypes>
        <RatePlans>
          <RatePlan id="PackageID_1"/>
          <RatePlan id="PackageID_2"/>
        </RatePlans>
        <BookingDates>
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </BookingDates>
        <CheckinDates>
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </CheckinDates>
        <CheckoutDates>
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </CheckoutDates>
        <StayDates application="[all|any|overlap]">
          <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
        </StayDates>
        <Type>[percent|amount|cumulative_percent]</Type>
        <Basis>[room|person]</Basis>
        <Period>[stay|night]</Period>
        <Currency>currency_code</Currency>
        <Amount>fee_amount</Amount>
        <ApplicableNights max="integer" excluded="integer"/>
        <LengthOfStay min="integer" max="integer"/>
        <!-- Use either <Amount> or <Brackets> -->
        <Brackets base_amount="tax_amount"/>
          <Bracket starts_at="nightly_rate" amount="tax_amount"/>
        </Brackets>
        <AgeBrackets>
          <AdultCharge amount="tax_amount"/>
          <ChildAgeBrackets>
            <ChildAgeBracket max_age="max_age" amount="tax_amount"/>
          </ChildAgeBrackets>
        </AgeBrackets>
        <UserCountries type="[include|exclude]">
          <Country code="country_code1"/>
          <Country code="country_code2"/>
        </UserCountries>
        <!--"exclusive" parameter is optional -->
        <Rank exclusive="[true|false]">integer</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

एलिमेंट और एट्रिब्यूट

TaxFeeInfo मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:

Element / @Attribute आवृत्तियां टाइप ब्यौरा
TaxFeeInfo 1 Complex element यह मैसेज का रूट एलिमेंट है. इससे किसी एक प्रॉपर्टी के लिए टैक्स और शुल्क तय किए जाते हैं.
TaxFeeInfo / @timestamp 1 DateTime इस मैसेज को बनाने की तारीख और समय.
TaxFeeInfo / @id 1 string इस अनुरोध मैसेज के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, जवाब वाले मैसेज में दिखती है. इन वर्णों का इस्तेमाल किया जा सकता है: a-z, A-Z, 0-9, _ (अंडरस्कोर), और - (डैश).
TaxFeeInfo / @partner 1 string यह मैसेज किस पार्टनर खाते के लिए है. यह स्ट्रिंग वैल्यू, Hotel Center में खाते की सेटिंग वाले पेज पर मौजूद "पार्टनर की" वैल्यू होती है.

ध्यान दें: अगर आपके पास ऐसा बैकएंड है जो कई खातों के लिए फ़ीड उपलब्ध कराता है, तो इस वैल्यू को उसी खाते के लिए <OTA_HotelRateAmountNotifRQ> और <OTA_HotelAvailNotifRQ> मैसेज के <RequestorID> एलिमेंट में दी गई ID एट्रिब्यूट की वैल्यू से मेल खाना चाहिए.

TaxFeeInfo / Property 1..n Property किसी एक प्रॉपर्टी के लिए टैक्स और शुल्क तय करने वाला कंटेनर.
TaxFeeInfo / Property / @action 0..1 string इससे पता चलता है कि अपडेट को कैसे लागू किया जाता है. सिर्फ़ overlay का इस्तेमाल किया जा सकता है. इसकी डिफ़ॉल्ट वैल्यू overlay होती है. इस अपडेट को लागू करने से पहले, इस प्रॉपर्टी के लिए मौजूद सभी Taxes और Fees मिटा दिए जाएंगे.
TaxFeeInfo / Property / ID 1 string प्रॉपर्टी के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, होटल सूची फ़ीड में <id> एट्रिब्यूट का इस्तेमाल करके दिए गए होटल आईडी से मेल खानी चाहिए. यह आईडी, <listing> एलिमेंट में मौजूद होता है. होटल आईडी, Hotel Center में भी दिखता है.
TaxFeeInfo / Property / Taxes 0..1 Taxes एक या उससे ज़्यादा <Tax> एलिमेंट के लिए कंटेनर.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax प्रॉपर्टी पर लगने वाला व्यक्तिगत टैक्स.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes 0..1 RoomTypes कमरे के टाइप की सूची के लिए कंटेनर, जिस पर टैक्स लागू होता है. टैक्स, बताई गई हर <RoomType> पर लागू होता है. अगर <RoomTypes> एट्रिब्यूट की वैल्यू नहीं दी गई है, तो टैक्स सभी कमरों पर लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType 1..n RoomType कमरे का टाइप तय करता है. कमरे के टाइप को Transaction (Property Data) मैसेज में मौजूद <RoomData> एलिमेंट में तय किया जाता है. साथ ही, इसे RoomID का इस्तेमाल करके पहचाना जाता है. (इसकी <RoomID> वैल्यू का रेफ़रंस, OTA_HotelRateAmountNotifRQ मैसेज में मौजूद InvTypeCode एट्रिब्यूट भी देता है.)
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string इन्वेंट्री (कमरे का टाइप) के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी का डेटा) मैसेज में <RoomID> पर मैप करती है. ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans टैक्स लागू होने वाले रेट प्लान की सूची के लिए कंटेनर. अगर <RatePlans> नहीं दिया गया है, तो टैक्स सभी किराया प्लान पर लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan 1..n RatePlan इससे किसी रेट प्लान के बारे में पता चलता है. किराया प्लान, पैकेज, किराये, और उपलब्धता के कॉम्बिनेशन से तय होता है. यह जानकारी, लेन-देन (प्रॉपर्टी का डेटा), OTA_HotelRateAmountNotifRQ, और OTA_HotelAvailNotifRQ मैसेज में दी जाती है. साथ ही, इसे PackageID से पहचाना जाता है.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string किराया प्लान के लिए यूनीक आइडेंटिफ़ायर. यह वैल्यू, लेन-देन (प्रॉपर्टी का डेटा) मैसेज के <PackageData> में मौजूद PackageID वैल्यू और RatePlanCode वैल्यू पर मैप करती है. यह वैल्यू, <OTA_HotelRateAmountNotifRQ> और <OTA_HotelAvailNotifRQ> मैसेज, दोनों में <StatusApplicationControl> एट्रिब्यूट के तहत सेट की जाती है. ज़्यादा से ज़्यादा 50 वर्ण इस्तेमाल किए जा सकते हैं.
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates यह एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर होता है. इससे यह तय होता है कि टैक्स कब लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange 1..99 DateRange तारीख की वह सीमा जिसके दौरान बुकिंग होने पर टैक्स लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start 0..1 Date तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से असल में असीमित होती है.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी गई है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है.

इन वर्णों का इस्तेमाल किया जा सकता है:

  • M सोमवार के लिए
  • T मंगलवार के लिए
  • W बुधवार के लिए
  • H गुरुवार के लिए
  • F शुक्रवार के लिए
  • S शनिवार के लिए
  • U रविवार के लिए

वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates यह एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर होता है. इससे यह तय होता है कि टैक्स कब लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange 1..20 DateRange तारीख की वह सीमा जिसके दौरान चेक-इन करने पर टैक्स लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start 0..1 Date तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से असल में असीमित होती है.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी गई है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है.

इन वर्णों का इस्तेमाल किया जा सकता है:

  • M सोमवार के लिए
  • T मंगलवार के लिए
  • W बुधवार के लिए
  • H गुरुवार के लिए
  • F शुक्रवार के लिए
  • S शनिवार के लिए
  • U रविवार के लिए

वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates यह एक या उससे ज़्यादा तारीख की सीमाओं वाला कंटेनर होता है. इससे यह तय होता है कि टैक्स कब लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange तारीख की वह सीमा जिसके दौरान चेक-आउट करने पर टैक्स लागू होगा.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start 0..1 Date तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से असल में असीमित होती है.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी गई है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है.

इन वर्णों का इस्तेमाल किया जा सकता है:

  • M सोमवार के लिए
  • T मंगलवार के लिए
  • W बुधवार के लिए
  • H गुरुवार के लिए
  • F शुक्रवार के लिए
  • S शनिवार के लिए
  • U रविवार के लिए

वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है.

TaxFeeInfo / Property / Taxes / Tax / StayDates 0..1 StayDates

यह एक कंटेनर होता है, जिसमें एक या उससे ज़्यादा तारीख की सीमाएं होती हैं. इनसे यह तय होता है कि टैक्स लागू होगा या नहीं. जैसे, सीज़न के हिसाब से मिलने वाली छूट को शामिल करने के लिए.

TaxFeeInfo / Property / Taxes / Tax / StayDates / @application 1 enum

यह बताता है कि टैक्स कैसे लागू किया जाना चाहिए.

मान्य मान हैं:

  • all: अगर यात्रा की सभी तारीखें, ठहरने की तारीखों से मेल खाती हैं, तो यात्रा की हर रात पर टैक्स लागू होता है.
  • any: अगर यात्रा की किसी तारीख के साथ ठहरने की तारीखों की सीमा में दी गई कोई तारीख मेल खाती है, तो यात्रा की सभी रातों पर टैक्स लागू होता है.
  • overlap: टैक्स सिर्फ़ उन रातों पर लागू होता है जो ठहरने की तारीखों की सीमा में आती हैं.

    ध्यान दें: overlap सिर्फ़ तब मान्य होता है, जब <Period> को night पर सेट किया गया हो.

इस एट्रिब्यूट की वैल्यू हमेशा दी जानी चाहिए.

TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange 1..99 DateRange तारीख की वह सीमा जिसमें टैक्स लागू होना है.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start 0..1 Date तारीख की सीमा की शुरुआत की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, end तारीख से पहले की या उसके बराबर होनी चाहिए. अगर start तय नहीं किया जाता है, तो तारीख की सीमा, शुरू होने की तारीख के हिसाब से असल में असीमित होती है.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date तारीख की सीमा के खत्म होने की तारीख. यह तारीख, प्रॉपर्टी के टाइम ज़ोन के हिसाब से तय होती है. यह तारीख, start तारीख के बराबर या उसके बाद की होनी चाहिए. अगर end की जानकारी नहीं दी जाती है, तो तारीख की सीमा के खत्म होने की तारीख तय नहीं होती.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

तारीख की सीमा में शामिल किए जा सकने वाले हफ़्ते के दिन. अगर जानकारी नहीं दी गई है, तो तारीख की सीमा में सभी दिनों को अनुमति दी जाती है. स्ट्रिंग में मौजूद हर वर्ण, एक दिन के बारे में बताता है. उदाहरण के लिए, "MTWHF" से पता चलता है कि तारीख की सीमा में हफ़्ते के दिनों को अनुमति है.

इन वर्णों का इस्तेमाल किया जा सकता है:

  • M सोमवार के लिए
  • T मंगलवार के लिए
  • W बुधवार के लिए
  • H गुरुवार के लिए
  • F शुक्रवार के लिए
  • S शनिवार के लिए
  • U रविवार के लिए

वर्णों के किसी भी कॉम्बिनेशन का इस्तेमाल किया जा सकता है.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

मान्य मान हैं:

  • percent: कुल किराये का प्रतिशत
  • amount: फ़ाइनल किराये में जोड़ने के लिए तय की गई रकम
  • cumulative_percent: यह कुल किराये, टैक्स, और शुल्क का प्रतिशत होता है. यह टैक्स या शुल्क का हिसाब लगाने से पहले इकट्ठा किया जाता है. अगर यह वैल्यू दी गई है, तो <Rank> भी देना ज़रूरी है.
  • <Brackets> और <AgeBrackets> को cumulative_percent के साथ टाइप के तौर पर तय नहीं किया जा सकता.

TaxFeeInfo / Property / Taxes / Tax / Basis 1 enum

मान्य मान हैं:

  • room: <Amount> को कमरे पर लागू किया जाता है.
  • person: <Amount> हर व्यक्ति के हिसाब से लागू होता है. यह वैल्यू सिर्फ़ तब लागू होती है, जब <Type> को 'राशि' पर सेट किया गया हो.
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

मान्य मान हैं:

  • stay: <Amount> को होटल में ठहरने के कुल किराये में जोड़ दिया जाता है.
  • night: <Amount> को हर रात के हिसाब से जोड़ा जाता है.
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string टैक्स के लिए तीन अक्षरों वाला मुद्रा कोड (उदाहरण के लिए: USD).

ध्यान दें: अगर <Currency> की वैल्यू नहीं दी गई है, लेकिन <Amount> की वैल्यू दी गई है, तो <Currency> की वैल्यू डिफ़ॉल्ट रूप से मूल किराये की मुद्रा में सेट हो जाती है.

TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float टैक्स का प्रतिशत या रकम.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights यह वैल्यू सिर्फ़ तब लागू होती है, जब <Type> को amount पर और <Period> को night पर सेट किया गया हो.

इससे यह तय किया जाता है कि टैक्स कितनी रातों के लिए लागू किया जा सकता है.

max या excluded में से किसी एक को तय करें, लेकिन दोनों को नहीं.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 integer <ApplicableNights max="N"> से पता चलता है कि पहली N रातों के बाद की रातों को शामिल नहीं किया जाना चाहिए.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 integer <ApplicableNights excluded="N"> से पता चलता है कि पहली N रातों को शामिल नहीं किया जाना चाहिए.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay 0..1 LengthOfStay इसमें, ठहरने की अवधि की सीमाएं तय की जाती हैं. इस सीमा के अंदर ही यह टैक्स लागू किया जा सकता है. अगर ठहरने की अवधि, कम से कम और ज़्यादा से ज़्यादा सीमा से बाहर है, तो टैक्स नहीं लगाया जाता.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min 0..1 integer टैक्स लागू करने के लिए, होटल में कम से कम कितनी रातें ठहरना ज़रूरी है. अगर इसके बारे में जानकारी नहीं दी गई है, तो कोई भी कम से कम वैल्यू नहीं होती.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max 0..1 integer टैक्स लागू करने के लिए, होटल में ज़्यादा से ज़्यादा कितनी रातें ठहरने की अनुमति है. अगर इसके बारे में जानकारी नहीं दी गई है, तो कोई ज़्यादा से ज़्यादा सीमा तय नहीं की गई है.
TaxFeeInfo / Property / Taxes / Tax / Brackets 0..1 Brackets एक या उससे ज़्यादा <Bracket> एलिमेंट के लिए कंटेनर. यह लगातार और एक-दूसरे से अलग टैक्स ब्रैकेट का सेट तय करता है. उदाहरण के लिए: भारत में जीएसटी के स्लैब के हिसाब से लगने वाले टैक्स.

यह एलिमेंट सिर्फ़ तब मान्य होता है, जब <Period> को night पर सेट किया गया हो और <Amount> की वैल्यू न दी गई हो.

TaxFeeInfo / Property / Taxes / Tax / Brackets / @base_amount 0..1 float टैक्स की दर या टैक्स की रकम, जो पहली ब्रैकट की starts_at वैल्यू से कम रात के किराये पर लागू होती है.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket 1..n Bracket रात के हिसाब से तय किए गए किराये के आधार पर, टैक्स ब्रैकेट तय करता है.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @starts_at 1 float

यह टैक्स ब्रैकेट की निचली सीमा तय करता है. ऊपरी सीमा, इसके बाद वाले ब्रैकेट के starts_at फ़ील्ड में दी गई है. आखिरी ब्रैकेट के लिए कोई ऊपरी सीमा नहीं होती.

टैक्स ब्रैकेट तब लागू होता है, जब रात के हिसाब से तय किया गया किराया, ब्रैकेट की starts_at वैल्यू से ज़्यादा या उसके बराबर हो. साथ ही, यह अगले ब्रैकेट की starts_at वैल्यू से कम हो.

यह वैल्यू 0 से ज़्यादा होनी चाहिए.

TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount 1 float इस टैक्स ब्रैकेट पर लागू होने वाले टैक्स का प्रतिशत या रकम.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets 0..1 AgeBrackets इसमें, होटल में रहने वाले लोगों की उम्र के हिसाब से टैक्स तय करने की सुविधा मिलती है.

यह एलिमेंट सिर्फ़ तब मान्य होता है, जब <Brackets> और <Amount> की वैल्यू नहीं दी गई हो, <Basis> की वैल्यू person पर सेट हो, और <Type> की वैल्यू amount पर सेट हो.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge 0..1 AdultCharge वयस्कों के लिए टैक्स की जानकारी देने वाला कंटेनर.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount 1 float वयस्कों के लिए लागू होने वाला टैक्स.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets एक या उससे ज़्यादा <ChildAgeBracket> एलिमेंट को होल्ड करने के लिए कंटेनर.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..n ChildAgeBracket इससे बच्चों की उम्र सीमा और उस पर लगने वाले टैक्स की रकम तय की जाती है.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer

इससे बच्चे की उम्र की ऊपरी सीमा तय होती है. निचली सीमा, पिछले ब्रैकेट के max_age फ़ील्ड + 1 में दी गई है. ऊपरी और निचली, दोनों सीमाएं शामिल होती हैं. पहले ब्रैकेट की निचली सीमा 0 है.

max_age की वैल्यू 0 से 17 (दोनों शामिल हैं) के बीच होनी चाहिए.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float इस उम्र सीमा के बच्चों पर लागू होने वाला टैक्स.
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries उपयोगकर्ता के उन देशों की सूची के लिए कंटेनर जहां टैक्स शामिल है या शामिल नहीं है. अगर यह मौजूद है, तो टैक्स को सिर्फ़ उन देशों के उपयोगकर्ताओं के लिए शामिल या बाहर रखा जाएगा जिनके बारे में बताया गया है.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum UserCountries स्पेसिफ़िकेशन का टाइप.

मान्य वैल्यू include और exclude हैं.

अगर UserCountries type को include के तौर पर सेट किया जाता है, तो टैक्स सिर्फ़ उन देशों के उपयोगकर्ताओं पर लागू होगा जिनकी जानकारी दी गई है.

वहीं, अगर UserCountries type is exclude है, तो टैक्स सिर्फ़ उन उपयोगकर्ताओं पर लागू होगा जो सूची में शामिल देशों से बाहर के हैं.

अगर UserCountries type को सेट नहीं किया जाता है, तो हम इसे include के तौर पर मानेंगे. साथ ही, टैक्स सिर्फ़ उन देशों के उपयोगकर्ताओं पर लागू होगा जिनकी जानकारी दी गई है.

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country यह UserCountries की सूची में मौजूद किसी एक देश के बारे में बताता है.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string CLDR देश कोड, जैसे कि DE या FR. ध्यान दें कि कुछ देशों के लिए, CLDR देश का कोड और दो अक्षरों वाला आईएसओ देश का कोड एक जैसा नहीं होता. साथ ही, CLDR के क्षेत्र के कोड भी इस्तेमाल नहीं किए जा सकते.
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

यह एक रैंक होती है, जिससे टैक्स या शुल्क को लागू करने का क्रम तय होता है. उदाहरण के लिए, वैल्यू 2 का मतलब है कि टैक्स दूसरे नंबर पर लागू किया गया है. अगर <Type> को cumulative_percent पर सेट किया गया है, तो इस एलिमेंट को हमेशा शामिल करना चाहिए. आम तौर पर, यह क्रम टैक्स और शुल्क, दोनों पर लागू होता है.

<Rank>2</Rank>

टैक्स और शुल्क के लिए, रैंक की डुप्लीकेट वैल्यू इस्तेमाल की जा सकती हैं. हालांकि, इससे टैक्स और शुल्क को मनमाने तरीके से और कुल मिलाकर लागू किया जा सकता है.

इसके अलावा, <Rank> में मौजूद "exclusive" पैरामीटर का इस्तेमाल करके यह बताया जा सकता है कि एक ही रैंक वाले सभी टैक्स और शुल्क, किराये पर लागू होते हैं. डिफ़ॉल्ट वैल्यू false है. साथ ही, एक ही रैंक वाले सभी टैक्स और शुल्क, दर पर मनमाने तरीके से लागू होते हैं. "exclusive" ज़रूरी नहीं है.

अगर exclusive पैरामीटर को true पर सेट किया जाता है, तो <Tax> में लिस्ट किया गया पहला टैक्स या <Fee> में लिस्ट किया गया पहला शुल्क, किराये पर लागू होता है.

<Rank exclusive="true">1</Rank>

शुल्क से पहले टैक्स लागू होते हैं. इसलिए, अगर टैक्स और शुल्क की रैंक एक जैसी है और शुल्क को "exclusive" से true पर सेट किया गया है, तो भी टैक्स पहले लागू होगा. टैक्स और शुल्क को उसी क्रम में लिस्ट किया जाना चाहिए जिस क्रम में उन्हें लागू किया जाना है. यह सबसे सही तरीका है.

एक ही रैंक के सभी टैक्स और शुल्क शामिल करने के लिए, exclusive को true के तौर पर सेट न करें.

रैंक न किए गए टैक्स और शुल्क, रैंक की गई सभी एंट्री से पहले लागू किए जाते हैं.

<Rank> की वैल्यू 1 से 99 के बीच होनी चाहिए.

TaxFeeInfo / Property / Fees 0..1 Fees एक या उससे ज़्यादा <Fee> एलिमेंट के लिए कंटेनर.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

प्रॉपर्टी पर लागू होने वाला शुल्क.

<Tax> के सभी चाइल्ड एलिमेंट, <Fee> के लिए भी उसी सिंटैक्स के साथ काम करते हैं.

उदाहरण

हर प्रॉपर्टी के लिए, ज़्यादा से ज़्यादा 300 टैक्स और शुल्क हो सकते हैं. किसी प्रॉपर्टी से टैक्स और शुल्क हटाने के लिए, "टैक्स हटाना" उदाहरण देखें.

बेसिक मैसेज

TaxFeeInfo का सामान्य मैसेज:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-05-18T16:20:00-04:00"
            id="12345678"
            partner="partner_key">
  <Property>
    <ID>Property_1</ID>
    <Taxes>
      <Tax>
        <Type>percent</Type>
        <Basis>room</Basis>
        <Period>stay</Period>
        <Amount>10.00</Amount>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>amount</Type>
        <Basis>person</Basis>
        <Period>night</Period>
        <Currency>USD</Currency>
        <Amount>5.00</Amount>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

टैक्स मिटाना

बताए गए होटल के लिए, प्रॉपर्टी-लेवल पर लगने वाले सभी टैक्स और शुल्क मिटाएं:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-06-16T16:20:00-04:00"
            id="12345678"
            partner="partner_key">
  <Property action="overlay"/>
    <ID>Property_1</ID>
  </Property>
</TaxFeeInfo>

स्लैब टैक्स

भारत में जीएसटी के स्लैब के हिसाब से टैक्स लगता है. यह टैक्स, एक रात ठहरने के किराये के हिसाब से लगाया जाता है. टैक्स के स्लैब ये हैं:

  • अगर रात का किराया 1,000 रुपये या उससे कम है, तो कोई टैक्स नहीं लगेगा.
  • अगर रात के हिसाब से किराया 1,000 से ज़्यादा और 7,500 के बराबर या उससे कम है, तो 12% टैक्स लगेगा.
  • अगर रात का किराया 7,500 से ज़्यादा है, तो 18% टैक्स लगेगा.
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-05-18T16:20:00-04:00"
            id="12345678"
            partner="partner_key">
  <Property>
    <ID>Property_1</ID>
    <Taxes>
      <Tax>
        <Type>percent</Type>
        <Basis>room</Basis>
        <Period>night</Period>
        <Brackets base_amount="0">
          <Bracket starts_at="1000.01" amount="12"/>
          <Bracket starts_at="7500.01" amount="18"/>
        </Brackets>
      </Tax>
    </Taxes>
  </Property>
</TaxFeeInfo>

उम्र के हिसाब से टैक्स

कमरे में रहने वाले लोगों की उम्र के हिसाब से टैक्स लागू होते हैं:

  • वयस्क यात्रियों के लिए 20 डॉलर का टैक्स.
  • 11 से 17 साल के बच्चों के लिए 10 डॉलर का टैक्स.
  • 0 से 10 साल के बच्चों के लिए, 5 डॉलर का टैक्स लगता है.
<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-05-18T16:20:00-04:00"
            id="12345678"
            partner="partner_key">
  <Property>
    <ID>Property_1</ID>
    <Taxes>
      <Tax>
        <Type>amount</Type>
        <Basis>person</Basis>
        <Period>night</Period>
        <AgeBrackets>
          <AdultCharge amount="20"/>
          <ChildAgeBrackets>
            <ChildAgeBracket max_age="10" amount="5"/>
            <ChildAgeBracket max_age="17" amount="10"/>
          </ChildAgeBrackets>
        </AgeBrackets>
      </Tax>
    </Taxes>
  </Property>
</TaxFeeInfo>

ठहरने की तारीखों की रेंज ओवरलैप हो रही हैं

अगर ठहरने की तारीख की एक से ज़्यादा ऐसी रेंज तय की गई हैं जो एक-दूसरे से ओवरलैप हो रही हैं, तो ठहरने की दी गई तारीख को सिर्फ़ एक रेंज के हिसाब से सही होना चाहिए. सभी रेंज के हिसाब से सही होना ज़रूरी नहीं है. ठहरने की तारीख की सीमाएं, शुरू और खत्म होने की एक ही सीमा में तय की जानी चाहिए.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2025-03-12T10:59:49+01:00"
            id="12345678"
            partner="partner_key">
  <Property action="overlay">
    <ID>987654</ID>
      <Taxes>
        <Tax>
          <Type>amount</Type>
          <Basis>person</Basis>
          <Period>night</Period>
          <RoomTypes>
            <RoomType id="RoomID_1"/>
            <RoomType id="RoomID_2"/>
          </RoomTypes>
          <StayDates application="any">
            <DateRange start="2025-06-16"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>50</Amount>
        </Tax>
      </Taxes>
      <Fees>
        <Fee>
          <Type>amount</Type>
          <Basis>room</Basis>
          <Period>stay</Period>
          <StayDates application="any">
            <DateRange start="2025-03-12" end="2025-03-18"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>200</Amount>
        </Fee>
        <Fee>
          <Type>amount</Type>
          <Basis>room</Basis>
          <Period>stay</Period>
          <StayDates application="any">
            <DateRange start="2025-03-19"/>
          </StayDates>
          <Currency>USD</Currency>
          <Amount>300</Amount>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

रैंक एक्सक्लूसिव के साथ कई टैक्स और शुल्क

यहां कई टैक्स और शुल्क का उदाहरण दिया गया है. इसमें exclusive="true" और अलग-अलग रैंक शामिल हैं. किराये पर ये टैक्स और शुल्क लागू होने चाहिए:

  • पहले नंबर पर मौजूद exclusive="true" के लिए, 5% ऑक्यूपेंसी टैक्स.
  • रूम सर्विस पर लगने वाला 10 डॉलर का टैक्स, जिसकी रैंक 1 है.
  • सफ़ाई के लिए 5,000 रुपये का शुल्क, जिसकी रैंक 2 exclusive="true" है.
  • सुविधाओं के लिए दो प्रतिशत का शुल्क, जिसकी रैंक 3 है.

टैक्स और शुल्क, <Rank> के आधार पर इस क्रम में लागू किए जाते हैं:

  1. सबसे पहले, exclusive="true" और रैंक 1 के साथ ऑक्यूपेंसी टैक्स लागू होता है.
  2. कमरे की सेवा पर लगने वाला टैक्स, रैंक 1 के साथ लागू नहीं होगा, क्योंकि पहले से लागू टैक्स में यह शामिल नहीं है.
  3. इसके बाद, exclusive="true" और रैंक 2 के साथ सफ़ाई का शुल्क लागू होता है.
  4. तीसरे रैंक पर मौजूद सुविधाओं का शुल्क, दूसरे रैंक पर मौजूद साफ़-सफ़ाई के शुल्क के बाद लागू होता है.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfo timestamp="2024-02-29T12:00:00Z"
            id="tax-fee-id"
            partner="partner_key">
  <Property action="overlay">
    <ID>765432</ID>
    <Taxes>
      <Tax>
        <Type>percent</Type>
        <Amount>5</Amount>
        <Period>stay</Period>
        <Basis>room</Basis>
        <Rank exclusive="true">1</Rank>
      </Tax>
      <Tax>
        <Type>amount</Type>
        <Amount>10</Amount>
        <Period>night</Period>
        <Basis>room</Basis>
        <Currency>USD</Currency>
        <Rank>1</Rank>
      </Tax>
    </Taxes>
    <Fees>
      <Fee>
        <Type>amount</Type>
        <Amount>50</Amount>
        <Period>night</Period>
        <Basis>room</Basis>
        <Currency>USD</Currency>
        <Rank exclusive="true">2</Rank>
      </Fee>
      <Fee>
        <Type>percent</Type>
        <Amount>2</Amount>
        <Period>stay</Period>
        <Basis>room</Basis>
        <Rank>3</Rank>
      </Fee>
    </Fees>
  </Property>
</TaxFeeInfo>

जवाब

सिंटैक्स

TaxFeeInfoResponse मैसेज में इस सिंटैक्स का इस्तेमाल किया जाता है:

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse 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>
</TaxFeeInfoResponse>

एलिमेंट और एट्रिब्यूट

TaxFeeInfoResponse मैसेज में ये एलिमेंट और एट्रिब्यूट शामिल होते हैं:

Element / @Attribute आवृत्तियां टाइप ब्यौरा
TaxFeeInfoResponse 1 Complex element यह रूट एलिमेंट है. इससे पता चलता है कि TaxFeeInfo का अनुरोध करने वाला मैसेज मिला है या नहीं. अगर मिला है, तो उसमें कोई समस्या है या नहीं.
TaxFeeInfoResponse / @timestamp 1 DateTime इस मैसेज को बनाने की तारीख और समय.
TaxFeeInfoResponse / @id 1 string यह TaxFeeInfo मैसेज से मिला यूनीक आइडेंटिफ़ायर है.
TaxFeeInfoResponse / @partner 1 string यह मैसेज किस पार्टनर खाते के लिए है.
TaxFeeInfoResponse / Success 0..1 Success इससे पता चलता है कि TaxFeeInfo मैसेज को बिना किसी चेतावनी, गड़बड़ी या समस्या के प्रोसेस कर लिया गया है.

हर मैसेज में <Success> या <Issues> मौजूद होता है.

TaxFeeInfoResponse / Issues 0..1 Issues यह एक कंटेनर है. इसमें TaxFeeInfo मैसेज को प्रोसेस करते समय हुई एक या उससे ज़्यादा समस्याओं की जानकारी होती है.

हर मैसेज में <Success> या <Issues> मौजूद होता है.

TaxFeeInfoResponse / Issues / Issue 1..n Issue TaxFeeInfo मैसेज को प्रोसेस करते समय मिली किसी चेतावनी, गड़बड़ी या समस्या की जानकारी. इन समस्याओं के बारे में जानकारी, फ़ीड की स्थिति से जुड़ी गड़बड़ी के मैसेज में देखी जा सकती है.
TaxFeeInfoResponse / Issues / Issue / @code 1 integer समस्या के लिए आइडेंटिफ़ायर.
TaxFeeInfoResponse / Issues / Issue / @status 1 enum

समस्या किस तरह की है.

मान्य वैल्यू warning, error, और failure हैं .

उदाहरण

पुष्टि हो गई

यहां TaxFeeInfo मैसेज को प्रोसेस करने के बाद मिला जवाब दिया गया है.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="2024-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</TaxFeeInfoResponse>

समस्याएं

यहां TaxFeeInfo मैसेज का जवाब दिया गया है. इस मैसेज को गड़बड़ियों की वजह से प्रोसेस नहीं किया जा सका.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="2024-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TaxFeeInfoResponse>