# Chain Loyalty Programs

Chain-level loyalty programs and transactions

 - [POST /chain/{chain_id}/loyalty/abonements/{membership_id}/freeze](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_memberships_freeze.md): Freezes a subscription (membership) until the specified date. The subscription's expiration date will be extended by the freeze period. Frozen subscriptions cannot be used for appointments. **Requirem
 - [POST /chain/{chain_id}/loyalty/abonements/{membership_id}/unfreeze](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_memberships_unfreeze.md): Removes the freeze from a subscription (membership). The subscription's expiration date will remain extended by the freeze period that was already applied during the freeze. **Note:** Requires chain-l
 - [POST /chain/{chain_id}/loyalty/abonements/{membership_id}/set_balance](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_memberships_set_balance.md): Modifies the remaining visit count for a subscription (membership). **For unified balance subscriptions:** - Use `united_balance_services_count` to set total visits **For separate balance subscriptio
 - [POST /chain/{chain_id}/loyalty/abonements/{membership_id}/set_period](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_memberships_set_period.md): Modifies the validity period (duration) of a subscription (membership). This changes how long the subscription remains active before expiring. **Period units:** - 1 = day - 2 = week - 3 = month - 4 =
 - [GET /chain/{chain_id}/loyalty/abonement_types](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_list.md): Retrieves all membership types available in the chain. **Note:** Requires chain-level permissions.
 - [POST /chain/{chain_id}/loyalty/abonement_types](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_create.md): Creates a new membership type at the chain level. Membership types define reusable packages (e.g., "10 visits", "Monthly unlimited") that can be sold across multiple locations in the chain. **Importan
 - [GET /chain/{chain_id}/loyalty/abonement_types/{loyalty_membership_type_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_read.md): Retrieves detailed information about a specific membership type. **Note:** Requires chain-level permissions.
 - [PUT /chain/{chain_id}/loyalty/abonement_types/{loyalty_membership_type_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_update.md): Updates an existing membership type. You can update basic information (title, cost, period) without modifying the service/category links. **Note:** To preserve existing services, pass empty arrays for
 - [DELETE /chain/{chain_id}/loyalty/abonement_types/{loyalty_membership_type_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_delete.md): Deletes a membership type from the chain. **Warning:** This action cannot be undone. Active subscriptions using this type may be affected.
 - [POST /chain/{chain_id}/loyalty/abonement_types/{loyalty_membership_type_id}/clone](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_clone.md): Creates a copy of an existing membership type with a new ID. The cloned membership type will: - Have the same settings (cost, period, services, etc.) - Get a modified title with " (2)" suffix automati
 - [POST /chain/{chain_id}/loyalty/abonement_types/{loyalty_membership_type_id}/restore](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_restore.md): Restores a previously deleted membership type. **Note:** Requires chain-level permissions.
 - [PATCH /chain/{chain_id}/loyalty/abonement_types/{loyalty_membership_type_id}/archive](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_membership_types_archive.md): Archives or unarchives a membership type. Archived membership types: - Cannot be sold to new clients - Existing active memberships remain functional - Can be unarchived at any time **Note:** Requires
 - [GET /chain/{chain_id}/loyalty/certificate_types](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_certificate_types_list.md): Retrieves a list of certificate types at the chain level. Returns all certificate types configured for the chain with optional filtering and pagination. **Query Parameters:** - `title` - Filter by cer
 - [POST /chain/{chain_id}/loyalty/certificate_types](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_certificate_types_create.md): Creates a new certificate type at the chain level. Certificate types define gift certificate templates that can be sold across multiple locations. **Item Type Restrictions:** - 0 = All services and pr
 - [GET /chain/{chain_id}/loyalty/certificate_types/{type_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_certificate_types_get.md): Retrieves a specific certificate type by ID at the chain level. Returns complete certificate type configuration including expiration rules, restrictions, and online sale settings.
 - [PUT /chain/{chain_id}/loyalty/certificate_types/{type_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_certificate_types_update.md): Updates an existing certificate type at the chain level. All fields from creation are required. Use GET first to retrieve current values, then modify needed fields and send complete object. **Note:**
 - [DELETE /chain/{chain_id}/loyalty/certificate_types/{type_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/chain_loyalty_certificate_types_delete.md): Deletes a certificate type from the chain. **Warning:** This action cannot be undone. Certificate types that have issued certificates cannot be deleted.
 - [POST /chain/{chain_id}/loyalty/programs](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/create_chain_loyalty_program.md)
 - [GET /chain/{chain_id}/loyalty/programs/{loyalty_program_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/get_chain_loyalty_program.md)
 - [PUT /chain/{chain_id}/loyalty/programs/{loyalty_program_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/update_chain_loyalty_program.md)
 - [DELETE /chain/{chain_id}/loyalty/programs/{loyalty_program_id}](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/delete_chain_loyalty_program.md)
 - [GET /chain/{chain_id}/loyalty/transactions](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/get_chain_loyalty_transaction_list.md)
 - [GET /chain/{chain_id}/loyalty/notification_message_templates/programs](https://developer.alteg.io/en/b2b-v1/openapi/chain-loyalty-programs/get_chain_loyalty_notification_template_list.md)
