# Policies objects

A property will have various properties relating to taxes, renting extra beds, paid parking, and so on. You define these policies inside a `Policies` element. This page describes the elements in the `Policies` descendants tree.

## Related calls

* [OTA_HotelDescriptiveContentNotif](/connectivity/docs/ota-hoteldescriptivecontentnotif) – Set a property's details.
* [OTA_HotelDescriptiveInfo](/connectivity/docs/ota-hoteldescriptiveinfo) – Retrieve a property's details.


## Sample XML

The sample below is an excerpt and not a valid XML document.


```xml
<Policies>
  <Policy>
    <PolicyInfo CheckInTime="17:00-20:00" CheckOutTime="12:00" />
    <PetsPolicies PetsAllowedCode="Pets By Arrangements">
      <PetsPolicy NonRefundableFee="charges_may_apply" />
    </PetsPolicies>
    <CancelPolicy>
      <CancelPenalty PolicyCode="1">
        <TPA_Extensions>
          <NoShowPolicy Penalty="default" />
        </TPA_Extensions>
      </CancelPenalty>
      <CancelPenalty PolicyCode="29">
        <TPA_Extensions>
          <NoShowPolicy Penalty="total_price" />
        </TPA_Extensions>
      </CancelPenalty>
    </CancelPolicy>
    <GuaranteePaymentPolicy>
      <GuaranteePayment PolicyCode="1">
        <TPA_Extensions>
          <PrepaymentPolicy EffectiveFrom="after_reservation_is_made" />
        </TPA_Extensions>
      </GuaranteePayment>
      <GuaranteePayment PolicyCode="29">
        <TPA_Extensions>
          <PrepaymentPolicy EffectiveFrom="after_cancellation_fee_begins" />
        </TPA_Extensions>
      </GuaranteePayment>
    </GuaranteePaymentPolicy>
    <TaxPolicies>
      <TaxPolicy Code="36" Percent="1200" DecimalPlaces="2" Type="Exclusive"/>
      <TaxPolicy Code="3" Amount="800" DecimalPlaces="2" Type="Inclusive" ChargeFrequency="20" />
    </TaxPolicies>
    <FeePolicies>
      <FeePolicy Code="5009" Amount="1500" DecimalPlaces="2" Type="Conditional" ChargeFrequency="12" >
        <TPA_Extensions>
          <Conditions>
            <Condition Type="guest_doesnt_clean_before_checkout" />
          </Conditions>
        </TPA_Extensions>
      </FeePolicy>
      <FeePolicy Code="5035" Amount="10000" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="5001" >
        <TPA_Extensions>
          <InternetFeePolicy InternetType="wired" InternetCoverage="public_areas" />
        </TPA_Extensions>
      </FeePolicy>
      <FeePolicy Code="5036" Amount="10000" DecimalPlaces="2" Type="Exclusive" ChargeFrequency="2" >
        <TPA_Extensions>
          <ParkingFeePolicy ParkingType="location_nearby" ParkingReservation="needed" ParkingProperty="private"/>
        </TPA_Extensions>
      </FeePolicy>
    </FeePolicies>
  </Policy>
</Policies>
```

## Policy

