Memberships

Change a Membership's end date

Applies a previously previewed end-date change to the Membership and persists it. The semantics match the getMembershipEndDateChangePreview preview — pending charges whose billing period now falls outside the membership are cancelled, the next-billing date is recalculated, and the membership status is refreshed.

Pass end_date: null to remove an existing end date entirely (converting a fixed-term membership to open-ended). Any supplied end_date must be strictly after the membership's start_date.

Returns the freshly-saved Membership.

post/customers/memberships/{membershipId}/change-end-date

Request body

end_datestring date nullable required

The new end date for the membership, in YYYY-MM-DD format. Pass null to remove the end date entirely (converting a fixed-term membership to open-ended). Must be strictly after the membership's start_date.

Example request

{
  "end_date": "2026-12-31"
}

Response

The Membership was successfully retrieved

Example response

{
  "data": {
    "customer": {
      "first_name": "Jane",
      "last_name": "Doe",
      "full_name": "Jane Doe",
      "phone": "+447900000000",
      "has_password": true,
      "stripe_id": "cus_1234567890",
      "express_stripe_id": "cus_1234567890",
      "email": "janedoe@example.com",
      "labels": [
        {
          "value": "VIP",
          "colour": "ff6634"
        }
      ],
      "preferred_locale": "en",
      "last_check_in": {
        "method": "Scanned"
      },
      "avatar_id": "000000-000000-000000-000000",
      "avatar": {
        "file_name": "super-cool-photo.jpg",
        "mime_type": "image/jpeg",
        "original_url": "https://example.com/media/super-cool-photo.jpg",
        "size": 84256,
        "url": "https://example.com/media/super-cool-photo-thumbnail@2x.jpg"
      },
      "external_ref": "ext-cust-789012"
    },
    "members": [
      {
        "membership_number": "1234567890"
      }
    ],
    "membership_number": "1234567890",
    "next_charge": {
      "amount": 3995,
      "currency": "GBP"
    },
    "payment_method": {
      "status": "revoked",
      "card_brand": "amex"
    },
    "rate": {
      "name": "Standard rate",
      "currency": "GBP",
      "price": 5000,
      "joining_fee": 1000,
      "billing_frequency": "P1M",
      "default_duration": "P1Y",
      "notice_period": "P1M",
      "private": true
    },
    "type": {
      "name": "Gold tier",
      "description": "Enjoy exclusive benefits as part of being a member in our Gold tier",
      "min_members": 2,
      "max_members": 4,
      "rates": [
        {
          "name": "Standard rate",
          "currency": "GBP",
          "price": 5000,
          "joining_fee": 1000,
          "billing_frequency": "P1M",
          "default_duration": "P1Y",
          "notice_period": "P1M",
          "private": true
        }
      ],
      "revenue_schedule": "FREQ=WEEKLY"
    }
  }
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.