Memberships

Membership Types

A MembershipType represents a type of membership. This encompasses the credits which the member receives.

The MembershipType object

Attributes

  • iduuidrequired

    The ID of the membership type

  • namestringrequired

    The name of the membership type

  • descriptionstringrequirednullable

    The description of the membership type

  • termsstringrequirednullable

    Terms and conditions of the membership type

  • brand_iduuidrequired

    The ID of the brand this type is linked to

  • offline_paymentsbooleanrequired

    Whether this MembershipType takes "offline" payments. If true, the monthly fee won't automatically be collected using Stripe, which can be useful if a different provider is used for collecting direct debits. You'll need to manually manage the membership status.

  • Whether to disable sending the confirmation email when a membership is confirmed.

  • privatebooleanrequiredDeprecated

    Whether this MembershipType is private or not.

    When a MembershipType is private, it won't be shown to users on the site's shop frontend.

    This field is deprecated and has been superceded by visibility.

  • visibilitystringoptional

    The visibility of the MembershipType on the site's shop frontend.

    Possible values:publicprivatelink_only
  • minimum_start_datedate-timerequirednullable

    The minimum start date for a membership of this type.

  • min_membersintegerrequired

    The minimum number of members required to create a membership of this type

  • max_membersintegerrequired

    The maximum number of members allowed to create a membership of this type

  • ratesobject[]required

    The public MembershipRates for this type, or if a MembershipSignupToken was passed, the rate linked to that.

  • revenue_schedulestringrequirednullable

    The schedule that revenues for this membership should be created, as an RRULE string

  • created_atdate-timerequired

    The datetime which the membership type was created

  • updated_atdate-timerequired

    The datetime which the membership type was last updated

  • deleted_atdate-timerequirednullable

    The datetime which the membership type was archived, or null if it isn't archived.

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Gold tier",
  "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
  "terms": "string",
  "brand_id": "00000000-0000-0000-0000-000000000000",
  "offline_payments": false,
  "disable_confirmation_email": false,
  "private": false,
  "visibility": "public",
  "minimum_start_date": "2026-01-15T09:30:00+00:00",
  "min_members": 2,
  "max_members": 4,
  "rates": [
    "string"
  ],
  "revenue_schedule": "FREQ=WEEKLY",
  "created_at": "2026-01-15T09:30:00+00:00",
  "updated_at": "2026-01-15T09:30:00+00:00",
  "deleted_at": "2026-01-15T09:30:00+00:00"
}
get/customers/sites/{siteId}/membership-types

List the membership types for a site

listSiteMembershipTypes

This endpoint retrieves all the membership types associated with a site.

Path parameters

Query parameters

  • pageintegeroptional

    The page to retrieve results from

  • per_pageintegeroptional

    The number of results to return per page

Responses

  • 200

    The membership types for the site were successfully retrieved

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

post/customers/sites/{siteId}/membership-types

Enable a membership type for a site

createSiteMembershipType

This endpoint enables a membership type for a site.

Path parameters

Request body

  • membership_type_iduuidrequired

    Identifier of the brand-level membership tier to enable at this site. After enablement, customers can purchase this tier from the site's storefront and existing members of the tier can use it at this site.

  • site_iduuidrequired

    Identifier of the site the membership tier should be enabled at. Must match the siteId in the URL; provided in the body to make the request self-describing for audit logs.

Responses

  • 201

    The MembershipType was successfully retrieved

  • 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/sites/{siteId}/membership-types/{membershipTypeId}

Disable a membership type for a site

deleteSiteMembershipType

This endpoint disables a membership type for a site.

Path parameters

Responses

  • 204

    The membership type was successfully disabled

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/customers/sites/{siteId}/membership-types/{membershipTypeId}

Check whether a membership type is enabled for a site

listSingleSiteMembershipType

This endpoint checks for the existence of a site membership type for a given membership type.

Path parameters

Responses

  • 200

    The MembershipType was successfully retrieved

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

get/customers/membership-types

List MembershipTypes

listMembershipTypes

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

Query parameters

  • brand_idstringoptional

    Filters membership types that are associated with the given brand ID

  • site_idstringoptional

    Filters membership types that are associated with the given site ID

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

  • publicbooleanoptionalDeprecated

    When true, only public membership types are returned

  • auto_paymentsbooleanoptional

    When true, only membership types that support automatic payments are returned

  • termsbooleanoptional

    When true, only membership types that have terms and conditions are returned

  • querystringoptional

    Filters membership types 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 MembershipTypes were successfully retrieved

  • 401

    The user is unauthenticated

post/customers/membership-types

Create MembershipType

createMembershipType

Use this endpoint to create a new MembershipType.

Request body

  • brand_iduuidrequired

    Identifier of the brand that owns this membership type. Membership types are scoped per brand so customers can be enrolled into the same tier across every site that shares the brand.

  • namestringrequired

    Display name of the membership tier, shown to customers on the storefront, in the membership area, and on email receipts. 1-120 characters and must not contain HTML.

  • descriptionstringoptionalnullable

    Marketing description of the membership tier, shown on the storefront purchase page. Use it to summarise the benefits of joining. Plain text, up to 1000 characters.

  • termsstringoptionalnullable

    Terms and conditions of the membership type

  • privatebooleanoptionalDeprecated

    Whether this MembershipType is private or not.

    When a MembershipType is private, it won't be shown to users on the site's shop frontend.

    This field is deprecated and has been superceded by visibility.

  • visibilitystringoptional

    The visibility of the MembershipType on the site's shop frontend.

    Possible values:publicprivatelink_only
  • offline_paymentsbooleanoptional

    Whether this MembershipType takes "offline" payments. If true, the monthly fee won't automatically be collected using Stripe, which can be useful if a different provider is used for collecting direct debits. You'll need to manually manage the membership status.

  • Whether to disable sending the confirmation email when a membership is confirmed.

  • minimum_start_datedate-timeoptionalnullable

    The minimum start date for a membership of this type.

  • min_membersintegeroptional

    The minimum number of members required to create a membership of this type

  • max_membersintegeroptional

    The maximum number of members allowed to create a membership of this type

  • revenue_schedulestringoptional

    The revenue schedule for the membership type.

    Possible values:FREQ=DAILYFREQ=WEEKLYFREQ=MONTHLY;BYMONTHDAY=1
  • initial_rateobjectrequired

    The initial rate to create for the membership type.

