Skip to content

Business Management (1.0.0)

Full-featured B2B API for business operations.

Base URL: https://api.alteg.io/api

⚠️ Version Status

V1 will be gradually deprecated. We recommend using V2 API for new integrations. V1 endpoints are maintained for backward compatibility, but new features will be released in V2 only.

Authentication

Requires both partner and user authorization:

Authorization: Bearer <partner_token>, User <user_token>
Download OpenAPI description
Languages
Servers
Mock server
https://developer.alteg.io/_mock/en/b2b-v1/openapi
Production
https://api.alteg.io/api/v1

Authentication B2B

User authentication and session management for B2B integrations

Operations

Locations

Manage business locations (salons, clinics, etc.)

Operations

Services

Service catalog management including categories and team member assignments

Operations

Team Members

Staff management including positions and scheduling

Operations

Clients

Client database management with comments, files, and visit history

Operations

Users & Permissions

User account management and role-based access control

Operations

Appointments

Booking records and visit management

Operations

Events

Group events and class management

Operations

Schedule & Resources

Timetables, schedules, and resource allocation

Operations

Products

Product catalog and categories

Operations

Inventory

Stock management, storage operations, and tech cards

Operations

Sales

Sales transactions and document management

Operations

Payments

Payment processing, accounts, and KKM transactions

Operations

Notifications

SMS and email notifications to clients

Operations

Online Booking Settings

Configure online booking behavior and forms

Operations

Analytics & Reports

Business analytics, charts, and Z-reports

Operations

Tags

Label management for categorizing entities (deprecated, use v2)

Operations

Deposits

Client deposit accounts and operations

Operations

Loyalty Cards

Loyalty card types, issuance, and manual transactions

Operations

Subscriptions & Certificates

Membership subscriptions and gift certificates

Operations

Loyalty Programs

Discount programs, referral programs, and loyalty transactions

Operations

Salary

Staff salary calculations, payroll, and schemes

Operations

Notification Settings

Configure notification types and user preferences

Custom Fields

Custom field definitions for various entities

Operations

Chain Management

Multi-location chain operations and clients

Operations

Chain Loyalty Programs

Chain-level loyalty programs and transactions

Operations

List membership types

Request

Retrieves all membership types available in the chain.

Note: Requires chain-level permissions.

Security
BearerPartnerUser
Path
chain_idintegerrequired

Chain ID

Example: 706028
Headers
Acceptstringrequired
Default application/vnd.api.v2+json
Authorizationstringrequired

Bearer {partner_token}, User {user_token}

curl -i -X GET \
  https://developer.alteg.io/_mock/en/b2b-v1/openapi/chain/706028/loyalty/abonement_types \
  -H 'Accept: application/vnd.api.v2+json' \
  -H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}, User {UserToken}_HERE>'

Responses

List of membership types retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataArray of objects(Subscription Type)
metaobject
Response
application/json
{ "success": true, "data": [ {} ], "meta": { "total_count": 5 } }

Create membership type

Request

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.

Important API Differences:

  • services and service_categories must be objects (key-value pairs), not arrays
  • Example: {"service_id": count} not [service_id]
  • Some legacy documentation shows arrays, but the real API requires objects

Note: Requires chain-level permissions.

Security
BearerPartnerUser
Path
chain_idintegerrequired

Chain ID

Example: 1
Headers
Acceptstringrequired
Default application/vnd.api.v2+json
Content-Typestringrequired
Default application/json
Authorizationstringrequired

Bearer {partner_token}, User {user_token}

Bodyapplication/jsonrequired
titlestringrequired

Membership type name

Example: "Fitness 10-pack"
salon_group_idintegerrequired

Chain ID (API uses salon_group_id parameter name)

Example: 1
costnumber(float)required

Subscription price

Example: 500
service_categoriesobjectrequired

Object with service category IDs as keys and usage count as values. For separate balance: count = number of visits per category. For unified balance: count value is ignored (set to any number or 0).

Important: This is an object (key-value pairs), NOT an array.

