Managing Charges
Use the Charges API to:
- Add or update taxes and fees
- Delete taxes and fees
- Retrieve taxes and fees
Add or update taxes and fees
POST
https://supply-xml.booking.com/charges-api/properties/{property_id}/charges
Before creating or updating a charge, you must identify the charge_key
corresponding to the charge you want to create or update.
Use the Charges meta endpoint to retrieve the list of supported charge types and their details.
To create or modify a charge, you must first identify it by the attributes within the charge_key
. This includes:
- Charge type
- Guest origin
- Travel purpose
Then for each charge_key
you must define the charge periods. These charge periods will contain configuration details for the charge.
Understanding Charge Periods
With the new Charges API, each charge has a timeline of charge periods that have their own configuration.
In the simplest scenario, a charge could be configured with one period that starts today and continues indefinitely. Assuming today is November 1st, 2024 that would look like:
{
"property_charges": [
{
"charge_key": {
"type": "CLEANINGFEE",
"guest_origin": "ANY",
"travel_purpose": "ANY"
},
"charge_periods": [
{
"applicable": {
"from": "2024-11-01"
},
"configuration": {
"amount": {
"value": 5.00,
"base": [],
"mode": "PER_PERSON_PER_NIGHT"
},
"excluded": true
}
}
]
}
],
...
...
}
If you need to support upcoming or seasonal charges, you can specify a charge period with the date range you are interested in. For example the below charge is only configured to apply from December 1st to January 31st.
These dates are inclusive and will be applied to guest reservations based on the checkout date of a guest's reservation. That is to say if a charge period ends during a guest's stay, the charge will not be applied. If a charge begins during a guest's stay it will be applied to the full reservation.
{
"property_charges": [
{
"charge_key": {
"type": "CLEANINGFEE",
"guest_origin": "ANY",
"travel_purpose": "ANY"
},
"charge_periods": [
{
"applicable": {
"from": "2024-12-01",
"to": "2025-01-31"
},
"configuration": {
"amount": {
"value": 5.00,
"base": [],
"mode": "PER_PERSON_PER_NIGHT"
},
"excluded": true
}
}
]
}
],
...
...
}
Finally, when you make updates to a charge, the API behaves as follows:
Existing charge status | API action |
---|---|
There are no charge periods for this charge_key | The API creates the charge. |
There are existing charge periods for this charge_key , but they do not overlap with the new applicable time window | The API creates the charge and leaves the existing periods unmodified. |
There are existing charge periods for this charge_key and the applicable time windows are identical. | The API overwrites the existing configuration with the new configuration provided. |
There are existing charge periods for this charge_key and the applicable time windows overlap. | - If the new period fully overlaps the existing period, the API entirely overwrites the existing charge period. - If only a portion of the dates overlap, splice the existing period. This will leave charge periods before and/or after the updated charge period with the old configuration. - Leave any non-overlapping charge period unaffected. |
To learn more about the charge periods, see the Charges API specification.
Understanding charge modes
For each charge configuration you can specify one of the following charge modes:
PER_NIGHT
: Applies a charge that is effective per night. For example, for a 2-person on a 3-night stay, the charge is applied three times.PER_STAY
: Applies a charge that is effective per stay. For example, for a 2-person on a 3-night stay, the charge is applied once.PER_PERSON_PER_NIGHT
: Applies a charge that is effective per person per night. For example, for a 2-person on a 3-night stay, the charge is applied 5 times.PER_PERSON_PER_STAY
: Applies a charge that is effective per person per stay. For example, for a 2-person on a 3-night stay, the charge is applied 2 times.PERCENTAGE
: Applies a percentage of the specified price(s). For example, a 5% city tax of room rate.INCALCULABLE
: For charges that can only be determined after the stay based on guest's usage of a property facility.
The following sections provide more information on PERCENTAGE
and INCALCULABLE
charges with examples.
Percentage charges
Use the PERCENTAGE
mode to specify a percentage of a base price. Commonly used for taxes.
The PERCENTAGE
mode lets you specify:
- The percentage amount (For example, 5%)
- What to apply it to (room rate, tax and/or other charges)
This flexibility is important because tax rules vary by location. Some places tax only the room rate, while others include property charges too.
Let's look at an example. The below charge will apply a 5% charge on the sum of the room price and any existing property charges, but it does not include locality charges.
{
"value": 5.0,
"base": [
"NET_ROOM_PRICE",
"PROPERTY_CHARGES"
],
"mode": "PERCENTAGE"
}
Notice that when creating a PERCENTAGE
charge you must include what the charge is based on in the configuration.amount.base
field. The following combinations of charge bases are allowed:
NET_ROOM_PRICE
NET_ROOM_PRICE
+PROPERTY_CHARGES
NET_ROOM_PRICE
+LOCALITY_CHARGES
NET_ROOM_PRICE
+PROPERTY_CHARGES
+LOCALITY_CHARGES
Finally, to understand the specific charges that can be included when you add PROPERTY_CHARGES
or LOCALITY_CHARGES
to the charge base, see the Charges API meta endpoint and find the charge types with the charge_category
of PROPERTY_CHARGES
or LOCALITY_CHARGES
.
Incalculable charges
Use the INCALCULABLE
charge mode to represent charges that are not calculable prior to the stay. For example, a gas fee which is based on usage. Only a small subset of charge types can use the INCALCULABLE
charge mode. To check which charge types can use INCALCULABLE
, see the Charges API meta endpoint and reference the allowed_charge_modes
field.
When creating an INCALCULABLE
charge, configuration.amount.value
is not required and is ignored if included in the update or create request.
API validations
In addition to the validations mentioned in the Request body parameters table below and OTA Specification, here are some additional validations to be aware of:
- Updating or deleting charges for specific countries might be restricted due to statutory regulations. If your update attempts to modify one of these charges, the API processes any other charges in the request, but ignores the overwrite-protected charges. The request will still be considered successful (HTTP 200) even if some or all of the charges were ignored due to the overwrite protection. We will notify you via an entry in the
warnings
array of the response when an update is ignored. - Some charge types are marked as discontinued in the meta endpoint. Once a charge type is discontinued, it cannot be created or updated, only deleted.
- As a best practice, a charge period's start date (
applicable.from
) should not be set to before today. If today's date is in the middle of an existing charge period, an update request can use the period's original start date or today's date. - When creating a charge with a
PERCENTAGE
configuration, the charge bases should not create a circular reference. A circular reference is when the charge (or a sequence of charges) introduces an infinite loop of percentages. For example, aRESORTFEE
is categorized asPROPERTY_CHARGES
, so it cannot have a charge base that includesPROPERTY_CHARGES
.
To view the open API specification to help create, update or delete taxes and fees, see the Charges endpoint.
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Content-Type: application/json | Specifies the expected content type. | string | required | |
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | The only supported API version currently is 1.0. |
Path parameters
The following table describes the elements you must specify in the path:
Element | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
property_id | Specifies the unique ID of the property. | integer | required |
Request body parameters
The following table describes the elements you can add in the request body:
Element | Description | Type | Required/ Optional | Notes | Root parameter in HDCN |
---|---|---|---|---|---|
property_charges | Charges that apply across the property. | array | required | At least one charge must be present between property_charges and room_charges . | |
> charge_key | Contains the attributes that uniquely identifies a charge. | object | required | If you change the value of a field within the charge key, you are not modifying an existing charge's value but creating a separate charge. | |
>> type | Specifies the charge type. | enumerated string | required | For a list of supported charge types, see the meta endpoint. | FeePolicy > Code . |
>> guest_origin | Specifies the guest origin as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , DOMESTIC , INTERNATIONAL . | |
>> travel_purpose | Specifies the travel purpose as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , LEISURE , BUSINESS . | |
> charge_periods | Contains the various configurations for the charge through time. | array of objects | required | ||
>> applicable | Contains the date range for this charge period. | object | required | Dates are inclusive and must not overlap. | |
>>> from | Specifies the start date for this charge period. | string | required | It may be in the past if it is the current active charge. Uses the ISO 8601 date format (YYYY-MM-DD ) and is relative to the timezone of the property. | |
>>> to | Specifies the end date for this charge period (inclusive). | string | optional | The date is relative to the property's timezone. If null or undefined, the current charge period extends forever. Uses the ISO 8601 date format (YYYY-MM-DD ). | |
>> configuration | Contains the charge configuration for this period. | object | optional | If specified as null it clears the charge for the specific period. | |
>>> amount | Contains details about the charge price. | object | required | ||
>>>> value | Specifies the value of the charge. | number | required unless mode is INCALCULABLE | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. Any value set for an INCALCULABLE charge is ignored. | FeePolicy > Amount and FeePolicy > Percent . |
>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Required when mode is PERCENTAGE (otherwise rejected). | See the section on Understanding Percentage charges. | |
>>>> mode | Specifies the mode used for this charge. | enumerated string | required | For possible values, see Understanding Charge modes. | FeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE . |
>>>> excluded | Specifies if the charge is included or excluded from the room rate. | boolean | required | This corresponds to the similarly named field in extranet. But is different from the included /excluded within the Reservations API. | FeePolicy > Type . |
room_charges | Contains the room specific charges. Overrides the same charge specified at the property level. | array | required | Can be an empty array. Note that CITYTAX / VAT / TAX should be applied at the property level and not at the room level. If specified, the API ignores setting these at the room level. | |
> room_id | Specifies the Room ID the charges apply to. | integer | required | FeePolicy >InvCode | |
> charges | Contains the attributes charges apply to. | array | required | ||
>> charge_key | Contains the attributes that uniquely identifies a charge. | object | required | If you change the value of a field within the charge key, you are not modifying an existing charge's value but creating a separate charge. | |
>>> type | Specifies the type of charge. | enumerated string | required | FeePolicy > Code | |
>>> guest_origin | Specifies the guest origin as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , DOMESTIC , INTERNATIONAL When determining which charges to apply at checkout, the narrowest/most specific charge key is used. For example, if an INTERNATIONAL guest books at a property that has both an INTERNATIONAL and ANY charge key (with the same charge type), only the INTERNATIONAL charge is applied. | |
>>> travel_purpose | Specifies the travel purpose as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , LEISURE , BUSINESS When determining which charge to use at checkout, the narrowest/most specific charge key is used. For example, if a LEISURE guest books at a property that has both an INTERNATIONAL and ANY charge key (with the same charge type), only the LEISURE charge is applied. | |
>> charge_periods | Contains the various configurations for the charge through time. | array of objects | required | ||
>>> applicable | Contains the date range for this charge period. | object | required | Dates are inclusive and must not overlap. | |
>>>> from | Specifies the start date for this charge period. | string | required | It may be in the past if it is the current active charge. Uses the ISO 8601 date format ( YYYY-MM-DD ) and is relative to the timezone of the property. | |
>>>> to | Specifies the end date for this charge period (inclusive). | string | optional | The date is relative to the property's timezone. If null or undefined, the current charge period extends forever. Uses the ISO 8601 date format ( YYYY-MM-DD ). | |
>>> configuration | Contains the charge configuration for this period. | object | optional | If specified as null, it clears the charge for the specific period. | |
>>>> amount | Contains details about the charge price. | object | required | ||
>>>>> value | Specifies the value of the charge. | number | required unless mode is INCALCULABLE | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. Any value set for an INCALCULABLE charge is ignored. | FeePolicy > Amount and FeePolicy > Percent |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Required when mode is PERCENTAGE (otherwise rejected). | See the section on Understanding Percentage charges. | |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | required | For possible values, see Understanding Charge modes. | FeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE . |
>>>> excluded | Specifies if the charge is included or excluded from the room rate. | boolean | required | This corresponds to the similarly named field in extranet. But is different from the included /excluded within the Reservations API. | FeePolicy > Type . |
Request body
The following request body example adds several property charges and one room charge.
{
"property_charges": [
{
"charge_key": {
"type": "CLEANINGFEE",
"guest_origin": "ANY",
"travel_purpose": "ANY"
},
"charge_periods": [
{
"applicable": {
"from": "2024-10-01",
"to": "2024-11-28"
},
"configuration": {
"amount": {
"value": 20.00,
"base": [],
"mode": "PER_STAY"
},
"excluded": true
}
}
]
}
],
"room_charges": [
{
"room_id": "801185511",
"charges": [
{
"charge_key": {
"type": "DESTINATIONCHARGE",
"guest_origin": "ANY",
"travel_purpose": "LEISURE"
},
"charge_periods": [
{
"applicable": {
"from": "2024-09-09"
},
"configuration": {
"amount": {
"value": 1.98,
"base": [],
"mode": "PER_PERSON_PER_NIGHT"
},
"excluded": false
}
}
]
}
]
}
]
}
Response body
{
"warnings": [],
"errors": [],
"meta": {
"ruid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
}
Response body elements
The following table describes the response elements:
Element | Description | Type | Notes |
---|---|---|---|
data | Root element | object | |
> success | Specifies whether the request was a success. | boolean | - |
warnings | Contains any warnings in the response. | object | - |
errors | Contains any errors in the response. | object | - |
meta | Contains metadata information about the response. | object | - |
> ruid | Specifies the unique request ID. | string | You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong. |
Removing taxes and fees
Delete a charge for a specific applicable
time window or remove it entirely. You can use the same format as creating or updating a charge to identify the charge by the values in the charge_key
.
To remove a charge, populate the charge period with a time window specified in applicable
, but instead of passing the configuration
object, explicitly pass the configuration
as null
. To delete a charge across all charge periods, pass the null
configuration with applicable.from
set to today's date and omit applicable.to
.
POST
https://supply-xml.booking.com/charges-api/properties/{property_id}/charges
Header parameter
Header | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
Content-Type: application/json | Specifies the expected content type. | string | required | |
Accept-Version | Specify the version number to get the API functionality specific to that version. | string | optional | The only supported API version currently is 1.0. |
Path parameters
The following table describes the elements you must specify in the path:
Element | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
property_id | Specifies the unique ID of the property. | integer | required |
Request body parameters
The following table describes the elements you can add in the request body:
Element | Description | Type | Required/ Optional | Notes | Root parameter in HDCN |
---|---|---|---|---|---|
property_charges | Charges that apply across the property. | array | required | At least one charge must be present between property_charges and room_charges . | |
> charge_key | Contains the attributes that uniquely identifies a charge. | object | required | If you change the value of a field within the charge key, you are not modifying an existing charge's value but creating a separate charge. | |
>> type | Specifies the charge type. | enumerated string | required | For a list of supported charge types, see the meta endpoint. | FeePolicy > Code . |
>> guest_origin | Specifies the guest origin as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , DOMESTIC , INTERNATIONAL . | |
>> travel_purpose | Specifies the travel purpose as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , LEISURE , BUSINESS . | |
> charge_periods | Contains the various configurations for the charge through time. | array of objects | required | ||
>> applicable | Contains the date range for this charge period. | object | required | Dates are inclusive and must not overlap. | |
>>> from | Specifies the start date for this charge period. | string | required | It may be in the past if it is the current active charge. Uses the ISO 8601 date format (YYYY-MM-DD ) and is relative to the timezone of the property. | |
>>> to | Specifies the end date for this charge period (inclusive). | string | optional | The date is relative to the property's timezone. If null or undefined, the current charge period extends forever. Uses the ISO 8601 date format (YYYY-MM-DD ). | |
>> configuration | Contains the charge configuration for this period. | object | optional | If specified as null it clears the charge for the specific period. | |
>>> amount | Contains details about the charge price. | object | required | ||
>>>> value | Specifies the value of the charge. | number | required unless mode is INCALCULABLE | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. Any value set for an INCALCULABLE charge is ignored. | FeePolicy > Amount and FeePolicy > Percent . |
>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Required when mode is PERCENTAGE (otherwise rejected). | See the section on Understanding Percentage charges. | |
>>>> mode | Specifies the mode used for this charge. | enumerated string | required | For possible values, see Understanding Charge modes. | FeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE . |
>>>> excluded | Specifies if the charge is included or excluded from the room rate. | boolean | required | This corresponds to the similarly named field in extranet. But is different from the included /excluded within the Reservations API. | FeePolicy > Type . |
room_charges | Contains the room specific charges. Overrides the same charge specified at the property level. | array | required | Can be an empty array. Note that CITYTAX / VAT / TAX should be applied at the property level and not at the room level. If specified, the API ignores setting these at the room level. | |
> room_id | Specifies the Room ID the charges apply to. | integer | required | FeePolicy >InvCode | |
> charges | Contains the attributes charges apply to. | array | required | ||
>> charge_key | Contains the attributes that uniquely identifies a charge. | object | required | If you change the value of a field within the charge key, you are not modifying an existing charge's value but creating a separate charge. | |
>>> type | Specifies the type of charge. | enumerated string | required | FeePolicy > Code | |
>>> guest_origin | Specifies the guest origin as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , DOMESTIC , INTERNATIONAL When determining which charges to apply at checkout, the narrowest/most specific charge key is used. For example, if an INTERNATIONAL guest books at a property that has both an INTERNATIONAL and ANY charge key (with the same charge type), only the INTERNATIONAL charge is applied. | |
>>> travel_purpose | Specifies the travel purpose as specified by guests when they make the booking. | enumerated string | required | Possible values are: ANY , LEISURE , BUSINESS When determining which charge to use at checkout, the narrowest/most specific charge key is used. For example, if a LEISURE guest books at a property that has both an INTERNATIONAL and ANY charge key (with the same charge type), only the LEISURE charge is applied. | |
>> charge_periods | Contains the various configurations for the charge through time. | array of objects | required | ||
>>> applicable | Contains the date range for this charge period. | object | required | Dates are inclusive and must not overlap. | |
>>>> from | Specifies the start date for this charge period. | string | required | It may be in the past if it is the current active charge. Uses the ISO 8601 date format ( YYYY-MM-DD ) and is relative to the timezone of the property. | |
>>>> to | Specifies the end date for this charge period (inclusive). | string | optional | The date is relative to the property's timezone. If null or undefined, the current charge period extends forever. Uses the ISO 8601 date format ( YYYY-MM-DD ). | |
>>> configuration | Contains the charge configuration for this period. | object | optional | If specified as null, it clears the charge for the specific period. | |
>>>> amount | Contains details about the charge price. | object | required | ||
>>>>> value | Specifies the value of the charge. | number | required unless mode is INCALCULABLE | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. Any value set for an INCALCULABLE charge is ignored. | FeePolicy > Amount and FeePolicy > Percent |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Required when mode is PERCENTAGE (otherwise rejected). | See the section on Understanding Percentage charges. | |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | required | For possible values, see Understanding Charge modes. | FeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE . |
>>>> excluded | Specifies if the charge is included or excluded from the room rate. | boolean | required | This corresponds to the similarly named field in extranet. But is different from the included /excluded within the Reservations API. | FeePolicy > Type . |
Request body
The following request body example removes the pet fee charge.
{
"property_charges": [
{
"charge_key": {
"type": "CLEANINGFEE",
"guest_origin": "ANY",
"travel_purpose": "ANY"
},
"charge_periods": [
{
"applicable": {
"from": "2024-08-09"
},
"configuration": null
}
]
}
],
"room_charges": []
}
Response body
{
"warnings": [],
"errors": [],
"meta": {
"ruid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
}
Response body elements
The following table describes the response elements:
Element | Description | Type | Notes |
---|---|---|---|
data | Root element | object | |
> success | Specifies whether the request was a success. | boolean | - |
warnings | Contains any warnings in the response. | object | - |
errors | Contains any errors in the response. | object | - |
meta | Contains metadata information about the response. | object | - |
> ruid | Specifies the unique request ID. | string | You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong. |
Retrieving charge details
Retrieve the current charges for a property. The API returns the response in the format consistent with the create/update charges request payload.
GET
https://supply-xml.booking.com/charges-api/properties/{property_id}/charges
Path parameters
The following table describes the elements you must specify in the path:
Element | Description | Type | Required/ Optional | Notes |
---|---|---|---|---|
property_id | Specifies the unique ID of the property. | integer | required |
Response body
{
"data": {
"property_charges": [
{
"charge_key": {
"type": "CLEANINGFEE",
"guest_origin": "ANY",
"travel_purpose": "ANY"
},
"charge_periods": [
{
"applicable": {
"from": "2024-09-09",
"to": "2024-09-30"
},
"configuration": {
"amount": {
"value": 18.00,
"base": [],
"mode": "PER_STAY"
},
"excluded": true
}
},
{
"applicable": {
"from": "2024-10-01",
"to": "2024-11-28"
},
"configuration": {
"amount": {
"value": 20.00,
"base": [],
"mode": "PER_STAY"
},
"excluded": true
}
},
{
"applicable": {
"from": "2024-11-29"
},
"configuration": {
"amount": {
"value": 18.00,
"base": [],
"mode": "PER_STAY"
},
"excluded": true
}
}
]
},
...
...
...
{
"charge_key": {
"type": "PETFEE",
"guest_origin": "ANY",
"travel_purpose": "ANY"
},
"charge_periods": [
{
"applicable": {
"from": "2024-09-09"
},
"configuration": {
"amount": {
"value": 5.00,
"base": [],
"mode": "PER_STAY"
},
"excluded": true
}
}
]
}
],
"room_charges": [
{
"room_id": 801185511,
"charges": [
{
"charge_key": {
"type": "DESTINATIONCHARGE",
"guest_origin": "ANY",
"travel_purpose": "LEISURE"
},
"charge_periods": [
{
"applicable": {
"from": "2024-09-09"
},
"configuration": {
"amount": {
"value": 1.98,
"base": [],
"mode": "PER_PERSON_PER_NIGHT"
},
"excluded": false
}
}
]
}
]
}
]
},
"warnings": [],
"errors": [],
"meta": {
"ruid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
}
Response body elements
The following table describes the response elements:
Element | Description | Type | Notes |
---|---|---|---|
data | Root element | object | |
> property_charges | Charges that apply across the property. | array | At least one charge must be present between property_charges and room_charges . |
>> charge_key | Contains the attributes that uniquely identifies a charge. | object | If you change the value of a field within the charge key, you are not modifying an existing charge's value but creating a separate charge. |
>>> type | Specifies the charge type. | enumerated string | For a list of supported charge types, see the meta endpoint. |
>>> guest_origin | Specifies the guest origin as specified by guests when they make the booking. | enumerated string | Possible values are: ANY , DOMESTIC , INTERNATIONAL . |
>>> travel_purpose | Specifies the travel purpose as specified by guests when they make the booking. | enumerated string | Possible values are: ANY , LEISURE , BUSINESS . |
>> charge_periods | Contains the various configurations for the charge through time. | array of objects | |
>>> applicable | Contains the date range for this charge period. | object | Dates are inclusive and must not overlap. |
>>>> from | Specifies the start date for this charge period. | string | It may be in the past if it is the current active charge. Uses the ISO 8601 date format ( YYYY-MM-DD ) and is relative to the timezone of the property. |
>>>> to | Specifies the end date for this charge period (inclusive). | string | The date is relative to the property's timezone. If null or undefined, the current charge period extends forever. Uses the ISO 8601 date format (YYYY-MM-DD ). |
>>> configuration | Contains the charge configuration for this period. | object | If specified as null it clears the charge for the specific period. |
>>>> amount | Contains details about the charge price. | object | |
>>>>> value | Specifies the value of the charge. | number | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. Omitted for INCALCULABLE charges. |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Required when mode is PERCENTAGE (otherwise rejected). See the section on Understanding Percentage charges. |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | For possible values, see Understanding Charge modes. |
>>>> excluded | Specifies if the charge is included or excluded from the room rate. | boolean | This corresponds to the similarly named field in extranet. But is different from the included /excluded within the Reservations API. |
> room_charges | Contains the room specific charges. Overrides the same charge specified at the property level. | array | Can be an empty array. |
>> room_id | Specifies the Room ID the charges apply to. | integer | |
>> charges | Contains the attributes charges apply to. | array | |
>>> charge_key | Contains the attributes that uniquely identifies a charge. | object | If you change the value of a field within the charge key, you are not modifying an existing charge's value but creating a separate charge. |
>>>> type | Specifies the type of charge. | enumerated string | |
>>>> guest_origin | Specifies the guest origin as specified by guests when they make the booking. | enumerated string | Possible values are: ANY , DOMESTIC , INTERNATIONAL When determining which charges to apply at checkout, the narrowest/most specific charge key is used. For example, if an INTERNATIONAL guest books at a property that has both an INTERNATIONAL and ANY charge key (with the same charge type), only the INTERNATIONAL charge is applied. |
>>>> travel_purpose | Specifies the travel purpose as specified by guests when they make the booking. | enumerated string | Possible values are: ANY , LEISURE , BUSINESS When determining which charge to use at checkout, the narrowest/most specific charge key is used. For example, if a LEISURE guest books at a property that has both an INTERNATIONAL and ANY charge key (with the same charge type), only the LEISURE charge is applied. |
>>> charge_periods | Contains the various configurations for the charge through time. | array of objects | |
>>>> applicable | Contains the date range for this charge period. | object | Dates are inclusive and must not overlap. |
>>>>> from | Specifies the start date for this charge period. | string | It may be in the past if it is the current active charge. Uses the ISO 8601 date format ( YYYY-MM-DD ) and is relative to the timezone of the property. |
>>>>> to | Specifies the end date for this charge period (inclusive). | string | The date is relative to the property's timezone. If null or undefined, the current charge period extends forever. Uses the ISO 8601 date format ( YYYY-MM-DD ). |
>>> configuration | Contains the charge configuration for this period. | object | If specified as null it clears the charge for the specific period. |
>>>> amount | Contains details about the charge price. | object | |
>>>>> value | Specifies the value of the charge. | number | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.Omitted for INCALCULABLE charges. |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Required when mode is PERCENTAGE (otherwise rejected). See the section on Understanding Percentage charges. |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | For possible values, see Understanding Charge modes. |
>>>> excluded | Specifies if the charge is included or excluded from the room rate. | boolean | This corresponds to the similarly named field in extranet. But is different from the included /excluded within the Reservations API. |
warnings | Contains any warnings in the response. | object | - |
errors | Contains any errors in the response. | object | - |
meta | Contains metadata information about the response. | object | - |
> ruid | Specifies the unique request ID. | string | You can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong. |