# Get property and room charges

Retrieve the current charges for a property in format consistent with the creation/update payload.

Endpoint: GET /charges-api/properties/{propertyId}/charges
Version: 1.0

## Path parameters:

  - `propertyId` (integer, required)

## Response 200 fields (application/json):

  - `data` (object)

  - `data.property_charges` (array)
    Charges that apply across the property. Update requests must contain at least one charge between property and room arrays.

  - `data.property_charges.charge_key` (object, required)
    Contains the attributes that uniquely identify a charge.

If you change an attribute in the charge key, you are modifying a different charge with its own charge periods.

  - `data.property_charges.charge_key.type` (string, required)
    The type of charge. For a mapping between OTA/legacy and the new codes please use the meta endpoint.

HDCN: FeePolicy->Code
    Enum: "SERVICECHARGE_ASIA", "SERVICECHARGE", "RESORTFEE", "CLEANINGFEE", "TOWELFEE", "ELECTRICITYFEE", "BEDLINEN", "GASFEE", "OILFEE", "WOODFEE", "WATERFEE", "TRANSFERFEE", "LINENPACKAGEFEE", "HEATINGFEE", "AIRCONDITIONINGFEE", "KITCHENLINNENFEE", "HOUSEKEEPINGFEE", "AIRPORTSHUTTLEFEE", "SHUTTLEBOATFEE", "GALADINNERFEE", "SEAPLANEFEE", "SKIPASS", "FINALCLEANINGFEE", "WRISTBANDFEE", "VISASUPPORTFEE", "WATERPARKFEE", "CLUBCARDFEE", "CONSERVATIONFEE", "CREDITCARDFEE", "PETFEE", "INTERNETFEE", "PARKINGFEE", "VAT", "TAX", "GOODSSERVICESTAX", "GOODSSERVICESFLOODTAX", "GOVERNMENTCHARGE", "DAMAGEDEPOSIT", "DESTINATIONFEE", "ENVIRONMENTFEE", "SPATAX", "CITYTAX", "HOTSPRINGTAX", "MUNICIPALITYFEE", "TOURISMFEE", "RESIDENTIALTAX", "CITYTICKET", "HERITAGECHARGE", "FITNESSTAX", "GOVERNMENTTAX", "LOCALCOUNCILTAX", "SUSTAINABILITYFEE", "LOCALITYCONSERVATIONFEE", "SPA", "HOTSPRINGBATH", "POOL", "LOUNGE", "DESTINATIONCHARGE", "DESTINATIONTAX", "INSURANCEFEE"

  - `data.property_charges.charge_key.guest_origin` (string, required)
    The guest origin as specified when they make the booking.

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.

HDCN: N/A
    Enum: "ANY", "DOMESTIC", "INTERNATIONAL"

  - `data.property_charges.charge_key.travel_purpose` (string, required)
    The travel purpose as specified by the guest when they make the booking.

When determining which charge to use at checkout, the narrowest/most specific charge key is used. For example if an LEISURE guest books at a property that has both an LEISURE and ANY charge key (with the same charge type), only the LEISURE charge is applied.

HDCN: N/A
    Enum: "ANY", "LEISURE", "BUSINESS"

  - `data.property_charges.charge_periods` (array, required)
    Contains the timeline of various configurations for the charge through time.

  - `data.property_charges.charge_periods.applicable` (object, required)
    The date range for this charge period. Dates are inclusive and must not overlap.

  - `data.property_charges.charge_periods.applicable.from` (string, required)
    The start date for this charge period. The date is relative to the timezone of the property. If you are modifying an existing active charge, this date may be in the past if it matches the active charge's date.

Format: ISO 8601 date (YYYY-MM-DD)

Charge periods with a start date more than 10 years in the future will be ignored, effectively making the charge extend indefinitely.

HDCN: N/A

  - `data.property_charges.charge_periods.applicable.to` (string)
    The end date for this charge period (inclusive). The date is relative to the timezone of the property. If null or undefined the current charge period extends forever.

Format: ISO 8601 date (YYYY-MM-DD)

Charge periods with an end date more than 10 years in the future will be created without an end date, effectively making the charge extend indefinitely.

HDCN: N/A

  - `data.property_charges.charge_periods.configuration` (object)
    The charge configuration for this period.

If specified as null it clears the charge for the specific period. This field cannot be omitted.

  - `data.property_charges.charge_periods.configuration.amount` (object, required)
    Contains details about the charge price.

  - `data.property_charges.charge_periods.configuration.amount.value` (number)
    Value of the charge.

Required unless mode is INCALCULABLE, in which case any value passed is ignored.

Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.

HDCN:FeePolicy->Amount AND FeePolicy->Percent

  - `data.property_charges.charge_periods.configuration.amount.base` (array)
    Specifies what value the percentage applies to. For example, 10% of NET_ROOM_PRICE + PROPERTY_CHARGES.

Required when mode is PERCENTAGE (otherwise rejected).

To know what charge types fall into each base category please use the meta endpoint.