Example: {"13160806":10}
service_categories.​property name*integeradditional property
is_united_balancebooleanrequired

Balance type: true = unified balance, false = separate balance

Example: false
united_balance_services_countintegerrequired

Number of visits for unified balance

Example: 10
location_idsArray of integers

List of location IDs where this membership type is available

Example: [123,456]
periodinteger

Validity period duration

Example: 30
period_unit_idinteger

Period unit type: 1 = day, 2 = week, 3 = month, 4 = year

Enum1234
Example: 3
allow_freezeboolean

Whether membership can be frozen

Default false
Example: true
freeze_limitinteger

Maximum total freeze period

Example: 14
freeze_limit_unit_idinteger

Freeze period unit: 1 = day, 2 = week, 3 = month, 4 = year

Enum1234
Example: 1
service_price_correctionboolean

Whether service price can be adjusted when using membership

Default false
Example: true
expiration_type_idinteger

Activation type: 1 = on sale, 2 = on first use, 3 = from specific date

Enum123
Example: 1
is_allow_empty_codeboolean

Personal vs shared subscription.

  • true = personal (only purchaser can use)
  • false = shared (multiple people can use with code)
Default true
Example: true
balance_edit_type_idinteger

Balance adjustment permission: 0 = prohibited, 1 = only at sale location, 2 = at all locations

Enum012
Example: 2
is_online_sale_enabledboolean

Whether online sale is enabled. If true, online_sale_price becomes required.

Default false
Example: false
online_sale_titlestring

Subscription title for online sale

Example: "Fitness Pack - 10 sessions"
online_sale_descriptionstring

Subscription description for online sale

Example: "Perfect for beginners. Valid for 3 months."
online_sale_pricenumber(float)

Price for online sale (required if is_online_sale_enabled = true)

Example: 450
online_imagestring

Image URL for online sale

Example: "https://example.com/images/fitness-pack.jpg"
autoactivation_periodinteger

Maximum autoactivation period

Example: 3
autoactivation_time_in_daysinteger

Time units for autoactivation

Example: 10
autoactivation_time_unit_idinteger

Autoactivation time unit: 1 = days, 2 = weeks, 3 = months, 4 = years

Enum1234
Example: 1
is_archivedboolean

Whether membership type is archived

Default false
Example: false
categorystring

Subscription category type (always "standard")

Default "standard"
Example: "standard"
salon_idsArray of integers

List of location IDs where this membership type is available

Example: [720441,703092]
servicesobject

Object with service IDs as keys and usage count as values. For separate balance: count = number of visits per service. For unified balance: use empty object {}.

Important: This is an object (key-value pairs), NOT an array.

Example: {"13160808":5,"13160809":3}
delete_online_imageboolean

Whether to delete existing online sale image

Default false
Example: false
availabilityArray of objects

Time-based availability rules. Empty array = available anytime.

curl -i -X POST \
  https://developer.alteg.io/_mock/en/b2b-v1/openapi/chain/1/loyalty/abonement_types \
  -H 'Accept: application/vnd.api.v2+json' \
  -H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}, User {UserToken}_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Fitness 10-pack",
    "salon_group_id": 1,
    "cost": 500,
    "location_ids": [
      123,
      456
    ],
    "period": 30,
    "period_unit_id": 3,
    "allow_freeze": true,
    "freeze_limit": 14,
    "freeze_limit_unit_id": 1,
    "service_price_correction": true,
    "expiration_type_id": 1,
    "is_allow_empty_code": true,
    "is_united_balance": false,
    "united_balance_services_count": 10,
    "balance_edit_type_id": 2,
    "is_online_sale_enabled": false,
    "online_sale_title": "Fitness Pack - 10 sessions",
    "online_sale_description": "Perfect for beginners. Valid for 3 months.",
    "online_sale_price": 450,
    "online_image": "https://example.com/images/fitness-pack.jpg",
    "autoactivation_period": 3,
    "autoactivation_time_in_days": 10,
    "autoactivation_time_unit_id": 1,
    "is_archived": false,
    "category": "standard",
    "salon_ids": [
      720441,
      703092
    ],
    "services": {
      "13160808": 5,
      "13160809": 3
    },
    "service_categories": {
      "13160806": 10
    },
    "delete_online_image": false,
    "availability": [
      {
        "week_days": [
          1,
          2,
          3
        ],
        "intervals": [
          {
            "from": 28800,
            "to": 64800
          }
        ]
      }
    ]
  }'

