---
title: "Update a MembershipRate"
method: PUT
path: "/customers/membership-rates/{rateId}"
tags: ["MembershipRates"]
---

# Update a MembershipRate

`PUT /customers/membership-rates/{rateId}`

Update an existing `MembershipRate`. Only fields included in the request body will be
changed.

## Request body

- object
  - `name` string — Operator-facing label for the rate. Shown alongside the membership type when staff issue or amend memberships. Common values include `Standard rate`, `Concession` and `Founder`.
  - `price` integer — The price of the rate as an integer of the smallest unit (eg pence).
  - `currency` string — The currency of the price, uppercase, in the ISO4217 format
  - `joining_fee` integer — The price of the joining fee as an integer of the smallest unit (eg pence).
  - `private` boolean — Whether this rate is private
  - `billing_frequency` string — The frequency that this membership is billed. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
  - `default_duration` string — The default duration of the membership. This is used when a customer signs themselves up for a membership. The duration is specified as an ISO8601 duration string.
  - `notice_period` 'P7D' | 'P14D' | 'P1M' | 'P3M' | 'P6M' | 'P1Y' | 'null', nullable — How much notice a customer must give to cancel a membership on this rate. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations When null, no notice is required.

## Response `200`

The `MembershipRate` was successfully retrieved or updated.

- object
  - `data` MembershipRate, required
    - `id` string, uuid, required — The ID of the membership rate
    - `membership_type_id` string, uuid, required — The ID of the `MembershipType` which this rate belongs to
    - `name` string, required — The name of the membership rate
    - `currency` string, required — The currency which all monetary values of this rate are in, uppercase, in the ISO4217 format
    - `price` number, required — The price of the rate as an integer of the smallest unit eg pence. This is charged to the customer every billing period according to the `billing_frequency`
    - `joining_fee` number, required — The price of the joining fee as an integer of the smallest unit eg pence.
    - `billing_frequency` string, required — The frequency that this membership is billed. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
    - `processors` string[], required
    - `default_duration` string, nullable, required — The default duration of the membership. This is used when a customer signs themselves up for a membership. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations
    - `notice_period` 'P7D' | 'P14D' | 'P1M' | 'P3M' | 'P6M' | 'P1Y' | 'null', nullable, required — How much notice a customer must give to cancel a membership on this rate. The duration is specified as an ISO8601 duration string. See https://en.wikipedia.org/wiki/ISO_8601#Durations When null, no notice is required.
    - `private` boolean, required — Whether this `MembershipRate` is private. If public, it will be selectable on the self-signup flow.
    - `created_at` string, date-time, required — The datetime which the rate was created
    - `updated_at` string, date-time, required — The datetime which the membership was last updated

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