Contains details of various property policies. Child of `Policies` (see [Sample XML](/connectivity/docs/policies#sample-xml)).

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `PolicyInfo` | - | object |  | - |
| `PolicyInfo[@CheckInTime]` | The [Booking.com Check-in/Check-Out Time Code](/connectivity/docs/codes-bcio) for the earliest time a guest can check in. | checkin_checkout | Required | Format: `HH:MM` (for a specific time) or `HH:MM-HH:MM` (for a range). Accepts the values listed under [BCIO](/connectivity/docs/codes-bcio).**NOTE:** Only a check-in "from" time is required. Specifying a range is optional. |
| `PolicyInfo[@CheckOutTime]` | The [Booking.com Check-in/Check-Out Time Code](/connectivity/docs/codes-bcio) for the time by which a guest should check out at the latest. | checkin_checkout | Optional | Format: `HH:MM` (for a specific time) or `HH:MM-HH:MM` (for a range). Accepts the values listed under [BCIO](/connectivity/docs/codes-bcio). |
| `PolicyInfo[@TotalGuestCount]` | The total number of guests that can stay at the property at a given time. | integer | Optional | - |
| `PolicyInfo[@AcceptedGuestType]` | Indicates whether the property admits both adults and children, or adults only. | enum | Optional | Accepts these values: `AdultOnly`. Default: empty (children and adults allowed) |
| `PetsPolicies` | - | array of [PetsPolicy](/connectivity/docs/policies#petspolicy) | Optional | - |
| `PetsPolicies[@PetsAllowedCode]` | Specifies the property's policy regarding pets. | enum | Optional | Accepts these values: `Pets Allowed`, `Pets Not Allowed`, `Pets By Arrangements`, `Assistive Animals Only`. Default: empty |
| `CancelPolicy` | - | array of [CancelPenalty](/connectivity/docs/policies#cancelpenalty) | Required | - |
| `GuaranteePaymentPolicy` | - | array of [GuaranteePayment](/connectivity/docs/policies#guaranteepayment) | Optional | - |
| `TaxPolicies` | - | array of [TaxPolicy](/connectivity/docs/policies#taxpolicy) | Optional | - |
| `FeePolicies` | - | array of [FeePolicy](/connectivity/docs/policies#feepolicy) | Optional | - |


## PetsPolicy

Contains details of policies related to pets. Child of `PetsPolicies` (see [Policy](/connectivity/docs/policies#policy)).

Note
This element is **required** if the value of `PetsPolicies[@PetsAllowedCode]` is `Pets Allowed`, `Pets By Arrangements`, or `Assistive Animals Only`.

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `PetsPolicy[@NonRefundableFee]` | The non-refundable fee the property charges for having a pet stay in the room. | price | Optional | Required if `[@RefundableDeposit]` is not specified. |
| `PetsPolicy[@RefundableDeposit]` | The refundable deposit the property charges while a pet stays in the room. | price | Optional | Required if `[@NonRefundableFee]` is not specified. |


## CancelPenalty

Contains details of fees for cancellations. Child of `CancelPolicy` (see [Policy](/connectivity/docs/policies#policy)).

Best practices for cancellation policies
Defining cancellation policies is not mandatory, but is one of the most
powerful ways to attract bookings. Ideally, we recommend defining a
cancellation policy for each room type. The bare minimum that we recommend
is at least one cancellation policy per property.

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `CancelPenalty[@PolicyCode]` | The [Booking.com Cancellation Policy Code](/connectivity/docs/codes-bccp) for the cancellation penalty. | enum | Required | Accepts the values listed under [BCCP](/connectivity/docs/codes-bccp). Default: empty |
| `TPA_Extensions` | See [TPA_Extensions](/connectivity/docs/policies#tpa_extensions). | array of `NoShowPolicy` | Optional | - |


## GuaranteePayment

Contains details of the prepayment amount, if applicable. Child of `GuaranteePaymentPolicy` (see [Policy](/connectivity/docs/policies#policy)).

Note
If this element is present, it means the property requires prepayment
on each booking. The prepayment amount is automatically the same as the
cancellation fee. You can collect it directly from the guest at the
time defined in the Policy Summary shown on the above right.

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `GuaranteePayment[@PolicyCode]` | The [Booking.com Cancellation Policy Code](/connectivity/docs/codes-bccp) for the payment guarantee. | enum | Optional | Accepts the values listed under [BCCP](/connectivity/docs/codes-bccp). Default: empty |
| `TPA_Extensions` | See [TPA_Extensions](/connectivity/docs/policies#tpa_extensions). | array of `PrepaymentPolicy` | Optional | - |


## TaxPolicy

Contains details of country/region taxes (such as VAT or City tax) calculated on bookings. Child of `TaxPolicies` (see [Policy](/connectivity/docs/policies#policy)).

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `TaxPolicy[@Code]` | The [Fee Tax Type Code](/connectivity/docs/codes-ftt). | enum | Required | Accepts the values listed under [FTT](/connectivity/docs/codes-ftt). |
| `TaxPolicy[@Amount]` | The amount charged, in the [country's local currency](/connectivity/docs/b_xml-countrycurrencies). | price | Optional | Instead of providing an amount, you can provide a percentage with `[@Percent]`. |
| `TaxPolicy[@DecimalPlaces]` | The number of decimal places to apply to `[@Amount]`. | integer | Optional | Only allowed if `[@Amount]` is provided. Default: `0` |
| `TaxPolicy[@Percent]` | The percentage of the room price that will be added as taxes. | nonnegative | Optional | Only allowed if `[@Amount]` is not provided. **NOTE:** Use this for VAT (`[@Code="36"]`). |
| `TaxPolicy[@Type]` | Specifies whether the tax is included in, or excluded from the room price. | enum | Optional | Accepts these values: `Inclusive`, `Exclusive`. |
| `TaxPolicy[@ChargeFrequency]` | The [Charge Type Code](/connectivity/docs/codes-chg) that specifies the unit of time on which the charge is calculated (e.g. once per stay, every day). | enum | Optional | Accepts the values listed under [CHG](/connectivity/docs/codes-chg). Default: `21` (Per person per night) |


## FeePolicy

Contains details of additional fees, such as for WiFi, heating, and pets. Child of `FeePolicies` (see [Policy](/connectivity/docs/policies#policy)).

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `FeePolicy[@Code]` | The [Fee Tax Type Code](/connectivity/docs/codes-ftt). | enum | Required | Accepts the values listed under [FTT](/connectivity/docs/codes-ftt). |
| `FeePolicy[@Amount]` | The amount charged, in the [country's local currency](/connectivity/docs/b_xml-countrycurrencies). | price | Optional | Instead of providing an amount, you can provide a percentage with `[@Percent]`. |
| `FeePolicy[@DecimalPlaces]` | The number of decimal places to apply to `[@Amount]`. | integer | Optional | Only allowed if `[@Amount]` is provided. Default: `0` |
| `FeePolicy[@Percent]` | The percentage of the room price that will be added as a fee. | nonnegative | Optional | Only allowed if `[@Amount]` is not provided. |
| `FeePolicy[@Type]` | Specifies whether the fee is included in/excluded from the room price, or is charged only under certain conditions. | enum | Optional | Accepts these values: `Inclusive`, `Exclusive`, `Conditional`. `Conditional` is only allowed for cleaning fees (`[@Code="5009"]`). |
| `FeePolicy[@ChargeFrequency]` | The [Charge Type Code](/connectivity/docs/codes-chg) that specifies the unit of time on which the charge is calculated (e.g. once per stay, every day). | enum | Optional | Accepts the values listed under [CHG](/connectivity/docs/codes-chg). Default: `21` (Per person per night) |
| `TPA_Extensions` | See [TPA_Extensions](/connectivity/docs/policies#tpa_extensions). | object | Optional | Contains `Conditions`, `InternetFeePolicy`, or `ParkingFeePolicy`, depending on value of `[@Type]`. See [TPA_Extensions](/connectivity/docs/policies#tpa_extensions). |


## TPA_Extensions

Our extensions to the [OTA](http://opentravelmodel.net/pubs/specifications/Specifications.html) standard. Child of [GuaranteePayment](/connectivity/docs/policies#guaranteepayment), [CancelPenalty](/connectivity/docs/policies#cancelpenalty), and [FeePolicy](/connectivity/docs/policies#feepolicy).

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `PrepaymentPolicy` | - | object | Optional | Descendant of [GuaranteePayment](/connectivity/docs/policies#guaranteepayment). |
| `PrepaymentPolicy[@EffectiveFrom]` | The moment from which the prepayment policy becomes effective. | enum | Optional | **Required** if `PrepaymentPolicy` exists. Accepts these values: `after_reservation_is_made`, `after_cancellation_fee_begins`. Default: `after_reservation_is_made` |
| `NoShowPolicy` | - | object | Optional | Descendant of [CancelPenalty](/connectivity/docs/policies#cancelpenalty). |
| `NoShowPolicy[@Penalty]` | Specifies how much the property charges if the guest doesn't show up on the check-in date. | enum | Optional | Accepts these values: `total_price` (full price of stay), `default` (same as cancellation fee). Default: empty |
| `ParkingFeePolicy` | - | object | Optional | Descendant of [FeePolicy](/connectivity/docs/policies#feepolicy). Only allowed when `FeePolicy[@Type="5036"]`. |
| `ParkingFeePolicy[@ParkingType]` | Specifies the type of parking the property offers. | enum | Optional | Accepts these values: `on_site`, `location_nearby`, `none`. Default: `on_site` |
| `ParkingFeePolicy[@ParkingReservation]` | Specifies whether guests can/must reserve a parking space in advance. | enum | Optional | Accepts these values: `needed`, `not_needed`, `not_available`. Default: `not_available` |
| `ParkingFeePolicy[@ParkingProperty]` | Specifies whether the parking area is public or private. | enum | Optional | Accepts these values: `public`, `private`. Default: `public` |
| `InternetFeePolicy` | - | object | Optional | Descendant of [FeePolicy](/connectivity/docs/policies#feepolicy). Only allowed when `FeePolicy[@Type="5035"]`. |
| `InternetFeePolicy[@InternetType]` | Specifies the type of internet connection. | enum | Optional | Accepts these values: `wired`, `wifi`, `none`. Default: `wifi` |
| `InternetFeePolicy[@InternetCoverage]` | Specifies the area covered with internet. | enum | Optional | Accepts these values: `entire_property`, `public_areas`, `all_rooms`, `some_rooms`, `business_centre`. Default: `entire_property` |
| `Conditions` | - | array of [Condition](/connectivity/docs/policies#condition) | Optional | Descendant of [FeePolicy](/connectivity/docs/policies#feepolicy). Only allowed when `FeePolicy[@Code="5009"]` and `FeePolicy[@Type="Conditional"]`. See [FeePolicy](/connectivity/docs/policies#feepolicy) for details. |


## Condition

Contains details of conditions for when an extra cleaning fee must be paid. Child of `Conditions` (see [TPA_Extensions](/connectivity/docs/policies#tpa_extensions)).

Note
This element is **required** if `FeePolicy[@Code="5009"]` and `FeePolicy[@Type="Conditional"]` (see [FeePolicy](/connectivity/docs/policies#feepolicy)). There may be
only 1 `Condition` child for each `Conditions` parent.

| Field | Description | Type | Required | Notes |
|  --- | --- | --- | --- | --- |
| `Condition[@Type]` | Specifies when a guest must pay the extra cleaning fee. | enum | Required | Accepts these values: `guest_brings_pet`, `guest_doesnt_clean_before_checkout`, `guest_smokes`. |