Responses

Membership type created successfully

Bodyapplication/json
successboolean
Example: true
dataobject(chain_loyalty_membership_type)

Chain-level membership type object

metaArray of arrays
Example: []
Response
application/json
{ "success": true, "data": { "id": 777, "salon_group_id": 333, "category_id": null, "title": "10-visit subscription", "period": 10, "period_unit_id": 3, "allow_freeze": true, "freeze_limit": 30, "freeze_limit_unit_id": 1, "is_booking_when_frozen_allowed": false, "is_allow_empty_code": false, "is_united_balance": true, "is_united_balance_unlimited": false, "is_code_required": false, "balance_edit_type_id": 1, "cost": 1000, "chain_price_min": 1000, "chain_price_max": 1500, "is_chain": true, "expiration_type_id": 1, "expiration_type_title": "On sale", "category": null, "weight": 0, "abonements_count": 0, "is_online_sale_enabled": false, "online_sale_title": "10-visit subscription", "online_sale_description": "Sold online with discount", "online_sale_price": 550, "service_price_correction": true, "united_balance_services_count": 10, "autoactivation_time": 10, "autoactivation_time_unit_id": 1, "attached_location_ids": [], "attached_salon_ids": [], "online_sale_image": "https://example.com/images/subscription_type.png", "is_archived": false, "date_archived": null, "availability": [], "balance_container": {} }, "meta": [] }

Get membership type details

Request

Retrieves detailed information about a specific membership type.

Note: Requires chain-level permissions.

Security
BearerPartnerUser
Path
chain_idintegerrequired

Chain ID

Example: 1
loyalty_membership_type_idintegerrequired

Membership type ID

Example: 468039
Headers
Acceptstringrequired
Default application/vnd.api.v2+json
Authorizationstringrequired

Bearer {partner_token}, User {user_token}

curl -i -X GET \
  https://developer.alteg.io/_mock/en/b2b-v1/openapi/chain/1/loyalty/abonement_types/468039 \
  -H 'Accept: application/vnd.api.v2+json' \
  -H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}, User {UserToken}_HERE>'

Responses

Membership type details retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataobject(chain_loyalty_membership_type)

Chain-level membership type object

metaArray of arrays
Example: []
Response
application/json
{ "success": true, "data": { "id": 777, "salon_group_id": 333, "category_id": null, "title": "10-visit subscription", "period": 10, "period_unit_id": 3, "allow_freeze": true, "freeze_limit": 30, "freeze_limit_unit_id": 1, "is_booking_when_frozen_allowed": false, "is_allow_empty_code": false, "is_united_balance": true, "is_united_balance_unlimited": false, "is_code_required": false, "balance_edit_type_id": 1, "cost": 1000, "chain_price_min": 1000, "chain_price_max": 1500, "is_chain": true, "expiration_type_id": 1, "expiration_type_title": "On sale", "category": null, "weight": 0, "abonements_count": 0, "is_online_sale_enabled": false, "online_sale_title": "10-visit subscription", "online_sale_description": "Sold online with discount", "online_sale_price": 550, "service_price_correction": true, "united_balance_services_count": 10, "autoactivation_time": 10, "autoactivation_time_unit_id": 1, "attached_location_ids": [], "attached_salon_ids": [], "online_sale_image": "https://example.com/images/subscription_type.png", "is_archived": false, "date_archived": null, "availability": [], "balance_container": {} }, "meta": [] }

Fiscalization

Tax system integration and KKM callbacks

Operations

Utilities

License info, phone validation, images, and tips

Operations