---
title: "Create a service."
method: POST
path: "/rateplan/v1/services"
tags: ["Service"]
---

# Create a service.

`POST /rateplan/v1/services`

Create a service.<br>You must have at least one of these scopes: 'services.create, setup.manage'.

## Headers

- `Idempotency-Key` string

## Request body

- CreateServiceModel
  - `code` string, required — The code for the service that can be shown in reports and table views
  - `name` object, required — The name for the service
  - `description` object, required — The description for the service
  - `propertyId` string, required — The id of the property where the item will be created
  - `defaultGrossPrice` MonetaryValueModel, required
    - `amount` number, double, required
    - `currency` string, required
  - `pricingUnit` 'Room' | 'Person', required — Defines the granularity for which this item is offered and priced.
  - `postNextDay` boolean, required — Whether the service is delivered and posted on the same business date as the accommodation, or on the next day.
  - `availability` AvailabilityModel
    - `mode` 'Arrival' | 'Departure' | 'Daily', required — You can choose if the service will only be offered for the arrival or departure time slice like early check-in or a final cleaning service. You can also define a service that is available to be booked for the whole stay. The property defaults to 'Daily'.
    - `quantity` integer, nullable — Quota/Limit for service. By default service is unlimited.
    - `daysOfWeek` string[], nullable — You can choose if the service should be available for specific days of the week
  - `channelCodes` string[], nullable — The channel codes the service is sold through. When no channels are defined, the service is sold only in a package
  - `accountingConfigs` AccountingConfigModel[], nullable — The collection of accounting configs with validity periods. This is a temporary field, avoid using it.
    - `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
  - `ageCategoryId` string, nullable — The id of the age category associated with this service.

## Response `201`

Service successfully created.

- ServiceCreatedModel
  - `id` string, required — The item id

## Other responses

- `400` — Bad request.
- `401` — You are unauthorized.
- `403` — Forbidden.
- `404` — The Request-URI could not be found.
- `415` — Unsupported media type.
- `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.md) · [All operations](https://skmtc.dev/apaleo/apis/apaleo-rate-plan-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/apaleo/apaleo-rate-plan-api/revisions/876b6db65772/schema)
