ข้อมูลภาษี

คำขอ

ไวยากรณ์

ข้อความ 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 บัญชีพาร์ทเนอร์สำหรับข้อความนี้ ค่าของสตริงนี้คือค่า "Partner key" ซึ่งแสดงอยู่ที่ หน้าการตั้งค่าบัญชีใน 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> อย่างน้อย 1 รายการ
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> ของข้อความ Transaction (Property Data) โดยใช้ RoomID เป็นตัวระบุ (นอกจากนี้ ค่า <RoomID> ยังอ้างอิงโดยแอตทริบิวต์ InvTypeCode ในข้อความ OTA_HotelRateAmountNotifRQ)
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string ตัวระบุที่ไม่ซ้ำกันสำหรับห้องพัก (ประเภทห้องพัก) ค่านี้จะแมปกับ <RoomID> ในข้อความ Transaction (Property Data) จำนวนอักขระสูงสุดที่อนุญาตคือ 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 ในข้อความ Transaction (Property Data) ของ <PackageData> และค่า RatePlanCode ที่ตั้งไว้ภายใต้แอตทริบิวต์ <StatusApplicationControl> ในข้อความ <OTA_HotelRateAmountNotifRQ> และ <OTA_HotelAvailNotifRQ> จำนวนอักขระสูงสุดที่อนุญาตคือ 50 ตัว
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดเมื่อต้องทำการจองเพื่อให้เรียกเก็บภาษีได้
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 คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดเมื่อต้องเลือกวันเช็คอินเพื่อให้เรียกเก็บภาษีได้
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 คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดเมื่อต้องเลือกวันเช็คเอาต์เพื่อให้เรียกเก็บภาษีได้
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

คอนเทนเนอร์สำหรับช่วงวันที่อย่างน้อย 1 ช่วงซึ่งกำหนดว่าจะเรียกเก็บภาษีหรือไม่ เช่น เพื่อรองรับส่วนลดตามฤดูกาล

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> ใช้กับผู้เข้าพัก 1 คน ค่านี้จะมีผลก็ต่อเมื่อตั้งค่า <Type> เป็นจำนวนเงิน
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

ค่าที่ใช้ได้มีดังนี้

  • stay: ระบบจะเพิ่ม <Amount> ลงในราคารวมของการเข้าพัก
  • night: ระบบจะเพิ่ม <Amount> ต่อคืนที่เข้าพัก
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string รหัสสกุลเงิน 3 ตัวอักษรสำหรับภาษี (เช่น USD)

หมายเหตุ: หากไม่ได้ระบุ <Currency> แต่ระบุ <Amount> ไว้ ค่า <Currency> จะมีค่าเริ่มต้นเป็นสกุลเงินของอัตราฐาน

TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float มูลค่าของเปอร์เซ็นต์หรือจำนวนภาษี
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights ค่านี้จะมีผลก็ต่อเมื่อตั้งค่า <Type> เป็นจำนวนเงิน และตั้งค่า <Period> เป็นระยะเวลาที่ค้างคืน

จำกัดจำนวนคืนที่เรียกเก็บภาษีได้

ระบุ 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> อย่างน้อย 1 รายการ กำหนดช่วงชั้นการเสียภาษีแบบต่อเนื่องและไม่ทับซ้อนกัน เช่น เกณฑ์ภาษี GST ของอินเดีย

องค์ประกอบนี้จะใช้ได้ก็ต่อเมื่อตั้งค่า <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> อย่างน้อย 1 รายการ
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..n ChildAgeBracket กำหนดช่วงอายุสำหรับเด็กและจำนวนภาษีที่เกี่ยวข้อง
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer

กำหนดขอบเขตสูงสุดของอายุบุตรหลาน ส่วนขอบเขตล่างจะอยู่ในช่อง max_age ของช่วงชั้นการเสียภาษีก่อนหน้า + 1 ทั้งขอบเขตบนและขอบเขตล่างรวมอยู่ด้วย ขอบเขตล่างสำหรับ ช่วงชั้นแรกคือ 0

max_age ต้องอยู่ในช่วง 0 ถึง 17 (รวม)

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float จำนวนภาษีคงที่ที่ใช้กับเด็กในช่วงอายุนี้
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries คอนเทนเนอร์สำหรับแสดงประเทศของผู้ใช้ที่รวมหรือยกเว้นภาษี หากมี ระบบจะรวมหรือ ไม่รวมภาษีสำหรับผู้ใช้จากประเทศที่ระบุเท่านั้น
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum ประเภทของข้อกำหนด UserCountries

ค่าที่ใช้ได้คือ include และ exclude

หากตั้งค่า UserCountries type เป็น include ระบบจะเรียกเก็บภาษีจากผู้ใช้ในประเทศที่ ระบุไว้เท่านั้น

แต่หาก UserCountries type is exclude ภาษีจะใช้กับผู้ใช้ที่อยู่นอก ประเทศที่ระบุไว้เท่านั้น

หากไม่ได้ตั้งค่า UserCountries type เราจะถือว่าเป็นการตั้งค่า include และจะเรียกเก็บภาษีจากผู้ใช้ในประเทศที่ ระบุไว้เท่านั้น

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country กำหนดประเทศ 1 ประเทศในรายการ UserCountries
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string รหัสประเทศ CLDR เช่น DE หรือ FR โปรดทราบว่ารหัสประเทศ CLDR ไม่เหมือนกับรหัสประเทศ ISO แบบ 2 ตัวอักษรในบางประเทศ นอกจากนี้ ระบบยังไม่รองรับรหัสภูมิภาค CLDR ด้วย
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

อันดับที่ระบุลำดับการใช้ภาษีหรือค่าธรรมเนียม เช่น ค่า 2 หมายความว่าระบบจะใช้ภาษีเป็นอันดับที่ 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> อย่างน้อย 1 รายการ
TaxFeeInfo / Property / Fees / Fee 1..n Fee

ค่าธรรมเนียมรายบุคคลที่ที่พักเรียกเก็บ

ระบบรองรับองค์ประกอบย่อยทั้งหมดของ <Tax> สำหรับ <Fee> ที่มีไวยากรณ์เดียวกันด้วย

ตัวอย่าง

ที่พัก 1 แห่งมีภาษีและค่าธรรมเนียมได้ไม่เกิน 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>

เกณฑ์ภาษี

ใช้เกณฑ์ภาษี GST ของอินเดียในการคำนวณตามราคาต่อคืน โดยช่วงชั้นการเสียภาษีมีดังต่อไปนี้

  • ไม่ต้องเสียภาษีหากราคาต่อคืนต่ำกว่าหรือเท่ากับ 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"
  • ภาษีรูมเซอร์วิส 100 บาทที่มีอันดับ 1
  • ค่าธรรมเนียมการทำความสะอาด 500 บาทที่มีอันดับ 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 คอนเทนเนอร์สำหรับปัญหาอย่างน้อย 1 รายการที่พบขณะประมวลผลข้อความ 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>