---
title: "Get a rate plan"
method: GET
path: "/rateplan/v0-nsfw/rate-plans/{id}"
tags: ["RatePlan"]
---

# Get a rate plan

`GET /rateplan/v0-nsfw/rate-plans/{id}`

## Request

- Base URL: `https://api.apaleo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.apaleo.com/rateplan/v0-nsfw/rate-plans/{id}`
- Auth: OAuth 2
  - Implicit: `https://identity.apaleo.com/connect/authorize`
  - Scopes: `rateplans.read`, `setup.read`, `setup.manage`, `admin`

Get a rate plan by id.


            
To be able to read a corporate rate plan a client must additionaly have
'rateplans.read-corporate' scope assigned.<br>You must have at least one of these scopes: 'rateplans.read, setup.read, setup.manage'.<br>For fine-grained clients, you must have this permission: 'core.rate_plans.read'.

## Path parameters

- `id` string, required

## Query parameters

- `languages` string[]
- `expand` string[]

## Response `200`

Return all the rate plan data.

- RatePlanModel
  - `id` string, required: The rate plan id
  - `code` string, required: The code for the rate plan that can be shown in reports and table views
  - `name` object, required: The name for the rate plan
  - `description` object, required: The description for the rate plan
  - `minGuaranteeType` 'PM6Hold' | 'CreditCard' | 'Prepayment' | 'Company', required: The minimum guarantee to be provided when this rate plan is booked so the reservation will be guaranteed to the guest
  - `priceCalculationMode` 'Truncate' | 'Round': The calculation mode is used when calculating the adults' surcharges and derived rates. Defaults to Truncate. Example: for a rate of 125.99 and a surcharge of +10%, when Truncate is selected, the result would be 125.99 + 12 = 137.99 When Round is selected, the result would be 125.99 + 12.60 = 138.59
  - `property` EmbeddedPropertyModel, required
    - `id` string, required: The property id
    - `code` string, nullable: The code for the property that can be shown in reports and table views
    - `name` string, nullable: The name for the property
    - `description` string, nullable: The description for the property
  - `unitGroup` EmbeddedUnitGroupModel, required
    - `id` string, required: The unit group id
    - `code` string, nullable: The code for the unit group that can be shown in reports and table views
    - `name` string, nullable: The name for the unit group
    - `description` string, nullable: The description for the unit group
    - `type` 'BedRoom' | 'MeetingRoom' | 'EventSpace' | 'ParkingLot' | 'Other', nullable: The unit group type
  - `cancellationPolicy` EmbeddedCancellationPolicyModel, required
    - `id` string, required: The cancellation policy id
    - `code` string, nullable: The code for the cancellation policy that can be shown in reports and table views
    - `name` string, nullable: The name for the cancellation policy
    - `description` string, nullable: The description for the cancellation policy
    - `periodPriorToArrival` PeriodModel
      - `hours` integer, nullable: The number of hours within the period
      - `days` integer, nullable: The number of days within the period
      - `months` integer, nullable: The number of months within the period
  - `noShowPolicy` EmbeddedNoShowPolicyModel, required
    - `id` string, required: The no-show policy id
    - `code` string, nullable: The code for the no-show policy that can be shown in reports and table views
    - `name` string, nullable: The name for the no-show policy
    - `description` string, nullable: The description for the no-show policy
  - `channelCodes` string[], required: The channel codes the rate plan is sold through
  - `accountingConfigs` AccountingConfigModel[], required: The collection of accounting configs with validity periods.
    - `vatType` 'Null' | 'VeryReduced' | 'Reduced' | 'Normal' | 'Without' | 'Special' | 'Special1' | 'Special2' | 'ReducedCovid19' | 'NormalCovid19' | 'Mixed', required: The VAT type
    - `serviceType` 'Other' | 'Accommodation' | 'FoodAndBeverages', required: The service type
    - `subAccountId` string, nullable: The sub-accounts id
    - `validFrom` string, date, required: Which date this configuration is valid from
  - `promoCodes` string[], nullable: The rate codes for promotional and hidden rates. If at least one code is set the rate will be not publicly visible anymore and only be offered when one of the promo codes is given in the offer request. For backward compatibility it is still not possible to set multiple promo codes.
  - `timeSliceDefinition` EmbeddedTimeSliceDefinitionModel, required
    - `id` string, required: The time slice definition id
    - `name` string, required: The name for the time slice definition
    - `template` 'DayUse' | 'OverNight', required: The template used by the time slice defintion
    - `checkInTime` string, required: The check-in time for reservations based on this rate plan<br />A time (without fractional second part) as defined in the <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `checkOutTime` string, required: The check-out time for reservations based on this rate plan<br />A time (without fractional second part) as defined in the <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
  - `restrictions` BookingRestrictionsModel
    - `minAdvance` PeriodModel
      - `hours` integer, nullable: The number of hours within the period
      - `days` integer, nullable: The number of days within the period
      - `months` integer, nullable: The number of months within the period
    - `maxAdvance` PeriodModel
      - `hours` integer, nullable: The number of hours within the period
      - `days` integer, nullable: The number of days within the period
      - `months` integer, nullable: The number of months within the period
    - `lateBookingUntil` string, nullable: Time of day until the late booking can be made for this rate plan Restrictions: - the time has to be between the check-in (excl.) and check-out time (excl.) - can only be set, if MinAdvance is not set<br />A time (without fractional second part) as defined in the <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
  - `bookingPeriods` BookingPeriodModel[], nullable: Time periods when the rate plan is bookable
    - `from` string, date-time, required: Start of booking period<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
    - `to` string, date-time, required: End of booking period<br />A date and time (without fractional second part) in UTC or with UTC offset as defined in <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO8601:2004</a>
  - `isBookable` boolean, required: Indicates whether the rate plan has an active booking period
  - `isSubjectToCityTax` boolean, required: Whether the rate plan is subject to city tax or not. Default value is `true`
  - `pricingRule` PricingRuleModel
    - `baseRatePlan` EmbeddedRatePlanModel, required
      - `id` string, required: The rate plan id
      - `code` string, nullable: The code for the rate plan that can be shown in reports and table views
      - `name` string, nullable: The name for the rate plan
      - `description` string, nullable: The description for the rate plan
      - `isSubjectToCityTax` boolean, required: Whether the rate plan is subject to city tax or not
    - `type` 'Absolute' | 'Percent', required: The type used to control the calculation of the difference to the rates of the defined base rate plan
    - `value` number, double, required: The value used to control the calculation of the difference to the rates of the defined base rate plan. It can be a positive and a negative value
  - `isDerived` boolean, required: Indicates whether the rates for this rate plan are derived from another rate plan
  - `derivationLevel` integer, required: Indicates the derivation level of the rate plan. When zero, it is a rate plan with manually managed prices.
  - `surcharges` SurchargeModel[], nullable: Additional charges for more than single occupancy. The percent or absolute value will be added to the manually defined or calculated derived rates.
    - `adults` integer, required: The total numbers of adults
    - `type` 'Absolute' | 'Percent', required: Specifies how to interpret 'Value'
    - `value` number, double, required: The percent or absolute value (in the rate plan's currency) of the surcharge
  - `ageCategories` RatePlanAgeCategoryModel[], nullable: Additional charges per age category.
    - `id` string, required: The id of the age category
    - `surcharges` AgeCategorySurchargeModel[], required: Additional charges for the current age category. The absolute value will be added to the manually defined or calculated derived rates. The values for 'adults' must be unique within the list, and starting from 1. Values equal or higher than the maximum unit group occupancy will be silently ignored.
      - `adults` integer, required: The number of adults
      - `value` number, double, required: The absolute value in the currency of the rate plan as surcharge for each child accompanied by the given number of 'adults'. The minimum value is 0.
  - `includedServices` RatePlanServiceModel[], nullable: Services that are included in the rate plan
    - `serviceId` string, required: Service id to be included in the rate plan
    - `grossPrice` MonetaryValueModel, required
      - `amount` number, double, required
      - `currency` string, required
    - `pricingMode` 'Included' | 'Additional', nullable: Whether the service price is included in or added to the base rate. The property defaults to `Included`.
  - `companies` CompanyRatePlanModel[], nullable: Companies that can use this rate plan
    - `id` string, required: Company ID that can use this rate plan
    - `code` string, required: The code of the company that can book this rate plan
    - `corporateCode` string, required: Company rate plan code, identifying the company + rate plan pair. Is used is offers.
    - `name` string, required: The name of the company that can book this rate plan
  - `ratesRange` RatesRangeModel
    - `from` string, date, required: The first date when the rate plan has rates set
    - `to` string, date, required: The last date when the rate plan has rates set
  - `marketSegment` EmbeddedMarketSegmentModel: The market segment identifier to help categorize your bookings for revenue management and reporting purposes.
    - `id` string, required: The market segment id
    - `code` string, nullable: The market segment code
    - `name` string, nullable: The market segment name
  - `isYieldable` boolean: Whether the rate plan is subject to evaluation against hurdle rates when deciding on rate availability.
  - `isArchived` boolean, nullable: Whether the rate plan is archived or not

## Other responses

- `400`: Bad request.
- `401`: You are unauthorized.
- `403`: Forbidden.
- `404`: The Request-URI could not be found.
- `422`: Validation errors in the request body or query params.
- `499`: Client closed request.
- `500`: An unexpected error occurred.
- `503`: The server is currently unavailable. Please try later.

---

[API](https://skmtc.dev/apaleo/apis/apaleo-rate-plan-api-not-safe-for-work.md) - [All operations](https://skmtc.dev/apaleo/apis/apaleo-rate-plan-api-not-safe-for-work/llms.txt) - [OpenAPI document](https://skmtc.dev/apaleo/apis/apaleo-rate-plan-api-not-safe-for-work/revisions/97dec9512a17?raw)
