---
title: "UpdateRatePlan"
method: POST
path: "/UpdateRatePlan"
tags: ["Content"]
---

# UpdateRatePlan

`POST /UpdateRatePlan`

Create of update rate plan after it has been changed on the Cloudbeds channel manager.

## Request body

- object
  - `mya_property_id` integer, required — Property ID on the Cloudbeds channel manager
  - `ota_property_id` string, required — Username, login or property ID on the OTA
  - `ota_property_password` string, required — Password for property on your OTA. In case the OTA does not use passwords this will be an empty string.
  - `ota_property_sub_id` string, required — Property ID on the OTA, if OTA supports multiple properties under one `ota_property_id`/`ota_property_password` combination. See `GetSubProperties` for more details.
  - `guid` string, required — Request reference ID, used for debugging and support requests.
  - `shared_secret` string, required — Authentication between the OTA and the channel. Identical for all requests. Not to be shared with customers.
  - `ota_cid` string, required — OTA ID as given by Cloudbeds
  - `rateplan` object, required
    - `mya_rate_id` integer, required — Rate plan ID on the Cloudbeds channel manager.
    - `ota_rate_id` string — Channel rate plan ID.
    - `mya_room_id` integer — Room ID on the Cloudbeds channel manager.
    - `ota_room_id` string — Channel room ID.
    - `label_private` string, required — The private name of the rate plan, only shown to the property.
    - `label_public` string, required — The public name of the rate plan, that can also be shown to customers.
    - `max_occupancy` integer — Maximum occupancy, `0` means no restrictions. **Note:** Cloudbeds does not currently populate this field; it is always sent as `0`. Partners should ignore it and treat occupancy as unrestricted at the rate-plan level.
    - `min_occupancy` integer — Minimum occupancy, `0` means no restrictions. **Note:** Cloudbeds does not currently populate this field; it is always sent as `0`. Partners should ignore it and treat occupancy as unrestricted at the rate-plan level.
    - `meal_codes` integer[] — Combination (list) of meal codes that are available for this rate plan. `1` for All-Inclusive, `19` for Breakfast, `21` for Lunch, `22` for Dinner
    - `refundable` boolean — If present specifies if rate plan is refundable
    - `refundable_until_days` integer — Minimal number of days before check-in required for a rate plan to be refundable
  - `verb` 'UpdateRatePlan', required

## Response `200`

UpdateRatePlan

- union
  - object
    - `success` true, required
    - `room_mappings` object[]
      - `mya_room_id` integer, required — Room ID on the Cloudbeds channel manager
      - `ota_room_id` string, required — OTA room ID
      - `ota_rate_id` string, required — OTA rate plan ID
  - ResponseError
    - `errors` object[], required — Array of error objects.
      - `id` integer, required — Error code. Check the "Error Codes" section of the specification for valid codes.
      - `msg` string — Optional error string to give more details about the error. Myallocator localises errors into different langauges, so this field is generally ignored and only useful for debugging.
    - `success` false, required

---

[API](https://skmtc.net/cloudbeds/apis/cloudbeds-api.md) · [All operations](https://skmtc.net/cloudbeds/apis/cloudbeds-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cloudbeds/cloudbeds-api/revisions/2faa857793e8/schema)
