معلومات الضرائب

الطلبات

البنية

تستخدم الرسالة 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 على العناصر والسمات التالية:

العنصر / @السمة عدد مرات الظهور النوع الوصف
TaxFeeInfo 1 Complex element العنصر الجذر لرسالة تحدّد الضرائب والرسوم الخاصة بمكان إقامة واحد
TaxFeeInfo / @timestamp 1 DateTime تاريخ إنشاء هذه الرسالة ووقته.
TaxFeeInfo / @id 1 string معرّف فريد لرسالة الطلب هذه. يتم عرض هذه القيمة في رسالة الردّ. الأحرف المسموح بها هي a-z وA-Z و0-9 و_ (شرطة سفلية) و- (شرطة).
TaxFeeInfo / @partner 1 string حساب الشريك لهذه الرسالة قيمة السلسلة هذه هي قيمة "مفتاح الشريك" المدرَجة في صفحة إعدادات الحساب في Hotel Center.

ملاحظة: إذا كان لديك نظام خلفي يوفّر خلاصات لعدة حسابات، يجب أن تتطابق هذه القيمة مع قيمة السمة ID المحدّدة في العنصر <RequestorID> من رسالتَي <OTA_HotelRateAmountNotifRQ> و<OTA_HotelAvailNotifRQ> للحساب نفسه.

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 تحدّد هذه السمة نوع الغرفة. يتم تحديد نوع الغرفة في العنصر <RoomData> ضمن الرسالة المعاملة (بيانات المنشأة)، ويتم تحديد نوع الغرفة باستخدام RoomID. (تتم أيضًا الإشارة إلى قيمة <RoomID> الخاصة به من خلال السمة InvTypeCode في رسائل OTA_HotelRateAmountNotifRQ).
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 تحدّد هذه السمة خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزم والأسعار ومدى التوفّر، كما هو محدّد في الرسائل Transaction (Property Data) وOTA_HotelRateAmountNotifRQ وOTA_HotelAvailNotifRQ، وكما هو محدّد بواسطة PackageID.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string تمثّل هذه السمة المعرّف الفريد لخطة الأسعار. ترتبط هذه القيمة بقيمة PackageID في رسالة المعاملة (بيانات المنشأة) ضمن <PackageData>، وبقيمة RatePlanCode التي يتم ضبطها ضمن السمة <StatusApplicationControl> في الرسالتين <OTA_HotelRateAmountNotifRQ> و<OTA_HotelAvailNotifRQ>. الحد الأقصى لعدد الأحرف المسموح به هو 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 هي 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 لا يتطابق مع رمز البلد المكوّن من حرفَين وفقًا لمعيار ISO في بعض البلدان. بالإضافة إلى ذلك، لا تتوفّر رموز مناطق CLDR.
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

ترتيب يحدّد ترتيب تطبيق الضريبة أو الرسوم. على سبيل المثال، تعني القيمة 2 أنّه يتم تطبيق الضريبة ثانيًا. يجب دائمًا تحديد هذا العنصر إذا تم ضبط <Type> على cumulative_percent. بشكل عام، يتم تطبيق هذا الترتيب على كل من الضرائب والرسوم.

<Rank>2</Rank>

يُسمح بتكرار قيم الترتيب بين الضرائب والرسوم، ولكن قد يؤدي ذلك إلى سلوك غير محدّد يتم فيه تطبيق الضرائب والرسوم بطريقة عشوائية وتراكمية.

بدلاً من ذلك، استخدِم المَعلمة "exclusive" ضمن <Rank> للإشارة إلى أنّه يتم تطبيق جميع الضرائب والرسوم من الترتيب نفسه على السعر. القيمة التلقائية هي 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 ريال سعودي أو مساويًا له.
  • ضريبة بنسبة% 12 إذا كان السعر الليلي أكبر من 1,000 وأقل من أو يساوي 7,500
  • ضريبة بنسبة% 18 إذا كان السعر الليلي أكبر من 7,500
<?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 دولار أمريكي للبالغين المقيمين
  • ضريبة بقيمة 10 دولار أمريكي للأطفال الذين تتراوح أعمارهم بين 11 و17 عامًا
  • ضريبة بقيمة 5 دولار أمريكي للأطفال الذين تتراوح أعمارهم بين 0 و10 سنوات
<?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" وترتيبات مختلفة. يجب تطبيق الضرائب والرسوم التالية على السعر:

  • ضريبة إقامة بنسبة% 5 مع الترتيب 1 exclusive="true"
  • ضريبة خدمة الغرف بقيمة 10 دولار أمريكي مع الترتيب 1
  • رسم تنظيف بقيمة 50 دولارًا أمريكيًا مع الترتيب 2 exclusive="true"
  • رسوم وسائل الراحة بنسبة% 2 مع الترتيب 3

الترتيب الزمني الذي يتم فيه تطبيق الضرائب والرسوم استنادًا إلى <Rank> هو:

  1. يتم تطبيق ضريبة الإشغال التي تبلغ قيمتها exclusive="true" والمرتبة 1 أولاً.
  2. لن يتم تطبيق ضريبة خدمة الغرف التي تحمل الترتيب 1 لأنّ ضريبة الإقامة السابقة حصرية.
  3. بعد ذلك، يتم تطبيق رسوم التنظيف مع exclusive="true" والترتيب 2.
  4. يتم تطبيق رسوم وسائل الراحة ذات الترتيب 3 بعد رسوم التنظيف ذات الترتيب 2.

<?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 العناصر والسمات التالية:

العنصر / @السمة عدد مرات الظهور النوع الوصف
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>