InfoPajak

Permintaan

Sintaksis

Pesan TaxFeeInfo menggunakan sintaksis berikut:

<?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>

Elemen dan atribut

Pesan TaxFeeInfo memiliki elemen dan atribut berikut:

Element / @Attribute Kejadian Jenis Deskripsi
TaxFeeInfo 1 Complex element Elemen root untuk pesan yang menentukan pajak dan biaya untuk satu properti.
TaxFeeInfo / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
TaxFeeInfo / @id 1 string ID unik untuk pesan permintaan ini. Nilai ini ditampilkan di pesan respons. Karakter yang diizinkan adalah a-z, A-Z, 0-9, _ (garis bawah), dan - (tanda hubung).
TaxFeeInfo / @partner 1 string Akun partner untuk pesan ini. Nilai string ini adalah nilai "Kunci partner" yang tercantum di halaman Setelan akun di Pusat Pengelolaan Hotel.

Catatan: Jika Anda memiliki backend yang menyediakan feed untuk beberapa akun, nilai ini harus cocok dengan nilai atribut ID yang ditentukan di elemen <RequestorID> pesan <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ> Anda untuk akun yang sama.

TaxFeeInfo / Property 1..n Property Container untuk menentukan pajak dan biaya untuk satu properti.
TaxFeeInfo / Property / @action 0..1 string Menentukan cara update diterapkan. Hanya overlay yang didukung, dan default-nya adalah overlay. Semua Taxes dan Fees sebelumnya untuk properti ini akan dihapus sebelum pembaruan ini diterapkan.
TaxFeeInfo / Property / ID 1 string ID unik untuk properti. Nilai ini harus cocok dengan ID Hotel yang ditentukan menggunakan <id> di elemen <listing> di Feed Daftar Hotel. ID Hotel juga tercantum di Pusat Pengelolaan Hotel.
TaxFeeInfo / Property / Taxes 0..1 Taxes Container untuk satu atau beberapa elemen <Tax>.
TaxFeeInfo / Property / Taxes / Tax 1..n Tax Pajak individual yang berlaku untuk properti.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes 0..1 RoomTypes Container untuk daftar jenis kamar yang dikenai pajak. Pajak berlaku untuk setiap <RoomType> yang ditentukan. Jika <RoomTypes> tidak ditentukan, pajak akan berlaku untuk semua kamar.
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType 1..n RoomType Menentukan jenis kamar. Jenis kamar ditentukan di elemen <RoomData> dalam pesan Transaksi (Data Properti), dan diidentifikasi menggunakan RoomID. (Nilai <RoomID>-nya juga direferensikan oleh atribut InvTypeCode dalam pesan OTA_HotelRateAmountNotifRQ.)
TaxFeeInfo / Property / Taxes / Tax / RoomTypes / RoomType / @id 1 string ID unik untuk inventaris (jenis kamar). Nilai ini dipetakan ke <RoomID> dalam pesan Transaksi (Data Properti). Jumlah karakter maksimum yang diizinkan adalah 50.
TaxFeeInfo / Property / Taxes / Tax / RatePlans 0..1 RatePlans Container untuk daftar paket tarif yang menerapkan pajak. Jika <RatePlans> tidak ditentukan, pajak akan berlaku untuk semua paket tarif.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan 1..n RatePlan Menentukan paket tarif. Paket tarif ditentukan oleh kombinasi paket, tarif, dan ketersediaan, seperti yang ditentukan dalam pesan Transaksi (Data Properti), OTA_HotelRateAmountNotifRQ, dan OTA_HotelAvailabilityNotifRQ, serta seperti yang diidentifikasi oleh PackageID.
TaxFeeInfo / Property / Taxes / Tax / RatePlans / RatePlan / @id 1 string ID unik untuk paket tarif. Nilai ini dipetakan ke nilai PackageID di <PackageData> pesan Transaksi (Data Properti) dan nilai RatePlanCode yang ditetapkan di bawah atribut <StatusApplicationControl> dalam pesan <OTA_HotelRateAmountNotifRQ> dan <OTA_HotelAvailNotifRQ>. Jumlah karakter maksimum yang diizinkan adalah 50.
TaxFeeInfo / Property / Taxes / Tax / BookingDates 0..1 BookingDates Container untuk satu atau beberapa rentang tanggal yang menentukan waktu pemesanan harus dilakukan agar pajak diterapkan.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange 1..99 DateRange Rentang tanggal yang menentukan kapan pemesanan harus dilakukan agar pajak dapat diterapkan.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @start 0..1 Date Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / BookingDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, semua hari diizinkan dalam rentang tanggal tersebut. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

