TaxFeeInfo

الطلبات

البنية

تستخدم رسالة 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>