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

الطلبات

البنية

تستخدم الرسالة 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>
        <Rank>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>
        <Rank>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 تحدّد خطة أسعار. يتم تحديد خطة الأسعار من خلال مجموعة من الحزمة والأسعار ومدى التوفّر، كما هو محدّد في رسائل المعاملات (بيانات الفندق) و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> على amount.
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، فلن تسري الضريبة إلا على المستخدمين خارج البلدان المدرَجة.

وفي حال ترك سمة Userالبُلدان 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> في النطاق من 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>

الضريبة المُعدَّلة

ضريبة السلع والخدمات الهندية، التي تُطبَّق استنادًا إلى الأسعار لكل ليلة فئتا الضريبة هما:

  • لا يتم تحصيل ضريبة إذا كان السعر الفندقي لليلة أقل من أو يساوي 1000.
  • 12٪ إذا كان سعر الليلة أكبر من 1000 وأقل من 7500 أو مساويًا له.
  • 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>

الردود

البنية

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

العنصر / @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>