Currently we only accept the following combinations:
- ["NET_ROOM_PRICE"]
- ["NET_ROOM_PRICE", "PROPERTY_CHARGES"]
- ["NET_ROOM_PRICE", "LOCALITY_CHARGES"]
- ["NET_ROOM_PRICE", "LOCALITY_CHARGES", "PROPERTY_CHARGES"]

HDCN: N/A
    Enum: "NET_ROOM_PRICE", "TAXES", "LOCALITY_CHARGES", "PROPERTY_CHARGES", "FACILITY_CHARGES"

  - `data.property_charges.charge_periods.configuration.amount.mode` (string, required)
    The mode used for this charge.

Reference the meta endpoint to understand which charge modes are supported for the charge type.

HDCN:FeePolicy->ChargeFrequency AND FeePolicy->Percent in the case of PERCENTAGE
    Enum: "PER_NIGHT", "PER_STAY", "PER_PERSON_PER_NIGHT", "PER_PERSON_PER_STAY", "PERCENTAGE", "INCALCULABLE"

  - `data.property_charges.charge_periods.configuration.child_ages` (array)
    Contains modifiers for the charge amount based on children ages.

If multiple modifiers are configured, only the most specific age multiplier that matches the child's age is applied. For example, if a .50 multiplier is configured for children under 8 years old, and a .80 multiplier is configured for children under 12 years old, a 7 year old child would get a .50 discount.

  - `data.property_charges.charge_periods.configuration.child_ages.multiplier` (number, required)
    Multiplier to be applied to the amount of the charge if age condition matches.

Required when including an age configuration.

HDCN:N/A

  - `data.property_charges.charge_periods.configuration.child_ages.lte` (integer, required)
    Upper bound of the age range. Inclusive. Abbreviation for less than or equal to.

HDCN:N/A

  - `data.property_charges.charge_periods.configuration.excluded` (boolean, required)
    Specifies if the charge is included or excluded from the calendar rate.

For example, let's assume the calendar rate is set to 100 euros. If there is a 10 euro excluded charge the net price would be 110 euros and our price breakdown would show 100 + 10. If the 10 euro charge is not excluded the net price would be 100 and our price breakdown would show 90 + 10.

This corresponds to the similarly named field in extranet, but is separate from the included/excluded within Reservations API.

HDCN: FeePolicy->Type

  - `data.room_charges` (array)
    Room specific charges. Will override the same charge specified at the property level. Update requests must contain at least one charge between property and room arrays.

  - `data.room_charges.room_id` (integer, required)
    The Room ID the charges apply to.

HDCN: FeePolicy->InvCode

  - `data.room_charges.charges` (array, required)
    List of charges for the room.

  - `data.room_charges.charges.charge_key` (object, required)
    Contains the attributes that uniquely identify a charge.

If you change an attribute in the charge key, you are modifying a different charge with its own charge periods.

  - `data.room_charges.charges.charge_key.type` (string, required)
    The type of charge. For a mapping between OTA/legacy and the new codes please use the meta endpoint.

HDCN: FeePolicy->Code
    Enum: "SERVICECHARGE_ASIA", "SERVICECHARGE", "RESORTFEE", "CLEANINGFEE", "TOWELFEE", "ELECTRICITYFEE", "BEDLINEN", "GASFEE", "OILFEE", "WOODFEE", "WATERFEE", "TRANSFERFEE", "LINENPACKAGEFEE", "HEATINGFEE", "AIRCONDITIONINGFEE", "KITCHENLINNENFEE", "HOUSEKEEPINGFEE", "AIRPORTSHUTTLEFEE", "SHUTTLEBOATFEE", "GALADINNERFEE", "SEAPLANEFEE", "SKIPASS", "FINALCLEANINGFEE", "WRISTBANDFEE", "VISASUPPORTFEE", "WATERPARKFEE", "CLUBCARDFEE", "CONSERVATIONFEE", "CREDITCARDFEE", "PETFEE", "INTERNETFEE", "PARKINGFEE", "VAT", "TAX", "GOODSSERVICESTAX", "GOODSSERVICESFLOODTAX", "GOVERNMENTCHARGE", "DAMAGEDEPOSIT", "DESTINATIONFEE", "ENVIRONMENTFEE", "SPATAX", "CITYTAX", "HOTSPRINGTAX", "MUNICIPALITYFEE", "TOURISMFEE", "RESIDENTIALTAX", "CITYTICKET", "HERITAGECHARGE", "FITNESSTAX", "GOVERNMENTTAX", "LOCALCOUNCILTAX", "SUSTAINABILITYFEE", "LOCALITYCONSERVATIONFEE", "SPA", "HOTSPRINGBATH", "POOL", "LOUNGE", "DESTINATIONCHARGE", "DESTINATIONTAX", "INSURANCEFEE"

  - `data.room_charges.charges.charge_key.guest_origin` (string, required)
    The guest origin as specified when they make the booking.

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.

HDCN: N/A
    Enum: "ANY", "DOMESTIC", "INTERNATIONAL"

  - `data.room_charges.charges.charge_key.travel_purpose` (string, required)
    The travel purpose as specified by the guest when they make the booking.

