Memberships

Membership Rates

A MembershipRate represents the how a Membership is billed.

The MembershipRate object

Attributes

  • iduuidrequired

    The ID of the membership rate

  • membership_type_iduuidrequired

    The ID of the MembershipType which this rate belongs to

  • namestringrequired

    The name of the membership rate

  • currencystringrequired

    The currency which all monetary values of this rate are in, uppercase, in the ISO4217 format

  • pricenumberrequired

    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_feenumberrequired

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

  • billing_frequencystringrequired

    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[]required
  • default_durationstringrequirednullable

    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

  • privatebooleanrequired

    Whether this MembershipRate is private. If public, it will be selectable on the self-signup flow.

  • created_atdate-timerequired

    The datetime which the rate was created

  • updated_atdate-timerequired

    The datetime which the membership was last updated

{
  "id": "00000000-0000-0000-0000-000000000000",
  "membership_type_id": "00000000-0000-0000-0000-000000000000",
  "name": "Standard rate",
  "currency": "GBP",
  "price": 5000,
  "joining_fee": 1000,
  "billing_frequency": "P1M",
  "processors": [
    "string"
  ],
  "default_duration": "P1Y",
  "private": true,
  "created_at": "2026-01-15T09:30:00+00:00",
  "updated_at": "2026-01-15T09:30:00+00:00"
}
get/customers/membership-rates

List MembershipRates

listMembershipRates

This endpoint lists the MembershipRates which are associated to the provided site.

Query parameters

  • membership_type_idstringoptional

    Filter membership rates by membership type ID

  • site_iduuidoptional

    Filters membership rates that belong to a membership rate that has been enabled for the given site

  • brand_iduuidoptional

    Filters membership rates that belong to a membership rate that has been enabled for the given site

  • archivedbooleanoptional

    Whether to include archived resources in the response. When true, archived resources are returned; when false or omitted, only non-archived resources are returned.

  • querystringoptional

    Filters membership rates with a similar name to the given value

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The MembershipRates were successfully retrieved

  • 401

    The user is unauthenticated

post/customers/membership-rates

Create a MembershipRate

createMembershipRate

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

Request body

  • namestringrequired

    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_idstringrequired

    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.

  • priceintegerrequired

    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.

  • currencystringoptional

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

  • joining_feeintegeroptional

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

  • privatebooleanoptional

    Whether this rate is private

  • billing_frequencystringrequired

    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[]optional

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

  • default_durationstringoptionalnullable

    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.

Responses

  • 201

    The MembershipRate was successfully retrieved or updated.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 422

    The request didn't pass validation

post/customers/membership-rates/{membershipRateId}/restore

Restore a MembershipRate

restoreMembershipRate

Restores an archived MembershipRate so it can once again be used for new memberships.

Path parameters

Responses

  • 200

    The MembershipRate was successfully retrieved or updated.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/customers/membership-rates/{rateId}

Retrieve a MembershipRate

getMembershipRate

Use this endpoint to retrieve a single MembershipRate by its ID.

Path parameters

  • rateIduuidrequired

    The ID of the membership rate

Responses

  • 200

    The MembershipRate was successfully retrieved or updated.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

put/customers/membership-rates/{rateId}

Update a MembershipRate

updateMembershipRate

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

Path parameters

  • rateIduuidrequired

    The ID of the membership rate

Request body

  • namestringoptional

    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.

  • priceintegeroptional

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

  • currencystringoptional

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

  • joining_feeintegeroptional

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

  • privatebooleanoptional

    Whether this rate is private

  • billing_frequencystringoptional

    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_durationstringoptional

    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.

Responses

  • 200

    The MembershipRate was successfully retrieved or updated.

  • 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

delete/customers/membership-rates/{rateId}

Archive a MembershipRate

deleteMembershipRate

Archives a MembershipRate. Archived rates cannot be used for new memberships but existing memberships continue to bill at the rate.

Path parameters

  • rateIduuidrequired

    The ID of the membership rate

Responses

  • 204

    The membership rate was successfully archived.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/customers/membership-rates/{rateId}/totals

Get totals for a MembershipRate

getTotalsForMembershipRate

Returns a breakdown of the total amount a customer will pay to start a membership at this rate over the given period, including any joining fee, pro-rata fee and recurring monthly fee.

Path parameters

  • rateIduuidrequired

    The ID of the membership rate

Query parameters

  • start_datedateoptional

    The date the membership will start

  • end_datedateoptional

    The date the membership will end

  • sourcestringoptional

    The source of the membership

Header parameters

Responses

  • 200

    The membership rate totals were successfully retrieved.

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found