MembershipRates

Create a MembershipRate

Use this endpoint to create a new MembershipRate. A MembershipRate belongs to a MembershipType and defines how members of that type are billed.

post/customers/membership-rates

Request body

namestring required

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.

membership_type_idstring required

The MembershipType this rate belongs to. A MembershipRate is always scoped to a single type and cannot be moved between types after it has been used on live memberships.

priceinteger 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.

currencystring

The currency of the price, uppercase, in the ISO4217 format

joining_feeinteger

The price of the joining fee as an integer of the smallest unit (eg pence).

privateboolean

Whether this rate is private

billing_frequencystring 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

processorsstring[]

The payment processors that can be used to process payments for this rate.

default_durationstring nullable

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. When null, by default the membership won't end.

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.

Example request

{
  "name": "Standard rate",
  "membership_type_id": "5f8a1b2c-9d3e-4a5b-8c6d-7e8f9a0b1c2d",
  "price": 5000,
  "currency": "GBP",
  "joining_fee": 1000,
  "private": true,
  "billing_frequency": "P1M",
  "default_duration": "P1Y",
  "notice_period": "P1M"
}

Response

The MembershipRate was successfully retrieved or updated.

Example response

{
  "data": {
    "name": "Standard rate",
    "currency": "GBP",
    "price": 5000,
    "joining_fee": 1000,
    "billing_frequency": "P1M",
    "default_duration": "P1Y",
    "notice_period": "P1M",
    "private": true
  }
}

Changes