When determining which charge to use at checkout, the narrowest/most specific charge key is used. For example if an LEISURE guest books at a property that has both an LEISURE and ANY charge key (with the same charge type), only the LEISURE charge is applied.

HDCN: N/A
    Enum: "ANY", "LEISURE", "BUSINESS"

  - `data.room_charges.charges.charge_periods` (array, required)
    Contains the timeline of various configurations for the charge through time.

  - `data.room_charges.charges.charge_periods.applicable` (object, required)
    The date range for this charge period. Dates are inclusive and must not overlap.

  - `data.room_charges.charges.charge_periods.applicable.from` (string, required)
    The start date for this charge period. The date is relative to the timezone of the property. If you are modifying an existing active charge, this date may be in the past if it matches the active charge's date.

Format: ISO 8601 date (YYYY-MM-DD)

Charge periods with a start date more than 10 years in the future will be ignored, effectively making the charge extend indefinitely.

HDCN: N/A

  - `data.room_charges.charges.charge_periods.applicable.to` (string)
    The end date for this charge period (inclusive). The date is relative to the timezone of the property. If null or undefined the current charge period extends forever.

Format: ISO 8601 date (YYYY-MM-DD)

Charge periods with an end date more than 10 years in the future will be created without an end date, effectively making the charge extend indefinitely.

HDCN: N/A

  - `data.room_charges.charges.charge_periods.configuration` (object)
    The charge configuration for this period.

If specified as null it clears the charge for the specific period. This field cannot be omitted.

  - `data.room_charges.charges.charge_periods.configuration.amount` (object, required)
    Contains details about the charge price.

  - `data.room_charges.charges.charge_periods.configuration.amount.value` (number)
    Value of the charge.

Required unless mode is INCALCULABLE, in which case any value passed is ignored.

Interpreted as an absolute value or percentage depending on mode. Absolute values are in the property's configured currency.

HDCN:FeePolicy->Amount AND FeePolicy->Percent

  - `data.room_charges.charges.charge_periods.configuration.amount.base` (array)
    Specifies what value the percentage applies to. For example, 10% of NET_ROOM_PRICE + PROPERTY_CHARGES.

Required when mode is PERCENTAGE (otherwise rejected).

To know what charge types fall into each base category please use the meta endpoint.

Currently we only accept the following combinations:
- ["NET_ROOM_PRICE"]
- ["NET_ROOM_PRICE", "PROPERTY_CHARGES"]
- ["NET_ROOM_PRICE", "LOCALITY_CHARGES"]
- ["NET_ROOM_PRICE", "LOCALITY_CHARGES", "PROPERTY_CHARGES"]

HDCN: N/A
    Enum: "NET_ROOM_PRICE", "TAXES", "LOCALITY_CHARGES", "PROPERTY_CHARGES", "FACILITY_CHARGES"

  - `data.room_charges.charges.charge_periods.configuration.amount.mode` (string, required)
    The mode used for this charge.

Reference the meta endpoint to understand which charge modes are supported for the charge type.

HDCN:FeePolicy->ChargeFrequency AND FeePolicy->Percent in the case of PERCENTAGE
    Enum: "PER_NIGHT", "PER_STAY", "PER_PERSON_PER_NIGHT", "PER_PERSON_PER_STAY", "PERCENTAGE", "INCALCULABLE"

  - `data.room_charges.charges.charge_periods.configuration.child_ages` (array)
    Contains modifiers for the charge amount based on children ages.

If multiple modifiers are configured, only the most specific age multiplier that matches the child's age is applied. For example, if a .50 multiplier is configured for children under 8 years old, and a .80 multiplier is configured for children under 12 years old, a 7 year old child would get a .50 discount.

  - `data.room_charges.charges.charge_periods.configuration.child_ages.multiplier` (number, required)
    Multiplier to be applied to the amount of the charge if age condition matches.

Required when including an age configuration.

HDCN:N/A

  - `data.room_charges.charges.charge_periods.configuration.child_ages.lte` (integer, required)
    Upper bound of the age range. Inclusive. Abbreviation for less than or equal to.

HDCN:N/A

  - `data.room_charges.charges.charge_periods.configuration.excluded` (boolean, required)
    Specifies if the charge is included or excluded from the calendar rate.

For example, let's assume the calendar rate is set to 100 euros. If there is a 10 euro excluded charge the net price would be 110 euros and our price breakdown would show 100 + 10. If the 10 euro charge is not excluded the net price would be 100 and our price breakdown would show 90 + 10.

This corresponds to the similarly named field in extranet, but is separate from the included/excluded within Reservations API.

HDCN: FeePolicy->Type

  - `warnings` (array)

  - `warnings.message` (string)

  - `warnings.code` (string)

  - `warnings.details` (object)

  - `errors` (array)

  - `errors.message` (string)

  - `errors.code` (string)

  - `errors.details` (object)

  - `meta` (object)

  - `meta.ruid` (string)