Responses

  • 201

    The MembershipType was successfully retrieved

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 422

    The request didn't pass validation

get/customers/membership-types/{membershipTypeId}

Show MembershipType

getMembershipType

This endpoint retrieves a MembershipType by its ID.

Path parameters

Responses

  • 200

    The MembershipType was successfully retrieved

  • 401

    The user is unauthenticated

  • 404

    The resource couldn't be found

put/customers/membership-types/{membershipTypeId}

Update MembershipType

updateMembershipType

Use this endpoint to update a MembershipType.

Path parameters

Request body

  • namestringoptional

    Display name of the membership tier, shown to customers on the storefront, in the membership area, and on email receipts. 1-120 characters and must not contain HTML.

  • descriptionstringoptionalnullable

    Marketing description of the membership tier, shown on the storefront purchase page. Use it to summarise the benefits of joining. Plain text, up to 1000 characters.

  • termsstringoptionalnullable

    Terms and conditions of the membership type

  • privatebooleanoptionalDeprecated

    Whether this MembershipType is private or not.

    When a MembershipType is private, it won't be shown to users on the site's shop frontend.

    This field is deprecated and has been superceded by visibility.

  • visibilitystringoptional

    The visibility of the MembershipType on the site's shop frontend.

    Possible values:publicprivatelink_only
  • offline_paymentsbooleanoptional

    Whether this MembershipType takes "offline" payments. If true, the monthly fee won't automatically be collected using Stripe, which can be useful if a different provider is used for collecting direct debits. You'll need to manually manage the membership status.

  • Whether to disable sending the confirmation email when a membership is confirmed.

  • minimum_start_datedate-timeoptionalnullable

    The minimum start date for a membership of this type.

  • min_membersintegeroptional

    The minimum number of members required to create a membership of this type

  • max_membersintegeroptional

    The maximum number of members allowed to create a membership of this type

  • revenue_schedulestringoptional

    The revenue schedule for the membership type.

    Possible values:FREQ=DAILYFREQ=WEEKLYFREQ=MONTHLY;BYMONTHDAY=1

Responses

  • 200

    The MembershipType was successfully retrieved

  • 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-types/{membershipTypeId}

Delete MembershipType

deleteMembershipType

Soft-deletes the given MembershipType. Existing memberships that reference this type are unaffected, but the type can no longer be selected for new memberships. Use the companion restoreMembershipType endpoint to undo.

Path parameters

Responses

  • 204

    The MembershipType was successfully soft-deleted.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

post/customers/membership-types/{membershipTypeId}/copy

Copy a MembershipType

actionCopyMembershipType

This endpoint copies an existing MembershipType by ID.

Path parameters

Request body

  • namestringrequired

    Display name to give the duplicated membership tier. The new tier inherits the source tier's pricing, visibility, and benefits; the name distinguishes the copy from the original. 1-120 characters.

Responses

  • 200

    The MembershipType was successfully retrieved

  • 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

post/customers/membership-types/{membershipTypeId}/restore

Restore a MembershipType

restoreMembershipType

Restores a soft-deleted MembershipType so it can once again be selected for new memberships. Partner to deleteMembershipType.

Path parameters

Responses

  • 200

    The MembershipType was successfully retrieved

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 404

    The resource couldn't be found

get/customers/ordered-membership-types

List MembershipTypes in display order

listOrderedMembershipTypes

Returns a lightweight { id, name } summary of every MembershipType in the caller's organisation, sorted by the organisation-wide display order (the order column on the type), then by creation time as a tiebreak.

Use this to power UIs that need to render the type list in the operator-chosen order — typically the drag-to-reorder admin screen or any storefront component that picks the "first" type to feature. For the full MembershipType payload (with rates and metadata), use listMembershipTypes instead.

Query parameters

  • organisation_iduuidoptional

    Filter customers that belong to the given organisation ID

Responses

  • 200

    The MembershipTypes were retrieved in display order.

  • 401

    The user is unauthenticated

put/customers/ordered-membership-types

Reorder MembershipTypes

updateMembershipTypeOrder

Persists a new display order for the caller's MembershipTypes by writing the supplied IDs back to each type's order column in the order they appear in the array. The first ID becomes order 0, the second 1, and so on.

The array must contain only IDs the caller is authorised to manage; IDs missing from the array keep their current order value (i.e. the caller can reorder a subset without listing every type). Returns the updated ordered list, matching listOrderedMembershipTypes.

Request body

  • membership_type_idsstring[]required

    The MembershipType IDs in the new display order. The first ID becomes order 0, the second 1, and so on. IDs not included in this array retain their existing order value.

Responses

  • 200

    The MembershipTypes were retrieved in display order.

  • 401

    The user is unauthenticated

  • 403

    The authenticated user does not have permission.

  • 422

    The request didn't pass validation