Last updated

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.

How dates are applied to reservations

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 statusAPI action
There are no charge periods for this charge_keyThe API creates the charge.
There are existing charge periods for this charge_key, but they do not overlap with the new applicable time windowThe 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, a RESORTFEE is categorized as PROPERTY_CHARGES, so it cannot have a charge base that includes PROPERTY_CHARGES.

To view the open API specification to help create, update or delete taxes and fees, see the Charges endpoint.

Header parameter

HeaderDescriptionTypeRequired/
Optional
Notes
Content-Type: application/jsonSpecifies the expected content type.stringrequired
Accept-VersionSpecify the version number to get the API functionality specific to that version.stringoptionalThe only supported API version currently is 1.0.

Path parameters

The following table describes the elements you must specify in the path:

ElementDescriptionTypeRequired/
Optional
Notes
property_idSpecifies the unique ID of the property.integerrequired

Request body parameters

The following table describes the elements you can add in the request body:

ElementDescriptionTypeRequired/
Optional
NotesRoot parameter in HDCN
property_chargesCharges that apply across the property.arrayrequiredAt least one charge must be present between property_charges and room_charges.
> charge_keyContains the attributes that uniquely identifies a charge.objectrequiredIf 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.
>> typeSpecifies the charge type.enumerated stringrequiredFor a list of supported charge types, see the meta endpoint.FeePolicy > Code.
>> guest_originSpecifies the guest origin as specified by guests when they make the booking.enumerated stringrequiredPossible values are: ANY, DOMESTIC, INTERNATIONAL.
>> travel_purposeSpecifies the travel purpose as specified by guests when they make the booking.enumerated stringrequiredPossible values are: ANY, LEISURE, BUSINESS.
> charge_periodsContains the various configurations for the charge through time.array of objectsrequired
>> applicableContains the date range for this charge period.objectrequiredDates are inclusive and must not overlap.
>>> fromSpecifies the start date for this charge period.stringrequiredIt 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.
>>> toSpecifies the end date for this charge period (inclusive).stringoptionalThe 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).
>> configurationContains the charge configuration for this period.objectoptionalIf specified as null it clears the charge for the specific period.
>>> amountContains details about the charge price.objectrequired
>>>> valueSpecifies the value of the charge.numberrequiredInterpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.FeePolicy > Amount and FeePolicy > Percent.
>>>> baseOnly applies when mode is PERCENTAGE. Specifies the value the percentage applies to.enumerated array of stringsoptionalPossible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES
Required when mode is PERCENTAGE (otherwise rejected).
>>>> modeSpecifies the mode used for this charge.enumerated stringrequiredPossible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLEFeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE.
>>>> excludedSpecifies if the charge is included or excluded from the room rate.booleanrequiredThis corresponds to the similarly named field in extranet. But is different from the included/excluded within the Reservations API.FeePolicy > Type.
room_chargesContains the room specific charges. Overrides the same charge specified at the property level.arrayrequiredCan be an empty array.
> room_idSpecifies the Room ID the charges apply to.integerrequiredFeePolicy >InvCode
> chargesContains the attributes charges apply to.arrayrequired
>> charge_keyContains the attributes that uniquely identifies a charge.objectrequiredIf 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.
>>> typeSpecifies the type of charge.enumerated stringrequiredFeePolicy > Code
>>> guest_originSpecifies the guest origin as specified by guests when they make the booking.enumerated stringrequiredPossible 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_purposeSpecifies the travel purpose as specified by guests when they make the booking.enumerated stringrequiredPossible 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_periodsContains the various configurations for the charge through time.array of objectsrequired
>>> applicableContains the date range for this charge period.objectrequiredDates are inclusive and must not overlap.
>>>> fromSpecifies the start date for this charge period.stringrequiredIt 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.
>>>> toSpecifies the end date for this charge period (inclusive).stringoptionalThe 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).
>>> configurationContains the charge configuration for this period.objectoptionalIf specified as null, it clears the charge for the specific period.
>>>> amountContains details about the charge price.objectrequired
>>>>> valueSpecifies the value of the charge.numberrequiredInterpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.FeePolicy > Amount and FeePolicy > Percent
>>>>> baseOnly applies when mode is PERCENTAGE. Specifies the value the percentage applies to.enumerated array of stringsoptionalPossible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES
Required when mode is PERCENTAGE (otherwise rejected).
>>>>> modeSpecifies the mode used for this charge.enumerated stringrequiredPossible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLEFeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE.
>>>> excludedSpecifies if the charge is included or excluded from the room rate.booleanrequiredThis 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:

