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
PUT
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 will behave 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 Percentage Charges
One of the charge modes supported in Charges API is PERCENTAGE
. When using this charge mode you must also specify configuration.base
. In this array you can specify what the percentage should be based on.
For example, the below charge will apply a 5% charge on the total sum of room price and any existing property charges. To understand which charge types are categorized as PROPERTY_CHARGES
, see the Charges API meta endpoint and find the charges with the charge_category
of PROPERTY_CHARGES
.
{ "value": 5.0, "base": [ "NET_ROOM_PRICE", "PROPERTY_CHARGES" ], "mode": "PERCENTAGE" }
Note that currently only the follow 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
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 | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. | FeePolicy > Amount and FeePolicy > Percent . |
>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | optional | Possible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES Required when mode is PERCENTAGE (otherwise rejected). | |
>>>> mode | Specifies the mode used for this charge. | enumerated string | required | Possible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE | 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. | |
> 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 | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. | FeePolicy > Amount and FeePolicy > Percent |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | optional | Possible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES Required when mode is PERCENTAGE (otherwise rejected). | |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | required | Possible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE | 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
.
PUT
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 | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. | FeePolicy > Amount and FeePolicy > Percent . |
>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | optional | Possible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES Required when mode is PERCENTAGE (otherwise rejected). | |
>>>> mode | Specifies the mode used for this charge. | enumerated string | required | Possible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE | 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. | |
> 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 | Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency. | FeePolicy > Amount and FeePolicy > Percent |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | optional | Possible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES Required when mode is PERCENTAGE (otherwise rejected). | |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | required | Possible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE | 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. |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Possible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES Required when mode is PERCENTAGE (otherwise rejected). |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | Possible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE . |
>>>> 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. |
>>>>> base | Only applies when mode is PERCENTAGE . Specifies the value the percentage applies to. | enumerated array of strings | Possible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES Required when mode is PERCENTAGE (otherwise rejected). |
>>>>> mode | Specifies the mode used for this charge. | enumerated string | Possible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE . |
>>>> 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. |