TaxFeeInfo / Property / Taxes / Tax / CheckinDates 0..1 CheckinDates Container untuk satu atau beberapa rentang tanggal yang menentukan kapan check in harus dilakukan agar pajak diterapkan.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange 1..20 DateRange Rentang tanggal yang menentukan kapan check in harus dilakukan agar pajak diterapkan.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @start 0..1 Date Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / CheckinDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, semua hari diizinkan dalam rentang tanggal tersebut. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

TaxFeeInfo / Property / Taxes / Tax / CheckoutDates 0..1 CheckoutDates Container untuk satu atau beberapa rentang tanggal yang menentukan kapan check out harus dilakukan agar pajak dapat diterapkan.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange 1..20 DateRange Rentang tanggal yang menentukan kapan check out harus dilakukan agar pajak dapat diterapkan.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @start 0..1 Date Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / CheckoutDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, semua hari diizinkan dalam rentang tanggal tersebut. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

TaxFeeInfo / Property / Taxes / Tax / StayDates 0..1 StayDates

Container untuk satu atau beberapa rentang tanggal yang menentukan apakah pajak diterapkan, seperti untuk mengakomodasi diskon musiman.

TaxFeeInfo / Property / Taxes / Tax / StayDates / @application 1 enum

Menjelaskan cara penerapan pajak.

Nilai yang valid adalah:

  • all: Menerapkan pajak ke setiap malam di itinerari jika semua tanggal di itinerari tumpang-tindih dengan tanggal menginap.
  • any: Menerapkan pajak ke semua malam di itinerari jika salah satu tanggal dalam itinerari tumpang-tindih dengan tanggal dalam rentang tanggal menginap.
  • overlap: Menerapkan pajak hanya ke malam tertentu di itinerari yang tumpang-tindih dengan tanggal dalam rentang tanggal menginap.

    Catatan: overlap hanya valid jika <Period> ditetapkan ke night.

Atribut ini harus selalu ditentukan.

TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange 1..99 DateRange Rentang tanggal yang menentukan tanggal saat pajak diterapkan.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @start 0..1 Date Tanggal mulai (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sebelum atau sama dengan tanggal end. Jika start tidak ditentukan, maka tanggal mulai dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @end 0..1 Date Tanggal akhir (berdasarkan zona waktu properti), inklusif, dari rentang tanggal. Tanggal ini harus sama dengan, atau setelah, tanggal start. Jika end tidak ditentukan, maka tanggal akhir dari rentang tanggal menjadi tidak terbatas.
TaxFeeInfo / Property / Taxes / Tax / StayDates / DateRange / @days_of_week 0..1 string

Hari yang diizinkan dalam rentang tanggal. Jika tidak ditentukan, semua hari diizinkan dalam rentang tanggal tersebut. Setiap karakter dalam string menentukan hari. Misalnya, "MTWHF" menentukan bahwa hari kerja diizinkan dalam rentang tanggal.

Karakter yang valid adalah:

  • M untuk hari Senin
  • T untuk hari Selasa
  • W untuk hari Rabu
  • H untuk Kamis
  • F untuk hari Jumat
  • S untuk hari Sabtu
  • U untuk hari Minggu

Kombinasi karakter apa pun valid.

TaxFeeInfo / Property / Taxes / Tax / Type 1 enum

Nilai yang valid adalah:

  • percent: Persentase dari tarif total
  • amount: Jumlah tetap untuk ditambahkan ke tarif akhir
  • cumulative_percent: Persentase dari total tarif, pajak, dan biaya yang terakumulasi sebelum penghitungan pajak atau biaya ini. Jika nilai ini ditentukan, <Rank> juga harus ditentukan.
  • <Brackets> dan <AgeBrackets> mungkin tidak ditetapkan dengan cumulative_percent sebagai jenis.

TaxFeeInfo / Property / Taxes / Tax / Basis 1 enum

Nilai yang valid adalah:

  • room: <Amount> diterapkan ke ruang.
  • person: <Amount> berlaku per orang. Nilai ini hanya berlaku jika <Type> ditetapkan ke jumlah.
TaxFeeInfo / Property / Taxes / Tax / Period 1 enum

Nilai yang valid adalah:

  • stay: <Amount> ditambahkan ke total tarif menginap.
  • night: <Amount> ditambahkan per malam menginap.
TaxFeeInfo / Property / Taxes / Tax / Currency 0..1 string Kode mata uang tiga huruf untuk pajak (misalnya: USD).

Catatan: Jika <Currency> tidak ditentukan, tetapi <Amount> ditentukan, nilai <Currency> akan ditetapkan secara default ke mata uang tarif dasar.

TaxFeeInfo / Property / Taxes / Tax / Amount 0..1 float Nilai persentase atau jumlah pajak.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights 0..1 ApplicableNights Nilai ini hanya berlaku jika <Type> ditetapkan ke jumlah dan <Period> ditetapkan ke malam.

Membatasi jumlah malam saat pajak dapat diterapkan.

Tentukan max atau excluded, tetapi jangan tentukan keduanya.

TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @max 0..1 integer <ApplicableNights max="N"> menunjukkan bahwa malam setelah N malam pertama harus dikecualikan.
TaxFeeInfo / Property / Taxes / Tax / ApplicableNights / @excluded 0..1 integer <ApplicableNights excluded="N"> menunjukkan bahwa N malam pertama harus dikecualikan.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay 0..1 LengthOfStay Menentukan batas lama menginap saat pajak ini dapat diterapkan. Pajak tidak berlaku jika lama menginap berada di luar batas minimum dan maksimum.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @min 0..1 integer Jumlah malam minimum menginap yang diizinkan agar pajak dapat diterapkan. Jika tidak ditentukan, maka tidak ada batas minimum.
TaxFeeInfo / Property / Taxes / Tax / LengthOfStay / @max 0..1 integer Jumlah malam maksimum menginap yang diizinkan agar pajak dapat diterapkan. Jika tidak ditentukan, maka tidak ada batas maksimum.
TaxFeeInfo / Property / Taxes / Tax / Brackets 0..1 Brackets Container untuk satu atau beberapa elemen <Bracket>. Menentukan kumpulan tanda kurung pajak yang berdekatan dan yang tidak tumpang-tindih. Misalnya: Pajak slab GST India.

Elemen ini hanya valid jika <Period> ditetapkan ke night dan <Amount> tidak ditentukan.

TaxFeeInfo / Property / Taxes / Tax / Brackets / @base_amount 0..1 float Nilai persentase atau jumlah pajak, diterapkan pada tarif per malam di bawah nilai starts_at kurung pertama.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket 1..n Bracket Menentukan kurung pajak berdasarkan tarif per malam.
TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @starts_at 1 float

Menentukan batas bawah kurung pajak. Batas atas ditentukan dalam kolom starts_at kurung berikutnya. Tidak ada batas atas untuk kurung terakhir.

Kurung pajak aktif jika tarif per malam lebih besar dari atau sama dengan nilai starts_at kurung, dan benar-benar kurang dari nilai starts_at kurung berikutnya.

Nilai ini harus benar-benar lebih besar dari 0.

TaxFeeInfo / Property / Taxes / Tax / Brackets / Bracket / @amount 1 float Nilai persentase atau jumlah pajak yang diterapkan pada kurung pajak ini.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets 0..1 AgeBrackets Memungkinkan Anda menentukan serangkaian pajak berdasarkan usia penghuni.

Elemen ini hanya valid jika <Brackets> dan <Amount> tidak ditentukan, <Basis> ditetapkan ke person, dan <Type> ditetapkan ke amount.

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge 0..1 AdultCharge Penampung untuk menentukan pajak bagi orang dewasa.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / AdultCharge / @amount 1 float Jumlah pajak tetap yang diterapkan untuk orang dewasa.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets Container untuk menyimpan satu atau beberapa elemen <ChildAgeBracket>.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..n ChildAgeBracket Menentukan rentang usia untuk anak-anak dan jumlah pajak yang sesuai.
TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer

Menentukan batas atas usia anak. Batas bawah ditentukan dalam kolom max_age kurung sebelumnya + 1. Batas atas dan bawah bersifat inklusif. Batas bawah untuk tanda kurung pertama adalah 0.

max_age harus dalam rentang 0 hingga 17 (inklusif).

TaxFeeInfo / Property / Taxes / Tax / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 1 float Jumlah pajak tetap yang diterapkan untuk anak-anak dalam rentang usia ini.
TaxFeeInfo / Property / Taxes / Tax / UserCountries 0..1 UserCountries Container untuk mencantumkan negara pengguna yang pajaknya disertakan atau dikecualikan. Jika ada, pajak hanya akan disertakan atau dikecualikan untuk pengguna dari negara yang ditentukan.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / @type 0..1 enum Jenis spesifikasi UserCountries.

Nilai yang valid adalah include dan exclude.

Jika type UserCountries ditetapkan sebagai include, pajak hanya akan berlaku untuk pengguna dari negara yang tercantum.

Sedangkan jika UserCountries type adalah exclude, pajak hanya akan berlaku bagi pengguna di luar negara yang tercantum.

Jika type UserCountries tidak ditetapkan, kami akan memperlakukannya sebagai include dan pajak hanya akan berlaku untuk pengguna dari negara yang tercantum.

TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country 1..n Country Menentukan satu negara dalam daftar UserCountries.
TaxFeeInfo / Property / Taxes / Tax / UserCountries / Country / @code 1 string Kode negara CLDR, seperti DE atau FR. Perhatikan bahwa, untuk beberapa negara, kode negara CLDR tidak sama dengan kode negara ISO 2 huruf. Selain itu, kode wilayah CLDR juga tidak didukung.
TaxFeeInfo / Property / Taxes / Tax / Rank 1 integer

Peringkat yang menentukan urutan penerapan pajak atau biaya ini. Misalnya, nilai 2 berarti pajak ini akan diterapkan kedua. Elemen ini harus selalu ditentukan jika <Type> ditetapkan ke cumulative_percent. Secara umum, pengurutan ini diterapkan pada pajak dan biaya. Nilai peringkat duplikat diizinkan di antara pajak dan biaya, tetapi hal ini dapat menyebabkan perilaku yang tidak ditentukan, yaitu pajak dan biaya akan diterapkan secara arbitrer dan kumulatif. Pajak dan biaya tanpa peringkat diterapkan sebelum semua entri yang diberi peringkat.

<Rank> harus berada dalam rentang 1 hingga 99 (inklusif).

TaxFeeInfo / Property / Fees 0..1 Fees Container untuk satu atau beberapa elemen <Fee>.
TaxFeeInfo / Property / Fees / Fee 1..n Fee

Biaya perorangan yang berlaku untuk properti.

Semua elemen turunan <Tax> juga didukung untuk <Fee> dengan sintaksis yang sama.

Contoh

Ada batas 300 pajak dan biaya per properti. Lihat contoh "Menghapus pajak" untuk menghapus pajak dan biaya dari properti.

Pesan dasar

Pesan TaxFeeInfo dasar:

<?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>

Menghapus pajak

Hapus semua pajak dan biaya tingkat properti untuk hotel tertentu:

<?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>

Pajak slab

Pajak slab GST India, diterapkan berdasarkan tarif per malam. Rentang pajaknya adalah:

  • Tidak ada pajak jika tarif per malam kurang dari atau sama dengan 1.000.
  • Dikenai pajak sebesar 12% jika tarif per malam lebih besar dari 1.000 dan kurang dari atau sama dengan 7.500.
  • Pajak sebesar 18% jika tarif per malam lebih besar dari 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>

Pajak berdasarkan usia

Pajak yang diterapkan berdasarkan usia penghuni:

  • Pajak $20 untuk tamu dewasa.
  • Pajak $10 untuk anak-anak berusia antara 11 dan 17 tahun.
  • Pajak $5 untuk anak-anak berusia antara 0 hingga 10 tahun.
<?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>

Respons

Sintaksis

Pesan TaxFeeInfoResponse menggunakan sintaksis berikut:

<?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>

Elemen dan atribut

Pesan TaxFeeInfoResponse memiliki elemen dan atribut berikut:

Elemen/@Atribut Kejadian Jenis Deskripsi
TaxFeeInfoResponse 1 Complex element Elemen root yang menunjukkan keberhasilan atau masalah untuk pesan permintaan TaxFeeInfo yang diterima.
TaxFeeInfoResponse / @timestamp 1 DateTime Tanggal dan waktu pembuatan pesan ini.
TaxFeeInfoResponse / @id 1 string ID unik dari pesan TaxFeeInfo terkait.
TaxFeeInfoResponse / @partner 1 string Akun partner untuk pesan ini.
TaxFeeInfoResponse / Success 0..1 Success Menunjukkan bahwa pesan TaxFeeInfo berhasil diproses tanpa peringatan, error, atau kegagalan.

<Success> atau <Issues> ada di setiap pesan.

TaxFeeInfoResponse / Issues 0..1 Issues Container untuk satu atau beberapa masalah yang ditemukan saat memproses pesan TaxFeeInfo.

<Success> atau <Issues> ada di setiap pesan.

TaxFeeInfoResponse / Issues / Issue 1..n Issue Deskripsi dari peringatan, error, atau kegagalan yang dialami saat memproses pesan TaxFeeInfo. Detail tentang masalah ini dapat ditemukan di Pesan Error Status Feed.
TaxFeeInfoResponse / Issues / Issue / @code 1 integer ID untuk masalah.
TaxFeeInfoResponse / Issues / Issue / @status 1 enum

Jenis masalah yang dialami.

Nilai yang valid adalah warning, error, dan failure .

Contoh

Berhasil

Berikut adalah respons terhadap pesan TaxFeeInfo yang berhasil diproses.

<?xml version="1.0" encoding="UTF-8"?>
<TaxFeeInfoResponse timestamp="2024-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</TaxFeeInfoResponse>

Masalah

Berikut adalah respons terhadap pesan TaxFeeInfo yang tidak diproses karena error.

<?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>