# Freeze membership

Freezes a membership until the specified date.
The membership's expiration date will be extended by the freeze period.
Frozen memberships cannot be used for appointments.
**Requirements:**
- Membership type must have `allow_freeze: true`
- Freeze period must not exceed `freeze_limit` from membership type

**Note:** Requires chain-level permissions.

Endpoint: POST /chains/{chain_id}/loyalty/abonements/{membership_id}/freeze
Version: 1.0.0
Security: BearerPartnerUser

## Security:

  - `BearerPartnerUser` (unknown)
    http bearer Bearer {PartnerToken}, User {UserToken}

## Path parameters:

  - `chain_id` (integer, required)
    Chain ID

  - `membership_id` (integer, required)
    Membership ID to freeze

## Header parameters:

  - `Accept` (string, required)

  - `Content-Type` (string, required)

  - `Authorization` (string, required)
    Bearer {partner_token}, User {user_token}

## Request fields (application/json):

  - `freeze_till` (string, required)
    Date until which the membership will be frozen (ISO 8601 format)
    Example: 2026-12-31T23:59:59-05:00

## Response 200:

  - `200` (unknown)
    Membership frozen successfully

## Response 200 fields (application/json):

  - `success` (boolean)
    Example: true

  - `data` (object)

  - `data.id` (integer)
    Example: 123

  - `data.number` (string)
    Example: 123456

  - `data.is_frozen` (boolean)
    Example: true

  - `data.freeze_period` (integer)
    Total freeze period in days
    Example: 14

  - `data.freeze_till` (string)
    Date until which membership is frozen
    Example: 2026-12-31T23:59:59-05:00

  - `meta` (array)
    Example: []

## Response 400:

  - `400` (unknown)
    Bad Request - membership cannot be frozen

## Response 400 fields (application/json):

  - `success` (boolean)
    Example: false

  - `data` (null)

  - `meta` (object)

  - `meta.message` (string)
    Example: Membership cannot be frozen

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 401 fields (application/json):

  - `success` (boolean)
    Example: false

  - `data` (null)

  - `meta` (object)

## Response 403:

  - `403` (unknown)
    Forbidden - insufficient permissions

## Response 403 fields (application/json):

  - `success` (boolean)
    Example: false

  - `data` (null)

  - `meta` (object)

## Response 404:

  - `404` (unknown)
    Membership not found

## Response 404 fields (application/json):

  - `success` (boolean)
    Example: false

  - `data` (null)

  - `meta` (object)

## Response 422:

  - `422` (unknown)
    Validation error (freeze limit exceeded, freeze not allowed, etc.)

## Response 422 fields (application/json):

  - `success` (boolean)
    Example: false

  - `data` (null)

  - `meta` (object)

  - `meta.message` (string)
    Example: Freeze period exceeds limit

  - `meta.errors` (object)
    Validation errors by field