ElementDescriptionTypeNotes
dataRoot elementobject
> successSpecifies whether the request was a success.boolean-
warningsContains any warnings in the response.object-
errorsContains any errors in the response.object-
metaContains metadata information about the response.object-
> ruidSpecifies the unique request ID.stringYou 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

HeaderDescriptionTypeRequired/
Optional
Notes
Content-Type: application/jsonSpecifies the expected content type.stringrequired
Accept-VersionSpecify the version number to get the API functionality specific to that version.stringoptionalThe only supported API version currently is 1.0.

Path parameters

The following table describes the elements you must specify in the path:

ElementDescriptionTypeRequired/
Optional
Notes
property_idSpecifies the unique ID of the property.integerrequired

Request body parameters

The following table describes the elements you can add in the request body:

ElementDescriptionTypeRequired/
Optional
NotesRoot parameter in HDCN
property_chargesCharges that apply across the property.arrayrequiredAt least one charge must be present between property_charges and room_charges.
> charge_keyContains the attributes that uniquely identifies a charge.objectrequiredIf 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.
>> typeSpecifies the charge type.enumerated stringrequiredFor a list of supported charge types, see the meta endpoint.FeePolicy > Code.
>> guest_originSpecifies the guest origin as specified by guests when they make the booking.enumerated stringrequiredPossible values are: ANY, DOMESTIC, INTERNATIONAL.
>> travel_purposeSpecifies the travel purpose as specified by guests when they make the booking.enumerated stringrequiredPossible values are: ANY, LEISURE, BUSINESS.
> charge_periodsContains the various configurations for the charge through time.array of objectsrequired
>> applicableContains the date range for this charge period.objectrequiredDates are inclusive and must not overlap.
>>> fromSpecifies the start date for this charge period.stringrequiredIt 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.
>>> toSpecifies the end date for this charge period (inclusive).stringoptionalThe 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).
>> configurationContains the charge configuration for this period.objectoptionalIf specified as null it clears the charge for the specific period.
>>> amountContains details about the charge price.objectrequired
>>>> valueSpecifies the value of the charge.numberrequiredInterpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.FeePolicy > Amount and FeePolicy > Percent.
>>>> baseOnly applies when mode is PERCENTAGE. Specifies the value the percentage applies to.enumerated array of stringsoptionalPossible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES
Required when mode is PERCENTAGE (otherwise rejected).
>>>> modeSpecifies the mode used for this charge.enumerated stringrequiredPossible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLEFeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE.
>>>> excludedSpecifies if the charge is included or excluded from the room rate.booleanrequiredThis corresponds to the similarly named field in extranet. But is different from the included/excluded within the Reservations API.FeePolicy > Type.
room_chargesContains the room specific charges. Overrides the same charge specified at the property level.arrayrequiredCan be an empty array.
> room_idSpecifies the Room ID the charges apply to.integerrequiredFeePolicy >InvCode
> chargesContains the attributes charges apply to.arrayrequired
>> charge_keyContains the attributes that uniquely identifies a charge.objectrequiredIf 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.
>>> typeSpecifies the type of charge.enumerated stringrequiredFeePolicy > Code
>>> guest_originSpecifies the guest origin as specified by guests when they make the booking.enumerated stringrequiredPossible 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_purposeSpecifies the travel purpose as specified by guests when they make the booking.enumerated stringrequiredPossible 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_periodsContains the various configurations for the charge through time.array of objectsrequired
>>> applicableContains the date range for this charge period.objectrequiredDates are inclusive and must not overlap.
>>>> fromSpecifies the start date for this charge period.stringrequiredIt 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.
>>>> toSpecifies the end date for this charge period (inclusive).stringoptionalThe 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).
>>> configurationContains the charge configuration for this period.objectoptionalIf specified as null, it clears the charge for the specific period.
>>>> amountContains details about the charge price.objectrequired
>>>>> valueSpecifies the value of the charge.numberrequiredInterpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.FeePolicy > Amount and FeePolicy > Percent
>>>>> baseOnly applies when mode is PERCENTAGE. Specifies the value the percentage applies to.enumerated array of stringsoptionalPossible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES
Required when mode is PERCENTAGE (otherwise rejected).
>>>>> modeSpecifies the mode used for this charge.enumerated stringrequiredPossible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLEFeePolicy > ChargeFrequency and FeePolicy > Percent in the case of PERCENTAGE.
>>>> excludedSpecifies if the charge is included or excluded from the room rate.booleanrequiredThis 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:

