ข้อมูลภาษี

คำขอ

ไวยากรณ์

ข้อความ 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 เป็น 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
  • ค่าธรรมเนียมการทำความสะอาด 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>