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> در «فید فهرست هتل» مطابقت داشته باشد. «شناسه هتل» در مرکز هتل نیز فهرست شده است.
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> در پیام تراکنش (داده‌های دارایی) نگاشت می‌شود. حداکثر تعداد نویسه‌های مجاز ۵۰ است.
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> تنظیم شده است مطابقت دارد. حداکثر تعداد نویسه مجاز ۵۰ است.
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 دسته مالیاتی بعدی باشد، دسته مالیاتی فعال است.

این مقدار باید دقیقاً بزرگ‌تر از ۰ باشد.

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 براکت قبلی + ۱ مشخص شده است. حد بالا و حد پایین هر دو فراگیر هستند. کران پایین برای براکت اول ۰ است.

‫max_age باید در محدوده ۰ تا ۱۷ (فراگیر) باشد.

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

رتبه‌ای که ترتیب اعمال مالیات یا کارمزد را مشخص می‌کند. برای مثال، مقدار ۲ یعنی مالیات در مرحله دوم اعمال می‌شود. اگر <Type> روی cumulative_percent تنظیم شده باشد، این عنصر باید همیشه مشخص شود. به‌طور کلی، این ترتیب هم برای مالیات‌ها و هم برای کارمزدها اعمال می‌شود.

<Rank>2</Rank>

مقادیر رتبه تکراری در مالیات‌ها و کارمزدها مجاز است اما این امر می‌تواند منجر به رفتار تعریف‌نشده‌ای شود که در آن مالیات‌ها و کارمزدها به‌صورت دلخواه و تجمعی اعمال می‌شوند.

یا از پارامتر "exclusive" در <Rank> استفاده کنید تا نشان دهید که همه مالیات‌ها و کارمزدهای هم‌رتبه روی نرخ اعمال می‌شوند. مقدار پیش‌فرض false است و همه مالیات‌ها و کارمزدهای دارای رتبه یکسان به‌صورت دلخواه روی نرخ اعمال می‌شوند. "exclusive" اختیاری است.

اگر پارامتر exclusive روی true تنظیم شده باشد، فقط اولین مالیات فهرست‌شده در <Tax> یا اولین کارمزد فهرست‌شده در <Fee> برای نرخ اعمال می‌شود.

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

مالیات‌ها قبل‌از کارمزدها اعمال می‌شوند؛ بنابراین، اگر مالیات و کارمزد رتبه یکسانی داشته باشند و کارمزد "exclusive" روی true تنظیم شده باشد، مالیات همچنان اول اعمال می‌شود. بهترین روال این است که مالیات‌ها و کارمزدها به‌ترتیبی که باید اعمال شوند فهرست شوند.

برای گنجاندن همه مالیات‌ها و کارمزدهای هم‌رتبه، از تنظیم کردن exclusive روی true خودداری کنید.

مالیات‌ها و کارمزدهای بدون رتبه قبل‌از همه ورودی‌های رتبه‌بندی‌شده اعمال می‌شوند.

<Rank> باید در محدوده ۱ تا ۹۹ (فراگیر) باشد.

TaxFeeInfo / Property / Fees 0..1 Fees ظرفی برای یک یا چند عنصر <Fee>.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

هزینه جداگانه‌ای که برای ملک اعمال می‌شود.

همه عناصر فرزند <Tax> نیز برای <Fee> با همان نحو پشتیبانی می‌شوند.

مثال‌ها

حد مجاز برای هر ملک ۳۰۰ مالیات و کارمزد است. برای برداشتن مالیات و کارمزد از ملک، به نمونه «حذف مالیات» مراجعه کنید.

پیام پایه

پیام 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>

مالیات پلکانی

مالیات کالا و خدمات هند، براساس نرخ‌های شبانه اعمال می‌شود. گروه‌های مالیاتی عبارتند از:

  • اگر نرخ شبانه کمتر یا مساوی ۱۰۰۰ باشد، مالیات ندارد.
  • ‫۱۲٪ مالیات اگر نرخ شبانه بیشتر از ۱۰۰۰ و کمتر یا مساوی ۷۵۰۰ باشد.
  • ۱۸٪ مالیات اگر نرخ شبانه بیشتر از ۷۵۰۰ باشد.
<?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>

مالیات براساس سن

مالیات براساس سن ساکنان اعمال می‌شود:

  • ۲۰ دلار مالیات برای ساکنان بزرگسال.
  • ۱۰ دلار مالیات برای کودکان ۱۱ تا ۱۷ سال.
  • ۵ دلار مالیات برای کودکان بین ۰ تا ۱۰ سال.
<?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".
  • مالیات سرویس اتاق ۱۰ دلاری با رتبه ۱.
  • هزینه نظافت ۵۰ دلار امریکا با رتبه ۲ exclusive="true".
  • ‫۲٪ هزینه امکانات رفاهی با رتبه ۳.

ترتیب زمانی اعمال مالیات‌ها و کارمزدها براساس <Rank> عبارت است از:

  1. مالیات اشغال با exclusive="true" و رتبه ۱ ابتدا اعمال می‌شود.
  2. مالیات خدمات اتاق با رتبه ۱ اعمال نخواهد شد چون مالیات اشغال قبلی انحصاری است.
  3. هزینه نظافت با exclusive="true" و رتبه ۲ در مرحله بعد اعمال می‌شود.
  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 دارای عناصر و مشخصه‌های زیر است:

عنصر / @مشخصه رویدادها نوع شرح
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>