ElementDescriptionTypeNotes
dataRoot elementobject
> successSpecifies whether the request was a success.boolean-
warningsContains any warnings in the response.object-
errorsContains any errors in the response.object-
metaContains metadata information about the response.object-
> ruidSpecifies the unique request ID.stringYou 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:

ElementDescriptionTypeRequired/
Optional
Notes
property_idSpecifies the unique ID of the property.integerrequired

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:

ElementDescriptionTypeNotes
dataRoot elementobject
> property_chargesCharges that apply across the property.arrayAt least one charge must be present between property_charges and room_charges.
>> charge_keyContains the attributes that uniquely identifies a charge.objectIf 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.
>>> typeSpecifies the charge type.enumerated stringFor a list of supported charge types, see the meta endpoint.
>>> guest_originSpecifies the guest origin as specified by guests when they make the booking.enumerated stringPossible values are: ANY, DOMESTIC, INTERNATIONAL.
>>> travel_purposeSpecifies the travel purpose as specified by guests when they make the booking.enumerated stringPossible values are: ANY, LEISURE, BUSINESS.
>> charge_periodsContains the various configurations for the charge through time.array of objects
>>> applicableContains the date range for this charge period.objectDates are inclusive and must not overlap.
>>>> fromSpecifies the start date for this charge period.stringIt 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.
>>>> toSpecifies the end date for this charge period (inclusive).stringThe 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).
>>> configurationContains the charge configuration for this period.objectIf specified as null it clears the charge for the specific period.
>>>> amountContains details about the charge price.object
>>>>> valueSpecifies the value of the charge.numberInterpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.
>>>>> baseOnly applies when mode is PERCENTAGE. Specifies the value the percentage applies to.enumerated array of stringsPossible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES
Required when mode is PERCENTAGE (otherwise rejected).
>>>>> modeSpecifies the mode used for this charge.enumerated stringPossible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE.
>>>> excludedSpecifies if the charge is included or excluded from the room rate.booleanThis corresponds to the similarly named field in extranet. But is different from the included/excluded within the Reservations API.
> room_chargesContains the room specific charges. Overrides the same charge specified at the property level.arrayCan be an empty array.
>> room_idSpecifies the Room ID the charges apply to.integer
>> chargesContains the attributes charges apply to.array
>>> charge_keyContains the attributes that uniquely identifies a charge.objectIf 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.
>>>> typeSpecifies the type of charge.enumerated string
>>>> guest_originSpecifies the guest origin as specified by guests when they make the booking.enumerated stringPossible 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_purposeSpecifies the travel purpose as specified by guests when they make the booking.enumerated stringPossible 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_periodsContains the various configurations for the charge through time.array of objects
>>>> applicableContains the date range for this charge period.objectDates are inclusive and must not overlap.
>>>>> fromSpecifies the start date for this charge period.stringIt 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.
>>>>> toSpecifies the end date for this charge period (inclusive).stringThe 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).
>>> configurationContains the charge configuration for this period.objectIf specified as null it clears the charge for the specific period.
>>>> amountContains details about the charge price.object
>>>>> valueSpecifies the value of the charge.numberInterpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.
>>>>> baseOnly applies when mode is PERCENTAGE. Specifies the value the percentage applies to.enumerated array of stringsPossible values are: NET_ROOM_PRICE, TAXES, LOCALITY_CHARGES, PROPERTY_CHARGES, FACILITY_CHARGES
Required when mode is PERCENTAGE (otherwise rejected).
>>>>> modeSpecifies the mode used for this charge.enumerated stringPossible values are: PER_NIGHT, PER_STAY, PER_PERSON_PER_NIGHT, PER_PERSON_PER_STAY, PERCENTAGE, INCALCULABLE.
>>>> excludedSpecifies if the charge is included or excluded from the room rate.booleanThis corresponds to the similarly named field in extranet. But is different from the included/excluded within the Reservations API.
warningsContains any warnings in the response.object-
errorsContains any errors in the response.object-
metaContains metadata information about the response.object-
> ruidSpecifies the unique request ID.stringYou can share this ID with Booking.com customer support when you run into an issue. This can help in understanding what went wrong.