This is an official document describing the interaction with the Altegio online booking service. API allows third-party developers to perform most operations with the Altegio platform. When designing methods, we tried to adhere to the REST architecture.
200
requests per minute or 5
requests per second per IP addresshttps://api.alteg.io/api/v1
If you encounter difficulties when working with the API, please carefully review the documentation, including the required headers, parameters, and the structure of the request body in the JSON example.
If you're having trouble resolving the issue on your own, feel free to contact us at api@alteg.io. Please include the request URL, headers, request body, and the response you received in your message.
The Altegio integration API includes two groups of methods:
Accessing both the first and second groups of methods requires partner authorization. I.e. passing the partner's unique hash key. API requests are authorized in accordance with RFC 6749 "Resource Owner Password Credentials Grant". When making API requests the HTTP authorization header must include the access key in the following format:
Authorization: Bearer <partner token>
To obtain this key, you need to register in the marketplace – it will be located in the 'Developer account' "Account settings" under "Account details" tab.
To get the user API key, use the auth method, or, if you are creating an integration application, use the key located in an application's settings under the "API Access" section. The key itself must also be sent in the request header (after the partner key, separated by a comma):
Authorization: Bearer <partner token>, User <user token>
Whether user authorization is required to work with specific entities is indicated in the data format descriptions and sample queries.
All dates in the API are represented as strings in ISO 8601 format.
"2025-09-21T23:00:00.000+03:00"
Service durations and other time-related values are provided in seconds. For example, a 15-minute service should be represented as:
{ "length": 900 }
The API allows you to work with the main entities of the platform:
Company Represents a business entity within the system.
User Users can manage one or more companies, depending on their assigned access rights. Not all users have access to all settings. To modify specific settings, a user API key with the appropriate privileges is required.
Service category All services offered by a company are organized into service categories.
Service Appointments are typically made for specific services provided by employees within a company. Each service includes parameters such as a price range and duration.
Employee Appointments are usually booked with a specific employee or resource (e.g., yoga room or massage table).
Work Schedule Each employee has a work schedule - time intervals during which the employee works with clients.
Time Slots Available time intervals during which an appointment can be scheduled with an employee.
Appointment The time interval at which a particular employee provides services to a specific client. The employee is busy during an appointment.
Client The person who schedules or receives services from the company.
There are four main structures used for working with data in the Altegio API:
Entity An individual item with unique properties and parameters, such as those listed above. Entities can be retrieved, modified, or deleted.
Entity Collection A group of entities, such as a list of companies or a list of services offered by companies. Entities can be added to or removed from a collection.
Communication entity Defines relationships between entities—for example, the link between an employee and a service, indicating that the employee provides that specific service. Communication entities can also have their own properties, such as an individual service price set for a particular employee.
Collection of Communication Entities A set of relationships between entities, such as a list of services offered by an employee along with their associated properties. You can add or manage relationships within the collection.
Returns a list of user roles along with permissions for each role.
company_id required | number Example: 123 ID of a company. |
include | Array of strings Items Value: "user_permissions" Requested set of an included models. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Model object "User role") | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "slug": "worker",
- "title": "Worker",
- "description": "Provides services",
- "weight": 1,
- "user_permissions": [
- {
- "slug": "timetable_access",
- "title": "Appointment calendar",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": true,
- "entity_name": null,
- "children": [
- {
- "slug": "timetable_position_id",
- "title": "View the schedule and post records",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": null,
- "entity_name": "position",
- "children": null,
- "options": [
- {
- "title": "All positions",
- "value": 0,
- "is_disabled": false
}, - {
- "title": "Administrator",
- "value": 1234,
- "is_disabled": false
}
], - "type": {
- "slug": "allowed_id",
- "all_access_value": 0,
- "no_access_value": 0
}
}
], - "options": null,
- "type": {
- "slug": "has_group_access",
- "all_access_value": true,
- "no_access_value": false
}
}
]
}
], - "meta": { }
}
Returns a list of user roles along with permissions for each role. Allows to get the editable status for each permission of a company user (is_editable
field). This status depends on the current user's permissions.
company_id required | number Example: 123 ID of a company. |
user_id required | number Example: 123 ID of a user. |
include | Array of strings Items Value: "user_permissions" Requested set of an included models. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Model object "User role") | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "slug": "worker",
- "title": "Worker",
- "description": "Provides services",
- "weight": 1,
- "user_permissions": [
- {
- "slug": "timetable_access",
- "title": "Appointment calendar",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": true,
- "entity_name": null,
- "children": [
- {
- "slug": "timetable_position_id",
- "title": "View the schedule and post records",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": null,
- "entity_name": "position",
- "children": null,
- "options": [
- {
- "title": "All positions",
- "value": 0,
- "is_disabled": false
}, - {
- "title": "Administrator",
- "value": 1234,
- "is_disabled": false
}
], - "type": {
- "slug": "allowed_id",
- "all_access_value": 0,
- "no_access_value": 0
}
}
], - "options": null,
- "type": {
- "slug": "has_group_access",
- "all_access_value": true,
- "no_access_value": false
}
}
]
}
], - "meta": { }
}
Return user role and list of permissions values.
company_id required | number Example: 123 ID of a company. |
user_id required | number Example: 123 User id. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Model object "Permissions and user role") Data on the permissions and user role | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "is_editable": true,
- "staff_id": 12345,
- "user_role": "owner",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}, - {
- "slug": "timetable_position_id",
- "value": 0
}, - {
- "slug": "auth_list_allowed_ip",
- "value": ""
}
]
}, - "meta": { }
}
Updates the role and permissions of the user, as well as the employee who is attached to this user.
company_id required | number Example: 123 ID of a company. |
user_id required | number Example: 123 User id. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
user_role | string Enum: "worker" "administrator" "accountant" "manager" "owner" Name of role |
Array of items List of user permissions values | |
staff_id | number Employee ID attached to user |
success | boolean (Successful response status) Response status. |
object (Model object "Permissions and user role") Data on the permissions and user role | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "user_role": "worker",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}
], - "staff_id": 0
}
{- "success": true,
- "data": {
- "is_editable": true,
- "staff_id": 12345,
- "user_role": "owner",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}, - {
- "slug": "timetable_position_id",
- "value": 0
}, - {
- "slug": "auth_list_allowed_ip",
- "value": ""
}
]
}, - "meta": { }
}
Copies an active user and their permissions to multiple companies at once. If the user does not yet exist in a company, they will be added as an active user. If the user has already been invited to the company, only their permissions will be updated — however, they will still need to accept the invitation.
company_id required | number Example: 123 ID of a company. |
user_id required | number Example: 123 User id. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
required | Array of objects non-empty unique List of companies to copy the user to |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "user_company_links": [
- {
- "company_id": 123,
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}
]
}
]
}
{- "success": true,
- "data": null,
- "meta": { }
}
Removes an active user from multiple companies at once.
company_id required | number Example: 123 ID of a company. |
user_id required | number Example: 123 User id. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
required | Array of objects non-empty unique List of companies to remove the user from |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "user_company_links": [
- {
- "company_id": 123
}
]
}
{- "success": true,
- "data": null,
- "meta": { }
}
This feature allows you to easily manage schedules for appointments (currently not supported) and events.
You can create multiple schedule series for different days of the week and customize each one to suit your needs. For each series, you can define specific staff, time slots, labels, resource instances, and more.
Search for a schedule based on the appointment or event linked to it, or based on the associated appointment or event.
company_id required | number Example: 123 ID of a company. |
entity_type required | string Enum: "record" "activity" Example: activity Type of an entity schedule is searched by: |
entity_id required | number Example: 123 ID of an entity schedule is searched by. |
include | Array of strings Items Enum: "days" "days.events_master" "days.events_labels" "days.events_resource_instances" Requested set of an included models. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Object of model "Schedule") Data for an existing schedule in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_start": "2022-01-01",
- "date_end": "2022-02-01",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}
Creates a schedule for appointments or events based on the original associated entity.
company_id required | number Example: 123 ID of a company. |
include | Array of strings Items Value: "days" Requested set of an included models. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
original_entity_type required | string Enum: "record" "activity" Type of entity the schedule will be based on: |
original_entity_id required | number ID of entity the schedule will be based on. |
date_end required | string <date> Date of the schedule end. |
required | Array of objects [ 1 .. 7 ] items Each object represents schedule series settings for a specific day of the week. A minimum of 1 and a maximum of 7 schedule series can be defined (one for each day of the week). |
success | boolean (Successful response status) Response status. |
object (Object of model "Schedule") Data for an existing schedule in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_end": "2022-02-01",
- "days": [
- {
- "day_of_week": "mon",
- "events_master_id": 123,
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_capacity": 4,
- "labels_ids": [
- 123
], - "resource_instances_ids": [
- 123
]
}
]
}
{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_start": "2022-01-01",
- "date_end": "2022-02-01",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}
Updates the settings of a schedule containing appointments or events.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
date_end | string <date> Date of the schedule end. |
success | boolean (Successful response status) Response status. |
object (Object of model "Schedule") Data for an existing schedule in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "date_end": "2022-02-01"
}
{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_start": "2022-01-01",
- "date_end": "2022-02-01",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}
Completely deletes a schedule along with all its series and the linked appointments or events.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}
Adds a new series to an existing schedule of appointments or events.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
include | Array of strings Items Enum: "events_master" "events_labels" "events_resource_instances" "events" Requested set of an included models. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
day_of_week required | string Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" The day of the week for the schedule series. |
events_master_id required | number The ID of the staff member assigned to the events in the schedule series. |
events_time required | string Start time of the events in the schedule series, formatted as HH:MM:SS. |
events_duration required | number Duration of each event in the schedule series, in seconds. |
events_capacity required | number The capacity of activities in the schedule series. For appointments, this should be set to 1. |
labels_ids | Array of numbers An array of label IDs associated with the events in the schedule series. |
resource_instances_ids | Array of numbers An array of resource instance IDs used in the events of the schedule series. |
success | boolean (Successful response status) Response status. |
object (Object of model "Schedule Series") Data for an existing schedule series in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "day_of_week": "mon",
- "events_master_id": 123,
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_capacity": 4,
- "labels_ids": [
- 123
], - "resource_instances_ids": [
- 123
]
}
{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
], - "events": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "event_status": "stable",
- "event_datetime": "2022-01-24 14:00:00",
- "event_entity_type": "activity",
- "event_entity_id": 123,
- "is_entity_master_changed": false,
- "is_entity_datetime_changed": false,
- "is_entity_duration_changed": false,
- "is_entity_labels_changed": false,
- "is_entity_resource_instances_changed": false
}
]
}, - "meta": { }
}
Updates the settings of a schedule series for appointments or events.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
day_id required | number Example: 123 ID of a schedule series. |
include | Array of strings Items Enum: "events_master" "events_labels" "events_resource_instances" "events" Requested set of an included models. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
force required | boolean Flag for force override of manual changes in scheduled appointments/events. |
events_master_id | number The ID of the staff member assigned to the events in the schedule series. |
events_time | string Start time of the events in the schedule series, formatted as HH:MM:SS. |
events_duration | number Duration of each event in the schedule series, in seconds. |
events_capacity | number The capacity of activities in the schedule series. For appointments, this should be set to 1. |
labels_ids | Array of numbers An array of label IDs associated with the events in the schedule series. |
resource_instances_ids | Array of numbers An array of resource instance IDs used in the events of the schedule series. |
success | boolean (Successful response status) Response status. |
object (Object of model "Schedule Series") Data for an existing schedule series in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "force": false,
- "events_master_id": 123,
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_capacity": 4,
- "labels_ids": [
- 123
], - "resource_instances_ids": [
- 123
]
}
{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
], - "events": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "event_status": "stable",
- "event_datetime": "2022-01-24 14:00:00",
- "event_entity_type": "activity",
- "event_entity_id": 123,
- "is_entity_master_changed": false,
- "is_entity_datetime_changed": false,
- "is_entity_duration_changed": false,
- "is_entity_labels_changed": false,
- "is_entity_resource_instances_changed": false
}
]
}, - "meta": { }
}
Deletes a schedule series and all appointments or events linked to it.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
day_id required | number Example: 123 ID of a schedule series. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}
Prints a list of events of scheduled records/activities.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
day_id required | number Example: 123 ID of a schedule series. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Object of model "Event of appointment/event in a Schedule") | |
object (Meta object with response results count) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "event_status": "stable",
- "event_datetime": "2022-01-24 14:00:00",
- "event_entity_type": "activity",
- "event_entity_id": 123,
- "is_entity_master_changed": false,
- "is_entity_datetime_changed": false,
- "is_entity_duration_changed": false,
- "is_entity_labels_changed": false,
- "is_entity_resource_instances_changed": false,
- "entity_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "entity_datetime": "2022-01-24 14:00:00",
- "entity_duration": 3600,
- "entity_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "entity_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
], - "meta": {
- "count": 10
}
}
Creates a client schedule with a series of appointments for events, based on an existing schedule..
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
client_id required | number ID of client for creating a client schedule. |
comer_id | number ID of client`s comer for creating a client schedule. |
schedule_days_ids required | Array of numbers [ 1 .. 7 ] items IDs of schedule series, min of 1 series, max of 7 series. |
success | boolean (Successful response status) Response status. |
object (Object of model "Client schedule") Data for an existing client schedule in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "client_id": 123,
- "comer_id": 123,
- "schedule_days_ids": [
- 123
]
}
{- "success": true,
- "data": {
- "id": 123,
- "loyalty_abonement_id": null,
- "final_day": "2022-01-01 12:12:12",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}
Updates the client schedule by attaching or detaching a schedule series, which results in appointments for future events being created or removed.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
client_schedule_id required | number Example: 123 ID of a client schedule. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
schedule_days_ids required | Array of numbers [ 1 .. 7 ] items IDs of schedule series, min of 1 series, max of 7 series. |
success | boolean (Successful response status) Response status. |
object (Object of model "Client schedule") Data for an existing client schedule in a company. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "schedule_days_ids": [
- 123
]
}
{- "success": true,
- "data": {
- "id": 123,
- "loyalty_abonement_id": null,
- "final_day": "2022-01-01 12:12:12",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}
Deletes a client schedule, including all associated future appointments for scheduled events.
company_id required | number Example: 123 ID of a company. |
schedule_id required | number Example: 123 ID of a schedule. |
client_schedule_id required | number Example: 123 ID of a client schedule. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}
Setting up notifications via the wizard in the notification showcase involves several steps:
After completing registration, the user must be redirected to this URL in the browser, along with any required data needed by the partner service.
salon_id required | number Location ID. |
application_id required | number Application ID. |
api_key | number API-key for messaging module. |
webhook_urls | Array of strings Webhooks array |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "salon_id": 123,
- "application_id": 123,
- "api_key": "2f181e2a-5c22-4ae7-9d9b-07104f312c28",
}
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}
The integration settings of the partner service must be sent to this address. Once received, the application will be configured and installed for the corresponding location.
salon_id required | number Location ID. |
application_id required | number Application ID. |
api_key | number API-key for messaging module. |
webhook_urls | Array of strings Webhooks array |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "salon_id": 123,
- "application_id": 123,
- "api_key": "2f181e2a-5c22-4ae7-9d9b-07104f312c28",
}
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}
A webhook notification must be sent to this address to inform Altegio of a successful payment made on the partner service’s side.
salon_id required | number Location ID. |
application_id required | number Application ID. |
currency_iso required | string Currency ISO (e.g.: USD, EUR, BYN) |
payment_sum required | number Payment amount. |
payment_date required | string Date and time of payment. |
period_from required | string Date from which the paid period begins (inclusive). |
period_to required | string Date from which the paid period ends (inclusive). |
success | boolean (Status.) Status. |
object Data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "salon_id": 123,
- "application_id": 123,
- "currency_iso": "EUR",
- "payment_sum": 990.99,
- "payment_date": "2022-01-01 10:10:00",
- "period_from": "2022-01-01 10:10:00",
- "period_to": "2022-02-01 10:10:00"
}
{- "success": true,
- "data": {
- "id": 123
}
}
This endpoint is used to send the list of SMS sender names available to the user. The user will be able to choose from any of the provided sender names.
salon_id required | number Location ID. |
application_id required | number Application ID |
short_names required | Array of strings Array of SMS names |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "salon_id": 123,
- "application_id": 123,
- "short_names": [
- "Altegio",
- "AL"
]
}
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}
Chargeback Notice
payment_id required | number Example: 123 Payment ID. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}
Note: This is not a callable endpoint.
This section describes how Altegio sends webhook notifications when specific events occur in the application-to-location lifecycle. The following event types are currently supported:
You can configure the webhook URL for receiving these events in your Altegio Developer Account.
salon_id required | number Location ID. |
application_id required | number Application ID. |
event required | string Enum: "uninstall" "freeze" Event Slug. |
partner_token required | string Bearer token of the developer's company (to verify the origin of the webhook) |
{- "salon_id": 123,
- "application_id": 123,
- "event": "uninstall",
- "partner_token": "yasdfkjah2328aj"
}
This endpoint is used to retrieve information about the application's installation status in a specific location.
salon_id required | number Location ID |
application_id required | number Application ID |
success | boolean (Successful response status) Response status. |
object | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "logs": [
- {
- "changed_at": "2022-06-27 12:20:02",
- "status_from": "uninstalled",
- "status_to": "pending",
- "source": "marketplace"
}, - {
- "changed_at": "2022-06-27 12:22:02",
- "status_from": "pending",
- "status_to": "active",
- "source": "partner_api"
}
], - "payments": [
- {
- "id": 1523,
- "payment_sum": 1523.12,
- "payment_date": "2022-06-27 12:22:02",
- "is_refunded": false,
- "period_from": "2022-06-27 00:00:00",
- "period_to": "2022-07-27 00:00:00"
}
], - "connection_status": {
- "status": "active",
- "created_at": "2022-06-27 12:20:02"
}
}
}
This endpoint is used by the partner service to uninstall the application from a specific location.
salon_id required | number Location ID |
application_id required | number Application ID |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}
This endpoint retrieves a list of locations that have connected a specific application, along with detailed information about each.
application_id required | number Application ID |
page required | number Page number |
count required | number <= 1000 Number of elements per page |
success | boolean Success status (true) |
Array of objects Array of objects | |
meta | Array of objects Metadata (empty array) |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": "1050",
- "title": "La Visage",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "schedule": "",
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 900
}, - {
- "id": "1051",
- "title": "La Visage 2",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": false,
- "active_staff_count": 3,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 901
}
], - "meta": { }
}
To enable SMS sending, the operator must provide the API endpoint (url_operator) to which Altegio will send the relevant requests.
API requests are authorized using the RFC 6749 Resource Owner Password Credentials Grant method. Each request must include an Authorization HTTP header containing an access token in the following format:
Authorization: Bearer
If an error occurs while sending an SMS, the response will include the appropriate HTTP status code. In some cases, a descriptive error message will also be included in the response body. All API methods may return the following error codes: |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
destination_params required | object an object containing the send ID and phone number parameters |
from required | string Sender name |
text required | string departure text |
type required | string sending type (sms, viber) |
dispatch_type required | string mailing type (service - service, adds - advertising) |
delivery_callback_url required | string url to which message statuses are sent |
[- {
- "id": "232674",
- "ext_id": "609aff0fca92466d6a1747dd83f05943a8c9600d"
}, - {
- "id": "232674",
- "error_code": 32,
- "error_message": "explicit error message"
}
]
When a user changes their password, their API key is regenerated. As a result, reauthorization is required using the new API key.
Attribute | Type | Description |
---|---|---|
login | string | The user's phone number in the format 380000000000, or their email address. |
password | string | User password |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
login required | string Phone number or Email |
password required | string Password |
id | integer <int32> User ID |
user_token | string User_token of the user |
name | string Username |
phone | string User phone |
login | string User login |
string User mailing address | |
avatar | string Path to the user's avatar file |
is_approved | boolean Is the user verified in the system |
{- "password": "testpass"
}
{- "id": 123456,
- "user_token": "wec23fh8cDfFV4432fc352456",
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
- "is_approved": true
}
When a user of an online account changes their password, their API key will change and a new authorization will be required
Attribute | Type | Description |
---|---|---|
login | string | The visitor's phone number in the format 380000000000, or their email address. |
password | string | Visitor password |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
login required | string Phone number or Email |
password required | string Password |
id | integer <int32> User ID |
user_token | string User_token of the user |
name | string Username |
phone | string User phone |
login | string User login |
string User mailing address | |
avatar | string Path to the user's avatar file |
{- "password": "testpass"
}
{- "id": 123456,
- "user_token": "wec23fh8cDfFV4432fc352456",
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
}
Each Altegio client can create an unlimited number of Online Booking forms with different designs and booking scenarios.
Typically, the ID of a booking form is embedded in the subdomain. For example: https://b123.alteg.io, where 123 is the booking form ID. This ID can be used to retrieve all necessary parameters for implementing Online Booking and to determine whether the booking applies to a specific company or a company chain.
For chain widgets, you will also need to call the [GET] /companies method with the company_id filter to retrieve the list of companies available for booking.
The object containing the Online Booking form settings includes the following fields:
Field | Type | Description |
---|---|---|
steps | Array of objects | Booking form steps with custom settings |
style | object | Booking form design settings |
group_id | number | Company chain ID (0 - if the booking form is for a non-chain company) |
company_id | number | Company ID (always returned, used to get additional settings) |
phone_confirmation | boolean | Do I need to confirm the phone by SMS (if groupid = 0 (not a group form), otherwise look in the settings of each company separately) |
language | string | Booking form language (code from langs array) |
langs | array of object | List of widget languages |
comment_required | boolean | Whether the field with a comment within booking is required |
google_analytics_id | string | Google Analytics ID |
facebook_pixel_id | string | Facebook Pixel ID |
sms_enabled | boolean | Is sending SMS available? |
comment_input_name | string (optional) | Title for the field with a comment to the booking (if not set, the default value is used) |
booking_notify_text | string (optional) | The text of the notification that is displayed (if set) at the step of entering contact data |
is_show_privacy_policy | boolean | Whether it is necessary to display the text of the agreement on the personal data processing policy to the user |
specialization_display_mode | number | Display the specialization or position of the employee. 0 - Specialization, 1 - Position |
The steps array consists of objects that have the following fields:
Field | Type | Description | For what steps is specified |
---|---|---|---|
step | string | Step city/company/service/specialist/datetime/contact/confirm | |
title | string | Name of the step to display in the interface | For everyone |
number | number | What number should this step be displayed on (starting from 1) | For everyone |
default | string or number | The default value for this step, if set | For all but datetime |
hidden | boolean | Hide this step when booking or not | For everyone |
date_hidden | boolean | Hide this step when booking or not | For datetime |
time_hidden | boolean | Hide this step when booking or not | For datetime |
date_default | string | The default value for this step, if set | For datetime |
time_default | number | The default value for this step, if set | For datetime |
The style object has the following fields:
Field | Type | Description |
---|---|---|
show header | boolean | Show header and menu or not |
logo | string | Path to logo image |
header_background | string | Path to subtitle background image |
menu_background | string | Path to menu background image |
primaryPalette | string | The main color of the form (all colors from the list: red, pink, purple, deep-purple, indigo, blue, light-blue, cyan, teal, green, light-green, lime, yellow, amber, orange, deep-orange, brown , grey, blue-grey, white, black) |
accentPalette | string | Form secondary color (subtitle semi-transparent cover) |
warnPalette | string | Booking form buttons color |
backgroundPalette | string | Booking form background color |
id required | number Example: 1 booking form id |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "steps": [
- {
- "step": "master",
- "title": "Choose a specialist",
- "num": 2,
- "hidden": "0",
- "default": -1
}, - {
- "step": "service",
- "title": "Choose a service",
- "num": 1,
- "hidden": "1",
- "default": "196"
}, - {
- "step": "datetime",
- "title": "Select session date and time",
- "num": 3,
- "hidden": false,
- "date_hidden": "0",
- "time_hidden": "0",
- "date_default": "2025-09-21T23:00:00.000+03:00",
- "time_default": "27900"
}, - {
- "step": "contact",
- "title": "Business Example",
- "num": 3,
- "hidden": false,
- "default": 0
}, - {
- "step": "comfirm",
- "title": "Business Example",
- "num": 4,
- "hidden": false,
- "default": 0
}
], - "style": {
- "show_header": true,
- "main_color": "666",
- "secondary_color": "999",
- "buttons_color": "FFF"
}, - "group_id": 1,
- "company_id": 1,
- "phone_confirmation": false,
- "lang": "en-US",
- "langs": [
- {
- "id": 2,
- "code": "en-US",
- "title": "English"
}, - {
- "id": 4,
- "code": "lv-LV",
- "title": "Latviešu valoda"
}, - {
- "id": 5,
- "code": "et-EE",
- "title": "Eesti keel"
}, - {
- "id": 6,
- "code": "lt-LT",
- "title": "Lietuva"
}, - {
- "id": 7,
- "code": "uk-UK",
- "title": "Ukrainian"
}, - {
- "id": 8,
- "code": "fr-FR",
- "title": "Français"
}, - {
- "id": 9,
- "code": "it-IT",
- "title": "Italiano"
}, - {
- "id": 10,
- "code": "es-ES",
- "title": "Español"
}, - {
- "id": 13,
- "code": "ka-KA",
- "title": "ქართული"
}, - {
- "id": 14,
- "code": "hy-AM",
- "title": "Հայերեն"
}, - {
- "id": 15,
- "code": "kk-KK",
- "title": "Kazakh tili"
}, - {
- "id": 16,
- "code": "hr-HR",
- "title": "Hrvatski jezik"
}, - {
- "id": 17,
- "code": "cs-CS",
- "title": "český jazyk"
}, - {
- "id": 18,
- "code": "ro-RO",
- "title": "Limba Română"
}, - {
- "id": 19,
- "code": "cn-CN",
- "title": "中文"
}, - {
- "id": 20,
- "code": "ar-AR",
- "title": "العَرَبِيَّة"
}, - {
- "id": 21,
- "code": "bg-BG",
- "title": "Bulgarian"
}, - {
- "id": 22,
- "code": "he-IL",
- "title": "עברית"
}, - {
- "id": 23,
- "code": "hu-HU",
- "title": "Magyar nyelv"
}, - {
- "id": 24,
- "code": "Lt-sr-SP",
- "title": "Srpski jezik"
}, - {
- "id": 25,
- "code": "sk-SK",
- "title": "Slovenský jazyk"
}, - {
- "id": 26,
- "code": "mn-MN",
- "title": "Mongol hal"
}, - {
- "id": 27,
- "code": "az-AZ",
- "title": "Azərbaycan dili"
}, - {
- "id": 28,
- "code": "pl-PL",
- "title": "Polszczyzna"
}, - {
- "id": 30,
- "code": "sl-SL",
- "title": "Slòvēnskī"
}
], - "comment_required": false,
- "metrika_counter_id": "50217133",
- "google_analytics_id": "UA-125358345-1",
- "facebook_pixel_id": "2218788388343154",
- "app_metrika_id": "46ab3b93-1bc6-457d-82f0-c1b51f39b01e",
- "sms_enabled": true
}, - "meta": [ ]
}
Translation is available in one of the languages:
langCode required | string Example: en-US Language code. One of the set 'lv-LV', 'en-US', 'ee-EE', 'lt-LT', 'de-DE', 'uk-UK' |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
object | |
object | |
object | |
object | |
object | |
and | string |
terms-of-agreement | string |
data-processing | string |
license-agreement | string |
personal-data | string |
buy-for | string |
object | |
object | |
object | |
object | |
back | string |
backCity | string |
backFilials | string |
backRecordType | string |
filials | string |
my_profile | string |
about_us | string |
object | |
at | string |
on | string |
h | string |
m | string |
from | string |
dist_m | string |
dist_km | string |
yesterday | string |
today | string |
tomorrow | string |
Close | string |
Yes | string |
No | string |
refresh | string |
online_record_disabled | string |
online_record_disabled_long_text | string |
object | |
object | |
object | |
object | |
object | |
save | string |
proceed | string |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
object | |
Jan | string |
Feb | string |
March | string |
Mar | string |
Apr | string |
May | string |
Jun | string |
Jul | string |
Aug | string |
Sep | string |
Oct | string |
Nov | string |
Dec | string |
object | |
object | |
landscape | string |
{- "404": {
- "not-found": "It seems that this page does not exist.",
- "not-found-record": "Such an entry does not exist.",
- "go-home": "To main"
}, - "action": {
- "send": "send"
}, - "tips": {
- "terms": {
- "prefix": "By clicking \"Submit\", you accept",
- "of-use": "Terms of Use",
- "personal-policy": "Privacy Policy"
}, - "review-sent": "Review sent",
- "your-mark": "your mark",
- "leave-a-review": "Leave a review",
- "leave-a-tip-to-a-specialist": "Leave a tip for a specialist",
- "credited": "Tip credited",
- "visit-amount": "Visit amount",
- "will-be-written-off": "Will be written off",
- "at-time": "v",
- "rate-specialist-to-sent-feedback": "Rate a specialist to send feedback",
- "title": "Tips",
- "tips-required": "Please select a tip amount",
- "review-or-tips-required": "It seems that there is nothing to send to a specialist yet",
- "enter-sum": "Enter amount",
- "custom-sum": "Own amount",
- "cancel-tips": "Cancel tip",
- "bad-sum": "Tipping must be indicated by the amount"
}, - "payment-status": {
- "payment-error": "Payment error. Try again",
- "payment-redirect": "You should be directed to the payment system.",
- "payment-config-error": "Error in setting up the payment system",
- "contact-us-for-questions": "Contact us if you have any questions.",
- "contacts": "Contacts",
- "order-registered": "Application completed",
- "order-paid": "Order has been paid",
- "retry": "Repeat",
- "order-created-successfully": "The order has been successfully created. Our representative will contact you to clarify the details.",
- "order-is-being-processed": "Operation is being processed",
- "get-payment-data": "Receiving payment data",
- "transaction-number": "Transaction number",
- "payment-transaction-info-1": "If you received a check, then the purchase was successfully completed. Check the email address you provided when purchasing.",
- "payment-transaction-info-2": " If the receipt did not arrive, please try again or contact us using the contacts below.",
- "order-number-info": "Provide this number at the time of your visit to redeem your certificate or pass."
}, - "user-data-form": {
- "loyalty-phone-tip": "Provide this number at the time of your visit to redeem your certificate or pass.",
- "name-required": "Name required",
- "email-required": "Email required",
- "loyalty-email": "E-mail for receipt and purchase",
- "agreement-link": "with the terms of the agreement",
- "data-processing-link": "data processing",
- "terms-prefix": "By clicking on the button you agree",
- "proceed": "Checkout",
- "pay": "Pay",
- "phone-code": "The code",
- "phone": "Telephone",
- "invalid-phone": "Invalid number"
}, - "and": "and",
- "terms-of-agreement": "Terms of agreement",
- "data-processing": "Data processing",
- "license-agreement": "License agreement",
- "personal-data": "Your data",
- "buy-for": "Buy for",
- "group_booking": {
- "personal_booking": "Individual services",
- "group_booking": "Group events",
- "choose_group_event": "Choose an event",
- "group_events_available": "Registration available for group events",
- "places": "Places",
- "group_events_is_not_available": "There are no group events for the selected day",
- "group_events_is_not_available_filial": "Group events are not configured in this branch yet",
- "repeat": "Sign up again",
- "duration": "Duration",
- "no_space": "No places",
- "not_found": "There are no events for the selected filters. Try changing your filter options"
}, - "geo": {
- "geo_timeout_error": "Unable to determine your location. You may be out of GPS coverage",
- "geo_timeout_error_android": "Unable to determine your location. You may be out of GPS coverage. If you have geolocation disabled, you need to enable it and restart the application.",
- "geo_access_error": "No access to your location. The application cannot show branches near you. If you have geolocation disabled, you need to enable it and restart the application."
}, - "tooltips": {
- "change_filial": "Now you will always start recording from this branch. You can change the branch through the menu item",
- "change_filial_back_button": "You can also use the back button to change branch"
}, - "prepaid": {
- "required": "prepayment required",
- "allowed": "prepayment is optional",
- "prepaid_sum": "To pay online:",
- "postpaid_sum": "Payment on the spot:"
}, - "back": "Back",
- "backCity": "Cities",
- "backFilials": "Branches",
- "backRecordType": "Record Type",
- "filials": "Branches",
- "my_profile": "Cabinet",
- "about_us": "About Us",
- "record": {
- "show_details": "View details",
- "is_canceled": "Recording canceled",
- "is_canceled_success": "Recording canceled successfully",
- "record": "Recording",
- "place": "Place",
- "master": "Employee",
- "service": "Service",
- "services": "Services",
- "date": "date",
- "past": "Passed",
- "through": "Across",
- "time": "Time",
- "clients_count": "Number of seats:",
- "book_visit": "Make a visit",
- "add_service": "+ Add service",
- "add_master": "+ Add wizard",
- "add_datetime": "+ Add date and time",
- "cancel_record": "Cancel entry",
- "cancel_record_warning": "Once canceled, the recording will not be recoverable.",
- "confirm_cancel_record": "Are you sure you want to cancel the recording?",
- "error_cancel_record": "You cannot unsubscribe",
- "error_cancel_record_new1": "It is not possible to cancel an appointment online. Please contact the administrator.",
- "error_cancel_record_new2_1": "Unable to cancel online booking",
- "error_cancel_record_new2_2": "before visiting. Please contact the administrator.",
- "add_to_google_calendar": "Add to google calendar",
- "booking_success": "You have successfully signed up!",
- "create_new_record": "Sign up more",
- "future_records": "Upcoming sessions",
- "past_records": "Past",
- "change_record_time": "Transfer entry",
- "error_change_record_time": "Unable to reschedule online. Please contact the administrator.",
- "error_change_record_time2_1": "Unable to reschedule online appointment",
- "error_change_record_time2_2": "before visiting. Please contact the administrator.",
- "selected_services": "Selected services",
- "calculate_services": "Services available...",
- "change_record_fail": "Error transferring recording, please try another time",
- "continue_booking": "Continue recording",
- "go_to_registration": "Go to Altegio website",
- "repeat": "Repeat recording",
- "is_deleted": "Your entry has been deleted."
}, - "at": "v",
- "on": "on the",
- "h": "h.",
- "m": "min.",
- "from": "from",
- "dist_m": "m",
- "dist_km": "km",
- "yesterday": "yesterday",
- "today": "today",
- "tomorrow": "tomorrow",
- "Close": "close",
- "Yes": "Yes",
- "No": "Not",
- "refresh": "Refresh",
- "online_record_disabled": "Online registration is disabled. <br> We apologize for the inconvenience caused.",
- "online_record_disabled_long_text": "Online registration is temporarily unavailable. You can still manage your online records in your account, transfer them and delete them.",
- "address": {
- "about": "About company",
- "address": "The address",
- "phone": "Telephone",
- "phones": "Phones",
- "schedule": "Working hours",
- "site": "Site",
- "date_and_time": "date and time",
- "photos": "Photos",
- "details": "More about the salon"
}, - "common": {
- "information": "information",
- "reviews": "reviews",
- "contacts": "contacts"
}, - "notification": {
- "your_city": "What is your city <%- city_name %>?",
- "yes_my_city": "Yes, this is my city",
- "no_my_city": "No, choose a city",
- "read_all": "Read",
- "delete_all": "Delete",
- "deleted_record": "Deleting an entry",
- "record": "Recording",
- "news": "news",
- "review": "Feedback about the master",
- "notify": "Notification",
- "sent": "Sent"
}, - "header": {
- "loyalty_cards": "Loyalty Cards",
- "widget_settings": "Widget settings",
- "settings": "Settings",
- "select_town": "Choose city",
- "select_company": "Choose branch",
- "select_date": "Date picker",
- "select_master": "Employee selection",
- "select_time": "Timing",
- "select_service": "Service selection",
- "input_personal": "Entering contact details",
- "online_record": "Online appointment",
- "selection_of": "Choice",
- "contacts_form": "Registration",
- "record_created": "Post created!",
- "login": "entrance",
- "profile": "Personal Area",
- "my_records": "My notes",
- "record_create_disabled": "Online registration is temporarily unavailable.",
- "master-info": "About employee",
- "notification": "Notifications",
- "my_notifications": "My notifications",
- "none_notifications": "No notifications",
- "cart": "Proof of payment",
- "change_record": "Record transfer",
- "you_booking": "Your order",
- "you_data": "Your data",
- "record": "Recording",
- "actions": "Actions",
- "cancel-record": "Cancel recording",
- "booking_again": "Sign up again",
- "choose_time": "Pick a time",
- "choose_staff": "Choose a specialist",
- "about_service": "About the service",
- "records": "Entries",
- "confirmation": "Confirmation"
}, - "loyalty": {
- "empty-list": "There is nothing here yet",
- "points": {
- "nominative": "score",
- "genitive": "points",
- "plural-genitive": "points"
}, - "no_cards": "You don't have any cards.",
- "no_certificate": "You do not have any certificate.",
- "no_subscription": "You don't have any subscription.",
- "discount": "discount",
- "cashback": "cashback",
- "paid_amount": "Paid",
- "sold_amount": "Sales",
- "visit_count": "Visits",
- "balance": "Accumulated (cashback)",
- "certificate": {
- "services-includes": "What's included",
- "no-restrictions": "No limits",
- "restrictions-only-services": "All services except goods",
- "any-goods": "Any goods",
- "without-goods": "Items not included",
- "without-services": "Services not included",
- "validity": "Validity",
- "validity-without-restrictions": "No expiration date",
- "validity-till": "Before",
- "validity-after-purchase": "since purchase",
- "use-type": "Usage",
- "use-type-multiple": "many times",
- "use-type-single": "once",
- "where-to-use": "Where to use?",
- "where-to-use-show-more": "Show more",
- "where-to-use-all-group": "All over the chain",
- "allow-to-freeze": "Freezing option",
- "title": "Certificate",
- "one-off-use": "Disposable",
- "multi-use": "reusable",
- "denomination": "Denomination",
- "balance": "Remainder"
}, - "subscription": {
- "validity-without-restrictions": "no limit on the number of days",
- "title": "Subscription"
}, - "subscriptions": {
- "all-services": "(all services)",
- "from": "from",
- "valid_until": "Valid until",
- "valid_unlimited": "Validity is not limited",
- "unused": "Subscription has not yet been used",
- "online_sale_button_text": "Buy a certificate or subscription"
}, - "programs": {
- "item_type_id": {
- "any_services_any_goods": "To all services and goods",
- "any_service_no_goods": "For any service",
- "no_services_any_goods": "For any goods",
- "custom_services_no_goods": "For some services",
- "custom_services_any_goods": "For some services and any goods",
- "no_services_custom_goods": "For some products",
- "any_services_custom_goods": "For all services and some products",
- "custom_services_custom_goods": "For some services and products",
- "no_services_no_goods": "Not for services; not for goods"
}, - "determined_action_settings": "Determined by promotion settings"
}
}, - "save": "Save",
- "proceed": "Continue",
- "profile": {
- "name": {
- "saved": "Username changed to",
- "not_known": "Name unknown"
}, - "noFutureRecords": "You have no upcoming sessions",
- "noPastRecords": "You have no past sessions",
- "phone": {
- "confirm": "Verify phone"
}, - "email": {
- "info": "A confirmation email has been sent to you at"
}, - "password": {
- "info": "Password must contain at least eight characters",
- "badPassword": "Wrong password specified",
- "current": "Current Password",
- "new": "New password",
- "invalidTooShort": "",
- "invalidNoDigit": "",
- "invalidNoCapital": "",
- "invalidNoSymbol": ""
}, - "error": "An error occurred while saving data",
- "saved": "Changes to your personal data are saved",
- "contactsDetails": "Contact details",
- "your_records": "Your entries in the salon."
}, - "registration": {
- "registration": "registration",
- "form": {
- "name": "Your name",
- "company_title": "Company name",
- "i_know_promo": "I know promo code",
- "confirm_oferta_1": "I accept the terms",
- "confirm_oferta_2": "contract-offers",
- "submit": "Register",
- "promo": "promo code",
- "unknownError": "A system error has occurred, please try again later"
}
}, - "menu": {
- "account": "Personal data",
- "change_filial": "Change Branch",
- "change_city": "Change city",
- "online_record": "Online booking",
- "about": "About company",
- "change_lang": "Change the language",
- "hide_menu": "Hide menu",
- "login": "To come in",
- "myRecords": "My notes",
- "on-line": "Online appointment",
- "logout": "Log off",
- "my": "Personal Area",
- "favorite": "Favorites",
- "change_password": "password change",
- "header": "Menu",
- "profile": "Profile",
- "loyalty": "My cards",
- "loyalty_subscriptions": "Subscriptions",
- "loyalty_certificates": "Certificates"
}, - "footer": {
- "worked_on": "Works for",
- "worked_on_company_name": "Altegio"
}, - "city": {
- "town_abbreviation": "G.",
- "service_count": "Number of branches:",
- "select_filial": "Branch selection",
- "not_found_cities": "No cities found for your request",
- "search_cities": "Find cities",
- "affiliate": {
- "1": "branch",
- "2": "branch",
- "3": "branches"
}
}, - "company": {
- "list": "List",
- "on_map": "On the map",
- "no_companies_text_1": "You do not have any active company. To set up companies, go to",
- "lk": "Personal account Altegio",
- "no_companies_text_2": "After setting, press the button",
- "no_companies": "No companies",
- "near_session": "The closest available recording session is:",
- "active_master": "Active professionals:",
- "at_o_clock": "v",
- "find_companies": "Find branches",
- "not_found_companies": "No branches found for your search",
- "look_at_the_map": "View on the map"
}, - "steps": {
- "date_and_time": "date and time",
- "staff": {
- "nominative": "Employee",
- "genitive": "employee"
}, - "service": "Service",
- "time": "Time"
}, - "master": {
- "master": "Specialist",
- "skip_select_master": "Skip employee selection",
- "skip_select": "Skip selection",
- "near_session": "Upcoming sessions",
- "nearest_time": "Next time to sign up",
- "no_record": "There are no free sessions for the selected day",
- "no_record_new": "There is no free time for this date. Choose another date or another specialist",
- "no_master": "The employee was fired or no longer works at this branch",
- "any_master": "Irrelevant",
- "record_is_available": "You can sign up",
- "reviews": {
- "nominative": "review",
- "genitive": "recall",
- "plural-genitive": "reviews"
}, - "prepaid": {
- "forbidden": "No prepayment required",
- "allowed": "Prepayment possible",
- "required": "Prepayment required"
}
}, - "cart": {
- "title": "Services selected for payment",
- "confirm": "Confirm Entry",
- "go-to-pay": "Proceed to checkout",
- "confirmed": "Entry Paid",
- "pay-success": "Payment was successful!"
}, - "reviews": {
- "cancelAddReview": "Cancel",
- "later": "Rate later",
- "addReview": "Leave feedback",
- "yourReviewMark": "your mark",
- "reviewFieldLabelText": "your feedback",
- "reviewTitle": "Please rate the quality of the application",
- "reviewMessage": "Write suggestions for improvements",
- "reviewRequestStoreTitle": "Would you like to rate the store?",
- "reviewButton": "Estimate",
- "thanksForReview": "Thanks for the feedback"
}, - "date": {
- "day_of": "Day off",
- "no_record": "Working, no record",
- "have_record": "Working, there is a record",
- "by_month_num": {
- "1": "January",
- "2": "February",
- "3": "March",
- "4": "April",
- "5": "May",
- "6": "June",
- "7": "July",
- "10": "October",
- "11": "November",
- "12": "December",
- "08": "August",
- "09": "September"
}, - "by_month_short": {
- "Jan": "January",
- "Feb": "February",
- "March": "Martha",
- "Mar": "Martha",
- "Apr": "April",
- "May": "May",
- "Jun": "June",
- "Jul": "July",
- "Aug": "august",
- "Sep": "September",
- "Oct": "October",
- "Nov": "November",
- "Dec": "December"
}
}, - "time": {
- "hourCased": {
- "nominative": "hour",
- "genitive": "hours",
- "plural-genitive": "hours"
}, - "weekCased": {
- "nominative": "a week",
- "genitive": "weeks",
- "plural-genitive": "weeks"
}, - "monthCased": {
- "nominative": "month",
- "genitive": "months",
- "plural-genitive": "months"
}, - "yearCased": {
- "nominative": "year",
- "genitive": "of the year",
- "plural-genitive": "years"
}, - "dayCased": {
- "nominative": "day",
- "genitive": "days",
- "plural-genitive": "days"
}, - "minuteCased": {
- "nominative": "minute",
- "genitive": "minutes",
- "accusative": "minute",
- "plural-genitive": "minutes"
}, - "secondCased": {
- "nominative": "second",
- "genitive": "seconds",
- "accusative": "give me a sec",
- "plural-genitive": "seconds"
}, - "at_o_clock": "v",
- "noTimes": "There are no free sessions for the selected day",
- "the_part_of_day": {
- "morning": "Morning",
- "day": "Day",
- "evening": "Evening"
}, - "by_week_day": {
- "Mon": "Mon",
- "Tue": "Tue",
- "Wed": "Wed",
- "Thu": "Thu",
- "Fri": "Fri",
- "Sat": "Sat",
- "Sun": "Sun"
}, - "by_full_week_day": {
- "Monday": "Monday",
- "Tuesday": "Tuesday",
- "Wednesday": "Wednesday",
- "Thursday": "Thursday",
- "Friday": "Friday",
- "Saturday": "Saturday",
- "Sunday": "Sunday"
}
}, - "service": {
- "selected": "Selected",
- "selected_service_count": "Selected services:",
- "noServicesAndEvents": "No promotions or services found for your search",
- "noMoreServices": "There are no services that can be booked together with the selected services",
- "noMoreService": "There are no services that can be booked together with the selected service",
- "search": "Search...",
- "sale": "Stock",
- "services": "Services",
- "add": "Add a service",
- "add_short": "Add",
- "currency_short": "R.",
- "services_pref": {
- "1": "service",
- "2": "services",
- "3": "services"
}, - "order_on": "Order for",
- "price": "price",
- "price_not_available": "Price not specified",
- "price_from": "from",
- "price_to": "before",
- "unavailable_service": "no longer available for online registration. Would you like to choose another?",
- "unavailable_services": "are no longer available for online booking. Would you like to choose others?"
}, - "confirm": {
- "confirm": "Sign up",
- "show_order_details": "View order details",
- "order_details": "Order Details",
- "smsNotify": "Reminder",
- "dontSend": "Do not send",
- "order_on": "Service order",
- "service_sale": "Promotion Services",
- "license_text": "Duis placerat lectus et justo mollis, nec sodales orci congue. Vestibulum semper non urna ac suscipit. Vestibulum tempor, ligula id laoreet hendrerit, massa augue iaculis magna, sit amet dapibus tortor ligula non nibh.",
- "accept": "By clicking the \"Register\" button, you agree to",
- "i_accept": "I accept",
- "i_agree": "I agree",
- "accept_inline": "By clicking the \"Register\" button, you agree",
- "accept_personal_data_inline": "processing of personal data",
- "and_accept": "and accept",
- "terms_of_agreement": "terms of the user agreement",
- "terms_of_agreement_inline": "user agreement terms",
- "how_my_personal_data_will_be_processed": "how my personal data will be processed",
- "first_name": "Name",
- "phone": "Telephone",
- "will_be_used_to_confirm": "Will be used for confirmation",
- "comment": "A comment",
- "email": "Email",
- "recording": "Sign up",
- "code_and_phone_num": "Code and phone number",
- "phone_confirm_short": "Confirm number",
- "phone_already_exists": "The specified number is already in use.",
- "phone_confirm": "Verify phone number",
- "phone_confirm_button": "Confirm",
- "defaultError": "System error:",
- "you_want_to_book": "Do you want to enroll",
- "your_master": "your master",
- "waiting_for_you_at_the_address": "We are waiting for you at",
- "untilVisit": {
- "postfix": "before the visit",
- "prefix": "Per"
}, - "orderErrorsActions": {
- "changeService": "Select other services",
- "changeTime": "Choose another time",
- "changeRecord": "Edit Appointment",
- "deleteRecord": "Delete Appointment"
}, - "orderErrors": {
- "unknown": "incorrect recording parameters",
- "server": "something went wrong, please try again later",
- "code_400": "invalid email",
- "code_404": "incorrect recording parameters",
- "code_422": "incorrect recording parameters",
- "code_437": "time overlap with another visit",
- "code_433": "it is not possible to make an appointment at the selected time",
- "code_436": "no employees available for appointment",
- "code_438": "Unable to sign up for selected services",
- "code_501": "Unknown error",
- "bigLetter": {
- "unknown": "Incorrect recording parameters",
- "server": "Something went wrong, please try again later",
- "code_400": "Incorrect email",
- "code_404": "Incorrect recording parameters",
- "code_422": "Incorrect recording parameters",
- "code_437": "Time overlap with another visit",
- "code_433": "Unable to book at the selected time",
- "code_436": "No employees available for recording",
- "code_438": "Unable to sign up for selected services",
- "code_501": "Unknown error"
}
}, - "errors": {
- "name": {
- "required": "Enter your name"
}, - "company": {
- "required": "Enter company name"
}, - "phone": {
- "required": "Enter phone",
- "incorrect": "Wrong number"
}, - "email": {
- "required": "Enter email",
- "invalid": "Incorrect email format"
}, - "agreement": {
- "required": "You must accept the user agreement"
}, - "agreement_privacy_and_terms_of_use": {
- "required": "To continue, you must accept the user agreement, as well as agree to the processing of personal data"
}, - "comment_default": {
- "required": "Enter a comment"
}, - "comment": {
- "required": "Fill in the field"
}, - "code": {
- "incorrect": "Invalid code from SMS"
}
}
}, - "login": {
- "login": "entrance",
- "sms_auth": "SMS authorization",
- "input_code_confirm": "Enter the code received by SMS to the number",
- "input_phone_num": "Enter your phone number, we will send an SMS to it with an access code to your personal account",
- "input_login_and_password": "If you already have a username and password, enter them below",
- "code_confirm": "confirmation code",
- "come_in": "To come in",
- "sms_not_send_with_colon": "If the SMS did not arrive, you can request a second code via:",
- "sms_not_send": "If the SMS did not arrive, you can request a second code via",
- "sms_not_send_next_try": "If the SMS did not arrive, you can",
- "request_new_sms_code": "Request code again",
- "change_phone_num": "Change phone number",
- "get_code": "to get the code",
- "or": "or",
- "authorized_as": "You are logged in as",
- "come_in_with_login_and_pass": "Log in with username and password",
- "phone_or_email": "Phone or email",
- "pass": "Password",
- "come_in_with_sms_authorise": "Log in via SMS authorization",
- "errors": {
- "incorrect_login_password": "There is no user with this username or password",
- "undefined_error": "A system error has occurred, please try logging in later"
}
}, - "Jan": "January",
- "Feb": "February",
- "March": "Martha",
- "Mar": "Martha",
- "Apr": "April",
- "May": "May",
- "Jun": "June",
- "Jul": "July",
- "Aug": "august",
- "Sep": "September",
- "Oct": "October",
- "Nov": "november",
- "Dec": "December",
- "activity": {
- "places_left": "Remaining places",
- "filters": {
- "select": "Select filters",
- "reset": "Reset",
- "apply": "Apply"
}
}, - "button": {
- "select": "Select",
- "select_time": "Choose time",
- "all_right": "That's right",
- "get_sms": "Receive SMS",
- "back": "Return",
- "add_more": "Add more",
- "remove-from-record": "Remove from order",
- "continue": "Continue",
- "confirm": "Confirm",
- "canceling": "Cancel",
- "more_reviews": "More reviews"
}, - "landscape": "It will be more convenient if you turn the device vertically"
}
James
) - Client namecompany_id required | number Example: 4564 Company ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
phone | string Customer phone number |
fulname | string Client name |
success | boolean Execution success status (true) |
object metadata |
{- "phone": "+1-315-555-0175",
- "fulname": "James Smith"
}
{- "success": true,
- "meta": {
- "message": "Created"
}
}
After generating the appointment parameters, you can validate them to ensure the appointment can be successfully created.
The JSON object containing the Online Booking parameters includes the following fields:
Field | Type | Mandatory | Description |
---|---|---|---|
appointments | Array of objects | YES | Booking options (services, specialists...) |
The appointments array consists of objects that have the following fields:
Field | Type | Mandatory | Description |
---|---|---|---|
id | number | Yes | Booking ID for post-save feedback (see response to request). |
services | array of numbers | NO | Array of IDs of the services the client wants to sign up for |
staff_id | number | YES | ID of the specialist the client wants to book with (0 if Any specialist is selected) |
datetime | datetime | YES | Session date and time in ISO8601 format (passed for each session in the book_times resource) |
In response to the parameter check request, an empty response with the code 201 will be returned if the booking parameters are in order and bookings can be created:
If the response is JSON with an HTTP code other than 201, then the booking parameters are out of order, and bookings cannot be created.
The server may return the following errors during appointment creation:
Selected time slot is already taken. Returned with HTTP status code 422 and error code 433.
No employees available for booking. Occurs if a default employee was selected but none are available. Returned with HTTP status code 422 and error code 436.
Booking time conflict within the same request. One of the selected booking times overlaps with another booking created in the same request. Returned with HTTP status code 422 and error code 437, including the conflicting booking’s id in the appointments array.
Service not available for booking The selected service is no longer available (e.g. removed by the company). Returned with HTTP status code 422 and error code 438.
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
appointments required | Array of objects Booking options (services, specialists...) |
success | boolean Execution success status (true) |
object metadata |
success | boolean Execution success status (true) |
object metadata |
{- "appointments": [
- {
- "id": 1,
- "services": [
- 331
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "id": 2,
- "services": [
- 99055
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}
]
}
{- "success": true,
- "meta": {
- "message": "Created"
}
}
To create a session entry, provide a JSON object containing the online booking parameters. The object includes the following fields:
Field | Type | Mandatory | Description |
---|---|---|---|
phone | string | YES | Client's phone number (eg 79161502239) |
full name | string | YES | Client name |
string | NO | Postal address of the client | |
appointments | Array of objects | YES | Booking options (services, specialists...) |
code | string | NO | Phone number confirmation code sent via SMS (only needed if you need to confirm the number) |
notify_by_sms | number | NO | Number of hours in advance to send an SMS reminder for the appointment (set to 0 to disable reminders). |
notify_by_email | number | NO | Number of hours in advance to send an email reminder for the appointment (set to 0 to disable the reminder). |
comment | string | NO | Appointment Comment |
api_id | string | NO | External Appointment ID |
The appointments array consists of objects that have the following fields:
Field | Type | Mandatory | Description |
---|---|---|---|
id | number | Yes | Booking ID for post-save feedback (see response to request). |
services | array of numbers | NO | Array of IDs of the services the client wants to sign up for |
staff_id | number | YES | ID of the specialist the client wants to book with (0 if any specialist is selected) |
datetime | datetime | YES | Session date and time in ISO8601 format (passed for each session in the book_times resource) |
custom_fields | key-value object | NO | Additional field values that are returned with the appointment |
Additional fields in the appointments array
When additional appointment fields are created (see the "Additional Fields" section), you can pass custom values for them during appointment creation. These fields are unique to each company. Once the additional fields are set up, their values can be included in the optional custom_fields parameter. This should be passed as a key–value object, where each key corresponds to the code of the additional field. Example:
In response to the request to create an appointment, an array of objects will come (the number of objects is equal to the number of objects in the appointments array) with the following fields:
Field | Type | Description |
---|---|---|
id | number | The appointment ID as passed in the original appointments array |
record_id | number | The unique identifier of the appointment created in the system |
record_hash | string | A temporary ID used for deleting the appointment immediately after creation |
Errors to be handled:
Incorrect SMS verification code. Returned with HTTP status 422 and error code 432. The SMS verification code entered by the user is invalid.
Selected time slot is already taken. Returned with HTTP status 422 and error code 433. The selected appointment time is unavailable. The response includes the id of the conflicting appointment from the appointments array.
User is blacklisted. Returned with HTTP status 403 and error code 434. The user with the specified phone number is blacklisted and cannot book an appointment.
Invalid phone number format. Returned with HTTP status 422 and error code 431. The user's phone number is not in a valid format.
Missing client name. Returned with HTTP status 422 and error code 435. The client's name was not provided.
No available employees. Returned with HTTP status 422 and error code 436. No employees are available at the selected time (commonly occurs when using a default employee setting).
Overlapping appointments in request. Returned with HTTP status 422 and error code 437. One of the selected times overlaps with another appointment in the same request. The response includes the id of the conflicting appointment from the appointments array.
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
phone required | string Customer phone |
fullname required | string Client name |
string Postal address of the client | |
code | number SMS confirmation code for verifying the phone number. This field is required if the company has phone_confirmation = true |
comment | string Commentary on the post |
type | string Appointment source |
notify_by_sms | number Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed. |
notify_by_email | number Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed. |
api_id | number Appointment ID from external system |
Array of objects Appointment options (session, services, specialist) |
success | boolean Execution success status (true) |
Array of objects Data (array of objects) | |
meta | Array of objects Metadata (empty array) |
{- "phone": "+1-315-555-0175",
- "fullname": "James Smith",
- "code": "38829",
- "comment": "test entry!",
- "type": "mobile",
- "notify_by_sms": 6,
- "notify_by_email": 24,
- "api_id": "777",
- "appointments": [
- {
- "id": 1,
- "services": [
- 331
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "custom_fields": {
- "my_custom_field": 123,
- "some_another_field": [
- "first value",
- "next value"
]
}
}, - {
- "id": 2,
- "services": [
- 99055
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "custom_fields": {
- "my_custom_field": 456,
- "some_another_field": [
- "next value",
- "last value"
]
}
}
]
}
{- "success": true,
- "data": [
- {
- "id": 1,
- "record_id": 2820023,
- "record_hash": "567df655304da9b98487769426d4e76e"
}, - {
- "id": 2,
- "record_id": 2820024,
- "record_hash": "34a45ddabdd446d5d33bdd27fbf855b2"
}
], - "meta": [ ]
}
company_id required | number Company ID |
record_id required | number ID of the appointment to be migrated |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
datetime | string <date-time> Date and time to which we want to move the appointment |
comment | string Appointment Comment |
success | boolean Execution success status (true) |
object Data (object) |
{- "datetime": "2025-09-21T23:00:00.000+03:00",
- "comment": "DODO!"
}
{- "success": true,
- "data": {
- "id": 30358,
- "services": [
- {
- "id": 2838,
- "title": "Foot massage",
- "cost": 0,
- "discount": 0
}
], - "company": {
- "id": 4564,
- "title": "Business Example",
- "country_id": "0",
- "country": "United States",
- "city_id": "0",
- "city": "New York",
- "phone": "+1-315-555-0175",
- "timezone": "0",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242"
}, - "staff": {
- "id": 924,
- "name": "Alice",
- "spec": "about eu",
- "show_rating": "1",
- "rating": "5",
- "votes_count": "1",
- "comments_count": "0"
}, - "date": "2025-09-21T23:00:00.000+03:00",
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "deleted": true,
- "length": 3600,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "0"
}
}
company_id required | number Company ID |
record_id required | number Example: 22123 Post ID (enough to view the post if the user is logged in) |
record_hash required | string Example: 'dawd4fs09rhf0s9fafef0' HASH appointments (required to view the appointment if the user is not authorized) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | number Appointment ID |
Array of objects Service ID List | |
object Company parameters | |
object Employee parameters | |
clients_count | integer <int32> |
date | string <date-time> 04-02T12:00:00Z' (required, string) - Session date |
datetime | string <date-time> Session date in ISO |
create_date | string <date-time> 04-02T12:00:00Z' (required, string) - Appointment creation date |
comment | string Appointment Comment |
deleted | boolean Whether the appointment was made (true if removed) |
attendance | number 2 - the user confirmed the appointment, 1 - the user came, the services were provided, 0 - the user was waiting, -1 - the user did not show' |
length | number Session duration |
notify_by_sms | number Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders |
notify_by_email | number Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders |
master_requested | boolean Indicates whether a specific specialist was selected for the appointment. Set to false if the "Any specialist" option was chosen. |
online | boolean Indicates whether the appointment was created online by the client (true) or manually by an administrator (false) |
api_id | string External entry ID |
last_change_date | string <date-time> The date and time when the appointment was last modified |
prepaid | boolean Indicates whether online payment is available for the appointment |
prepaid_confirmed | boolean Online payment status |
activity_id | number group event ID |
{- "id": 13132699,
- "services": [
- {
- "id": 389043,
- "title": "Correction of extended nails",
- "cost": 2300,
- "price_min": 2300,
- "price_max": 2300,
- "discount": 0,
- "amount": 1,
- "seance_length": 1800
}
], - "company": {
- "id": 4564,
- "title": "Nail correction salon",
- "country_id": 1,
- "country": "United States",
- "city_id": 2,
- "city": "New York",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "timezone": 12,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "allow_delete_record": true,
- "allow_change_record": true,
- "site": "www.example.com",
- "currency_short_title": "USD",
- "allow_change_record_delay_step": 0,
- "allow_delete_record_delay_step": 0
}, - "staff": {
- "id": 55436,
- "name": "Natalia",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 446,
- "title": "Manicurist"
}, - "show_rating": 1,
- "rating": 4.84,
- "votes_count": 0,
- "comments_count": 37
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2017-10-24T17:30:00+0000",
- "create_date": "2017-10-20T21:40:24+0000",
- "comment": "",
- "deleted": true,
- "attendance": 0,
- "length": 1800,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "",
- "last_change_date": "2017-10-24T23:54:02+0000",
- "prepaid": false,
- "prepaid_confirmed": false,
- "activity_id": 0
}
company_id required | number Company ID |
activity_id required | number Group Event ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
fullname required | string Client name |
phone required | string Customer phone (for example 79161502239) |
string Postal address of the client | |
code | number SMS confirmation code for verifying the phone number. This field is required if the company has phone_confirmation = true |
comment | string Appointment Comment |
notify_by_sms | integer <int32> Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders. |
notify_by_email | integer <int32> Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders |
type | string Appointment source |
api_id | number Appointment ID from external system |
clients_count | number number of seats |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 28417878,
- "hash": "9e6a54a1a9b118b65cc39ab6f3c3b5b4"
}, - "meta": [ ]
}
The dates available for booking object has the following fields:
Field | Type | Description |
---|---|---|
working_days | array of working days grouped by month | Working days of an employee/organization |
working_dates | array of dates | An array of dates when the employee/organization works |
booking_days | array of days when there are free sessions | Array of days that are available for booking for the specified services |
booking_dates | array of dates | An array of dates when there are free sessions for the service to the selected employee/organization |
working days and booking_days have the same format: month:[array of days in this month]
For example, this booking_days: "9": [ "4", "5"] "10": [ "14", "25"] Means that on September 4 and 5, and on October 14 and 25 there are free sessions for booking
The following filters are available:
company_id required | number Company ID |
service_ids[] | string Service ID. Filter by the list of service identifiers |
staff_id | number Example: staff_id=0 Employee ID. Filter by employee ID Default: 0 |
date | string Example: date=2015-09-01 date in iso8601 format. Filter by month of booking. |
date_from | string Example: date_from=2015-09-01 date in iso8601 format. Start of dates to search. Must be used together with the "date_to" param and overrides the "date" param. |
date_to | string Example: date_to=2015-09-30 date in iso8601 format. End of dates to search. Must be used together with the "date_from" param and overrides the "date" param. |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
object Data (object) | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "booking_days": {
- "9": [
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25",
- "28",
- "29",
- "30"
], - "10": [
- "1",
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25"
]
}, - "booking_dates": [
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00"
], - "working_days": {
- "9": [
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25",
- "28",
- "29",
- "30"
], - "10": [
- "1",
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25"
]
}, - "working_dates": [
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00"
]
}, - "meta": [ ]
}
The object of services available for booking has the following fields:
Field | Type | Description |
---|---|---|
categories | array of objects | Array of service categories (you can't book a category) |
services | array of objects | Services available for booking by category |
An object from the categories array, has the following fields:
Field | Type | Description |
---|---|---|
id | number | Category ID |
title | string | Category name |
sex | number | Category belonging to gender (1 - male, 2 - female, 0 - not specified) |
weight | number | Category weight. Categories are sorted by weight, heavier ones first |
api_id | string | External Category ID |
An object from the services array, has the following fields:
Field | Type | Description |
---|---|---|
id | number | Service ID |
title | string | Service name |
category_id | number | Identifier of the category to which the service belongs |
weight | number | Category weight. Services are sorted by weight, heavier ones first |
price_min | number | The minimum cost of the service |
price_max | number | Maximum cost of the service |
discount | number | Service discount |
comment | string | Comment on the service |
active | number | Is the service active |
prepaid | string | Online payment status |
sex | number | Gender for which the service is provided |
session_length | number | Service duration in seconds (only if filter by employee is set) |
image | string | Image services |
If you need to get the services provided by a specific specialist, then you need to use the filter by specialist. The following filters are available:
company_id required | number Example: 4564 Company ID |
staff_id | number Example: staff_id=0 Employee ID. Filter by employee ID Default: 0 |
datetime | number Example: datetime=`` date (in iso8601 format). Filter by service booking date (for example '2005-09-09T18:30') Default: '' |
service_ids[] | Array of numbers Service ID. Filter by the list of identifiers of already selected (within one appointment) services. It makes sense if a filter by specialist and date is set. |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "events": [ ],
- "services": [
- {
- "id": 1896208,
- "title": "hair wash",
- "category_id": 1895571,
- "price_min": 0,
- "price_max": 0,
- "discount": 0,
- "comment": "",
- "weight": 0,
- "active": 0,
- "sex": 0,
- "image": "",
- "prepaid": "forbidden",
- "seance_length": 3600
}, - {
- "id": 1896303,
- "title": "Coloring",
- "category_id": 1895574,
- "price_min": 0,
- "price_max": 0,
- "discount": 0,
- "comment": "",
- "weight": 0,
- "active": 0,
- "sex": 0,
- "image": "",
- "prepaid": "forbidden",
- "seance_length": 3600
}
], - "category": [
- {
- "id": 1895571,
- "title": "Hair care",
- "sex": 0,
- "api_id": 0,
- "weight": 60
}, - {
- "id": 1895574,
- "title": "Hair coloring",
- "sex": 0,
- "api_id": 0,
- "weight": 7
}
]
}, - "meta": [ ]
}
The employee's nearest sessions object has the following fields:
Field | Type | Description |
---|---|---|
session_date | string | Next date with available sessions |
sessions | array | List of available sessions |
The following filters are available:
company_id required | number Company ID |
staff_id required | number Employee ID |
service_ids[] | Array of numbers Service ID. Filter by the list of service identifiers |
datetime | number date in iso8601 format. Filter by date |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "seance_date": "2025-09-21T23:00:00.000+03:00",
- "seances": [
- {
- "time": "10:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "10:15",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "10:30",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "10:45",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "11:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}
]
}, - "meta": [ ]
}
Each object from the array of employees available for booking has the following fields:
Field | Type | Description |
---|---|---|
id | number | Employee ID |
name | string | Employee name |
specialization | string | Employee specialization |
position | object | Employee position |
bookable | boolean | Does the employee have sessions available for booking |
weight | number | Employee weight. When withdrawing, employees are sorted by weight, heavier first |
show_rating | number | Whether to show employee's rating (1 - show, 0 - don't show) |
rating | number | Employee rating |
votes_count | number | Number of votes rated employee |
comments_count | number | Number of comments to an employee |
avatar | string | Path to employee avatar file |
information | string | Additional information about the employee (HTML format) |
session_date | string | Date of the next day that there are available sessions (only for bookable = true) |
The following filters are available:
company_id required | number Example: 4564 Company ID |
service_ids[] | Array of numbers Service ID. Filter by the list of service identifiers |
datetime | number date in iso8601 format. Filter by service booking date (for example '2005-09-09T18:30') |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "16",
- "name": "James",
- "bookable": true,
- "specialization": "Paramedic",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": "1",
- "rating": "3",
- "votes_count": "1",
- "comments_count": "0",
- "weight": "11",
- "information": "<span></span>",
- "seance_date": "2025-09-21T23:00:00.000+03:00",
- "seances": [ ]
}, - {
- "id": "32",
- "name": "Peter",
- "bookable": false,
- "specialization": "Therapist",
- "position": [ ],
- "show_rating": "1",
- "rating": "4",
- "votes_count": "1",
- "comments_count": "0",
- "weight": "8",
- "information": "<span></span>"
}
], - "meta": [ ]
}
The sessions available for booking object has the following fields:
Field | Type | Description |
---|---|---|
time | string | Session time (17:30 for example) |
session_length | number | Session duration in seconds |
datetime | datetime | Date and time of the session in ISO8601 format (must be passed when creating the appointment) |
The following filters are available:
company_id required | number Company ID |
date required | string date in iso8601 format. Filter by booking date (eg '2015-09-30') |
staff_id required | number Example: 0 Employee ID. Filter by employee ID Default: 0 |
service_ids[] | string Service ID. Filter by the list of service identifiers |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "time": "12:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "13:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "14:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "15:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "16:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}
], - "meta": [ ]
}
To access both online and offline (e.g., phone-made) appointments, the user must log in by verifying their phone number. This is done by requesting a confirmation code to be sent via SMS using the "SMS phone number verification code" endpoint.
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
login required | string Phone number or Email |
password required | string Password |
user_token | string User_token of the user |
{- "password": "testpass"
}
{- "user_token": "wec23fh8cDfFV4432fc352456"
}
record_id required | number Example: 22123 Appointment ID (enough to delete the appointment if the user is authorized) |
record_hash required | string Example: 'dawd4fs09rhf0s9fafef0' HASH appointments (required to delete the record if the user is not authorized) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
When a user of an online account changes their password, their API key will change and a new authorization will be required
Attribute | Type | Description |
---|---|---|
login | string | The visitor's phone number in the format 380000000000, or their email address. |
password | string | Visitor password |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
login required | string Phone number or Email |
password required | string Password |
id | integer <int32> User ID |
user_token | string User_token of the user |
name | string Username |
phone | string User phone |
login | string User login |
string User mailing address | |
avatar | string Path to the user's avatar file |
{- "password": "testpass"
}
{- "id": 123456,
- "user_token": "wec23fh8cDfFV4432fc352456",
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
}
The request must contain one of two parameters: company_id or group_id
company_id required | integer Company ID |
group_id required | integer Chain ID |
phone required | string Phone number |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
Updating the password of an online booking user.
The response comes with a new user token.
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
old_password | string Current Password |
new_password | string New password |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "old_password": "qwerty123",
- "new_password": "example!"
}
{- "success": true,
- "data": {
- "user_token": "4de9d8cc108c0"
}, - "meta": [ ]
}
Updating a specialist’s data in online booking.
When updating a phone number, the confirmation_code field must be included in the request. This code should be obtained using the SMS confirmation code of the phone number to change data
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
name | string Name |
string | |
phone | string Phone number |
confirmation_code | string SMS confirmation code (when changing phone number) |
{- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "confirmation_code": "1234"
}
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
Retrieve online booking user data.
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
0 | string User Token |
id | integer <int32> User ID |
user_token | string User Token |
name | string Username |
phone | string User phone |
login | string User login |
string User mail | |
avatar | string User avatar |
{- "0": "152afb01134237bc844d7e",
- "id": 32132133,
- "user_token": "152afb01134237bc844d7e",
- "name": "James",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
}
Get a list of companies with data
id | number Example: id=4564 Filter by company ID |
group_id | number Example: group_id=83 Filter by company chain ID Default: 83 |
my | number Example: my=1 For authorized user only. If you need companies that the user has rights to manage |
active | number Example: active=1 If you need to get only companies with an active license and an available booking |
moderated | number Example: moderated=1 If you need to get only moderated companies, whose content is checked for publication |
forBooking | number Example: forBooking=1 Include date and time of the next free session in the company (ISO8601) |
show_groups | number Example: show_groups=1 Include in the company object a list of chains that this company belongs to |
city_id | |
showBookforms | number Example: showBookforms=1 Include in the company object a list of company online booking forms |
min_id | number Example: min_id=1000 Filter by minimum company ID |
show_deleted | number Example: show_deleted=1 Include deleted companies |
hide_record_type_single | number Example: hide_record_type_single=1 Hide companies with individual booking |
hide_record_type_activity | number Example: hide_record_type_activity=1 Hide companies with group booking |
hide_record_type_mixed | number Example: hide_record_type_mixed=1 Hide companies with mixed booking |
business_group_id | number Example: business_group_id=1 Filter by business group ID |
business_type_id | number Example: business_type_id=1 Filter by business type ID |
include | Array of strings Items Enum: "staff" "positions" "accounts" "storages" "expenses" Example: include=staff&include=positions Include additional data in the company object |
count | number Number of companies per page |
page | number Page number |
Accept required | string Must be |
Content-Type required | string Must be |
Authorization required | string Bearer partner_token |
success | boolean Success status (true) |
Array of objects Array of objects | |
meta | Array of objects Metadata (empty array) |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": "1050",
- "title": "La Visage",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "schedule": "",
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 900
}, - {
- "id": "1051",
- "title": "La Visage 2",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": false,
- "active_staff_count": 3,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 901
}
], - "meta": { }
}
Create new company
Accept required | string Must be |
Content-Type required | string Must be |
Authorization required | string Bearer partner_token, User user_token |
title | string Company name |
country_id | number ID of the country in which the company is located (method to get a list of countries) |
city_id | number Identifier of the city in which the company is located (method to get a list of cities) |
address | string Company address |
site | string Company website |
coordinate_lat | number <float> Latitude |
coordinate_lot | number <float> Longitude |
business_type_id | number Business type |
short_descr | string Company category |
success | boolean Success status (true) |
object data object | |
meta | Array of objects Metadata (empty array) |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "title": "James Smith LLC",
- "country_id": 1,
- "city_id": 2,
- "address": "New York, 787 Jackson Drive",
- "site": "james-smith-company.com",
- "coordinate_lat": "40.730610",
- "coordinate_lot": "-73.935242",
- "business_type_id": 1,
- "short_descr": "Beauty salon"
}
{- "success": true,
- "data": {
- "id": "1050",
- "title": "James Smith LLC",
- "short_descr": "Beauty salon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "schedule": "",
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R"
}, - "meta": { }
}
Getting information about the company.
id required | number Example: 37532 The ID of the company to get information about. |
my | number Example: my=1 For authorized user only. If you need additional data for the company that the user has rights to manage |
forBooking | number Example: forBooking=1 Date and time of the next free session in the company (ISO8601). |
show_groups | number Example: show_groups=1 Include in the company object a list of chains that this company belongs to |
showBookforms | number Example: showBookforms=1 Show company online booking forms (widgets) |
bookform_id | number Example: bookform_id=19203 Show url of online booking form with specified ID |
Accept required | string Must be |
Content-Type required | string Must be |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
{- "success": true,
- "data": {
- "id": 37532,
- "title": "James Smith LLC",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "zip": 11435,
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "short_descr": "Beauty salon",
- "social": {
- "facebook": "",
- "instagram": "instagram.com/james_smith_company/",
- "telegram": "",
- "whatsapp": "",
- "viber": ""
}, - "site": "james-smith-company.com",
- "business_type_id": 1,
- "description": "The <strong>James Smith</strong> company",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "next_slot": "2023-03-23T10:10:00+0300",
- "group_priority": 900,
- "push_notification_phone_confirm": 1,
- "main_group_id": 9206,
- "main_group": {
- "id": 9206,
- "title": "James Smith LLC main company chain"
}, - "groups": {
- "9206": {
- "id": 9206,
- "title": "James Smith LLC main company chain"
}, - "9207": {
- "id": 9207,
- "title": "James Smith LLC extra company chain"
}
}, - "bookforms": [
- {
- "id": 19203,
- "title": "James Smith LLC company booking form",
- "is_default": 0,
}
], - "access": { }
}, - "meta": { }
}
Change company data
id required | number Example: 37532 Company ID |
Accept required | string Must be |
Content-Type required | string Must be |
Authorization required | string Bearer partner_token, User user_token |
title | string Company name |
country_id | number Country ID (has higher priority then country) |
country | string Country |
city_id | number City ID (has higher priority then city) |
city | string City |
address | string Company address |
zip | string Zip code |
phones | Array of strings Company phone numbers |
object Company social media | |
site | string Company website |
coordinate_lat | number <float> Latitude |
coordinate_lon | number <float> Longitude |
description | string <html> Description |
business_type_id | number <int32> Business type |
short_descr | string Business category |
id | number Company ID |
title | string Company name |
country_id | number Country ID |
country | string Country name |
city_id | number City ID |
city | string City name |
timezone_name | string Timezone name |
address | string Company address |
zip | number Zip code |
object Company social media | |
site | string Company website |
coordinate_lat | number <float> Latitude |
coordinate_lon | number <float> Longitude |
description | string <html> Description |
business_type_id | number <int32> Business type |
short_descr | string Business category |
phone_confirmation | boolean Do I need to confirm my phone number via SMS when booking? |
group_priority | integer <int32> The higher the priority, the higher the company when displayed in the list of chain branches |
push_notification_phone_confirm | boolean Confirm client number to send push notifications |
access | object Access rights list |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
{- "title": "James Smith LLC",
- "country": "United States",
- "city": "New York",
- "address": "New York, 787 Jackson Drive",
- "zip": 11435,
- "phones": [
- "12125357710",
- "12125357711"
], - "social": {
- "instagram": "instagram.com/james_smith_company/"
}, - "site": "james-smith-company.com",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "description": "The <strong>James Smith</strong> company",
- "business_type_id": 1,
- "short_descr": "Beauty salon"
}
{- "id": 37532,
- "title": "James Smith LLC",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "Europe/Moscow",
- "address": "New York, 787 Jackson Drive",
- "zip": 11435,
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "short_descr": "Beauty salon",
- "social": {
- "facebook": "",
- "instagram": "instagram.com/james_smith_company/",
- "telegram": "",
- "whatsapp": "",
- "viber": ""
}, - "site": "james-smith-company.com",
- "business_type_id": 1,
- "description": "The <strong>James Smith</strong> company",
- "phone_confirmation": true,
- "group_priority": 900,
- "push_notification_phone_confirm": 1,
- "access": { }
}
Delete a company.
id required | number Example: 37532 Company ID |
Accept required | string Must be |
Content-Type required | string Must be |
Authorization required | string Bearer partner_token, User user_token |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
{- "errors": {
- "code": 401,
- "message": "Authentication needed"
}, - "meta": {
- "message": "Authentication needed."
}
}
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title | string Service category name |
api_id | string External Category ID |
weight | number Category weight (used to sort categories when displayed) |
staff | Array of numbers List of IDs of employees providing services from the category |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "title": "Haircut very feminine",
- "api_id": "adw322",
- "weight": 111,
- "staff": [
- 5006,
- 8901
]
}
{- "success": true,
- "data": {
- "id": 3,
- "title": "Haircut very feminine",
- "api_id": "adw322",
- "weight": 111,
- "staff": [
- 5006,
- 8901
]
}, - "meta": [ ]
}
company_id required | number Company ID |
id required | number Service Category ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
{- "success": true,
- "data": {
- "id": 3,
- "salon_service_id": 15,
- "title": "Haircuts for women",
- "weight": 12,
- "staff": [
- 5006,
- 8901
]
}, - "meta": [ ]
}
company_id required | number Company ID |
id required | number Service Category ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title | string Service category name |
api_id | string External Category ID |
weight | number Category weight (used to sort categories when displayed) |
staff | Array of numbers List of IDs of employees providing services from the category |
success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
{- "title": "Haircut very feminine",
- "api_id": "adw322",
- "weight": 111,
- "staff": [
- 5006,
- 8901
]
}
{- "success": true,
- "data": {
- "id": 3,
- "salon_service_id": 15,
- "title": "Haircuts for women",
- "weight": 15,
- "staff": [
- 5006,
- 8901
]
}, - "meta": [ ]
}
company_id required | number Company ID |
id required | number Service Category ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Conetnt-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
chain_id required | integer Chain ID |
include | string Value: "services" Include additional resources in response |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Service Category ID |
title | string Service category name |
Array of objects (Root Type for ServiceTitle) Services in the category (on request) |
[- {
- "id": 41,
- "title": "Service category",
- "services": [
- {
- "id": 52,
- "title": "Service 1"
}, - {
- "id": 45,
- "title": "Service 2"
}
]
}
]
company_id required | number Company ID |
id required | number Service Category ID |
staff_id | number Employee ID (to get categories associated with an employee) |
Accept required | string e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
success | boolean Execution success status (true) |
data | string is null |
object Metadata (error message) |
success | boolean Execution success status (true) |
data | string is null |
object Metadata (contains possible error messages) |
{- "success": true,
- "data": [
- {
- "id": 345,
- "salon_service_id": 353,
- "title": "Haircuts for men",
- "api_id": "adw322",
- "weight": 10,
- "staff": [
- 5006,
- 8901,
- 26514,
- 26516,
- 26519,
- 26520
]
}, - {
- "id": 3456,
- "salon_service_id": 3252,
- "title": "Haircuts for women",
- "api_id": "adw323",
- "weight": 9,
- "staff": [
- 5006,
- 8901
]
}
], - "meta": {
- "total_count": 2
}
}
Get a list of service categories
company_id required | number Company ID |
id required | number Service category identifier |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
{- "success": true,
- "data": [
- {
- "id": 345,
- "title": "Haircuts for men",
- "api_id": "adw322",
- "weight": 10,
- "staff": [
- 5006,
- 8901,
- 26514,
- 26516,
- 26519,
- 26520
]
}, - {
- "id": 3456,
- "title": "Haircuts for women",
- "api_id": "adw323",
- "weight": 9,
- "staff": [
- 5006,
- 8901
]
}
], - "meta": [ ]
}
Method to create a service
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorizarion required | string Bearer partner_token, User user_token |
title | string Service name |
category_id | number Service Category ID |
price_min | number <float> The minimum cost of the service |
price_max | number <float> Maximum cost of the service |
duration | number <float> Service duration, default is 3600 seconds |
discount | number <float> Service discount |
comment | string Comment on the service |
weight | number Service weight (used to sort services when displayed) |
active | number Is the service available for online booking? 1 - available, 0 not available. |
api_id | string External Service ID |
Array of objects Employees who provide the service, along with the duration of the service for each employee |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}
{- "success": true,
- "data": {
- "id": 83169,
- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}, - "meta": [ ]
}
1
) - company ID1
) - service IDcompany_id required | number Company ID |
service_id required | number Service ID, if you need to work with a specific service. |
staff_id | number Employee ID, if you want to filter by employee |
category_id | number Category ID, if you want to filter by category |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of services found) |
success | boolean Execution success status (true) |
data | string is null |
object Metadata (error message) |
success | boolean Execution success status (true) |
data | string is null |
object Metadata (contains possible error messages) |
{- "success": true,
- "data": [
- {
- "id": "79067",
- "title": "shaving head",
- "category_id": "4",
- "price_min": "1000.00",
- "price_max": "1000.00",
- "discount": "0",
- "comment": "",
- "weight": "2",
- "active": "1",
- "api_id": "",
- "staff": [ ]
}, - {
- "id": "83169",
- "title": "Men's haircut",
- "category_id": "83167",
- "price_min": "1300.00",
- "price_max": "1300.00",
- "discount": "0",
- "comment": "",
- "weight": "6",
- "active": "1",
- "api_id": "00000000042",
- "staff": [
- {
- "id": "5905",
- "seance_length": "2700"
}, - {
- "id": "5907",
- "seance_length": "3600"
}, - {
- "id": "8973",
- "seance_length": "3600"
}, - {
- "id": "13616",
- "seance_length": "3600"
}, - {
- "id": "16681",
- "seance_length": "3600"
}, - {
- "id": "17969",
- "seance_length": "3600"
}, - {
- "id": "34006",
- "seance_length": "3600"
}
], - "image_group": {
- "id": 72234,
- "entity": "settings_service",
- "entity_id": 389927,
- "images": {
- "basic": {
- "id": "186791",
- "width": "372",
- "height": "280",
- "type": "jpeg",
- "image_group_id": 72234,
- "version": "basic"
}
}
}
}
], - "meta": {
- "total_count": 2
}
}
Method to change the service
company_id required | number Company ID |
service_id required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Service name |
booking_title required | string Service name for booking |
category_id required | number ID service category |
price_min required | number <float> Minimum cost of the service |
price_max required | number <float> Maximum cost of the service |
duration required | number Service duration, default value is 3600 |
discount | number <float> Service discount |
comment | string Comment on the service |
is_multi required | boolean false - Appointment, true - Event |
tax_variant required | number Bill ID |
vat_id required | number VAT ID |
is_need_limit_date required | boolean The service is available for a limited time |
seance_search_start required | number Start of period is the booking available, in seconds |
seance_search_finish required | number End of period is the booking available, in seconds |
step required | number Display interval of slots, in seconds |
seance_search_step required | number Search interval of slots, in seconds |
weight | number Service weight (used to sort services when displayed) |
active | number 1 - available for online recording, 0 - not available |
api_id | string External Service ID |
Array of objects List of employees providing the service and session duration |
success | boolean Execution success status (true) |
object | |
meta | Array of objects Metadata (empty array) |
{- "title": "Men's haircut",
- "booking_title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "tax_variant": 1,
- "vat_id": 3,
- "is_multi": false,
- "is_need_limit_date": true,
- "date_from": "2022-09-19",
- "date_to": "2022-09-30",
- "seance_search_start": 36000,
- "seance_search_finish": 84600,
- "step": 300,
- "seance_search_step": 900,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}
{- "success": true,
- "data": {
- "booking_title": "Men's haircut",
- "tax_variant": 0,
- "vat_id": 2,
- "print_title": "Men's haircut",
- "service_type": 1,
- "api_service_id": 0,
- "repeat_visit_days_step": "null",
- "seance_search_start": 1800,
- "seance_search_finish": 84600,
- "seance_search_step": 900,
- "step": 300,
- "is_need_limit_date": "true",
- "date_from": "2022-09-19",
- "date_to": "2022-09-30",
- "schedule_template_type": 2,
- "online_invoicing_status": 0,
- "is_abonement_autopayment_enabled": 0,
- "autopayment_before_visit_time": 0,
- "abonement_restriction_value": 0,
- "is_chain": "false",
- "is_price_managed_only_in_chain": "false",
- "is_comment_managed_only_in_chain": "false",
- "price_prepaid_amount": 0,
- "price_prepaid_percent": 100,
- "id": 10832934,
- "salon_service_id": 12192004,
- "title": "Men's haircut",
- "category_id": 10832928,
- "price_min": 250,
- "price_max": 1200,
- "discount": 0,
- "comment": "",
- "weight": 0,
- "active": 1,
- "api_id": "0",
- "prepaid": "forbidden",
- "is_multi": "false",
- "capacity": 0,
- "image_group": [ ],
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700,
- "technological_card_id": 0
}, - {
- "id": 5907,
- "seance_length": 3600,
- "technological_card_id": 0
}
], - "dates": [
- "2022-09-19",
- "2022-09-20",
- "2022-09-21",
- "2022-09-22",
- "2022-09-23",
- "2022-09-24",
- "2022-09-25",
- "2022-09-26",
- "2022-09-27",
- "2022-09-28",
- "2022-09-29",
- "2022-09-30"
], - "duration": 3600,
- "resources": [ ],
- "is_online": true
}, - "meta": [ ]
}
company_id required | number Company ID |
service_id required | number Service ID, if you need to work with a specific service. |
staff_id | number Employee ID, if you want to filter by employee |
category_id | number Category ID, if you want to filter by category |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of services found) |
{- "success": true,
- "data": [
- {
- "id": "79067",
- "title": "shaving head",
- "category_id": "4",
- "price_min": "1000.00",
- "price_max": "1000.00",
- "duration": "3600",
- "discount": "0",
- "comment": "",
- "weight": "2",
- "active": "1",
- "api_id": "",
- "staff": [ ]
}, - {
- "id": "83169",
- "title": "Men's haircut",
- "category_id": "83167",
- "price_min": "1300.00",
- "price_max": "1300.00",
- "duration": "3600",
- "discount": "0",
- "comment": "",
- "weight": "6",
- "active": "1",
- "api_id": "00000000042",
- "staff": [
- {
- "id": "5905",
- "seance_length": "2700"
}, - {
- "id": "5907",
- "seance_length": "3600"
}, - {
- "id": "8973",
- "seance_length": "3600"
}, - {
- "id": "13616",
- "seance_length": "3600"
}, - {
- "id": "16681",
- "seance_length": "3600"
}, - {
- "id": "17969",
- "seance_length": "3600"
}, - {
- "id": "34006",
- "seance_length": "3600"
}
], - "image_group": {
- "id": 72234,
- "entity": "settings_service",
- "entity_id": 389927,
- "images": {
- "basic": {
- "id": "186791",
- "width": "372",
- "height": "280",
- "type": "jpeg",
- "image_group_id": 72234,
- "version": "basic"
}
}
}
}
], - "meta": [ ]
}
Deprecated. Method to change the service
company_id required | number Company ID |
service_id required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title | string Service name |
category_id | number Service Category ID |
price_min | number <float> The minimum cost of the service |
price_max | number <float> Maximum cost of the service |
duration | number <float> Service duration, default is 3600 seconds |
discount | number <float> Service discount |
comment | string Comment on the service |
weight | number Service weight (used to sort services when displayed) |
active | number Is the service available for online booking? 1 - available, 0 not available. |
api_id | string External Service ID |
Array of objects Employees who provide the service, along with the duration of the service for each employee |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}
{- "success": true,
- "data": {
- "id": 83169,
- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}, - "meta": [ ]
}
Method to remove a service
company_id required | number Company ID |
service_id required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
Creates an employee service link with provided duration and bill of materials.
company_id required | number Example: 123 ID of a company. |
service_id required | number Example: 123 ID of service. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
master_id required | number ID of an employee who provides the service. |
seance_length required | number Duration of service provision by the specified employee in seconds, |
technological_card_id required | number or null ID of bill of materials used while providing the service. |
success | boolean (Successful response status) Response status. |
object (Object of model "Service Staff") | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "master_id": 123,
- "seance_length": 3600,
- "technological_card_id": 123
}
{- "success": true,
- "data": {
- "service_id": 123,
- "master_id": 123,
- "length": 3600,
- "technological_card_id": 123
}, - "meta": { }
}
Updates an employee service link with provided duration and bill of materials.
company_id required | number Example: 123 ID of a company. |
service_id required | number Example: 123 ID of service. |
master_id required | number Example: 123 ID of staff. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
seance_length required | number Duration of service provision by the specified employee in seconds, |
technological_card_id required | number or null ID of bill of materials used while providing the service. |
success | boolean (Successful response status) Response status. |
object (Object of model "Service Staff") | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "seance_length": 3600,
- "technological_card_id": 123
}
{- "success": true,
- "data": {
- "service_id": 123,
- "master_id": 123,
- "length": 3600,
- "technological_card_id": 123
}, - "meta": { }
}
Deletes an employee service link.
company_id required | number Example: 123 ID of a company. |
service_id required | number Example: 123 ID of service. |
master_id required | number Example: 123 ID of staff. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}
1
) - company IDcompany_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with access rights categories | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "timetable": {
- "timetable_access": true,
- "master_id": 1000238,
- "position_id": 0,
- "last_days_count": 1000,
- "schedule_edit_access": true,
- "timetable_phones_access": true,
- "timetable_transferring_record_access": true,
- "timetable_statistics_access": true
}, - "record_form": {
- "record_form_access": true,
- "record_form_client_access": true,
- "records_autocomplete_access": true,
- "create_records_access": true,
- "edit_records_access": true,
- "edit_records_attendance_access": true,
- "records_services_cost_access": true,
- "records_services_discount_access": true,
- "record_edit_full_paid_access": true,
- "delete_records_access": true,
- "delete_customer_came_records_access": true,
- "delete_paid_records_access": true,
- "records_goods_access": true,
- "records_goods_create_transaction_access": true,
- "records_goods_create_last_days_count": -1,
- "records_goods_edit_transaction_access": true,
- "records_goods_edit_last_days_count": -1,
- "records_goods_cost_access": true,
- "records_goods_discount_access": true,
- "records_finances_access": true,
- "records_finances_last_days_count": -1,
- "records_finances_pay_from_deposits_access": true,
- "records_group_id_access": true,
- "records_group_id": 134178
}, - "finances": {
- "finances_access": true,
- "finances_accounts_ids": [ ],
- "finances_transactions_access": true,
- "finances_last_days_count": -1,
- "finances_create_transactions_access": true,
- "finances_create_last_days_count": -1,
- "finances_edit_transactions_access": true,
- "finances_edit_last_days_count": -1,
- "finances_delete_transactions_access": true,
- "finances_transactions_excel_access": true,
- "finances_expenses_ids": [ ],
- "finances_accounts_access": true,
- "finances_accounts_banalce_access": true,
- "finances_suppliers_read_access": true,
- "finances_suppliers_create_access": true,
- "finances_suppliers_update_access": true,
- "finances_suppliers_delete_access": true,
- "finances_suppliers_excel_access": true,
- "finances_expenses_read_access": true,
- "expenses_read_access": true,
- "finances_expenses_create_access": true,
- "expenses_create_access": true,
- "finances_expenses_update_access": true,
- "expenses_update_access": true,
- "finances_expenses_delete_access": true,
- "expenses_delete_access": true,
- "finances_kkm_transactions_access": true,
- "kkm_transactions_accounts_access": true,
- "finances_kkm_settings_read_access": true,
- "kkm_settings_reed_access": true,
- "finances_kkm_settings_update_access": true,
- "kkm_settings_update_access": true,
- "finances_settings_invoicing_read_access": true,
- "settings_invoicing_read_access": true,
- "finances_settings_invoicing_update_access": true,
- "settings_invoicing_update_access": true,
- "finances_options_read_access": true,
- "options_read_access": true,
- "finances_options_update_access": true,
- "options_update_access": true,
- "finances_salary_schemes_access": true,
- "finances_salary_calc_access": true,
- "finances_salary_not_limitation_today_access": true,
- "finances_payroll_calculation_create_access": true,
- "finances_payroll_calculation_create_not_limitation_today_access": true,
- "finances_salary_access_master_checkbox": true,
- "finances_salary_access_master_id": 1000237,
- "get_salary_access_master_id": 1000237,
- "finances_salary_master_not_limitation_today_access": true,
- "finances_payroll_calculation_create_by_master_access": true,
- "calculation_create_by_master_not_limitation_today_access": true,
- "finances_period_report_access": true,
- "finances_period_report_excel_access": true,
- "finances_year_report_access": true,
- "finances_year_report_excel_access": true,
- "finances_print_check_access": true,
- "finances_z_report_access": true,
- "finances_z_report_no_limit_today_access": true,
- "finances_z_report_excel_access": true
}, - "clients": {
- "clients_access": true,
- "client_phones_access": true,
- "clients_phones_email_access": true,
- "clients_card_phone_access": true,
- "clients_delete_access": true,
- "clients_excel_access": true,
- "excel_access": true,
- "client_comments_list_access": true,
- "client_comments_add_access": true,
- "client_comments_own_edit_access": true,
- "client_comments_other_edit_access": true,
- "client_files_list_access": true,
- "client_files_upload_access": true,
- "client_files_delete_access": true,
- "clients_visit_master_id": 0,
- "get_visit_master_id": 0
}, - "dashboard": {
- "dashboard_access": true,
- "dash_access": true,
- "dash_phones_access": true,
- "dash_records_access": true,
- "dash_records_last_days_count": -1,
- "dash_records_excel_access": true,
- "dash_records_phones_access": true,
- "dash_message_access": true,
- "dash_message_excel_access": true,
- "dash_message_phones_access": true,
- "dash_reviews_access": true,
- "dash_reviews_delete_access": true,
- "dashboard_calls_access": true,
- "dashboard_calls_excel_access": true,
- "dashboard_calls_phones_access": true
}, - "notification": {
- "notification": true,
- "web_push": true,
- "web_phone_push": true,
- "notification_sms_ending_license": true,
- "notification_sms_low_balance": true,
- "notification_email_ending_license": true
}, - "loyalty": {
- "loyalty_access": true,
- "has_loyalty_access": true,
- "loyalty_cards_manual_transactions_access": true,
- "has_loyalty_cards_manual_transactions_access": true,
- "loyalty_certificate_and_abonement_manual_transactions_access": true
}, - "storages": {
- "storages_access": true,
- "storages_ids": [ ],
- "storages_transactions_access": true,
- "storages_last_days_count": -1,
- "storages_move_goods_access": true,
- "storages_create_transactions_access": true,
- "storages_create_last_days_count": -1,
- "storages_create_transactions_buy_access": true,
- "storages_create_transactions_sale_access": true,
- "storages_edit_transactions_access": true,
- "storages_edit_last_days_count": -1,
- "storages_edit_transactions_buy_access": true,
- "storages_edit_transactions_sale_access": true,
- "storages_delete_transactions_access": true,
- "storages_transactions_excel_access": true,
- "storages_transactions_types": [ ],
- "storages_inventory_access": true,
- "storages_inventory_create_edit_access": true,
- "storages_inventory_delete_access": true,
- "storages_inventory_excel_access": true,
- "storages_remnants_report_access": true,
- "storages_remnants_report_excel_access": true,
- "storages_sales_report_access": true,
- "storages_sales_report_excel_access": true,
- "storages_consumable_report_access": true,
- "storages_consumable_report_excel_access": true,
- "storages_write_off_report_access": true,
- "storages_write_off_report_excel_access": true,
- "storages_turnover_report_access": true,
- "storages_turnover_report_excel_access": true,
- "storages_goods_crud_access": true,
- "storages_goods_create_access": true,
- "storages_goods_update_access": true,
- "storages_goods_title_edit_access": true,
- "storages_goods_category_edit_access": true,
- "storages_goods_selling_price_edit_access": true,
- "storages_goods_cost_price_edit_access": true,
- "storages_goods_units_edit_access": true,
- "storages_goods_critical_balance_edit_access": true,
- "storages_goods_masses_edit_access": true,
- "storages_goods_comment_edit_access": true,
- "storages_goods_archive_access": true,
- "storages_goods_delete_access": true
}, - "settings": {
- "settings_access": true,
- "settings_basis_access": true,
- "settings_information_access": true,
- "users_access": true,
- "delete_users_access": true,
- "create_users_access": true,
- "edit_users_access": true,
- "limited_users_access": false,
- "settings_services_access": true,
- "settings_services_create_access": true,
- "services_edit": true,
- "settings_services_edit_title_access": true,
- "settings_services_relation_category_access": true,
- "settings_services_edit_price_access": true,
- "settings_services_edit_image_access": true,
- "settings_services_edit_online_seance_date_time_access": true,
- "settings_services_edit_online_pay_access": true,
- "settings_services_edit_services_related_resource_access": true,
- "settings_positions_read": true,
- "settings_positions_create": true,
- "settings_positions_delete": true,
- "edit_master_service_and_duration": true,
- "tech_card_edit": true,
- "services_delete": true,
- "settings_master_access": true,
- "master_create": true,
- "master_edit": true,
- "master_delete": true,
- "settings_master_dismiss_access": true,
- "schedule_edit": true,
- "settings_notifications_access": true,
- "settings_email_notifications_access": true,
- "settings_template_notifications_access": true,
- "webhook_read_access": true
}, - "other": {
- "stat_access": true,
- "billing_access": true,
- "send_sms": true,
- "auth_enable_check_ip": false,
- "auth_list_allowed_ip": [ ]
}
}, - "meta": [ ]
}
An invitation to manage a location is sent via email or phone as a link. By following the link and completing registration, the user gains access to manage the location according to the permissions assigned. Permission assignment is performed in a separate request after the invitation is sent.
company_id required | number Example: 123 ID of a company. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
required | Array of objects Array of invites |
success | boolean Send success status (true) |
data | string Is null |
object Metadata (contains a message that the data has been saved) |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "invites": [
- {
- "name": "Olga",
- "position": "Administrator",
- "user_role": "administrator",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}
], - "staff_id": 12
}
]
}
{- "success": true,
- "meta": {
- "message": "Saved"
}
}
company_id required | number Company ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
page | number Page number |
page_size | number The number of output lines per page. Maximum 200. (Default 25) |
fields | Array of strings Fields to be returned in the response |
order_by | string Enum: "id" "name" "phone" "email" "discount" "first_visit_date" "last_visit_date" "sold_amount" "visit_count" What field to sort by |
order_by_direction | string Enum: "ASC" "DESC" How to sort (ascending / descending) |
operation | string Enum: "AND" "OR" Type of transaction |
Array of objects Filters for searching by customers |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of clients found) |
success | boolean Execution success status (false) |
data | string Contains null |
object Metadata (contains an error message) |
success | boolean Execution success status (false) |
data | string Contains null |
object Metadata (contains an error message) |
success | boolean Execution success status (false) |
object Metadata (contains an error message) |
{- "page": 1,
- "page_size": 3,
- "fields": [
- "id",
- "name"
], - "order_by": "name",
- "order_by_direction": "desc",
- "operation": "AND",
- "filters": [
- {
- "type": "id",
- "state": {
- "value": [
- 1,
- 2,
- 3
]
}
}, - {
- "type": "sold_amount",
- "state": {
- "from": 0,
- "to": 100.77
}
}, - {
- "type": "quick_search",
- "state": {
- "value": "James Smith"
}
}, - {
- "type": "importance",
- "state": {
- "value": [
- 0,
- 1,
- 2,
- 3
]
}
}, - {
- "type": "has_mobile_app",
- "state": {
- "value": true
}
}, - {
- "type": "category",
- "state": {
- "value": [
- 1,
- 7
]
}
}, - {
- "type": "has_passteam_card",
- "state": {
- "value": true
}
}, - {
- "type": "passteam_card_ids",
- "state": {
- "value": [
- "111122223333aaaabbbbcccc"
]
}
}, - {
- "type": "birthday",
- "state": {
- "from": "1990-01-01 00:00:00",
- "to": "2000-01-01 23:59:59"
}
}, - {
- "type": "gender",
- "state": {
- "value": [
- 0,
- 1,
- 2
]
}
}, - {
- "type": "record",
- "state": {
- "staff": {
- "value": [
- 1,
- 2
]
}, - "service": {
- "value": [
- 2,
- 3
]
}, - "service_category": {
- "value": [
- 4,
- 5
]
}, - "status": {
- "value": [
- 1
]
}, - "created": {
- "from": "2025-01-01 00:00:00",
- "to": "2025-01-01 23:59:59"
}, - "records_count": {
- "from": 1,
- "to": 99999
}, - "sold_amount": {
- "from": 1.001,
- "to": 99999.09
}
}
}, - {
- "type": "client",
- "state": {
- "id": {
- "value": [
- 1,
- 2,
- 3
]
}, - "birthday": {
- "from": "1990-01-01 00:00:00",
- "to": "2000-01-01 23:59:59"
}
}
}, - {
- "type": "sale",
- "state": {
- "abonement_balance": {
- "from": 2,
- "to": 3
}
}
}
]
}
{- "success": true,
- "data": [
- {
- "name": "James Smith",
- "id": 2
}, - {
- "name": "Sidorov",
- "id": 3
}, - {
- "name": "James Smith",
- "id": 1
}
], - "meta": {
- "total_count": 908
}
}
1
) - company ID1
) - Page number20
) - Number of clients per pagecompany_id required | number Company ID |
fullname | string Example: fullname=Joh Name (part of the name) for client filtering |
phone | string Example: phone=7916 Phone (part of the number) for customer filtering |
string Example: email=test@ Email (part) for customer filtering | |
paid_min | number Example: paid_min=1 Minimum paid to the cashier, to filter customers by the amount of payments |
paid_max | number Example: paid_max=1 Maximum paid to the cashier, to filter customers by the amount of payments |
page | number Example: page=1 Page number |
count | number Example: count=20 Number of customers per page |
id | number Example: id=66 ID of one or more clients to filter clients |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the page number and number of clients per page) |
{- "success": true,
- "data": [
- {
- "id": 66,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79112345678,
- "categories": [
- {
- "id": 3,
- "title": "Black list",
- "color": "#0f0f0f"
}, - {
- "id": 4,
- "title": "VIP",
- "color": "#e8d313"
}
], - "sex_id": 0,
- "sex": "unknown",
- "discount": 10,
- "importance_id": 3,
- "importance": "Gold",
- "card": "123456789",
- "birth_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "test",
- "sms_check": 1,
- "sms_not": 0,
- "spent": 71842,
- "balance": 0,
- "visits": 34,
- "last_change_date": "2020-02-01T12:00:00+0400",
- "custom_fields": [ ]
}, - {
- "id": 16,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79112345679,
- "email": "",
- "categories": [ ],
- "sex_id": 0,
- "sex": "unknown",
- "discount": 0,
- "importance_id": 0,
- "importance": "No importance class",
- "card": "",
- "birth_date": 0,
- "comment": "",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 0,
- "balance": 0,
- "visits": 3,
- "last_change_date": "2020-04-01T12:00:00+0400",
- "custom_fields": [ ]
}
], - "meta": {
- "page": 1,
- "total_count": 8
}
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
name required | string Client name |
surname | string Client surname |
patronymic | string Client middle name |
phone required | string Customer phone |
string Client Email | |
sex_id | number Gender of the client (1 - male, 2 - female, 0 - unknown) |
importance_id | number Client priority level (0 - none, 1 - bronze, 2 - silver, 3 - gold) |
discount | number Customer Discount |
card | string Client card number |
birth_date | string Date of birth of the client in the format yyyy-mm-dd |
comment | string A comment |
spent | number How much money spent in the company at the time of adding |
balance | number Client balance |
sms_check | number 1 - Happy Birthday by SMS, 0 - do not congratulate |
sms_not | number 1 - Exclude the client from SMS mailings, 0 - do not exclude |
categories | object Array of customer category IDs |
custom_fields | object Array of additional client fields as "api-key": "value" pairs |
{- "success": true,
- "data": {
- "id": 1121412,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79211234567,
- "categories": [ ],
- "sex": "Male",
- "sex_id": 1,
- "discount": 15,
- "importance_id": 1,
- "importance": "Bronze",
- "card": "555888666",
- "birth_date": 952041600,
- "comment": "throws show-off",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 1000,
- "balance": -1200,
- "visits": 0,
- "last_change_date": "2020-05-01T12:00:00+0400",
- "custom_fields": {
- "key-1": "value-1"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
name required | string Client name |
surname | string Client surname |
patronymic | string Client middle name |
phone required | string Customer phone |
string Client Email | |
sex_id | number Gender of the client (1 - male, 2 - female, 0 - unknown) |
importance_id | number Client priority level (0 - none, 1 - bronze, 2 - silver, 3 - gold) |
discount | number Customer Discount |
card | string Client card number |
birth_date | string Date of birth of the client in the format yyyy-mm-dd |
comment | string A comment |
spent | number How much money spent in the company at the time of adding |
balance | number Client balance |
sms_check | number 1 - Happy Birthday by SMS, 0 - do not congratulate |
sms_not | number 1 - Exclude the client from SMS mailings, 0 - do not exclude |
categories | object Array of customer category IDs |
{- "success": true,
- "data": {
- "created": [
- {
- "id": 19153889,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79213237567,
- "card": "555888666",
- "birth_date": 952041600,
- "comment": "throws show-off",
- "discount": 15,
- "visits": 0,
- "sex_id": 1,
- "sex": "Male",
- "sms_check": 0,
- "sms_bot": 0,
- "spent": 1000,
- "paid": 0,
- "balance": -1200,
- "importance_id": 1,
- "importance": "Bronze",
- "categories": [
- {
- "id": 101,
- "title": "Loyal",
- "color": "#bfd4f2"
}, - {
- "id": 102,
- "title": "Constant",
- "color": "#009800"
}
], - "last_change_date": "2020-09-08T13:33:39+0400",
- "custom_fields": [ ]
}
], - "errors": [
- {
- "phone": 79213237567,
- "name": "James Smith",
- "error": "The client with the specified phone number already exists in the database"
}, - {
- "phone": 721828834101,
- "error": "Client name not specified"
}, - {
- "phone": 123,
- "name": "James Smith",
- "error": "Phone must contain 9 to 15 digits"
}, - {
- "name": "Theodore Hicks",
- "error": "Customer phone number cannot be empty"
}
]
}, - "meta": [ ]
}
A list of uploaded client files can be retrieved by providing both the location ID and the client ID in the request. The client ID can be obtained from the client collection.
The response returns an array of client files.
Each client file has the following structure:
| Field | Type | Description | | -----------------| ------- | -------------------------------------------------- ------------------------ | | id | number | File ID | | client_id | number | Client ID | | name | string | Filename with extension | | description | string | File description | | extension | string | File name extension | | mime | string | MIME file type | | link | string | File download link | | date_create | string | File upload date in ISO8601 format | | size | string | Formatted file size string | | username | string | The name of the user who uploaded the file | | user_avatar | string | Avatar of the user who uploaded the file | | can_edit | boolean | Is there a right to change and delete the file? true - there is a right, false - there is no right |
company_id required | number Company ID |
client_id required | number Client ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of files) |
{- "success": true,
- "data": [
- {
- "id": 123,
- "client_id": 123456,
- "name": "test.txt",
- "description": "",
- "date_create": "2020-01-01T12:00:00+0400",
- "extension": "txt",
- "mime": "text/plain",
- "link": "/client_files/download/456/123/",
- "user_name": "Viktor Sitnikov",
- "user_avatar": "/images/no-master.png",
- "size": "9 B",
- "can_edit": false
}, - {
- "id": 789,
- "client_id": 123456,
- "name": "photo.jpg",
- "description": "",
- "date_create": "2020-01-30T12:30:00+0400",
- "extension": "jpg",
- "mime": "image/jpeg",
- "link": "/client_files/download/456/789/",
- "user_name": "Viktor Sitnikov",
- "user_avatar": "/images/no-master.png",
- "size": "96.65 KB",
- "can_edit": true
}
], - "meta": {
- "count": 2
}
}
company_id required | number Company ID |
client_id required | number Client ID |
file_id required | number File ID |
Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
Displays the client’s visit history.This method returns the client’s appointment and product purchase history, grouped by visit. Data is filtered based on visit status and paid status. The client is identified using either the client_id or client_phone parameter. All other parameters are optional. Results are sorted by visit date and paginated in batches of 25 items. If multiple visits share the same date as the last item on the page, they will be included on the current page to ensure complete grouping. To retrieve the next page, use the from and to values provided in the meta field of the current response.
company_id required | number Example: 123 ID of a company. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
client_id required | number or null Client ID. |
client_phone required | string or null Customer phone number. |
from required | string or null <date> Period start date. |
to required | string or null <date> Period end date. |
payment_statuses required | Array of strings Items Enum: "not_paid" "paid_not_full" "paid_full" "paid_over" Visit payment status: |
attendance required | number or null Enum: -1 0 1 2 Visit status: |
success | boolean (Successful response status) Response status. |
object (Customer History Model Object) Data on customer visits, including appointments and product sales. | |
object (An object of date-based pagination information.) Page navigation information containing information about the current, next, and previous pages. The data is sorted and paginated by date in descending order. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "client_id": 123,
- "client_phone": "79998887766",
- "from": "2022-01-31",
- "to": "2022-02-01",
- "payment_statuses": [
- "not_paid"
], - "attendance": -1
}
{- "success": true,
- "data": {
- "goods_transactions": [
- {
- "id": 123,
- "comment": "Comment to the sale of goods",
- "date": "2021-01-31 12:34:56",
- "visit_id": 0,
- "record_id": 0,
- "goods": [
- {
- "id": 123,
- "title": "My product",
- "amount": -1,
- "unit": "PCS.",
- "cost_per_unit": 1000,
- "first_cost": -1000,
- "discount_percent": 0,
- "cost_to_pay": 1000,
- "paid_sum": 1000,
- "payment_status": "paid_full"
}
], - "staff": {
- "id": 123,
- "name": "James Smith",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Employee"
}
}, - "company": {
- "id": 123,
- "title": "My branch office."
}
}
], - "records": [
- {
- "id": 123,
- "comment": "Comment to post",
- "date": "2021-01-31 12:34:56",
- "visit_id": 123,
- "attendance": 1,
- "services": [
- {
- "id": 123,
- "title": "My service",
- "first_cost": 1000,
- "discount_percent": 0,
- "cost_to_pay": 1000,
- "paid_sum": 1000,
- "payment_status": "paid_full",
- "consumables": [
- {
- "title": "My consumable",
- "amount": 1,
- "cost_per_unit": 1000,
- "unit": "PCS."
}
]
}
], - "staff": {
- "id": 123,
- "name": "James Smith",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Employee"
}
}, - "company": {
- "id": 123,
- "title": "My branch office."
}, - "tips": {
- "has_tips": false,
- "sum": null
}, - "comer": {
- "id": 123,
- "title": "James Smith",
- "slug": "person"
}
}
]
}, - "meta": {
- "dateCursor": {
- "previous": {
- "to": "2022-01-31",
- "from": "2022-01-20",
- "count": 7
}, - "current": {
- "to": "2022-01-19",
- "from": "2022-01-15",
- "count": 25
}, - "next": {
- "to": "2022-01-14",
- "from": "2022-01-05",
- "count": 25
}
}
}
}
Returns a list of a comments for a client and a files in a client details uploads history.
company_id required | number Example: 123 ID of a company. |
client_id required | number Example: 123 ID of a company client. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Object of model "Comment for a client") | |
object (Meta object with response results count) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 123,
- "create_date": "2023-01-01 12:12:12",
- "update_date": "2023-01-01 12:12:12",
- "type": "default",
- "text": "Comment for a client",
- "files": [ ],
}
], - "meta": {
- "count": 10
}
}
Creates a new text comment for a client.
company_id required | number Example: 123 ID of a company. |
client_id required | number Example: 123 ID of a company client. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
text required | string Text of a comment for a client. |
success | boolean (Successful response status) Response status. |
object (Object of model "Comment for a client") Data for an existing comment for a client. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "text": "Comment for a client"
}
{- "success": true,
- "data": {
- "id": 123,
- "create_date": "2023-01-01 12:12:12",
- "update_date": "2023-01-01 12:12:12",
- "type": "default",
- "text": "Comment for a client",
- "files": [ ],
}, - "meta": { }
}
Deletes a comment for a client; does not delete files uploaded that triggered creation of a comment.
company_id required | number Example: 123 ID of a company. |
client_id required | number Example: 123 ID of a company client. |
comment_id required | number Example: 123 ID of a comment for client. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}
company_id required | number Company ID |
id required | number Client ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": {
- "id": 16,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79112345679,
- "email": "",
- "categories": [ ],
- "sex": "unknown",
- "discount": 0,
- "importance": "No importance class",
- "card": "",
- "birth_date": 0,
- "comment": "",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 0,
- "balance": 0,
- "visits": 3,
- "last_change_date": "2020-03-01T12:00:00+0400",
- "custom_fields": [ ]
}, - "meta": [ ]
}
company_id required | number Company ID |
id required | number Client ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
name required | string Client name |
surname | string Client surname |
patronymic | string Client middle name |
phone required | string Customer phone |
string Client Email | |
sex_id | number Gender of the client (1 - male, 2 - female, 0 - unknown) |
importance_id | number Client priority level (0 - none, 1 - bronze, 2 - silver, 3 - gold) |
discount | number Customer Discount |
card | string Client card number |
birth_date | string Date of birth of the client in the format yyyy-mm-dd |
comment | string A comment |
spent | number How much money spent in the company at the time of adding |
balance | number Client balance |
sms_check | number 1 - Happy Birthday by SMS, 0 - do not congratulate |
sms_not | number 1 - Exclude the client from SMS mailings, 0 - do not exclude |
labels | object Array of customer category IDs |
custom_fields | object Array of additional client fields as "api-key": "value" pairs |
{- "success": true,
- "data": {
- "id": 1121412,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79211234567,
- "categories": [ ],
- "sex": "Male",
- "sex_id": 1,
- "discount": 15,
- "importance_id": 1,
- "importance": "Bronze",
- "card": "555888666",
- "birth_date": 952041600,
- "comment": "throws show-off",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 1000,
- "balance": -1200,
- "visits": 0,
- "last_change_date": "2020-06-01T12:00:00+0400",
- "custom_fields": {
- "key-1": "value-1"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
id required | number Client ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
Use this to retrieve appointments for a specific employee
Use this to retrieve appointments for a specific client
User who created the appointment
Use this to filter appointments created by a specific user
Returns appointments with a session starting on or after this date
Returns appointments with a session ending on or before this date
Returns appointments created on or after this date
Returns appointments created on or before this date
Returns appointments created or modified after the specified date and time
Returns appointments created or modified before the specified date and time
company_id required | number Company ID |
page | number Example: page=1 Page number |
count | number Example: count=50 Number of appointments per page |
staff_id | number Example: staff_id=7572 Employee ID, if you only need appointments for a specific employee |
client_id | number Example: client_id=572 Client ID. If you need appointments for a specific client |
created_user_id | number Example: created_user_id=7572 The ID of the user who created the appointment. If you need appointments created by a specific user |
start_date | string Example: start_date=2025-01-21 Session date starting at (filter by session date). If you need appointments for a session starting from a specific date |
end_date | string Example: end_date=2025-01-21 Session date to. If you need appointments for a session before a specific date |
c_start_date | string Example: c_start_date=2025-01-21 Appointment creation date starting from(filter by appointment creation date). If you need appointments created since a specific date |
c_end_date | string Example: c_end_date=2025-01-21 Appointment creation date by (filter by appointment creation date). |
changed_after | string Example: changed_after=2025-01-21T23:00:00 The date the appointment was modified/created. If you need appointments created/modified starting from a specific date and time |
changed_before | string Example: changed_before=2025-01-21T23:00:00 The date the appointment was modified/created. If you need appointments created/modified before a specific date and time |
include_consumables | number Example: include_consumables=0 Flag for including a list of consumables by appointments in the response |
include_finance_transactions | number Example: include_finance_transactions=0 Flag to include in the response financial transactions by appointments |
with_deleted | boolean Include deleted appointments in output (with_deleted=1 will return deleted appointments as well) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the page number and the number of entries per page) |
{- "success": true,
- "data": [
- {
- "id": 2,
- "company_id": 4564,
- "staff_id": 9,
- "services": [
- {
- "id": 1,
- "title": "Hair extension",
- "cost": 100,
- "manual_cost": 100,
- "cost_per_unit": 100,
- "discount": 0,
- "first_cost": 100,
- "amount": 1
}
], - "goods_transactions": [ ],
- "staff": {
- "id": 9,
- "name": "Oksana",
- "specialization": "hair extension",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2019-01-16 16:00:00",
- "datetime": "2019-01-16T16:00:00+09:00",
- "create_date": "2019-01-16T20:35:11+0900",
- "comment": "do not write down",
- "online": false,
- "visit_attendance": 0,
- "attendance": 0,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 0,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2019-01-16T20:35:15+0900",
- "custom_color": "",
- "custom_font_color": "",
- "record_labels": [ ],
- "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2019-01-16 16:00:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "sms_remain_hours": 5,
- "email_remain_hours": 1,
- "bookform_id": 0,
- "record_from": "",
- "is_mobile": 0,
- "is_sale_bill_printed": false,
- "consumables": [ ],
- "finance_transactions": [ ]
}, - {
- "id": 9,
- "company_id": 4564,
- "staff_id": 49,
- "services": [ ],
- "goods_transactions": [ ],
- "staff": {
- "id": 49,
- "name": "Sergei",
- "specialization": "stylist",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2019-01-16 16:00:00",
- "datetime": "2019-01-16T16:00:00+09:00",
- "create_date": "2019-01-16T20:35:11+0900",
- "comment": "",
- "online": true,
- "visit_attendance": 1,
- "attendance": 1,
- "confirmed": 1,
- "seance_length": 10800,
- "length": 10800,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 1,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2017-01-09T20:45:30+0900",
- "custom_color": "f44336",
- "custom_font_color": "#ffffff",
- "record_labels": [
- {
- "id": "67345",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "font_color": "#ffffff"
}, - {
- "id": "104474",
- "title": "important category",
- "color": "#3b2c54",
- "icon": "odnoklassniki",
- "font_color": "#ffffff"
}
], - "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2019-01-16 16:00:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "sms_remain_hours": 5,
- "email_remain_hours": 1,
- "bookform_id": 0,
- "record_from": "",
- "is_mobile": 0,
- "is_sale_bill_printed": false,
- "consumables": [ ],
- "finance_transactions": [ ]
}
], - "meta": {
- "page": 1,
- "total_count": 10
}
}
When creating an appointment for a group event, the event_id parameter becomes mandatory. In this case, the following parameters become optional:
Additional fields You can pass custom values using additional fields created specifically for your company (see the "Additional Fields" section for setup details). Once created, these fields can be included in the custom_fields object when creating an appointment. Each key in this object must match the code of the corresponding additional field. Example:
If your company has the following additional fields: my_custom_field with type="number" some_another_field with type="list"
You can pass their values during appointment creation as follows: custom_fields:
{ "my_custom_field": 123, "some_another_field": ["first value", "second value"] }
company_id required | number Example: 24699 Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
staff_id | number Employee ID |
Array of objects Service parameters (id, cost, discount) | |
object Client parameters (phone, name, email) | |
save_if_busy | boolean Whether to keep the appointment if the time is busy or non-working, or give an error |
datetime | string <date-time> Date and time of appointment |
seance_length | number Appointment duration in seconds |
send_sms | boolean Whether to send SMS with the details of the appointment to the client |
comment | string Appointment Comment |
sms_remain_hours | number Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed. |
email_remain_hours | number Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed. |
attendance | number Appointment status (2 - User confirmed the appointment, 1 - User came, services provided, 0 - user waiting, -1 - user did not show) |
api_id | string External system ID |
custom_color | string Appointment color |
record_labels | Array of strings Array of post category IDs |
object Additional appointment fields |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the page number and the number of entries per page) |
{- "staff_id": 8886,
- "services": [
- {
- "id": 331,
- "first_cost": 9000,
- "discount": 50,
- "cost": 4500
}, - {
- "id": 333,
- "first_cost": 2000,
- "discount": 10,
- "cost": 1800
}
], - "save_if_busy": false,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "seance_length": 3600,
- "send_sms": true,
- "comment": "test entry!",
- "sms_remain_hours": 6,
- "email_remain_hours": 24,
- "attendance": 1,
- "api_id": "777",
- "custom_color": "f44336",
- "record_labels": [
- "67345",
- "104474"
], - "custom_fields": {
- "my_custom_field": 123,
- "some_another_field": [
- "first value",
- "second value"
]
}
}
{- "success": true,
- "data": [
- {
- "id": 2,
- "company_id": 4564,
- "staff_id": 9,
- "services": [
- {
- "id": 1,
- "title": "Hair extension",
- "cost": 100,
- "manual_cost": 100,
- "cost_per_unit": 100,
- "discount": 0,
- "first_cost": 100,
- "amount": 1
}
], - "goods_transactions": [ ],
- "staff": {
- "id": 9,
- "name": "Oksana",
- "specialization": "hair extension",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2025-01-21 02:45:00",
- "datetime": "2025-01-21T02:45:00-03:00",
- "create_date": "2025-07-02T05:47:36-0300",
- "comment": "do not write down",
- "online": false,
- "visit_attendance": 0,
- "attendance": 0,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 0,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2019-01-16T20:35:15+0900",
- "custom_color": "",
- "custom_font_color": "",
- "record_labels": [ ],
- "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "consumables": [ ],
- "finance_transactions": [ ]
}, - {
- "id": 9,
- "company_id": 4564,
- "staff_id": 49,
- "services": [ ],
- "goods_transactions": [ ],
- "staff": {
- "id": 49,
- "name": "Sergei",
- "specialization": "stylist",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2025-01-21 02:45:00",
- "datetime": "2025-01-21T02:45:00-03:00",
- "create_date": "2025-07-02T05:47:36-0300",
- "comment": "",
- "online": true,
- "visit_attendance": 1,
- "attendance": 1,
- "confirmed": 1,
- "seance_length": 10800,
- "length": 10800,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 1,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2017-01-09T20:45:30+0900",
- "custom_color": "f44336",
- "custom_font_color": "#ffffff",
- "record_labels": [
- {
- "id": "67345",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "font_color": "#ffffff"
}, - {
- "id": "104474",
- "title": "important category",
- "color": "#3b2c54",
- "icon": "odnoklassniki",
- "font_color": "#ffffff"
}
], - "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "consumables": [ ],
- "finance_transactions": [ ]
}
], - "meta": {
- "page": 1,
- "total_count": 10
}
}
Use this to filter appointments for a specific location
Filters appointments with a visit date starting from the specified date (inclusive)
Filters appointments with a visit date up to the specified date (inclusive)
Filters appointments created on or after this date
Returns appointments created on or before this date
Filters appointments created by a specific user
page | number Example: page=1 Page number |
editable_length | number Example: editable_length=50 Number of appointments per page, maximum 100 |
salon_id | number Example: salon_id=1 Location ID |
start_date | string Example: start_date='17.01.2025' Filter by visit date from |
end_date | string Example: end_date='17.01.2025' Filter by visit date by |
created_start_date | string Example: created_start_date='17.01.2025' Filter by appointment creation date from |
created_end_date | string Example: created_end_date='17.01.2025' Filter by appointment creation date by |
user_id | number Example: user_id=1 User ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": [
- {
- "id": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2025-11-17T00:00:00+0400",
- "create_date": "2025-11-17T16:08:08+0400",
- "comment": "",
- "deleted": false,
- "attendance": 0,
- "length": 3600,
- "notify_by_sms": 1,
- "notify_by_email": 12,
- "master_requested": true,
- "online": false,
- "api_id": "42",
- "last_change_date": "2025-11-18T16:58:59+0400",
- "prepaid": 0,
- "prepaid_confirmed": 0,
- "activity_id": 0,
- "services": [
- {
- "id": 1,
- "title": "beard trim",
- "cost": 100,
- "price_min": 500,
- "price_max": 1500,
- "discount": 0,
- "amount": 1
}
], - "company": {
- "id": 1,
- "title": "Business Example",
- "public_title": "Business Example",
- "business_group_id": 1,
- "business_type_id": 1,
- "country_id": 1,
- "city_id": 1,
- "timezone": 3,
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": 0,
- "phone": "",
- "phones": [ ],
- "site": "www.example.com",
- "allow_delete_record": true,
- "allow_change_record": true,
- "country": "United States",
- "city": "New York"
}, - "staff": {
- "id": 1,
- "name": "James Smith",
- "company_id": 1,
- "specialization": "Barber",
- "position": [ ],
- "rating": 0,
- "show_rating": 1,
- "comments_count": 0,
- "votes_count": 0,
- "average_score": 0,
- "prepaid": "forbidden"
}, - "client": {
- "id": 1,
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "phone_code": "7",
- "email": "[email protected]"
}, - "custom_fields": {
- "dop-telephone": "+1-315-555-0175"
}
}
], - "meta": {
- "count": 1
}
}
company_id required | number Company ID |
record_id required | number Appointment ID |
include_consumables | number Example: include_consumables=0 |
include_finance_transactions | number Example: include_finance_transactions=0 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 2,
- "company_id": 4564,
- "staff_id": 9,
- "services": [
- {
- "id": 1,
- "title": "Hair extension",
- "cost": 100,
- "manual_cost": 100,
- "cost_per_unit": 100,
- "discount": 0,
- "first_cost": 100,
- "amount": 1
}
], - "goods_transactions": [ ],
- "staff": {
- "id": 9,
- "name": "Oksana",
- "specialization": "hair extension",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "client": {
- "id": 18936825,
- "name": "lx",
- "phone": 70001234567,
- "card": "",
- "success_visits_count": 37,
- "fail_visits_count": 3
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "create_date": "2019-01-17T19:41:44+0900",
- "comment": "do not write down",
- "visit_attendance": 0,
- "attendance": 0,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 0,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8263004",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2019-01-17T19:44:14+0900",
- "custom_color": "f44336",
- "custom_font_color": "#ffffff",
- "record_labels": [
- {
- "id": "67345",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "font_color": "#ffffff"
}, - {
- "id": "104474",
- "title": "interesting category",
- "color": "#3b2c54",
- "icon": "odnoklassniki",
- "font_color": "#ffffff"
}
], - "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 1073232,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "sms_remain_hours": 5,
- "email_remain_hours": 1,
- "bookform_id": 0,
- "record_from": "",
- "is_mobile": 0,
- "is_sale_bill_printed": false,
- "consumables": [
- {
- "id": 2173068,
- "document_id": 8174153,
- "type_id": 2,
- "company_id": 4564,
- "good_id": 4853087,
- "amount": -1,
- "cost_per_unit": 0.03,
- "discount": 0,
- "cost": 0.03,
- "unit_id": 216761,
- "operation_unit_type": 2,
- "storage_id": 91548,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 0,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "service_id": 1,
- "user_id": 1073232,
- "deleted": false,
- "pkg_amount": 0
}
], - "finance_transactions": [
- {
- "id": 6024243,
- "document_id": 8174152,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 5,
- "expense_id": 5,
- "account_id": 90459,
- "amount": 100,
- "client_id": 18936825,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "",
- "item_id": 1,
- "target_type_id": 1,
- "record_id": 2,
- "goods_transaction_id": 0,
- "expense": {
- "id": 5,
- "title": "Provision of services"
}, - "account": {
- "id": 90459,
- "title": "Main cash desk"
}, - "client": {
- "id": 18936825,
- "name": "James Smith",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}
]
}, - "meta": [ ]
}
When an appointment is changed in a group event, the event_id parameter becomes required, staff_id, services, datetime, session_length parameters become optional
company_id required | number Company ID |
record_id required | number Appointment ID |
include_consumables | number Example: include_consumables=0 |
include_finance_transactions | number Example: include_finance_transactions=0 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
staff_id | number Employee ID |
Array of objects Service parameters (id, cost, discount) | |
object Client parameters (phone, name, email) | |
save_if_busy | boolean Whether to keep the appointment if the time is busy or non-working, or give an error |
datetime | string <date-time> Date and time of appointment |
seance_length | number Appointment duration in seconds |
send_sms | boolean Whether to send SMS with the details of the appointment to the client |
comment | string Appointment Comment |
sms_remain_hours | number Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed. |
email_remain_hours | number Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed. |
attendance | number Appointment status (2 - User confirmed the appointment, 1 - User came, services provided, 0 - user waiting, -1 - user did not show) |
api_id | string External system ID |
custom_color | string Appointment color |
record_labels | Array of strings Array of post category IDs |
object Additional appointment fields |
success | boolean Success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "staff_id": 8886,
- "services": [
- {
- "id": 331,
- "first_cost": 9000,
- "discount": 50,
- "cost": 4500
}, - {
- "id": 333,
- "first_cost": 2000,
- "discount": 10,
- "cost": 1800
}
], - "save_if_busy": false,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "seance_length": 3600,
- "send_sms": true,
- "comment": "test entry!",
- "sms_remain_hours": 6,
- "email_remain_hours": 24,
- "attendance": 1,
- "api_id": "777",
- "custom_color": "f44336",
- "record_labels": [
- "67345",
- "104474"
], - "custom_fields": {
- "my_custom_field": 123,
- "some_another_field": [
- "first value",
- "second value"
]
}
}
{- "success": true,
- "data": {
- "id": 999,
- "services": [
- {
- "id": 331,
- "first_cost": 9000,
- "discount": 50,
- "cost": 4500
}, - {
- "id": 333,
- "first_cost": 2000,
- "discount": 10,
- "cost": 1800
}
], - "clients_count": 1,
- "staff": {
- "id": 8886,
- "name": "Jack",
- "spec": "stylist"
}, - "datetime": "2025-09-21T23:00:00.000+03:00",
- "seance_length": 3600,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "test entry!",
- "visit_attendance": 1,
- "confirmed": 1,
- "sms_before": 6,
- "sms_now": 1,
- "sms_now_text": "",
- "email_now": 1,
- "notified": 0,
- "master_request": 1,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "activity_id": 0,
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
]
}, - "meta": [ ]
}
company_id required | number Company ID |
record_id required | number Appointment ID |
include_consumables | number Example: include_consumables=0 |
include_finance_transactions | number Example: include_finance_transactions=0 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
visit_id required | number Example: Visit ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "attendance": 1,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "comment": 0,
- "records": [
- {
- "id": 37955315,
- "company_id": 4564,
- "staff_id": 55436,
- "services": [ ],
- "events": [ ],
- "goods_transactions": [ ],
- "staff": {
- "id": 55436,
- "name": "Kevin Spacey",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 4.89,
- "votes_count": 0
}, - "client": {
- "id": 4240788,
- "name": "dev1",
- "phone": 71000000001,
- "card": "000000415",
- "email": "",
- "success_visits_count": 58,
- "fail_visits_count": 9
}, - "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "create_date": "2025-03-22T17:55:14+0300",
- "comment": "",
- "online": false,
- "visit_attendance": 1,
- "attendance": 1,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 1,
- "sms_now": 1,
- "sms_now_text": "",
- "email_now": 1,
- "notified": 0,
- "master_request": 0,
- "api_id": "0",
- "from_url": "",
- "review_requested": 0,
- "visit_id": 8260852,
- "created_user_id": 999290,
- "deleted": 0,
- "paid_full": 0,
- "prepaid": 0,
- "prepaid_confirmed": 0,
- "last_change_date": "2025-03-28T17:46:48+0300",
- "custom_color": "",
- "custom_font_color": "",
- "record_labels": [ ],
- "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
]
}
]
}, - "meta": [ ]
}
Block "kkm_transaction_details_container"
Flag "last_operation_type"
Meaning | Description |
---|---|
0 | Print return receipt |
1 | Print sales receipt |
Types of all transactions with cash register
Meaning | Description |
---|---|
0 | Sales operation – Active for documents of type Visit |
1 | Sale return operation – Active for documents of type Visit |
2 | Correction operation |
4 | Shift opening operation – Opens a new POS shift |
5 | Shift closing operation – Closes the current POS shift |
9 | Get POS status – Retrieves the current status of the POS device |
11 | Get POS team status – Retrieves the status of all POS devices connected to the team |
12 | Correction operation |
13 | Print X-report – Prints a non-fiscal summary report of the current shift |
6 | Cash deposit – Registers a cash-in transaction in the POS |
7 | Cash withdrawal – Registers a cash-out transaction in the POS |
Statuses of All POS Operations
Meaning | Description |
---|---|
0 | Connection error with POS – Unable to establish a connection with the POS device |
1 | Success – Operation completed successfully |
2 | Sent for printing – The request has been sent to the POS and is waiting for print completion |
3 | Runtime error – An error occurred while processing the operation on the POS device |
4 | Status check error – Failed to retrieve the current status of the POS |
5 | Waiting for POS readiness – Operation is pending until the POS device becomes ready |
Document Types
Meaning | Description |
---|---|
1 | Sale of products |
2 | Provision of services |
3 | Arrival of products |
4 | Products write-off |
5 | Transfer of products |
6 | Inventory |
7 | Visit |
8 | Consumables write-off |
salon_id required | number Example: Location ID |
record_id required | number Example: Appointment ID |
visit_id required | number Example: Visit ID |
Accept required | string e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer access_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "payment_transactions": [
- {
- "id": 6023813,
- "document_id": 8172806,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 5,
- "expense_id": 5,
- "account_id": 32299,
- "amount": 10,
- "client_id": 4241492,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "",
- "item_id": 1162679,
- "target_type_id": 1,
- "record_id": 13136569,
- "goods_transaction_id": 0,
- "expense": {
- "id": 5,
- "title": "Provision of services"
}, - "account": {
- "id": 32299,
- "title": "Deposits (payment in cash)"
}, - "client": {
- "id": "4241492",
- "name": "ModulKassaClient",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}
], - "loyalty_transactions": [
- {
- "id": 10614,
- "status_id": 1,
- "amount": 0.5,
- "type_id": 2,
- "program_id": 145,
- "card_id": 20013,
- "salon_group_id": 646,
- "item_id": 0,
- "item_type_id": 0,
- "item_record_id": 0,
- "goods_transaction_id": 0,
- "is_discount": false,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 2,
- "title": "Loyalty programs"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 0,
- "transactions": [
- {
- "id": 1047,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 1,
- "sum": 13,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 2045,
- "type": 7,
- "type_title": "Visit"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "items": [
- {
- "id": 0,
- "item_id": 1162679,
- "item_type_id": 1,
- "record_id": 13136569,
- "item_title": "Haircut at the TOP-master",
- "amount": 2,
- "first_cost": 20,
- "manual_cost": 10,
- "discount": 50,
- "cost": 10,
- "master_id": 13136569,
- "good_id": 0,
- "service_id": 1162679,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}, - "meta": [ ]
}
visit_id required | number Example: Visit ID |
record_id required | number Example: Appointment ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
attendance required | number Visit status (2 - The user confirmed the appointment, 1 - The user came, the services were provided, 0 - the user is waiting, -1 - the user did not show) |
comment required | string A comment |
Array of objects Array of objects of new commodity transactions | |
deleted_transaction_ids | Array of objects Array of instance IDs |
Array of objects Array of commodity transactions objects | |
Array of objects Array of objects with services | |
fast_payment | number Quick payment 1 - cash, 2 - cashless, 129 - cash and print, 130 - cashless and print |
visit_id required | number Example: Visit ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
date required | string <date-time> date and time |
service_id required | number Service ID |
staff_id required | number Employee ID |
capacity required | number Capacity |
resource_instance_ids | Array of numbers Array of resource instance IDs |
force required | boolean Ignore errors (busy master/resources, etc.) |
length | number Event duration in seconds |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "date": "2017-10-10 15:30",
- "service_id": 1185299,
- "staff_id": 26427,
- "length": 3600,
- "capacity": 9,
- "resource_instance_ids": [
- 3127
], - "force": false
}
{- "success": true,
- "data": {
- "id": 108,
- "salon_id": 4564,
- "service_id": 1185299,
- "staff_id": 26427,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 9,
- "records_count": 0,
- "color": "",
- "font_color": "",
- "service": {
- "id": 1185299,
- "title": "Group manicure",
- "category_id": 754917
}, - "staff": {
- "id": 26427,
- "name": "Monica Bellucci",
- "company_id": 4564
}, - "resource_instances": [
- {
- "id": 3127,
- "title": "Manicure machine #1",
- "resource_id": 1364
}
]
}, - "meta": [ ]
}
company_id required | number Company ID |
activity_id required | number group event ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 108,
- "salon_id": 4564,
- "service_id": 1185299,
- "staff_id": 26427,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 9,
- "records_count": 0,
- "color": "",
- "font_color": "",
- "service": {
- "id": 1185299,
- "title": "Group manicure",
- "category_id": 754917
}, - "staff": {
- "id": 26427,
- "name": "Monica Bellucci",
- "company_id": 4564
}, - "resource_instances": [
- {
- "id": 3127,
- "title": "Manicure machine #1",
- "resource_id": 1364
}
]
}, - "meta": [ ]
}
company_id required | number Company ID |
activity_id required | number Group Event ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
date required | string <date-time> date and time |
service_id required | number Service ID |
staff_id required | number Employee ID |
capacity required | number Capacity |
resource_instance_ids | Array of numbers Array of resource instance IDs |
force required | boolean Ignore errors (busy master/resources, etc.) |
length | number Event duration in seconds |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "date": "2017-10-10 15:30",
- "service_id": 1185299,
- "staff_id": 26427,
- "length": 3600,
- "capacity": 9,
- "resource_instance_ids": [
- 3127
], - "force": false
}
{- "success": true,
- "data": {
- "id": 108,
- "salon_id": 4564,
- "service_id": 1185299,
- "staff_id": 26427,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 9,
- "records_count": 0,
- "color": "",
- "font_color": "",
- "service": {
- "id": 1185299,
- "title": "Group manicure",
- "category_id": 754917
}, - "staff": {
- "id": 26427,
- "name": "Monica Bellucci",
- "company_id": 4564
}, - "resource_instances": [
- {
- "id": 3127,
- "title": "Manicure machine #1",
- "resource_id": 1364
}
]
}, - "meta": [ ]
}
company_id required | number Company ID |
activity_id required | number group event ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
company_id required | number Example: 123 ID of a company. |
service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Object "Group events search filter") | |
object (Meta object with response results count) Additional response data. |
{- "success": true,
- "data": [
- {
- "code": "staff",
- "title": "Staff",
- "data": [
- {
- "id": 1,
- "title": "Staff 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Staff 2",
- "is_disabled": false
}
]
}, - {
- "code": "service",
- "title": "Service",
- "data": [
- {
- "id": 1,
- "title": "Service 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Service 2",
- "is_disabled": false
}
]
}, - {
- "code": "resource",
- "title": "Resource",
- "data": [
- {
- "id": 1,
- "title": "Resource 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Resource 2",
- "is_disabled": false
}
]
}, - {
- "code": "service_category",
- "title": "Service category",
- "data": [
- {
- "id": 1,
- "title": "Category 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Category 2",
- "is_disabled": false
}
]
}
], - "meta": {
- "count": 4
}
}
company_id required | number Example: 123 ID of a company. |
service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Object "Dates range for group events search") Dates range for group events search. | |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "min_date": "2023-06-01",
- "max_date": "2023-07-15"
}, - "meta": [ ]
}
company_id required | number Example: 123 ID of a company. |
from required | string Example: from=2023-06-01 Search start date (YYYY-MM-DD format). |
till required | string Example: till=2023-07-15 Search end date (YYYY-MM-DD format). |
service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
{- "success": true,
- "data": [
- "2023-06-01",
- "2023-06-02",
- "2023-06-08",
- "2023-07-04",
- "2023-07-15"
], - "meta": [ ]
}
company_id required | number Example: 123 ID of a company. |
from required | string Example: from=2023-06-01 Search start date (YYYY-MM-DD format). |
till required | string Example: till=2023-07-15 Search end date (YYYY-MM-DD format). |
service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
page | number Example: page=1 Page number (default 1). |
count | number Example: count=25 Page size (default 25). |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of events found) |
{- "success": true,
- "data": [
- {
- "id": 3480140,
- "service_id": 5243360,
- "company_id": 68570,
- "staff_id": 921105,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 40,
- "records_count": 0,
- "color": "",
- "instructions": "",
- "stream_link": "",
- "font_color": "",
- "notified": false,
- "prepaid": "forbidden",
- "service": {
- "id": 5243360,
- "category_id": 5092305,
- "title": "Lecture on psychoanalysis",
- "price_min": 500,
- "price_max": 500,
- "comment": "Not",
- "image_url": "",
- "salon_service_id": 5792535,
- "prepaid": "forbidden",
- "category": {
- "id": 5092305,
- "category_id": 1,
- "title": "Psychoanalysis"
}
}, - "staff": {
- "id": 921105,
- "name": "Natalie",
- "company_id": 68570,
- "specialization": "Psychotherapist",
- "rating": 4.57,
- "show_rating": 0,
- "comments_count": 7,
- "votes_count": 0,
- "average_score": 4.57,
- "prepaid": "forbidden",
- "position": {
- "id": 123340,
- "title": "Psychotherapist"
}
}, - "resource_instances": [
- {
- "id": 83030,
- "title": "Psychotherapist's office. #one",
- "resource_id": 34895
}
], - "labels": [ ]
}
], - "meta": {
- "count": 1
}
}
company_id required | number Example: 4564 Company ID |
staff_id | number Employee ID to filter |
term | string Search by name or part of the service name |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
staff_id | number Employee ID to filter |
term | string Search by name or part of the service name |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of services found) |
{- "staff_id": 1,
- "term": "test"
}
{- "success": true,
- "data": [
- {
- "id": 1209148,
- "title": "Fitness test",
- "capacity": 5,
- "price_min": 2,
- "price_max": 3,
- "is_multi": true,
- "category": {
- "id": 1285356,
- "title": "Group services"
}, - "staff": [
- {
- "id": 37695,
- "name": "Kim Kardashian",
- "length": 7200
}
], - "resources": [
- {
- "id": 464,
- "title": "massage room",
- "salon_id": 4564
}
]
}
], - "meta": {
- "count": 1
}
}
Duplication of events occurs based on a set of parameters combined in the "duplication strategy" entity
Field | Type | Description |
---|---|---|
title | string | Strategy name |
repeat_mode_id | integer | Repeat mode |
days | integer[] | List of days of the week: 0 Sun, 6 Fri |
interval | integer | Break in searching for dates, in units of type |
content_type | integer | Duplicate appointments? 1 - no, 2 - yes |
The repeat mode can take the values
Meaning | Description | Break unit |
---|---|---|
1 | Daily | Day |
2 | Weekdays | - |
3 | Mon Wed Fri | - |
4 | Tue Thu | - |
5 | Every week | Week |
6 | Every month | Month |
7 | Every year | Year |
The days field is relevant only for mode 5 - week, for specifying specific days of repetition If you specify repeat_mode = 5, days = [1,4], interval = 2, then the event will be repeat every 3rd week on mon and thurs
company_id required | number Example: 4564 Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": [
- {
- "id": 2,
- "company_id": 4564,
- "title": "test pattern",
- "repeat_mode_id": 1,
- "repeat_mode": {
- "id": 1,
- "title": "Daily"
}, - "days": [ ],
- "interval": 0,
- "content_type": 1
}
], - "meta": {
- "count": 1
}
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Name |
days | Array of objects Recurrence Days for Weekly Mode |
repeat_mode_id required | number Repeat Mode |
interval | number Break in searching for dates |
content_type | number Duplicate appointments? 1 - no, 2 - yes |
{- "success": true,
- "data": {
- "id": 3,
- "company_id": 4564,
- "title": "Test duplication strategy",
- "repeat_mode_id": 5,
- "repeat_mode": {
- "id": 5,
- "title": "Every week"
}, - "days": [
- 1,
- 4
], - "interval": 2,
- "content_type": 1
}, - "meta": [ ]
}
company_id required | number Example: 4564 Company ID |
strategy_id required | number Example: 3 Replication strategy ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Name |
days | Array of objects Recurrence Days for Weekly Mode |
repeat_mode_id required | number Repeat Mode |
interval | number Break in searching for dates |
content_type | number Duplicate appointments? 1 - no, 2 - yes |
{- "success": true,
- "data": {
- "id": 3,
- "company_id": 4564,
- "title": "New test duplication strategy",
- "repeat_mode_id": 5,
- "repeat_mode": {
- "id": 5,
- "title": "Every week"
}, - "days": [
- 2,
- 3
], - "interval": 3,
- "content_type": 1
}, - "meta": [ ]
}
A request for duplication can be made in 3 ways:
Specifying a list of dates and times to duplicate
Specifying the id of the repetition strategy
By specifying all repetition parameters
company_id required | number Example: 1 |
activity_id required | number Example: 2 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{ }
{- "success": true,
- "data": [
- {
- "id": 9182,
- "service_id": 1209148,
- "salon_id": 4564,
- "master_id": 1000265,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 7200,
- "capacity": 5,
- "records_count": 0,
- "color": "",
- "instructions": "",
- "stream_link": "",
- "font_color": "",
- "notified": false,
- "timestamp": "2025-09-21T23:00:00.000+03:00",
- "service": {
- "id": 1209148,
- "category_id": 1285356,
- "title": "Fitness \"test\"",
- "price_min": 2,
- "price_max": 3,
- "prepaid": "forbidden"
}, - "resource_instances": [
- {
- "id": 1094,
- "title": "Massage room 1st floor",
- "resource_id": 464
}
], - "master": {
- "id": 1000265,
- "name": "Master",
- "company_id": 4564,
- "specialization": "321",
- "rating": 0,
- "show_rating": 1,
- "prepaid": "allowed",
- "position": [ ]
}, - "records": [ ],
- "labels": [ ]
}
], - "meta": {
- "count": 2
}
}
The Appointment Calendar dates are returned as an array of date strings, for example: ["2015-10-26", "2015-10-30"]. To retrieve this list, you must provide a reference date. The response will return the available working dates of the specified location or employee relative to that date
company_id required | number Company ID |
date required | string date in iso8601 format. Filter by booking date (eg '2015-09-30') |
staff_id | number Employee ID. |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": [
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00"
], - "meta": [ ]
}
The comment object has the following fields:
Field | Type | Description |
---|---|---|
id | number | Comment ID |
salon_id | number | Company ID |
type | number | 1 - comment to the specialist, 0 - to the salon |
master_id | number | Specialist ID if type = 1 |
text | string | Comment text |
date | string | Date when the comment was left |
rating | number | Rating (from 1 to 5) |
user_id | number | Id of the user who left the comment |
username | string | Name of the user who left the comment |
user_avatar | string | Avatar of the user who left the comment |
record_id | number | ID of the post after which the review was left (the value will be non-zero if the review was left through a link asking for a review after the visit) |
company_id required | number Company ID |
start_date | string date in iso8601 format. Filter by date since (for example '2015-09-30') |
end_date | string date in iso8601 format. Filter by date by (for example '2015-09-30') |
staff_id | number Employee ID |
rating | number Rating score. Filter by reviews with a specific rating. |
page | number Page number |
count | number Number of reviews per page |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "18437",
- "type": "1",
- "master_id": "8864",
- "text": "Fine!",
- "date": "2025-09-21T23:00:00.000+03:00",
- "rating": "4",
- "user_id": "157169",
- "user_name": "Victor Sitnikov",
- "user_avatar": "/images/no-master.png",
- "record_id": 100001
}
], - "meta": [ ]
}
company_id required | number Company ID |
staff_id required | number Employee ID, specify when creating a review for an employee |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
mark required | number Rating from 1 to 5 |
text required | string Feedback text |
name required | string Username to be displayed on the review page |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "mark": "4",
- "text": "Everything is very bad!",
- "name": "Victor"
}
{- "success": true,
- "data": {
- "type": "1",
- "master_id": "8864",
- "id": "18437",
- "text": "Everything is very bad!",
- "date": "2025-09-21T23:00:00.000+03:00",
- "rating": "4",
- "user_id": "157169",
- "user_name": "Victor",
- "user_avatar": "/images/no-master.png"
}, - "meta": [ ]
}
Company User object
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 224348,
- "firstname": "James",
- "login": "j.smith",
- "phone": "+1-315-555-0175",
- "information": "Test user",
- "access": {
- "stat_access": true,
- "schedule_edit_access": false,
- "client_phones_access": false,
- "clients_access": false,
- "settings_access": false,
- "edit_records_access": false,
- "timetable_access": true,
- "billing_access": false,
- "users_access": false,
- "excel_access": false,
- "finances_access": false,
- "storages_access": false,
- "send_sms": true,
- "master_id": 0
}
}, - {
- "id": 11,
- "firstname": "James",
- "login": "j.smith",
- "phone": "+1-315-555-0175",
- "information": "Test user",
- "access": {
- "stat_access": true,
- "schedule_edit_access": true,
- "client_phones_access": true,
- "clients_access": true,
- "settings_access": true,
- "edit_records_access": true,
- "timetable_access": true,
- "billing_access": true,
- "users_access": false,
- "excel_access": true,
- "finances_access": true,
- "storages_access": true,
- "send_sms": true,
- "master_id": 0
}
}
], - "meta": [ ]
}
The method allows you to get users of the company.
Company User object:
Attribute | Type | Description |
---|---|---|
id | number | User ID |
name | string | User name |
phone | string | User phone |
string | User email | |
information | string | User information |
is_approved | boolean | Whether the user accepted the invitation to manage the company |
is_non_deletable | boolean | Whether the user is non-deletable |
company_id required | number Company ID |
filter[is_approved] | number Example: filter[is_approved]=1 Whether the user accepted the invitation to manage the company. 1 - accepted, 0 - not accepted |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Response status. |
Array of objects Response data. | |
object Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 10,
- "name": "Bob Williams",
- "phone": "+1-315-555-0175",
- "information": "Manager",
- "is_approved": false,
- "is_non_deletable": false
}, - {
- "id": 11,
- "name": "Oliver Davis",
- "phone": "+1-315-555-0176",
- "information": "Administrator",
- "is_approved": true,
- "is_non_deletable": true
}
], - "meta": {
- "count": 2
}
}
company_id required | number Example: 123 ID of a company. |
user_id required | number User ID |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}
The company checkout object has the following fields:
Field | Type | Description |
---|---|---|
id | number | Checkout ID |
title | string | Title |
type | number | 1 - for non-cash payments, 0 for cash |
comment | string | Description to the checkout |
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 13881,
- "title": "Main cash desk",
- "type": 0,
- "comment": "Standing at the reception"
}, - {
- "id": 13882,
- "title": "Payment account",
- "type": 1,
- "comment": "For non-cash payments"
}, - {
- "id": 21961,
- "title": "Advances",
- "type": 0,
- "comment": ""
}
], - "meta": [ ]
}
The company inventory object has the following fields:
Field | Type | Description |
---|---|---|
id | number | Inventory ID |
title | string | Title |
for_services | number | 1 - if used for automatic write-off of consumables |
for_sale | number | 1 - if the default inventory for selling products |
comment | string | Description of the inventory |
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Consumables",
- "for_service": 1,
- "for_sale": 0,
- "comment": "To account for consumables"
}, - {
- "id": 2,
- "title": "Products",
- "for_service": 0,
- "for_sale": 1,
- "comment": "To record store sales"
}, - {
- "id": 23061,
- "title": "Ors",
- "for_service": 0,
- "for_sale": 1,
- "comment": "Nz"
}
], - "meta": [ ]
}
The object for creating SMS mailing has the following fields:
Field | Type | Description |
---|---|---|
client_ids | array of numbers | Array of client IDs |
text | string | SMS text message |
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
client_ids | Array of numbers Array of client IDs |
text | string SMS text message |
success | boolean Execution success status (true) |
data | string Is null |
object An object containing a 201 status code message |
{- "client_ids": [
- 1,
- 2,
- 3,
- 4,
- 5
], - "text": "Dear clients, we congratulate you on being our clients! You are very lucky!"
}
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
The object for creating SMS mailing has the following fields:
Field | Type | Description |
---|---|---|
text | string | SMS text message |
Attention: If there are no filters, SMS mailing will go to the entire database!
company_id required | number Company ID |
fullname | string Example: fullname='Joh' Name (part of the name) for client filtering |
phone | string Example: phone='7916' Phone (part of the number) for customer filtering |
string Example: email='test@' Email (part) for customer filtering |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
text | string SMS text message |
success | boolean Execution success status (true) |
data | string Is null |
object An object containing a 201 status code message |
{- "text": "Dear clients, we congratulate you on being our clients! You are very lucky!"
}
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
page: Page number
count: Number of customers per page
account_id: Checkout ID
supplier_id: Supplier ID
client_id: Client ID
user_id: user ID
master_id: Employee ID
type: transaction type
real_money: Indicates whether this is a real-money (fiat) transaction
deleted: whether the transaction was deleted
start_date: start date of the period
end_date: end date of the period
balance_is: 0 - any balance, 1 - positive, 2 - negative
document_id: document ID
company_id required | number Company ID |
page | number Example: page=1 Page number |
count | number Example: count=50 Number of customers per page |
account_id | number Example: account_id=0 Checkout ID |
supplier_id | number Example: supplier_id=0 Supplier ID |
client_id | number Example: client_id=0 Client ID |
user_id | number Example: user_id=0 User ID |
master_id | number Example: master_id=0 Employee ID |
type | number Example: type=0 transaction type |
real_money | number Example: real_money=0 Indicates whether this is a real-money (fiat) transaction |
deleted | number Example: deleted=0 whether the transaction was deleted |
start_date | number Example: start_date='' period start date |
end_date | number Example: end_date='' period end date |
balance_is | number Example: balance_is=0 0 - any balance, 1 - positive, 2 - negative |
document_id | number Example: document_id=0 document ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}
record_id: record ID
visit_id: ID of the visit
company_id required | number Company ID |
record_id | number Example: record_id=0 Appointment ID |
visit_id | number Example: visit_id=0 Visit ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
expense_id | number Payment item |
amount | number <float> Transaction amount |
account_id | number Checkout ID |
client_id | number Client ID |
supplier_id | number Supplier ID |
master_id | number Employee ID |
comment | number A comment |
date | string <date-time> Transaction creation date |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "expense_id": 2640,
- "amount": 100,
- "account_id": 39105,
- "client_id": 4240788,
- "supplier_id": 0,
- "master_id": 0,
- "comment": "Transaction comment",
- "date": "2025-09-21T23:00:00.000+03:00"
}
{- "success": true,
- "data": {
- "id": 277016617,
- "document_id": 0,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 5,
- "expense_id": 5,
- "account_id": 774020,
- "amount": 100,
- "client_id": 51520012,
- "master_id": 921395,
- "supplier_id": 0,
- "comment": "Transaction comment",
- "item_id": 0,
- "target_type_id": 0,
- "record_id": 0,
- "goods_transaction_id": 0,
- "expense": {
- "id": 5,
- "title": "Provision of services"
}, - "account": {
- "id": 774020,
- "title": "Archive cash desk",
- "is_cash": true,
- "is_default": false
}, - "client": {
- "id": 51520012,
- "name": "Sweeney Todd",
- "phone": "+1-315-555-0175",
- "email": "[email protected]"
}, - "master": {
- "id": 921395,
- "name": "Valeria"
}, - "supplier": [ ]
}, - "meta": [ ]
}
company_id required | number Company ID |
transaction_id required | number transaction ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}
company_id required | number Company ID |
transaction_id required | number transaction ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
expense_id | number Payment item |
amount | number <float> Transaction amount |
account_id | number Checkout ID |
client_id | number Client ID |
supplier_id | number Supplier ID |
master_id | number Employee ID |
comment | number A comment |
date | string <date-time> Transaction creation date |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}
company_id required | number Company ID |
transaction_id required | number transaction ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
Returns a list of card types that are valid for the given location.
The attributes and their descriptions match those defined in the "Collection of Card Types Available to the Client" method described above.
company_id required | number Example: 12345 Company ID |
id | integer <int32> Card type identifier |
title | string Card type name |
salon_group_id | integer <int32> ID of the chain where the card type was created |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain |
[- {
- "id": 10992,
- "title": "Cashback",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}, - {
- "id": 8230,
- "title": "Referral program",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}
]
Returns a list of customer cards with programs that are active in this location
Attribute | Type | Description |
---|---|---|
id | int | Loyalty card ID |
balance | decimal | Loyalty card balance |
paid_amount | decimal | Amount "Paid" |
sold_amount | decimal | Amount "Sold" |
visits_count | int | Number of visits |
number | string | Card number |
type_id | int | Loyalty card type identifier |
salon_group_id | int | ID of the chain where the card was created |
type | object | Object that contains the "id" and "title" fields: card type identifier and name |
salon_group | object | Object that contains the "id" and "title" fields: identifier of the chain where the card type was created and the name of this chain |
programs | array | Array with information about promotions linked to a loyalty card |
rules | array | Array with information about the rules configured in the action |
The programs array consists of objects with the following fields:
Attribute | Type | Description |
---|---|---|
id | int | Promotion ID |
title | string | Action name |
loyalty_type_id | int | Promotion type ID |
item_type_id | int | Is cashback accrued from products |
value_unit_id | int | Bonus field — Discount % or Fixed amount |
group_id | int | ID of the chain where the action was created |
loyalty_type | object | Object with information about the action |
The rules array consists of objects with the following fields:
Attribute | Type | Description |
---|---|---|
id | int | Rule ID |
loyalty_program_id | int | Identifier of the promotion to which the rule is attached |
loyalty_type_id | int | Promotion type ID |
value | decimal | Value from which the rule will work |
phone required | string Customer phone number in the format 380000000000 |
group_id required | number Chain ID |
company_id required | number Location ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Loyalty card ID |
balance | number <float> Loyalty card balance |
points | integer <int32> |
paid_amount | number <float> Amount Paid |
sold_amount | number <float> Amount "Sold" |
visits_count | integer <int32> Number of visits |
number | string Card number |
type_id | integer <int32> Loyalty card type identifier |
salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "id": 9210520,
- "balance": 100,
- "points": 0,
- "paid_amount": 1000,
- "sold_amount": 1000,
- "visits_count": 1,
- "number": 14507109210520,
- "type_id": 10992,
- "salon_group_id": 145071,
- "type": {
- "id": 10992,
- "title": "5+2",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 18005,
- "title": "5+2",
- "value": 0,
- "loyalty_type_id": 13,
- "item_type_id": 3,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 13,
- "title": "Discount for a given number of accumulated services",
- "is_discount": true,
- "is_cashback": false,
- "is_static": false,
- "is_accumulative": false
}, - "rules": [
- {
- "id": 72803,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 20,
- "parameter": 0
}, - {
- "id": 72804,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 10,
- "parameter": 0
}, - {
- "id": 72805,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 100,
- "parameter": 0
}
]
}
]
}
Returns a list of customer cards with programs that are active in this location
The attributes in the response to the request completely match the "Get a list of issued cards by phone number" method described above
client_id required | number Client ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Loyalty card ID |
balance | number <float> Loyalty card balance |
points | integer <int32> |
paid_amount | number <float> Amount Paid |
sold_amount | number <float> Amount "Sold" |
visits_count | integer <int32> Number of visits |
number | string Card number |
type_id | integer <int32> Loyalty card type identifier |
salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "id": 9210520,
- "balance": 100,
- "points": 0,
- "paid_amount": 1000,
- "sold_amount": 1000,
- "visits_count": 1,
- "number": 14507109210520,
- "type_id": 10992,
- "salon_group_id": 145071,
- "type": {
- "id": 10992,
- "title": "5+2",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 18005,
- "title": "5+2",
- "value": 0,
- "loyalty_type_id": 13,
- "item_type_id": 3,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 13,
- "title": "Discount for a given number of accumulated services",
- "is_discount": true,
- "is_cashback": false,
- "is_static": false,
- "is_accumulative": false
}, - "rules": [
- {
- "id": 72803,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 20,
- "parameter": 0
}, - {
- "id": 72804,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 10,
- "parameter": 0
}, - {
- "id": 72805,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 100,
- "parameter": 0
}
]
}
]
}
Returns a list of cards of an authorized user with programs, filtering cards by salon chain / location
group_id required | number Chain ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Loyalty card ID |
balance | number <float> Loyalty card balance |
points | integer <int32> |
paid_amount | number <float> Amount Paid |
sold_amount | number <float> Amount "Sold" |
visits_count | integer <int32> Number of visits |
number | string Card number |
type_id | integer <int32> Loyalty card type identifier |
salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "id": 9210520,
- "balance": 100,
- "points": 0,
- "paid_amount": 1000,
- "sold_amount": 1000,
- "visits_count": 1,
- "number": 14507109210520,
- "type_id": 10992,
- "salon_group_id": 145071,
- "type": {
- "id": 10992,
- "title": "5+2",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 18005,
- "title": "5+2",
- "value": 0,
- "loyalty_type_id": 13,
- "item_type_id": 3,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 13,
- "title": "Discount for a given number of accumulated services",
- "is_discount": true,
- "is_cashback": false,
- "is_static": false,
- "is_accumulative": false
}, - "rules": [
- {
- "id": 72803,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 20,
- "parameter": 0
}, - {
- "id": 72804,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 10,
- "parameter": 0
}, - {
- "id": 72805,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 100,
- "parameter": 0
}
]
}
]
}
| Attribute | Type | Description | |----------------------|--------|----------------- ------------------------------| | loyalty_card_number | number | Loyalty card number | | loyalty_card_type_id | number | Loyalty card type identifier | | phone | number | Customer phone number in the format 70001234567 |
company_id required | number Location ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
loyalty_card_number | string Loyalty card number |
loyalty_card_type_id | string Loyalty card type identifier |
phone | number Customer phone number in the format 70001234567 |
id | integer <int32> Loyalty card ID |
balance | number <float> Loyalty card balance |
points | integer <int32> |
paid_amount | number <float> Amount Paid |
sold_amount | number <float> Amount "Sold" |
visits_count | integer <int32> Number of visits |
number | string Card number |
type_id | integer <int32> Loyalty card type identifier |
salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "loyalty_card_number": 9090909,
- "loyalty_card_type_id": "8230",
- "phone": 79091552422
}
{- "id": 9250498,
- "balance": 0,
- "points": 0,
- "paid_amount": 16300,
- "sold_amount": 19320,
- "visits_count": 5,
- "number": "01010101",
- "type_id": 8230,
- "salon_group_id": 145071,
- "type": {
- "id": 8230,
- "title": "cashmesh",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 12720,
- "title": "cumulative cache paid",
- "value": 10,
- "loyalty_type_id": 7,
- "item_type_id": 0,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 7,
- "title": "Cumulative cashback (paid)",
- "is_discount": false,
- "is_cashback": true,
- "is_static": false,
- "is_accumulative": true
}, - "rules": [
- {
- "id": 71149,
- "loyalty_program_id": 12720,
- "loyalty_type_id": 7,
- "value": 10,
- "parameter": 100
}
]
}
]
}
Manual withdraw/deposit to loyalty card in chain
chain_id required | number Example: 123 ID of a chain. |
card_id required | number Loyalty card ID |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
amount required | number Withdraw/deposit amount. Positive for deposit, negative for withdraw. |
title | string Optional comment |
success | boolean (Successful response status) Response status. |
object (loyalty_card) Loyalty card | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "amount": 100.5,
- "title": "string"
}
{- "success": true,
- "data": {
- "id": 0,
- "balance": 0,
- "points": 0,
- "paid_amount": 0,
- "sold_amount": 0,
- "visits_count": 0,
- "number": "string",
- "type_id": 0,
- "salon_group_id": 0,
- "max_discount_percent": 0,
- "max_discount_amount": 0
}, - "meta": { }
}
chain_id required | integer Chain ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Card type identifier |
title | string Card type name |
[- {
- "id": 123,
- "title": "Loyalty card type"
}
]
Manual withdraw/deposit to loyalty card in company
company_id required | number Example: 123 ID of a company. |
card_id required | number Loyalty card ID |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
amount required | number Withdraw/deposit amount. Positive for deposit, negative for withdraw. |
title | string Optional comment |
success | boolean (Successful response status) Response status. |
object (loyalty_card) Loyalty card | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "amount": 100.5,
- "title": "string"
}
{- "success": true,
- "data": {
- "id": 0,
- "balance": 0,
- "points": 0,
- "paid_amount": 0,
- "sold_amount": 0,
- "visits_count": 0,
- "number": "string",
- "type_id": 0,
- "salon_group_id": 0,
- "max_discount_percent": 0,
- "max_discount_amount": 0
}, - "meta": { }
}
Returns a list of card types that are available for issuance to a location client.
Attribute | Type | Description |
---|---|---|
id | int | Card type identifier |
title | string | Card type name |
salon_group_id | int | ID of the chain where the card type was created |
salon_group | object | An object that contains the "id" and "title" fields: identifier of the chain where the card type was created and the name of this chain |
company_id required | number Example: 12345 Company ID |
phone required | number Example: 70001234567 Customer phone number |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Card type identifier |
title | string Card type name |
salon_group_id | integer <int32> ID of the chain where the card type was created |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain |
[- {
- "id": 10992,
- "title": "Cashback",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}, - {
- "id": 8230,
- "title": "Referral program",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}
]
Applying a promotion to a visit, it only makes sense if there is a visit
company_id required | number Location ID |
card_id required | number Client card ID |
program_id required | number ID of the promotion linked to the card |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
record_id required | number Appointment ID |
visit_id required | number Visit ID |
payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
Array of objects An array with information about applied loyalty transactions in a visit | |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "record_id": 0,
- "visit_id": 0
}
{- "payment_transactions": [ ],
- "loyalty_transactions": [
- {
- "id": 22985556,
- "status_id": 1,
- "amount": 20,
- "type_id": 1,
- "program_id": 20802,
- "card_id": 9223622,
- "salon_group_id": 145071,
- "item_id": 5048384,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96063258,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion Discount"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}
Cancellation of the promotion applied to the visit.
company_id required | number Location ID |
card_id required | number Client card ID |
program_id required | number ID of the promotion linked to the card |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
record_id required | number Appointment ID |
visit_id required | number Visit ID |
payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
loyalty_transactions | Array of objects An array with information about applied loyalty transactions in a visit |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [ ],
- "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}
The amount deducted will not exceed the available bonus balance. If the value is set to 0, no write-off transaction will occur
company_id required | number Location ID |
card_id required | number Client card ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
record_id required | number Appointment ID |
visit_id required | number Visit ID |
amount required | number Number of points to redeem |
payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
Array of objects An array with information about applied loyalty transactions in a visit | |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [
- {
- "id": 22985556,
- "status_id": 1,
- "amount": 20,
- "type_id": 1,
- "program_id": 20802,
- "card_id": 9223622,
- "salon_group_id": 145071,
- "item_id": 5048384,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96063258,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion Discount"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}
Cancellation of write-off from the loyalty card.
company_id required | number Location ID |
card_id required | number Client card ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
record_id required | number Appointment ID |
visit_id required | number Visit ID |
payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
loyalty_transactions | Array of objects An array with information about applied loyalty transactions in a visit |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [ ],
- "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}
Applying a referral program to a visit
company_id required | number Location ID |
group_id required | number ID of the chain where the referral program is configured |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
record_id required | number Appointment ID |
visit_id required | number Visit ID |
referrer_phone required | number Phone number of the inviter |
payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
Array of objects An array with information about applied loyalty transactions in a visit | |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [
- {
- "id": 22989715,
- "status_id": 1,
- "amount": 100,
- "type_id": 1,
- "program_id": 12705,
- "card_id": 0,
- "salon_group_id": 145071,
- "item_id": 5048371,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96082477,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion discount"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96082477,
- "item_id": 5048371,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test",
- "amount": 1,
- "first_cost": 1000,
- "manual_cost": 1000,
- "discount": 0,
- "cost": 1000,
- "master_id": 548042,
- "good_id": 5048371,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}
]
}
List of transactions for loyalty promotions for this visit
visit_id required | number Visit ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Loyalty transaction ID |
status_id | integer <int32> Status ID |
amount | number <float> Transaction amount |
type_id | integer <int32> Transaction type identifier |
program_id | integer <int32> Loyalty program ID |
card_id | integer <int32> Loyalty card ID |
salon_group_id | integer <int32> ID of the chain to which the loyalty belongs |
item_id | integer <int32> Identifier of the product/service to which the promotion applies |
item_type_id | integer <int32> Operation type identifier |
item_record_id | integer <int32> Identifier of the appointment to which the service/product belongs |
goods_transaction_id | integer <int32> Commodity transaction ID |
is_discount | boolean Is a discount |
is_loyalty_withdraw | boolean Is the application of loyalty canceled |
object Loyalty type | |
object Promotion Information |
[- {
- "id": 22989715,
- "status_id": 1,
- "amount": 100,
- "type_id": 1,
- "program_id": 12705,
- "card_id": 0,
- "salon_group_id": 145071,
- "item_id": 5048371,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96082477,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion discount"
}, - "program": {
- "id": 12705,
- "title": "invited",
- "value": 10,
- "loyalty_type_id": 1,
- "item_type_id": 0,
- "value_unit_id": 1,
- "group_id": 145071
}
}, - {
- "id": 22994127,
- "status_id": 1,
- "amount": 100,
- "type_id": 4,
- "program_id": 19044,
- "card_id": 9234863,
- "salon_group_id": 145071,
- "item_id": 0,
- "item_type_id": 0,
- "item_record_id": 0,
- "goods_transaction_id": 0,
- "is_discount": false,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 4,
- "title": "Referral program accrual"
}, - "program": {
- "id": 19044,
- "title": "inviter 2",
- "value": 100,
- "loyalty_type_id": 6,
- "item_type_id": 0,
- "value_unit_id": 2,
- "group_id": 145071
}
}
]
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "active": 0,
- "salon": 1,
- "service_category": 0,
- "service": 1,
- "good": 1,
- "master": 1,
- "client": 1,
- "record": 1,
- "goods_operations_sale": 1,
- "goods_operations_receipt": 1,
- "goods_operations_consumable": 1,
- "goods_operations_stolen": 1,
- "goods_operations_move": 1,
- "finances_operation": 1
}, - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
urls required | Array of arrays List of addresses to send notifications to |
active required | number 1 - notifications are active, 0 - not active |
salon | number 1 - send events by company entity, 0 - do not send |
service_category | number 1 - send events by service category entity, 0 - do not send |
service | number 1 - send events by service entity, 0 - do not send |
good | number 1 - send events by product entity, 0 - don't send |
master | number 1 - send events by employee entity, 0 - don't send |
client | number 1 - send events by client entity, 0 - don't send |
record | number 1 - send events by record entity, 0 - do not send |
goods_operations_sale | number 1 - send events by the item sale entity, 0 - do not send |
goods_operations_receipt | number 1 - send events by the entity arrival of goods, 0 - do not send |
goods_operations_consumable | number 1 - send events by the consumable write-off entity, 0 - do not send |
goods_operations_stolen | number 1 - send events by the item write-off entity, 0 - do not send |
goods_operations_move | number 1 - send events by the item movement entity, 0 - no send |
finances_operation | number 1 - send events by entity financial operation, 0 - no send |
self_sending | number 1 - The webhook creator will receive events triggered by their own actions, 0 - The webhook creator will not receive events triggered by their own actions |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "active": 0,
- "salon": 1,
- "service_category": 0,
- "service": 1,
- "good": 1,
- "master": 1,
- "client": 1,
- "record": 1,
- "goods_operations_sale": 1,
- "goods_operations_receipt": 1,
- "goods_operations_consumable": 1,
- "goods_operations_stolen": 1,
- "goods_operations_move": 1,
- "finances_operation": 1,
- "self_sending": 0
}
{- "success": true,
- "data": {
- "active": 0,
- "salon": 1,
- "service_category": 0,
- "service": 1,
- "master": 1,
- "client": 1,
- "record": 1,
- "goods_operations_sale": 1,
- "goods_operations_receipt": 1,
- "goods_operations_consumable": 1,
- "goods_operations_stolen": 1,
- "goods_operations_move": 1,
- "finances_operation": 1
}, - "meta": [ ]
}
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of business types found) |
{- "success": true,
- "data": [
- {
- "id": 10,
- "title": "Domestic services",
- "types": [
- {
- "id": 31,
- "title": "Studio",
- "business_group_id": 10
}
]
}, - {
- "id": 1,
- "title": "beauty",
- "types": [
- {
- "id": 1,
- "title": "Beauty Salons",
- "business_group_id": 1
}, - {
- "id": 25,
- "title": "Spa",
- "business_group_id": 1
}
]
}
], - "meta": {
- "count": 10
}
}
company_id required | number Company ID |
entity required | number Category object (0 - general tags, 1 - customer tags, 2 - appointment tags) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | number Category ID |
salon_id | number Location ID |
title | string name of category |
color | string Label color in #RRGGBB format |
icon | string Icon name |
entity | number Category object (1 - category for customers, 2 - category for appointments) |
deleted | number Delete mark |
not_editable | number Whether category changes are allowed (1 - allowed, 0 - not allowed) |
[- {
- "id": "241625",
- "salon_id": "68570",
- "title": "The employee is important",
- "color": "#ff2828",
- "icon": "lock",
- "entity": "2",
- "deleted": "0",
- "not_editable": "1"
}, - {
- "id": "241626",
- "salon_id": "68570",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "entity": "2",
- "deleted": "0",
- "not_editable": "1"
}
]
company_id required | number Company ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title | string name of category |
color | string Label color in #RRGGBB format |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status (false) |
data | string Contains null |
object Metadata (contains an error message) |
success | boolean Execution success status (false) |
data | string Contains null |
object Contains an array with possible error messages |
success | boolean Execution success status (false) |
data | string Contains null |
object Contains an array of possible error messages |
{- "success": true,
- "data": {
- "title": "test",
- "salon_id": 68570,
- "color": "#00ff11",
- "entity": 1,
- "id": "3599560"
}, - "meta": [ ]
}
company_id required | number Company ID |
title required | string name of category |
color required | string Label color in #RRGGBB format |
entity | number Category object (0 - general tags, 1 - customer tags, 2 - appointment tags) |
icon | string Icon name |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "title": "test",
- "salon_id": 68570,
- "color": "#00ff11",
- "entity": 1,
- "id": "3599560"
}, - "meta": [ ]
}
company_id required | number Company ID |
label_id required | number Tag ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title | string name of category |
color | string Label color in #RRGGBB format |
entity | number Category object (1 - category for customers, 2 - category for appointments) |
icon | string Icon name |
{- "title": "Testway2",
- "color": "#aa11ff",
- "entity": 2,
- "icon": "Test"
}
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
company_id required | number Company ID |
label_id required | number Tag ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
company_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the page number and the number of categories found) |
success | boolean Execution success status (false) |
data | string Contains null |
object Contains an array with possible error messages |
success | boolean Execution success status (false) |
data | string Contains null |
object Contains an array of possible error messages |
{- "success": true,
- "data": [
- {
- "id": 3,
- "salon_id": 4564,
- "title": "Regular customer",
- "color": "#1f1038",
- "icon": "tag",
- "entity": 1,
- "deleted": 1,
- "not_editable": 0
}
], - "meta": {
- "page": 1,
- "total_count": 25
}
}
You can retrieve a list of products and product categories by providing the location ID. Use the search_term
parameter to filter:
Limit the number of results using the max_count
parameter.
If search_term
is not provided, the response will return a list of root categories for the specified location. In this case, the max_count
parameter is ignored. If search_term
is provided, the system will first search among categories. If fewer than max_count
results are found, the search will continue among products to fill the remaining count.
The result is returned as an array of products tree elements.
Product tree element has the following structure:
| Field | Type | Description | | -------------| ------- | -------------------------------------------------- ----------------------------------------- | | parent_id | number | Parent element ID (0 for root elements) | | item_id | number | Item ID (0 if item is a category) | | category_id | number | Product category ID (0 if the item is a product) | | title | string | Product name or product category | | is_chain | boolean | Is the element chain-bound? true - the element is connected to the chain, false - not connected | | is_category | boolean | Is the element a category? true - category, false - product | | is_item | boolean | Is the item a product? true - product, false - category |
company_id required | number Company ID |
search_term | string Search query by name, article number or barcode |
max_count | number The number of output lines per page. Maximum 100 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of categories found) |
{- "success": true,
- "data": [
- {
- "parent_id": 0,
- "item_id": 0,
- "category_id": 123,
- "title": "Root category 1",
- "is_chain": true,
- "is_category": true,
- "is_item": false
}, - {
- "parent_id": 0,
- "item_id": 0,
- "category_id": 456,
- "title": "Root category 2",
- "is_chain": true,
- "is_category": true,
- "is_item": false
}
], - "meta": {
- "count": 2
}
}
##№ Composition of the product category
Information on a product category and its descendants can be obtained by making a request specifying the location ID and product category.
Pagination is supported, specified by the page
and count
parameters.
Composition of a product category has the following structure:
Field | Type | Description |
---|---|---|
parent_id | number | Parent element ID (0 for root elements) |
item_id | number | Item ID (always 0) |
category_id | number | Product category ID |
title | string | Product category name |
is_chain | boolean | Is the element chain-bound? true - the element is connected to the chain, false - not connected |
is_category | boolean | Is the element a category? always true |
is_item | boolean | Is the item a product? always false |
children | array of objects (Product tree element) | Child elements of a product category |
children_count | number | Total number of child products and categories (no recursion) |
company_id required | number Company ID |
category_id required | number Product Category ID |
page | number Page number |
count | number The number of products displayed on the page. Maximum 1000 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data |
{- "success": true,
- "data": {
- "parent_id": 0,
- "item_id": 0,
- "category_id": 123,
- "title": "Root category 1",
- "is_chain": false,
- "is_category": true,
- "is_item": false,
- "children": [
- {
- "parent_id": 123,
- "item_id": 0,
- "category_id": 456,
- "title": "Child category",
- "is_chain": false,
- "is_category": true,
- "is_item": false
}, - {
- "parent_id": 123,
- "item_id": 789,
- "category_id": 0,
- "title": "Child product",
- "is_chain": false,
- "is_category": false,
- "is_item": true
}
], - "children_count": 2
}
}
company_id required | number Company ID |
parent_category_id required | number ID of the parent product category. Default 0 - top-level categories are displayed (optional) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "Category 1"
}, - {
- "id": "2",
- "title": "Category 2"
}
], - "meta": [ ]
}
company_id required | number Company ID |
id | number Product category ID (you can specify several additional parameters &ids[]={id} |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "Category 1"
}, - {
- "id": "2",
- "title": "Category 2"
}
], - "meta": [ ]
}
company_id required | number Company ID |
parent_category_id required | number ID of the parent product category |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 25214,
- "title": "Doughter 1",
- "parent_category_id": 24843
}, - {
- "id": 25213,
- "title": "Root 1"
}, - {
- "id": 25219,
- "title": "Root 2"
}
], - "meta": {
- "count": 94
}
}
The method allows you to create a product category.
company_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Product category name |
parent_category_id | integer <int32> Parent category ID (optional, but can be 0 or null if you don't need to specify the parent category) |
article | string vendor code |
comment | string A comment |
success | boolean Execution success status |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "title": "Manicure",
- "parent_category_id": 123456,
- "article": "123article",
- "comment": "Category of products for manicure"
}
{- "success": true,
- "data": {
- "id": 123456,
- "title": "Manicure",
- "parent_category_id": 123457
}, - "meta": [ ]
}
The method allows you to edit the product category
company_id required | number Location ID |
category_id required | number Product category ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Product category name |
parent_category_id | integer <int32> Parent category ID (optional, but can be 0 or null if you don't need to specify the parent category) |
article | string vendor code |
comment | string A comment |
success | boolean Execution success status |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "title": "Manicure",
- "parent_category_id": 123456,
- "article": "123article",
- "comment": "Category of products for manicure"
}
{- "success": true,
- "data": {
- "id": 123456,
- "title": "Manicure",
- "parent_category_id": 123457
}, - "meta": [ ]
}
The method allows you to delete a product category
company_id required | number Location ID |
category_id required | number Product category ID |
Accept required | string e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
company_id required | number Location ID |
search | string Example: search='test' parameter for searching by the name of those lists |
page | number Example: page=1 page number |
count | number Example: count=20 number of those lists per page |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of data objects | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "Tech map 1",
- "technological_card_items": [
- {
- "id": 3,
- "technological_card_id": 1,
- "storage_id": 4234,
- "good_id": 34234,
- "amount": 12,
- "unit": "l",
- "price": 0.0742,
- "title": "Consumable 3"
}
]
}, - {
- "id": "2",
- "title": "Tech map 2",
- "technological_card_items": [
- {
- "id": 4,
- "technological_card_id": 2,
- "storage_id": 4234,
- "good_id": 34235,
- "amount": 10,
- "unit": "l",
- "price": 0.02412,
- "title": "Consumable 4"
}
]
}
], - "meta": [ ]
}
company_id required | number Location ID |
staffId required | number Employee ID |
serviceId required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of data objects | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": "1",
- "title": "Tech map 1",
- "technological_card_items": [
- {
- "id": 3,
- "technological_card_id": 1,
- "storage_id": 4234,
- "good_id": 34234,
- "amount": 12,
- "unit": "l",
- "price": 0.0742,
- "title": "Consumable 3"
}
]
}, - "meta": [ ]
}
company_id required | number Location ID |
record_id required | number Appointment ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "service_id": 21558,
- "record_id": 1233243,
- "technological_cards": [
- {
- "id": 36069,
- "title": "Tech map",
- "technological_card_items": [
- {
- "id": 208568,
- "technological_card_id": 36069,
- "storage_id": 91303,
- "good_id": 6858783,
- "amount": 10,
- "price": 1000,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "consumables": [
- {
- "goods_transaction_id": 2180771,
- "record_id": 121793129,
- "service_id": 695486,
- "storage_id": 91303,
- "good_id": 6858783,
- "price": 1000,
- "amount": 10,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "meta": [ ]
}
company_id required | number Location ID |
record_id required | number Appointment ID |
service_id required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
delete_consumables | number Whether to remove consumables along with deleting bill of materials. Default 0 |
success | boolean Execution success status (true) |
Array of objects Array with object | |
object Metadata (empty array0) |
{- "success": true,
- "data": [
- {
- "service_id": 7224099,
- "record_id": 310013764,
- "technological_cards": [ ],
- "consumables": [ ]
}
], - "meta": {
- "count": 1
}
}
company_id required | number Location ID |
record_id required | number Appointment ID |
service_id required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
delete_consumables | number Whether to remove consumables along with deleting bill of materials. Default 0 |
success | boolean Execution success status (true) |
Array of objects Array with object | |
object Metadata (empty array0) |
{- "success": true,
- "data": [
- {
- "service_id": 7224099,
- "record_id": 310013764,
- "technological_cards": [ ],
- "consumables": [ ]
}
], - "meta": {
- "count": 1
}
}
company_id required | number Location ID |
record_id required | number Appointment ID |
service_id required | number Service ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
Array of objects List of consumables |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "consumables": [
- {
- "goods_transaction_id": 0,
- "record_id": 0,
- "service_id": 0,
- "storage_id": 0,
- "good_id": 0,
- "price": 0,
- "amount": 0
}
]
}
{- "success": true,
- "data": [
- {
- "service_id": 21558,
- "record_id": 1233243,
- "technological_cards": [
- {
- "id": 36069,
- "title": "Tech map",
- "technological_card_items": [
- {
- "id": 208568,
- "technological_card_id": 36069,
- "storage_id": 91303,
- "good_id": 6858783,
- "amount": 10,
- "price": 1000,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "consumables": [
- {
- "goods_transaction_id": 2180771,
- "record_id": 121793129,
- "service_id": 695486,
- "storage_id": 91303,
- "good_id": 6858783,
- "price": 1000,
- "amount": 10,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "meta": [ ]
}
company_id required | number Company ID |
page | number Example: page=1 page number |
count | number Example: count=20 number of transactions per page |
start_date | string Example: start_date='' period start date |
end_date | string Example: end_date='' period end date |
document_id | string Document ID |
changed_after | string Filtering product transactions modified/created since a specific date and time |
changed_before | string Filtering product transactions modified/created before a specific date and time |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 123456789,
- "document_id": 22256643,
- "type_id": "987654321",
- "type": "Something",
- "good": {
- "id": "111222333",
- "title": "Something"
}, - "storage": {
- "id": "333222111",
- "title": "Storage 1"
}, - "unit": {
- "id": "333222111",
- "title": "milliliter"
}, - "operation_unit_type": 1,
- "create_date": "2012-12-21T19:08:00+0400",
- "last_change_date": "2020-02-01T12:00:00+0400",
- "cost_per_unit": "1.07",
- "cost": "0.00",
- "discount": "10.00",
- "master": {
- "id": "112233445",
- "title": "James Smith"
}, - "supplier": {
- "id": "11112222",
- "title": "Best Supplier Ever"
}, - "record_id": 1,
- "service": {
- "id": "1234321",
- "title": "Service 4"
}, - "clients": {
- "id": "4321234",
- "name": "George Smith",
- "phone": 79876543210
}
}
], - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
document_id required | number <float> Document ID |
good_id required | number Item ID |
amount required | number Quantity |
cost_per_unit required | number <float> Unit cost |
discount required | number Discount in % |
cost required | number <float> Total transaction amount |
operation_unit_type required | number unit type: 1 - for sale, 2 - for write-off |
master_id | number ID of the employee who sold the product |
client_id | number ID of the customer who bought the product |
supplier_id | number Vendor ID |
comment | string A comment |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "document_id": 22254960,
- "good_id": 232674,
- "amount": 1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "operation_unit_type": 1,
- "master_id": 26781,
- "client_id": 0,
- "supplier_id": 0,
- "comment": "Transaction comment"
}
{- "success": true,
- "data": {
- "id": 3428010,
- "document_id": 22254960,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 26781,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "last_change_date": "2020-02-01T12:00:00+0400",
- "comment": "Transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe"
}, - "storage": {
- "id": 36539,
- "title": "Products"
}, - "supplier": [ ],
- "client": [ ],
- "master": {
- "id": "26781",
- "name": "Angelina Jolie"
}, - "unit": {
- "id": 1,
- "title": "Thing"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
transaction_id required | number transaction ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 3428010,
- "document_id": 22254960,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 26781,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "Transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe",
- "unit": "PC.",
- "value": "delete yy",
- "label": "delete yy",
- "article": "",
- "category": "goose category",
- "category_id": 303603,
- "salon_id": 91372,
- "good_id": 15086312,
- "cost": 500,
- "unit_id": 216760,
- "unit_short_title": "PC",
- "service_unit_id": 216760,
- "service_unit_short_title": "PC",
- "actual_cost": 0,
- "unit_actual_cost": 0,
- "unit_actual_cost_format": "0 USD",
- "unit_equals": 1,
- "barcode": "",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "actual_amounts": [ ],
- "last_change_date": "2021-03-05T18:21:34+0400"
}, - "storage": {
- "id": 36539,
- "title": "Products"
}, - "sale_unit": null,
- "service_unit": null,
- "supplier": [ ],
- "client": [ ],
- "master": {
- "id": "26781",
- "name": "Angelina Jolie"
}, - "unit": {
- "id": 1,
- "title": "Thing",
- "short_title": "PC."
}
}, - "meta": [ ]
}
transaction_id required | number transaction ID |
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
document_id required | number <float> Document ID |
good_id required | number Item ID |
amount required | number Quantity |
cost_per_unit required | number <float> Unit cost |
discount required | number Discount in % |
cost required | number <float> Total transaction amount |
operation_unit_type required | number unit type: 1 - for sale, 2 - for write-off |
master_id | number ID of the employee who sold the product |
client_id | number ID of the customer who bought the product |
supplier_id | number Vendor ID |
comment | string A comment |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 3428010,
- "document_id": 22254960,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "operation_unit_type": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 26781,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "last_change_date": "2020-02-01T12:00:00+0400",
- "comment": "Updated transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe"
}, - "storage": {
- "id": 36539,
- "title": "Products"
}, - "supplier": [ ],
- "client": [ ],
- "master": {
- "id": "26781",
- "name": "Angelina Jolie"
}, - "unit": {
- "id": 1,
- "title": "Thing"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
transaction_id required | number transaction ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
An inventory operation is created by submitting a document along with multiple product transactions in a single API request. If a payment type is specified, the corresponding financial transactions will be generated automatically.
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
type_id required | number Document type (sale 1, receipt 3, write-off 4, transfer 5) |
comment | string A comment |
create_date required | string <date-time> Document creation date |
master_id | number Employee ID |
storage_id required | number Inventory ID |
goods_transactions required | Array of objects An array of objects containing transaction parameters, similar to a request to create a product transaction |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "document": {
- "id": 22255506,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 91271,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1254,
- "comment": "test document comment",
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "storage": {
- "id": 91271,
- "title": "Secret place"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "transactions": [
- {
- "id": 3428012,
- "document_id": 22255506,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "storage_id": 91271,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 0,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "test transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe"
}, - "storage": {
- "id": 91271,
- "title": "Secret place"
}, - "supplier": [ ],
- "client": [ ],
- "master": [ ],
- "unit": {
- "id": 1,
- "title": "Thing"
}
}
]
}, - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
type_id required | number Document type (sale 1, receipt 3, write-off 7) |
comment | string A comment |
storage_id required | number Inventory ID |
create_date required | string <date-time> Date of the inventory transaction |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "type_id": 1,
- "comment": "Document comment",
- "storage_id": 36539,
- "create_date": "2025-09-21T23:00:00.000+03:00"
}
{- "success": true,
- "data": {
- "id": 22255503,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 36539,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1251,
- "comment": "Document comment",
- "create_date": "2017-04-24 20:00:00",
- "storage": {
- "id": 36539,
- "title": "Products"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "ccoordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
document_id required | number Document ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 22255503,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 36539,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1251,
- "comment": "Document comment",
- "create_date": "2017-04-24 20:00:00",
- "storage": {
- "id": 36539,
- "title": "Products"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
document_id required | number Document ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
type_id required | number Document type (sale 1, receipt 3, write-off 7) |
comment | string A comment |
storage_id required | number Inventory ID |
create_date required | string <date-time> Date of the inventory transaction |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 22255503,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 36539,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1251,
- "comment": "Updated document comment",
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "storage": {
- "id": 36539,
- "title": "Products"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "meta": [ ]
}
company_id required | number Company ID |
document_id required | number Document ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
document_id required | number Document ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 9053737,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 2640,
- "expense_id": 2640,
- "account_id": 35501,
- "amount": 434,
- "client_id": 4240788,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "Transaction comment",
- "item_id": 0,
- "target_type_id": 0,
- "record_id": 0,
- "expense": {
- "id": 2640,
- "title": "Provision of corporate services"
}, - "account": {
- "id": 35501,
- "title": "Cash register",
- "type_id": 0,
- "type": 0,
- "comment": "",
- "company_id": 4564
}, - "client": {
- "id": "4240788",
- "name": "Client",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}, - {
- "id": 9053738,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 2640,
- "expense_id": 2640,
- "account_id": 35501,
- "amount": 434,
- "client_id": 4240788,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "Transaction comment",
- "item_id": 0,
- "target_type_id": 0,
- "record_id": 0,
- "expense": {
- "id": 2640,
- "title": "Provision of corporate services"
}, - "account": {
- "id": 35501,
- "title": "Cash register",
- "type_id": 0,
- "type": 0,
- "comment": "",
- "company_id": 4564
}, - "client": {
- "id": "4240788",
- "name": "Client",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}
], - "meta": [ ]
}
document_id required | number Document ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (number of transactions found) |
{- "success": true,
- "data": [
- {
- "id": 3728232,
- "document_id": 22256643,
- "type_id": 1,
- "company_id": 4564,
- "good_id": 587018,
- "amount": -10,
- "cost_per_unit": 100,
- "discount": 0,
- "cost": 1000,
- "unit_id": 88272,
- "operation_unit_type": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "record_id": 0,
- "client_id": 0,
- "master_id": 49754,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "service_id": 0,
- "user_id": 3,
- "deleted": false,
- "pkg_amount": 0
}, - {
- "id": 3728233,
- "document_id": 22256643,
- "type_id": 1,
- "company_id": 4564,
- "good_id": 232674,
- "amount": -10,
- "cost_per_unit": 127.5,
- "discount": 0,
- "cost": 1275,
- "unit_id": 1,
- "operation_unit_type": 2,
- "storage_id": 36539,
- "supplier_id": 0,
- "record_id": 0,
- "client_id": 0,
- "master_id": 49754,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "service_id": 0,
- "user_id": 3,
- "deleted": false,
- "pkg_amount": 0
}
], - "meta": {
- "count": 2
}
}
Creating a transaction with a personal account involves creating a document, a transaction with a personal account, and a financial transaction within a single API request.
salon_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
client_id required | number ID of the client, the owner of the client personal account |
deposit_id required | number personal account ID |
amount required | number replenishment amount |
master_id | number Employee ID |
account_id required | number Checkout ID for payment |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "document": {
- "id": 1,
- "user_id": 1,
- "salon_id": 1,
- "type_id": 9,
- "type": {
- "id": 9,
- "title": "Account replenishment (advance payment)"
}, - "comment": "",
- "number": 1,
- "salon": {
- "id": 1,
- "title": "Branch in New York",
- "public_title": "Branch in New York",
- "business_group_id": 1,
- "business_type_id": 1,
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "129090",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "site": "www.example.com",
- "allow_delete_record": true,
- "allow_change_record": true
}, - "user": {
- "id": 1,
- "name": "James Smith",
- "phone": "+1-315-555-0175"
}
}, - "deposits_transactions": [
- {
- "id": 1,
- "salon_id": 1,
- "salon_group_id": 1,
- "document_id": 1,
- "deposit_id": 1,
- "deposit_type_id": 1,
- "master_id": 1,
- "user_id": 1,
- "amount": 100.5,
- "comment": "",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false,
- "deposit": {
- "id": 1,
- "deposit_type_id": 1,
- "salon_group_id": 1,
- "initial_balance": 10000,
- "balance": 12239.56,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type 1",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}
}
], - "payment_transactions": [
- {
- "id": 1,
- "document_id": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 10,
- "expense_id": 10,
- "account_id": 1,
- "amount": 100.5,
- "client_id": 1,
- "master_id": 1,
- "supplier_id": 0,
- "comment": "",
- "item_id": 1,
- "target_type_id": 0,
- "record_id": 0,
- "goods_transaction_id": 0,
- "type": {
- "id": 10,
- "title": "Refill"
}
}
]
}, - "meta": [ ]
}
company_id required | number Location ID |
client_id required | number Client ID |
Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "data": [
- {
- "deposit": {
- "id": 1,
- "salon_group_id": 1,
- "deposit_type_id": 1,
- "initial_balance": 0,
- "balance": 1000,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type header",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}
}
], - "meta": {
- "count": 1
}
}
chain_id required | number Chain ID |
balance_from | number Minimum balance for filtering |
balance_to | number Maximum balance for filtering |
page | number Page number |
limit | number Number of items per page |
Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "data": [
- {
- "deposit": {
- "id": 1,
- "salon_group_id": 1,
- "deposit_type_id": 1,
- "initial_balance": 0,
- "balance": 1000,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type header",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}, - "client": {
- "id": 1,
- "name": "Client name",
- "phone": 71234567890
}
}
], - "meta": {
- "count": 1
}
}
chain_id required | number Chain ID |
phone required | number Customer phone number |
Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "data": [
- {
- "deposit": {
- "id": 1,
- "salon_group_id": 1,
- "deposit_type_id": "1,",
- "initial_balance": 0,
- "balance": 1000,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type header",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}
}
], - "meta": {
- "count": 1
}
}
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "USA",
- "full_title": "United States",
- "phone_code": "1",
- "phone_template": "+1 xxx xxx-xx-xx",
- "phone_example": "+1 760 230-63-78",
- "currency": "USD",
- "exchange": "1"
}, - {
- "id": "2",
- "title": "Latvia",
- "full_title": "Latvian republic",
- "phone_code": "371",
- "phone_template": "+371 xx xxx xxx",
- "phone_example": "+371 21 654 987",
- "currency": "EUR",
- "exchange": "50"
}
], - "meta": [ ]
}
The location chain object has the following fields:
Field | Type | Description |
---|---|---|
id | number | Location chain ID |
title | string | Location chain name |
companies | array | List of chain locations |
access | object | Object with access rights for chain management |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data |
{- "success": true,
- "data": [
- {
- "id": 509,
- "title": "Chain of salons in New York",
- "companies": [
- {
- "id": 38726,
- "title": "Salon in New York"
}, - {
- "id": 39287,
- "title": "Salon in New York"
}
], - "access": {
- "settings_access": "1",
- "clients_access": "1",
- "users_access": "1",
- "loyalty_access": "1",
- "loyalty_cards_manual_transactions_access": "1",
- "chain_services_access": "1"
}
}, - {
- "id": 508,
- "title": "Chain of salons in New York",
- "companies": [
- {
- "id": 38545,
- "title": "Salon in New York"
}, - {
- "id": 38704,
- "title": "Salon in New York"
}
], - "access": {
- "settings_access": "1",
- "clients_access": "1",
- "users_access": "1",
- "loyalty_access": "1",
- "loyalty_cards_manual_transactions_access": "1",
- "chain_services_access": "1"
}
}
]
}
start_date: Report date
master_id: Employee ID
company_id required | integer Company ID |
start_date | string Example: start_date='' period start date |
master_id | integer Example: master_id=0 Employee ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "stats": {
- "clients": 7,
- "clients_average": 123.45,
- "records": 14,
- "records_average": 4231.51,
- "visit_records": 13,
- "visit_records_average": 100500.01,
- "non_visit_records": 1,
- "non_visit_records_average": 200,
- "targets": 14,
- "targets_paid": 10255,
- "goods": 4,
- "goods_paid": 12452.18,
- "certificates": 1,
- "certificates_paid": 9876,
- "abonement": 0,
- "abonement_paid": 0
}, - "paids": {
- "accounts": [
- {
- "title": "Cards",
- "amount": 6987
}, - {
- "title": "Cash",
- "amount": 54321.13
}, - {
- "title": "Cash register",
- "amount": 12531
}
], - "discount": [
- {
- "title": "Advance Discount",
- "amount": 1816.875
}, - {
- "title": "Written off bonuses",
- "amount": 800
}, - {
- "title": "Promotion discount",
- "amount": 123
}
], - "total": {
- "accounts": 2657.13,
- "discount": 1241.875
}
}, - "z_data": {
- "2025-09-21T23:00:00.000+03:00": [
- {
- "client_id": "11223344",
- "client_name": "John Smith",
- "client_phone": "+1-315-555-0175",
- "masters": [
- {
- "master_id": "321123",
- "master_name": "Robert Brown",
- "service": [
- {
- "item_title": "Highlighting from 9 strands",
- "first_cost": 3500,
- "discount": 0,
- "result_cost": 3500,
- "transactions": [
- {
- "accounts_amount": 0,
- "loyalty_amount": 700,
- "payment_type": "Card: Gold Card"
}, - {
- "accounts_amount": 0,
- "loyalty_amount": 100,
- "payment_type": "Card: Gold Card"
}, - {
- "accounts_amount": 0,
- "loyalty_amount": 1,
- "payment_type": "Card: Bonus card"
}
]
}
], - "good": [
- {
- "item_title": "Spray For Hair",
- "first_cost": 15,
- "discount": 2.25,
- "result_cost": 12.75,
- "transactions": [
- {
- "accounts_amount": 12.75,
- "loyalty_amount": 0,
- "payment_type": "Cash"
}
]
}
], - "others": {
- "item_title": "Other operations",
- "first_cost": 347,
- "discount": 0,
- "result_cost": 347,
- "transactions": [
- {
- "accounts_amount": 23,
- "loyalty_amount": 0,
- "payment_type": "Cash"
}, - {
- "accounts_amount": 324,
- "loyalty_amount": 0,
- "payment_type": "Cash"
}
]
}
}
]
}
]
}, - "currency": "USD"
}, - "meta": [ ]
}
field_category required | string Example: record Field category.
|
company_id required | integer Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "salon_id": 1,
- "custom_field": {
- "id": 1,
- "code": "my_text_field",
- "show_in_ui": true,
- "title": "test field",
- "user_can_edit": true,
- "type": {
- "code": "text",
- "title": "Text"
}
}
}
], - "meta": [ ]
}
To add a field, the user must be part of the Chain associated with the location and have the appropriate access rights in the following section:
Settings → Access → Additional Fields → Create additional fields
field_category required | string Example: record Field category.
|
company_id required | integer Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
type required | string Field type |
code required | string Field ID |
title required | string Field name |
user_can_edit required | boolean Can the user edit the field |
show_in_ui required | boolean Whether to show the field in the interface |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "type": "text",
- "code": "my_text_field",
- "title": "test field",
- "user_can_edit": true,
- "show_in_ui": true
}
{- "success": true,
- "data": {
- "id": 1,
- "salon_id": 1,
- "custom_field": {
- "id": 1,
- "code": "my_text_field",
- "show_in_ui": true,
- "title": "test field",
- "user_can_edit": true,
- "type": {
- "code": "text",
- "title": "Text"
}
}
}, - "meta": [ ]
}
To update a field, the user must be part of the Chain associated with the location and have the appropriate access rights in the following section
Settings → Access → Additional Fields → Modify additional fields
field_category required | string Example: record Field category.
|
company_id required | integer Company ID |
field_id required | integer field ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
type required | string Field type |
code required | string Field ID |
title required | string Field name |
user_can_edit required | boolean Can the user edit the field |
show_in_ui required | boolean Whether to show the field in the interface |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "type": "text",
- "code": "my_text_field",
- "title": "test field",
- "user_can_edit": true,
- "show_in_ui": true
}
{- "success": true,
- "data": null,
- "meta": {
- "message": "Saved"
}
}
To remove a field, the user must be part of the Chain associated with the location and have the appropriate access rights in the following section:
Settings → Access → Additional Fields → Remove additional fields
field_category required | string Example: record Field category.
|
company_id required | integer Company ID |
field_id required | integer field ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": null,
- "meta": {
- "message": "Deleted"
}
}
Number | Title |
---|---|
1 | Delivered |
2 | Not delivered |
4 | Sent to phone |
8 | Transferred to the operator |
16 | Rejected by operator |
52 | Not enough funds |
In the event of an error, the corresponding HTTP status code is returned. In some cases, a descriptive error message is also included in the response. The following error codes may be returned by all API methods:
error code | Http status code | Title | Description |
---|---|---|---|
5 | 400 | ENTITY_VALIDATION_ERROR | The request body did not pass validation |
10 | 400 | FIELD_VALIDATION_ERROR | Parameter not validated |
15 | 403 | ACCESS_FORBIDDEN | The action is not available, the application does not have the required permissions. |
20 | 401 | INVALID_PARTNER_TOKEN | partner_token missing or invalid |
30 | 404 | RESOURCE_NOT_FOUND | The resource at the requested path does not exist |
When sending SMS, the delivery_callback_url attribute is passed in the request - this is the url to which message statuses should be sent.
Use it to send message statuses. Url to which message statuses should be sent - https://app.alteg.io/smsprovider/status/callback/{partner_token}
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
id | string Identifier |
status | number Message status |
payment_sum | number Full message cost |
currency_iso | string Currency ISO |
parts_amount | number Amount of message's parts |
[- {
- "id": "232674",
- "status": 1,
- "payment_sum": 0.045,
- "currency_iso": "EUR",
- "parts_amount": 2
}
]
{- "success": true
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
{- "success": true,
- "data": {
- "agreement": {
- "content": "text of the agreement"
}
}, - "meta": [ ]
}
The transferred phone number is checked for compliance with Altegio rules.
phone required | string Checked phone number |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": {
- "is_valid": true
}, - "meta": [ ]
}
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
id | string Unique ID of the sales document |
date | string <date-time> Date and time the document was sent for printing (in ISO-8601 format) |
document_id | integer <int32> Internal document identifier in the Altegio system |
type | string Enum: "sale" "return" Document type (list of possible values) |
print_receipt | boolean Whether to print a paper check at the checkout during fiscalization |
object Client entity | |
Array of objects List of positions in the check | |
Array of objects List of fees applied per check | |
tax | string Type of taxation system (slug from the list of taxation systems) |
object The Essence of a Cashier | |
object Options for the connected POS terminal | |
callback_url | string Link to update fiscal status |
custom_text | string Arbitrary text for printing on a receipt |
{- "id": "d72fece5-6825-4895-9395-0133195612a4",
- "date": "2025-09-21T23:00:00.000+03:00",
- "document_id": 239083104,
- "type": "sale",
- "print_receipt": true,
- "positions": [
- {
- "type": "service",
- "title": "Consultation",
- "price": 13.19,
- "quantity": 1,
- "discount_amount": 2.54,
- "vat": "ru_vat_10",
- "payment_method": "payment",
- "barcode": "12345"
}
], - "payments": [
- {
- "type": "card",
- "sum": 5.55
}, - {
- "type": "cash",
- "sum": 4.55
}, - {
- "type": "prepaid",
- "sum": 0.55
}
], - "tax": "ru_osn",
- "cashier": {
- "uid": "4895-9395-0133195612a4",
- "name": "John Smith",
- "position": "Cashier"
}, - "pos": {
- "enabled": true,
- "slip_count": 2
}, - "custom_text": "some custom text"
}
{- "id": "d72fece5-6825-4895-9395-0133195612a4",
- "status": "success",
- "code": 0,
- "message": "OK"
}
A list of tax systems and VAT available for a country can be obtained by requesting the country ID for which the list is to be obtained. The country ID can be obtained from list of countries.
The list is an array of tax systems with a nested VAT array for each tax system.
The taxation system has the following structure:
Field | Type | Description |
---|---|---|
title | string | Name of taxation system |
slug | string | Code name for the taxation system |
vats | Array of objects(Vat[]) | List of available VAT for the taxation system |
VAT has the following structure:
Field | Type | Description |
---|---|---|
title | string | Title VAT |
slug | string | Code name VAT |
countryId required | number Example: 1 Country ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of taxation systems found) |
{- "success": true,
- "data": [
- {
- "title": "General DOS",
- "slug": "ru_osn",
- "vats": [
- {
- "title": "0%",
- "slug": "ru_vat_0"
}, - {
- "title": "10%",
- "slug": "ru_vat_10"
}, - {
- "title": "20%",
- "slug": "ru_vat_20"
}, - {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Simplified simplified tax system (Income)",
- "slug": "ru_usn",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Simplified simplified tax system (Income minus Expense)",
- "slug": "ru_usnr",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Single tax on imputed income UTII",
- "slug": "ru_envd",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Unified agricultural tax UST",
- "slug": "ru_esn",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Patent taxation system",
- "slug": "ru_psn",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}
], - "meta": {
- "count": 6
}
}
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Conetnt-Type required | string application/json |
Authorization required | string Bearer partner_token |
{ }
chain_id required | integer Chain ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Template ID |
type | string Enum: "big" "mid" "small" "custom" Template option |
body | string Template text |
message_type | string Enum: "loyalty_discount_expiration" "loyalty_cashback_expiration" "loyalty_discount_increased" "loyalty_discount_decreased" "loyalty_card_created" "loyalty_card_withdraw" "loyalty_withdraw_cancelled" "loyalty_card_manual" "loyalty_card_manual_withdraw" "loyalty_card_cashback" "loyalty_card_cashback_cancelled" "loyalty_card_income" "loyalty_discount_changed" "loyalty_cashback_changed" "loyalty_settings_abonement_notification" Message type |
[- {
- "id": 12,
- "type": "small",
- "message_type": "loyalty_discount_expiration",
- "body": "Your discount expires tomorrow"
}
]
chain_id required | integer Chain ID |
include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Share name |
type required | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
service_item_type required | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
good_item_type required | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
value_unit required | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the promotion type "Discount by condition") |
expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
loyalty_card_type_ids | Array of integers <int32> [ items <int32 > ] Identifiers of types of cards for which the promotion is valid |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
required | Array of objects (Root Type for LoyaltyProgramRuleRequest) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) |
company_ids required | Array of integers <int32> [ items <int32 > ] Identifiers of locations where the promotion is valid |
allowed_service_ids | Array of integers <int32> [ items <int32 > ] Service and service category identifiers (if application type is set for some services) |
allowed_good_ids | Array of integers <int32> [ items <int32 > ] Item IDs (if application type is set for some items) |
allowed_good_category_ids | Array of integers <int32> [ items <int32 > ] Product category identifiers (if application type is set for some products) |
id | integer <int32> Stock ID |
title | string Share name |
type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
service_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
good_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
value_unit | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the type of promotion "Discount by condition") |
expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
on_changed_notification_template_id | integer <int32> Notification template ID when changing bonus or discount |
on_expiration_notification_template_id | integer <int32> Identifier of the notification template when a bonus or discount burns |
Array of objects (Root Type for LoyaltyCardType) Type of cards for which the promotion is valid (on request) | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRule) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) (on request) | |
Array of objects (Company) Locations where the promotion is valid (on request) | |
Array of objects (Root Type for LoyaltyEntityAttendanceItem) Related entities for selective application of the promotion (on request) |
{- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "allowed_service_ids": [
- 53,
- 92
], - "allowed_good_ids": { },
- "allowed_good_category_ids": { },
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_type_ids": [
- 51,
- 29
], - "on_changed_notification_template": {
- "type": "custom",
- "body": "Your discount has changed"
}, - "on_expiration_notification_template": {
- "type": "big"
}, - "rules": [
- {
- "parameter": 10,
- "value": 2.5,
- "service_id": 0
}, - {
- "parameter": 30,
- "value": 7.5,
- "service_id": 0
}
], - "company_ids": [
- 49
]
}
{- "id": 34,
- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "on_changed_notification_template_id": 55,
- "on_expiration_notification_template_id": 84,
- "loyalty_card_types": [
- {
- "id": 51,
- "title": "Card type 1"
}, - {
- "id": 29,
- "title": "Card type 2"
}
], - "on_changed_notification_template": {
- "id": 55,
- "type": "custom",
- "body": "Your discount has changed",
- "message_type": "loyalty_discount_changed"
}, - "on_expiration_notification_template": {
- "id": 84,
- "type": "big",
- "body": "Detailed text about discount burning",
- "message_type": "loyalty_discount_expiration"
}, - "rules": [
- {
- "id": 94,
- "parameter": 10,
- "value": 2.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}, - {
- "id": 74,
- "parameter": 30,
- "value": 7.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}
], - "companies": [
- {
- "id": 49,
- "title": "Branch",
- "country": "United States",
- "country_id": 5,
- "city": "New York",
- "city_id": 83,
- "phone": "+1-315-555-0175",
- "timezone": "America/New_York",
- "address": "Branch address",
- "coordinate_lat": "40.730610",
- "coordinate_lng": 18.63
}
], - "applicable_items": [
- {
- "id": 53,
- "title": "Service category 1",
- "is_service": true,
- "is_category": true
}, - {
- "id": 92,
- "title": "Service category 2",
- "is_service": true,
- "is_category": true
}
]
}
chain_id required | integer Chain ID |
loyalty_program_id required | integer Promotion ID |
include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
id | integer <int32> Stock ID |
title | string Share name |
type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
service_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
good_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
value_unit | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the type of promotion "Discount by condition") |
expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
on_changed_notification_template_id | integer <int32> Notification template ID when changing bonus or discount |
on_expiration_notification_template_id | integer <int32> Identifier of the notification template when a bonus or discount burns |
Array of objects (Root Type for LoyaltyCardType) Type of cards for which the promotion is valid (on request) | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRule) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) (on request) | |
Array of objects (Company) Locations where the promotion is valid (on request) | |
Array of objects (Root Type for LoyaltyEntityAttendanceItem) Related entities for selective application of the promotion (on request) |
{- "id": 34,
- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "on_changed_notification_template_id": 55,
- "on_expiration_notification_template_id": 84,
- "loyalty_card_types": [
- {
- "id": 51,
- "title": "Card type 1"
}, - {
- "id": 29,
- "title": "Card type 2"
}
], - "on_changed_notification_template": {
- "id": 55,
- "type": "custom",
- "body": "Your discount has changed",
- "message_type": "loyalty_discount_changed"
}, - "on_expiration_notification_template": {
- "id": 84,
- "type": "big",
- "body": "Detailed text about discount burning",
- "message_type": "loyalty_discount_expiration"
}, - "rules": [
- {
- "id": 94,
- "parameter": 10,
- "value": 2.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}, - {
- "id": 74,
- "parameter": 30,
- "value": 7.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}
], - "companies": [
- {
- "id": 49,
- "title": "Branch",
- "country": "United States",
- "country_id": 5,
- "city": "New York",
- "city_id": 83,
- "phone": "+1-315-555-0175",
- "timezone": "America/New_York",
- "address": "Branch address",
- "coordinate_lat": "40.730610",
- "coordinate_lng": 18.63
}
], - "applicable_items": [
- {
- "id": 53,
- "title": "Service category 1",
- "is_service": true,
- "is_category": true
}, - {
- "id": 92,
- "title": "Service category 2",
- "is_service": true,
- "is_category": true
}
]
}
chain_id required | integer Chain ID |
loyalty_program_id required | integer Promotion ID |
include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
title | string Share name |
usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
loyalty_card_type_ids | Array of integers <int32> [ items <int32 > ] Identifiers of types of cards for which the promotion is valid |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRuleRequest) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) | |
company_ids | Array of integers <int32> [ items <int32 > ] Identifiers of locations where the promotion is valid |
allowed_service_ids | Array of integers <int32> [ items <int32 > ] Service and service category identifiers (if application type is set for some services) |
allowed_good_ids | Array of integers <int32> [ items <int32 > ] Item IDs (if application type is set for some items) |
allowed_good_category_ids | Array of integers <int32> [ items <int32 > ] Product category identifiers (if application type is set for some products) |
id | integer <int32> Stock ID |
title | string Share name |
type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
service_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
good_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
value_unit | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the type of promotion "Discount by condition") |
expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
on_changed_notification_template_id | integer <int32> Notification template ID when changing bonus or discount |
on_expiration_notification_template_id | integer <int32> Identifier of the notification template when a bonus or discount burns |
Array of objects (Root Type for LoyaltyCardType) Type of cards for which the promotion is valid (on request) | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRule) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) (on request) | |
Array of objects (Company) Locations where the promotion is valid (on request) | |
Array of objects (Root Type for LoyaltyEntityAttendanceItem) Related entities for selective application of the promotion (on request) |
{- "title": "Cumulative discount for some services and not for goods",
- "allowed_service_ids": [
- 53,
- 92
], - "allowed_good_ids": { },
- "allowed_good_category_ids": { },
- "usage_limit": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "loyalty_card_type_ids": [
- 51,
- 29
], - "on_changed_notification_template": {
- "type": "custom",
- "body": "Your discount has changed"
}, - "on_expiration_notification_template": {
- "type": "big"
}, - "rules": [
- {
- "parameter": 10,
- "value": 2.5,
- "service_id": 0
}, - {
- "parameter": 30,
- "value": 7.5,
- "service_id": 0
}
], - "company_ids": [
- 49
]
}
{- "id": 34,
- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "on_changed_notification_template_id": 55,
- "on_expiration_notification_template_id": 84,
- "loyalty_card_types": [
- {
- "id": 51,
- "title": "Card type 1"
}, - {
- "id": 29,
- "title": "Card type 2"
}
], - "on_changed_notification_template": {
- "id": 55,
- "type": "custom",
- "body": "Your discount has changed",
- "message_type": "loyalty_discount_changed"
}, - "on_expiration_notification_template": {
- "id": 84,
- "type": "big",
- "body": "Detailed text about discount burning",
- "message_type": "loyalty_discount_expiration"
}, - "rules": [
- {
- "id": 94,
- "parameter": 10,
- "value": 2.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}, - {
- "id": 74,
- "parameter": 30,
- "value": 7.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}
], - "companies": [
- {
- "id": 49,
- "title": "Branch",
- "country": "United States",
- "country_id": 5,
- "city": "New York",
- "city_id": 83,
- "phone": "+1-315-555-0175",
- "timezone": "America/New_York",
- "address": "Branch address",
- "coordinate_lat": "40.730610",
- "coordinate_lng": 18.63
}
], - "applicable_items": [
- {
- "id": 53,
- "title": "Service category 1",
- "is_service": true,
- "is_category": true
}, - {
- "id": 92,
- "title": "Service category 2",
- "is_service": true,
- "is_category": true
}
]
}
chain_id required | integer Chain ID |
loyalty_program_id required | integer Promotion ID |
include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
chain_id required | integer Chain ID |
created_after required | string <date> Sample start date in Y-m-d format |
created_before required | string <date> Sample end date in Y-m-d format |
types | Array of strings Items Enum: "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" Types of loyalty transactions included in the selection: 1 - Promotion discount, 2 - Loyalty program accrual, 3 - Loyalty card withdrawal, 4 - Referral program accrual, 5 - Manual replenishment, 6 - Manual withdrawal, 7 - Overdue points withdrawal , 8 - Withdrawal from the gift card, 9 - Use of the membership, 10 - Recalculation of the cost of the membership, 11 - Withdrawal from the personal account |
company_ids | Array of integers Loyalty transaction affiliate IDs included in the sample |
visit_ids | Array of integers Loyalty transaction visit IDs included in the sample |
page | integer Selection page |
count | integer Number of results per selection page |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of items in the response) |
{- "success": true,
- "data": [
- {
- "id": 0,
- "visit_id": 0,
- "status_id": 0,
- "amount": 0,
- "type_id": 0,
- "card_id": 0,
- "program_id": 0,
- "certificate_id": 0,
- "abonement_id": 0,
- "salon_group_id": 0,
- "item_id": 0,
- "item_type_id": 0,
- "item_record_id": 0,
- "goods_transaction_id": 0,
- "services_transaction_id": 0,
- "is_discount": true,
- "is_loyalty_withdraw": true,
- "type": {
- "id": 0,
- "title": "string"
}
}
], - "meta": {
- "count": 0
}
}
1
) - location ID1
) - product ID (gift card/ membership)company_id required | number Location ID |
good_Id required | number Product ID (membership/gift card) |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
object (LoyaltyGenerateCode200Option) | |
required | object (LoyaltyGenerateCode200DataOption) |
meta required | Array of objects |
success required | boolean |
object (LoyaltyGenerateCodeErrorOption) | |
required | object (LoyaltyGenerateCodeErrorMetaOption) |
success required | boolean |
object (LoyaltyGenerateCodeErrorOption) | |
required | object (LoyaltyGenerateCodeErrorMetaOption) |
success required | boolean |
{- "success": true,
- "data": {
- "code": "1"
}, - "meta": [ ]
}
A list of membership types available at a location can be obtained by requesting the location ID.
The list can be filtered by membership type name by passing the title parameter. Pagination is supported, specified by the page
and page_size
parameters.
The list is an array of membership types.
Membership type has the following structure:
Field | Type | Description |
---|---|---|
id | number | Membership type identifier |
title | string | Membership type name |
allow_freeze | boolean | Is it possible to freeze memberships? true - allowed, false - not allowed |
freeze limit | number | Maximum total freezing period (days) |
salon_group_id | number | Identifier of the chain in which the membership type is valid |
period | number | Membership expiration date (0 if not set) |
period_unit_id | number | Membership expiration unit (list of possible values, if not set - 0) |
is_allow_empty_code | boolean | Allow the sale of a membership without a code? true - allow, false - do not allow |
is_united_balance | boolean | Total or separate membership balance: true - total, false - separate |
united_balance_services_count | number | Number of visits for total balance |
Measurement units of subscription type validity period
Meaning | Description |
---|---|
1 | Day |
2 | Week |
3 | Month |
4 | Year |
company_id required | number Company ID |
title | string Membeship type name |
page | number Page number |
page_size | number The number of output lines per page. Maximum 100 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Conetnt-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of subscription types found) |
{- "success": true,
- "data": [
- {
- "id": 12233,
- "salon_group_id": 123,
- "title": "Subscription with the possibility of freezing for 14 days",
- "period": 0,
- "period_unit_id": 0,
- "allow_freeze": true,
- "freeze_limit": 14,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0
}, - {
- "id": 255789,
- "salon_group_id": 456,
- "title": "Subscription for 6 months",
- "period": 6,
- "period_unit_id": 3,
- "allow_freeze": false,
- "freeze_limit": 0,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0
}
], - "meta": {
- "count": 2
}
}
A list of membership types available at a location can be obtained by querying the location ID and membership type IDs.
The list is an array of membership types.
&ids[]={id}
company_id required | number Company ID |
ids[] | number Membership type ID (you can specify several additional parameters &ids[]={id} |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of subscription types found) |
{- "success": true,
- "data": [
- {
- "id": 12233,
- "salon_group_id": 123,
- "title": "Subscription with the possibility of freezing for 14 days",
- "period": 0,
- "period_unit_id": 0,
- "allow_freeze": true,
- "freeze_limit": 14,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0
}
], - "meta": {
- "count": 1
}
}
A list of gift card types available at a location can be obtained by querying the location ID.
The list can be filtered by the name of the gift card type by passing the title parameter.
Pagination is supported, specified by the page
and page_size
parameters.
The list is an array of gift card types.
Gift card type has the following structure:
Field | Type | Description |
---|---|---|
id | number | Gift card type identifier |
title | string | Gift card type name |
balance | number | Gift card denomination |
is_multi | boolean | Write-off type: true - multiple write-off, false - single write-off |
company_group_id | number | ID of the chain where the gift card type is valid |
item_type_id | number | Application Constraint (list of possible values) |
expiration_type_id | number | Expiration limit (list of possible values) |
expiration_date | string | Fixed burn date in ISO8601 format (null if not set) |
expiration_timeout | number | Gift card validity period from the date of sale (0 if not set) |
expiration_timeout_unit_id | number | The unit of measurement of the validity period of the gift card from the moment of sale (list of possible values, if not set - 0) |
is_allow_empty_code | boolean | Allow sale of gift card without code? true - allow, false - do not allow |
Meaning | Description |
---|---|
0 | Unlimited |
1 | Any services without products |
2 | Any products without services |
3 | Some services without products |
4 | Some services and any products |
Gift Card Type Expiration Limit
Meaning | Description |
---|---|
0 | No expiration date |
1 | Fixed date for all instances |
2 | Fixed period of validity from the date of sale |
Units of certificate type validity period
Meaning | Description |
---|---|
1 | Day |
2 | Week |
3 | Month |
4 | Year |
company_id required | number Company ID |
title | string Gift card type name |
page | number Page number |
page_size | number The number of output lines per page. Maximum 100 |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | integer Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificate types found) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Fixed burn date certificate without application restrictions",
- "balance": 10,
- "is_multi": true,
- "company_group_id": 12,
- "item_type_id": 0,
- "expiration_type_id": 1,
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_timeout": 0,
- "expiration_timeout_unit_id": 0,
- "is_allow_empty_code": true
}, - {
- "id": 11,
- "title": "Certificate valid for 6 months from the date of sale for any goods without services",
- "balance": 100,
- "is_multi": false,
- "company_group_id": 12,
- "item_type_id": 2,
- "expiration_type_id": 2,
- "expiration_timeout": 6,
- "expiration_timeout_unit_id": 3,
- "is_allow_empty_code": false
}
], - "meta": {
- "count": 2
}
}
A list of gift card types available at the location can be obtained by querying the location ID and gift card type IDs.
The list is an array of gift card types.
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificate types found) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Fixed burn date certificate without application restrictions",
- "balance": 10,
- "is_multi": true,
- "company_group_id": 12,
- "item_type_id": 0,
- "expiration_type_id": 1,
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_timeout": 0,
- "expiration_timeout_unit_id": 0,
- "is_allow_empty_code": true
}
], - "meta": {
- "count": 1
}
}
The method allows you to get a list of promotions that are active for the specified location.
company_id required | number Company ID |
include | string The first_transaction_date value adds the date of the first stock transaction to the response. |
type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, User user_token |
success | boolean Execution success status. |
Array of objects An array of data objects. | |
object Metadata (contains the number of objects found) |
{- "success": true,
- "data": [
- {
- "id": 53591,
- "title": "100 rub discount on Altegio Implementation Consultation",
- "type": "discount_static",
- "loyalty_type_id": 1,
- "item_type_id": 4,
- "service_item_type": "custom_allowed",
- "good_item_type": "any_allowed",
- "value_unit_id": 2,
- "value_unit": "amount",
- "group_id": 502054,
- "usage_limit": 0,
- "visit_multiplicity": 1,
- "sold_items_multiplicity": 1,
- "current_package_progress": 0,
- "allowed_usages_amount": 0,
- "expiration_timeout": 0,
- "expiration_timeout_unit": "day",
- "expiration_notification_timeout": 0,
- "params_source_type": "loyalty_card",
- "on_changed_notification_template_id": 0,
- "on_expiration_notification_template_id": 0
}
], - "meta": {
- "count": 1
}
}
The method allows you to get statistics on returning, new and lost customers
company_id required | number Company ID |
date_to required | string Period end date |
date_from required | string Period start date |
loyalty_program_id required | string Promotion ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, User user_token |
success | boolean Execution success status |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "client_stats": {
- "new": {
- "all_count": 0,
- "lost_count": 0,
- "returned_count": 0,
- "returned_percent": 0
}, - "old": {
- "all_count": 0,
- "lost_count": 0,
- "returned_count": 0,
- "returned_percent": 0
}, - "total": {
- "all_count": 0,
- "lost_count": 0,
- "returned_count": 0,
- "returned_percent": 0
}
}, - "visits_stats_by_day": [
- {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_count": 0,
- "old_count": 0
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_count": 0,
- "old_count": 0
}
]
}, - "meta": [ ]
}
The method allows you to get statistics on revenue.
company_id required | number Company ID |
date_to required | string Period end date |
date_from required | string Period start date |
loyalty_program_id required | string Promotion ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, User user_token |
success | boolean Execution success status |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "income_stats": {
- "new": {
- "all_sum": 0,
- "returned_sum": 0
}, - "old": {
- "all_sum": 0,
- "returned_sum": 0
}, - "total": {
- "all_sum": 0,
- "returned_sum": 0
}
}, - "currency": {
- "id": 1,
- "iso": "RUB",
- "name": "US Dollar",
- "symbol": "USD",
- "is_symbol_after_amount": true
}, - "income_stats_by_day": [
- {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_sum": 0,
- "old_sum": 0
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_sum": 0,
- "old_sum": 0
}
]
}, - "meta": [ ]
}
The method allows you to get the return statistics for an employee
company_id required | number Company ID |
date_to required | string Period end date |
date_from required | string Period start date |
loyalty_program_id required | string Promotion ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, User user_token |
success | boolean Execution success status |
Array of objects Array with data objects | |
object Metadata (contains the number of objects found) |
{- "success": true,
- "data": [
- {
- "client_stats": {
- "all_count": 1,
- "lost_count": 0,
- "returned_count": 1,
- "returned_percent": 100
}, - "staff": {
- "id": 1140369,
- "name": "Doniella Davy"
}
}
], - "meta": {
- "count": 1
}
}
The JSON Object containing the user appointment parameters has the following fields:
Field | Type | Mandatory | Description |
---|---|---|---|
id | number | YES | Appointment ID |
services | array of numbers | YES | List of ID service appointments |
company | object | YES | Company parameters |
staff | object | YES | Parameters of the specialist who was booked |
clients_count | int | YES | Number of clients |
date | string | YES | Session date |
datetime | string | YES | Session date in ISO |
create_date | string | YES | Appointment creation date |
length | number | YES | Session duration |
deleted | boolean | YES | Has the appointment been created ? (true if deleted) |
notify_by_sms | number | NO | Number of hours in advance to send an SMS reminder for the appointment. Set to 0 to disable SMS reminders |
notify_by_email | number | NO | Number of hours in advance to send an email reminder for the appointment. Set to 0 to disable email reminders |
comment | string | YES | Appointment Comment |
master_requested | boolean | YES | Whether a specific specialist was specified when booking (false if "any specialist" was specified) |
online | boolean | YES | Indicates whether the appointment was created online by the client (true) or manually by an administrator (false) |
visit_attendance | number | YES | 2 - The user confirmed the appointment, 1 - The user came, the services were provided, 0 - the user was waiting, -1 - the user did not come to visit |
api_id | string | NO | External Appointment ID |
last_change_date | string | NO | Date of the last edit of the appointment |
prepaid | boolean | NO | Is online payment available for booking |
prepaid_confirmed | boolean | NO | Online payment status |
last_change_date | string | NO | Date of the last edit of the appointment |
activity_id | int | NO | ID bringing group event |
Each object in the services array has the following fields:
Field | Type | Description |
---|---|---|
id | number | Service ID |
title | string | Service name |
cost | float | Service cost |
price_min | float | Minimum price of the service |
price_max | float | Maximum service price |
discount | float | Discount |
amount | int | Number of ordered services |
session_length | int | Service duration in seconds (only if filter by employee is set) |
The company object has the following fields:
Field | Type | Description |
---|---|---|
id | number | Company ID |
title | string | Company name |
country_id | number | Identifier of the country in which the company is located |
country | string | Company name |
city_id | number | Identifier of the city where the company is located) |
city | string | Company city name |
time zone | string | timezone companies |
address | string | Address where the company is located |
phone | string | Company's main phone number |
phones | array of strings | All phone numbers of the company |
coordinate_lat | float | Latitude where the company is located |
coordinate lng | float | Longitude |
allow_delete_record | boolean | Is it possible to delete an appointment |
allow_change_record | boolean | Is it possible to reschedule the appointment |
site | string | Company website |
currency_short_title | string | Currency symbol |
allow_change_record_delay_step | int | Time after which you can reschedule the appointment |
allow_delete_record_delay_step | int | Time after which you can delete an appointment |
The staff object has the following fields:
Field | Type | Description |
---|---|---|
id | number | Employee ID |
name | string | Employee name |
specialization | string | Employee specialization |
position | object | Employee position |
show_rating | number | Whether to show employee's rating (1 - show, 0 - don't show) |
rating | number | Employee rating |
votes_count | number | Number of votes rated employee |
comments_count | number | Number of comments to an employee |
avatar | string | Path to employee avatar file |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 13132699,
- "services": [
- {
- "id": 389043,
- "title": "Correction of extended nails",
- "cost": 2300,
- "price_min": 2300,
- "price_max": 2300,
- "discount": 0,
- "amount": 1,
- "seance_length": 1800
}
], - "company": {
- "id": 4564,
- "title": "Nail correction salon",
- "country_id": 1,
- "country": "United States",
- "city_id": 2,
- "city": "New York",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "timezone": 12,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "allow_delete_record": true,
- "allow_change_record": true,
- "site": "www.example.com",
- "currency_short_title": "USD",
- "allow_change_record_delay_step": 0,
- "allow_delete_record_delay_step": 0
}, - "staff": {
- "id": 55436,
- "name": "Natalia",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 446,
- "title": "Manicurist"
}, - "show_rating": 1,
- "rating": 4.84,
- "votes_count": 0,
- "comments_count": 37
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2017-10-24T17:30:00+0000",
- "create_date": "2017-10-20T21:40:24+0000",
- "comment": "",
- "deleted": true,
- "attendance": 0,
- "length": 1800,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "",
- "last_change_date": "2017-10-24T23:54:02+0000",
- "prepaid": false,
- "prepaid_confirmed": false,
- "activity_id": 0
}, - {
- "id": 13133413,
- "services": [
- {
- "id": 389045,
- "title": "Hand massage (10 min)",
- "cost": 300,
- "price_min": 300,
- "price_max": 400,
- "discount": 0,
- "amount": 1,
- "seance_length": 1800
}
], - "company": {
- "id": 4564,
- "title": "Nail correction salon",
- "country_id": 1,
- "country": "United States",
- "city_id": 2,
- "city": "New York",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "timezone": 12,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "allow_delete_record": true,
- "allow_change_record": true,
- "site": "www.example.com",
- "currency_short_title": "USD",
- "allow_change_record_delay_step": 0,
- "allow_delete_record_delay_step": 0
}, - "staff": {
- "id": 55436,
- "name": "Natalia",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 446,
- "title": "Manicurist"
}, - "show_rating": 1,
- "rating": 4.84,
- "votes_count": 0,
- "comments_count": 37
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2017-10-24T17:30:00+0000",
- "create_date": "2017-10-20T21:40:24+0000",
- "comment": "",
- "deleted": true,
- "attendance": 0,
- "length": 1800,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "",
- "last_change_date": "2017-10-24T23:54:02+0000",
- "prepaid": false,
- "prepaid_confirmed": false,
- "activity_id": 0
}
], - "meta": [ ]
}
Creates a new employee with a minimal set of parameters.
company_id required | number Example: 123 ID of a company. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
name required | string Name of an employee. |
specialization required | string Specialization of an employee. |
position_id required | number or null ID of a position that should be linked to an employee. |
phone_number required | string or null Phone number of a user that should be linked to an employee (without "+", 9 to 15 digits). |
success | boolean (Successful response status) Response status. |
object (Object of model "Employee with Position") | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "name": "John Johnson",
- "specialization": "Master",
- "position_id": 123,
- "phone_number": "11234567890"
}
{- "success": true,
- "data": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Position"
}
}, - "meta": { }
}
company_id required | number Company ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
name | string Employee name |
specialization | string Employee specialization |
weight | number Employee weight. Employees are sorted by weight on exit, heavier first |
information | string Employee information (HTML format) |
api_id | string External employee ID |
hidden | number Display status in online appointment, 1 - hidden, 0 - not hidden |
fired | number The employee's dismissal status, 1 - dismissed, 0 - not dismissed |
user_id | number Linked user ID, 0 - unlink user |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of employees found) |
{- "name": "Basil",
- "specialization": "the hairdresser",
- "weight": 10,
- "information": "Trimming with three hands",
- "api_id": "42",
- "hidden": 0,
- "fired": 0,
- "user_id": 123
}
{- "success": true,
- "data": {
- "id": 17969,
- "api_id": "42",
- "name": "Basil",
- "specialization": "the hairdresser",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": 0,
- "rating": 0,
- "votes_count": 0,
- "user_id": 12345,
- "comments_count": 0,
- "weight": 10,
- "information": "<span><span><span> </span></span></span>",
- "hidden": 0,
- "fired": 0,
- "status": 0
}, - "meta": [ ]
}
company_id required | number Location ID |
staff_id required | number Employee ID, if you need to work with a specific employee. |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of employees found) |
success | boolean Execution success status (false) |
data | string Contains null |
object Metadata (contains an error message) |
success | boolean Execution success status (false) |
object Metadata (contains an error message) |
{- "success": true,
- "data": [
- {
- "id": 1001539,
- "name": "Employee 1",
- "company_id": 176275,
- "specialization": "specialist",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "fired": 0,
- "status": 0,
- "hidden": 0,
- "user_id": 12345
}
], - "meta": {
- "total_count": 1
}
}
company_id required | number Company ID |
staff_id required | number Employee ID, if you need to work with a specific employee. |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "17969",
- "name": "Basil",
- "specialization": "the hairdresser",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": "0",
- "rating": "0",
- "votes_count": "0",
- "user_id": 12345,
- "comments_count": "0",
- "weight": "10",
- "information": "<span><span><span> </span></span></span>",
- "hidden": "0",
- "fired": "0",
- "status": "0",
- "image_group": {
- "id": 72250,
- "entity": "master",
- "entity_id": 26427,
- "images": {
- "sm": {
- "id": "186817",
- "width": "100",
- "height": "100",
- "type": "jpeg",
- "image_group_id": 72250,
- "version": "sm"
}, - "norm": {
- "id": "186818",
- "width": "180",
- "height": "220",
- "type": "jpeg",
- "image_group_id": 72250,
- "version": "norm"
}, - "origin": {
- "id": "186819",
- "width": "800",
- "height": "600",
- "type": "jpeg",
- "image_group_id": 72250,
- "version": "origin"
}
}
}
}, - {
- "id": "34006",
- "api_id": "42",
- "name": "Denis",
- "specialization": "the hairdresser",
- "position": [ ],
- "show_rating": "0",
- "rating": "0",
- "votes_count": "0",
- "user_id": 12345,
- "comments_count": "0",
- "weight": "9",
- "information": "<span><span> </span></span>",
- "hidden": "0",
- "fired": "0",
- "status": "0",
- "image_group": [ ]
}, - {
- "id": "13616",
- "name": "Alexander",
- "specialization": "the hairdresser",
- "position": [ ],
- "show_rating": "0",
- "rating": "4.76921",
- "votes_count": "0",
- "user_id": 12345,
- "comments_count": "26",
- "weight": "8",
- "information": "<span><span><span> </span></span></span>",
- "hidden": "0",
- "fired": "0",
- "status": "0",
- "image_group": [ ]
}
], - "meta": [ ]
}
company_id required | number Company ID |
staff_id required | number Employee ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
name | string Employee name |
specialization | string Employee specialization |
weight | number Employee weight. Employees are sorted by weight on exit, heavier first |
information | string Employee information (HTML format) |
api_id | string External employee ID |
hidden | number Display status in online appointment, 1 - hidden, 0 - not hidden |
fired | number The employee's dismissal status, 1 - dismissed, 0 - not dismissed |
user_id | number Linked user ID, 0 - unlink user |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of employees found) |
{- "success": true,
- "data": {
- "id": 17969,
- "api_id": "42",
- "name": "Basil",
- "specialization": "the hairdresser",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": 0,
- "rating": 0,
- "votes_count": 0,
- "user_id": 12345,
- "comments_count": 0,
- "weight": 10,
- "information": "<span><span><span> </span></span></span>",
- "hidden": 0,
- "fired": 0,
- "status": 0
}, - "meta": [ ]
}
company_id required | number Company ID |
staff_id required | number Employee ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
43877
) - ID of the location chaingroup_id required | number Location chain ID |
phone required | string Example: phone='79264037640' Phone to filter clients, required parameter |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token.User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status |
data | string Contains null |
object Object with error message |
{- "success": true,
- "data": {
- "salon_group_id": 312,
- "phone": "+1-315-555-0175",
- "clients": [
]
}, - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of resources found) |
{- "success": true,
- "data": [
- {
- "id": 70,
- "title": "Pedicure chair",
- "instances": [
- {
- "id": 181,
- "title": "Pedicure chair #1",
- "resource_id": 70
}
]
}, - {
- "id": 464,
- "title": "massage room",
- "instances": [
- {
- "id": 1094,
- "title": "Massage room 1st floor",
- "resource_id": 464
}, - {
- "id": 1162,
- "title": "Massage room 2nd floor",
- "resource_id": 464
}
]
}
], - "meta": {
- "count": 2
}
}
company_id required | number Company ID |
staff_id required | number Employee ID. |
start_date required | number Example: '' Period start date |
end_date required | number Example: '' Period end date |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
date required | string date in iso8601 format. |
is_working required | boolean Free time or not. |
slots | Array of objects An array of (from, to) working timeslots. |
{- "success": true,
- "data": [
- {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 1,
- "slots": [
- {
- "from": "10:00",
- "to": "14:00"
}, - {
- "from": "15:00",
- "to": "23:15"
}
]
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 1,
- "slots": [
- {
- "from": "10:00",
- "to": "14:30"
}, - {
- "from": "15:00",
- "to": "22:10"
}
]
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 0,
- "slots": [ ]
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 1,
- "slots": [
- {
- "from": "10:00",
- "to": "14:00"
}, - {
- "from": "15:00",
- "to": "22:00"
}
]
}
], - "meta": [ ]
}
company_id required | number Company ID |
staff_id required | number Employee ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
date required | string date |
is_working required | boolean Working date or not |
slots required | object Array of (from, to) working hours |
The sessions object for the log has the following fields:
Field | Type | Description |
---|---|---|
time | string | Session time (17:30 for example) |
free | boolean | Free time or busy |
company_id required | number Company ID |
date required | string date in iso8601 format. Filter by booking date (eg '2015-09-30') |
staff_id required | number Employee ID. |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
time required | string Session time |
is_free required | boolean free time or not |
{- "success": true,
- "data": [
- {
- "time": "10:00",
- "is_free": true
}, - {
- "time": "10:15",
- "is_free": true
}, - {
- "time": "10:30",
- "is_free": true
}, - {
- "time": "10:45",
- "is_free": true
}, - {
- "time": "11:00",
- "is_free": false
}, - {
- "time": "11:15",
- "is_free": false
}, - {
- "time": "11:30",
- "is_free": false
}, - {
- "time": "11:45",
- "is_free": false
}, - {
- "time": "12:00",
- "is_free": false
}, - {
- "time": "12:15",
- "is_free": false
}, - {
- "time": "12:30",
- "is_free": false
}, - {
- "time": "12:45",
- "is_free": false
}, - {
- "time": "13:00",
- "is_free": true
}, - {
- "time": "13:15",
- "is_free": true
}, - {
- "time": "13:30",
- "is_free": true
}, - {
- "time": "13:45",
- "is_free": true
}, - {
- "time": "14:00",
- "is_free": true
}, - {
- "time": "14:15",
- "is_free": true
}, - {
- "time": "14:30",
- "is_free": true
}, - {
- "time": "14:45",
- "is_free": true
}, - {
- "time": "15:00",
- "is_free": true
}, - {
- "time": "15:15",
- "is_free": true
}, - {
- "time": "15:30",
- "is_free": true
}, - {
- "time": "15:45",
- "is_free": true
}, - {
- "time": "16:00",
- "is_free": true
}, - {
- "time": "16:15",
- "is_free": true
}, - {
- "time": "16:30",
- "is_free": false
}, - {
- "time": "16:45",
- "is_free": false
}, - {
- "time": "17:00",
- "is_free": false
}
], - "meta": [ ]
}
Filters
Parameter | Description |
---|---|
page | Page number |
editable_length | Number of clients per page |
type | Operation type |
status | Operation status |
start_date | Period start date |
end_date | Period end date |
Types of all transactions with cash register
Meaning | Description |
---|---|
0 | Sales operation – Active for documents of type Visit |
1 | Sale return operation – Active for documents of type Visit |
2 | Correction operation |
4 | Shift opening operation – Opens a new POS shift |
5 | Shift closing operation – Closes the current POS shift |
9 | Get POS status – Retrieves the current status of the POS device |
11 | Get POS team status – Retrieves the status of all POS devices connected to the team |
12 | Correction operation |
13 | Print X-report – Prints a non-fiscal summary report of the current shift |
6 | Cash deposit – Registers a cash-in transaction in the POS |
7 | Cash withdrawal – Registers a cash-out transaction in the POS |
Statuses of All POS Operations
Meaning | Description |
---|---|
0 | Connection error with POS – Unable to establish a connection with the POS device |
1 | Success – Operation completed successfully |
2 | Sent for printing – The request has been sent to the POS and is waiting for print completion |
3 | Runtime error – An error occurred while processing the operation on the POS device |
4 | Status check error – Failed to retrieve the current status of the POS |
5 | Waiting for POS readiness – Operation is pending until the POS device becomes ready |
Document Types
Meaning | Description |
---|---|
1 | Sale of products |
2 | Provision of services |
3 | Arrival of products |
4 | Products write-off |
5 | Transfer of products |
6 | Inventory |
7 | Visit |
8 | Consumables write-off |
9 | Deposit replenishment |
company_id required | number Company ID |
page | number Example: page=1 Page number |
editable_length | number Example: editable_length=25 Number of customers per page |
type | number Example: type=20 Type of transaction |
status | number Example: status=6 Operation status |
start_date | number Example: start_date='' Period start date |
end_date | number Example: end_date='' Period end date |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer access_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of transactions found) |
{- "success": true,
- "data": [
- {
- "id": 1059,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 1,
- "sum": 10,
- "type": {
- "id": 1,
- "title": "Sales return operation"
}, - "status": {
- "id": 3,
- "title": "Runtime error"
}, - "document": {
- "id": 2045,
- "type": 7,
- "type_title": "Visit"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
], - "meta": {
- "count": 1
}
}
Types of all transactions with cash register
Meaning | Description |
---|---|
0 | Sale operation (active for documents with types "Visit" and "Deposit replenishment") |
1 | Sale return operation (active for documents with types "Visit" and "Deposit replenishment") |
2 | Correction operation |
4 | Shift opening operation – Opens a new POS shift |
5 | Shift closing operation – Closes the current POS shift |
9 | Get POS status – Retrieves the current status of the POS device |
11 | Get POS team status – Retrieves the status of all POS devices connected to the team |
12 | Correction operation |
13 | Print X-report – Prints a non-fiscal summary report of the current shift |
6 | Cash deposit – Registers a cash-in transaction in the POS |
7 | Cash withdrawal – Registers a cash-out transaction in the POS |
Document Types
Meaning | Description |
---|---|
1 | Sale of products |
2 | Provision of services |
3 | Arrival of products |
4 | Products write-off |
5 | Transfer of products |
6 | Inventory |
7 | Visit |
8 | Consumables write-off |
9 | Deposit replenishment |
company_id required | number Location ID |
document_id required | number Document ID |
type required | number type of operation with cash register (see table of types of all operations) |
is_pos_enabled | boolean enable POS terminal (default false) |
success | boolean Execution success status (true) |
object Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "kkm_type": 0,
- "kkm_transactions": [
- {
- "id": 1954,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 2,
- "title": "Sent for printing"
}, - "document": {
- "id": 164,
- "type": 9,
- "type_title": "Deposit replenishment"
}, - "cashier": {
- "id": 1138453,
- "name": "Jack Smith"
}
}
], - "status": 2,
- "bill_json": [
- [ ]
]
}, - "meta": [ ]
}
document_id required | integer Sales Document ID |
company_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE Chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}
As a response, information about the Sale operation is returned
document_id required | integer Sales Document ID |
payment_transaction_id required | integer transaction ID |
company_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE Chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}
As a response, information about the Sale operation is returned
document_id required | integer Sales Document ID |
payment_transaction_id required | integer transaction ID |
company_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}
As a response, information about the Sale operation is returned
document_id required | number Document ID |
company_id required | number Location ID |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
object Object containing the payment method |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "payment": {
- "method": {
- "slug": "account",
- "account_id": 90218
}, - "amount": 123
}
}
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}
To use the api and activate access to the settings in the user interface, you need to activate the integration by sending the "Enable integration" request. After a successful connection, access to the section with routing settings will be opened in the chain user interface.
To disable the integration, you can use the "Disable integration" method. After the integration is disabled, access to the user interface settings section is closed, the requests "Call notification" and "Call information saving" are not processed.
To display notifications about an incoming call, the "Call notification" method is used, the call type ("incoming", "outgoing", "internal") is specified in the parameters, but currently notifications are displayed only for the "incoming" value. Notifications are displayed for users defined based on routing settings. When specifying the "user" and "diversion" parameters at the same time, "user" is the priority when searching for routes.
The information about the call is automatically saved to the chain history and to the history of chain companies in accordance with the call routing settings.
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
Request bodies
command required | string Slug of operation 'setup' |
type required | string Operation type, in this case 'enable' |
crm_token required | string CRM-token from the Telephony-Integration in the client's chain section |
success | boolean Success status (true) |
data | string Contains null |
object Metadata (contain an "Accepted" message) |
{- "command": "setup",
- "type": "enable",
- "crm_token": "7cf262d6-1656-43f9-86ac-2826bdc125d2"
}
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}
This endpoint is designed to get a list of calls in a location, taking into account filters and pagination
salon_id required | number Location ID. |
date_from required | string Sample start date. |
date_to required | string Sample start end. |
phone | string Phone number. |
types | Array of strings Items Enum: "incoming" "outgoing" "internal" Call types list |
statuses | Array of strings Items Enum: "success" "missed" "cancel" "busy" "notallowed" "notavailable" "notfound" Call statuses list |
page | number Page number |
limit | number <= 1000 Amount of elements on page |
success | boolean (Successful response status) Response status. |
Array of objects Calls list | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
{- "salon_id": 615243,
- "date_from": "2023-01-01",
- "date_to": "2023-02-01",
- "phone": "79111234567",
- "types": [
- "incoming",
- "internal"
], - "statuses": [
- "success",
- "cancel"
], - "page": 1,
- "limit": 25
}
{- "success": true,
- "data": [
- {
- "id": 8923525,
- "client_id": 51342134,
- "caller_phone": "791112345678",
- "duration": 244,
- "status": "success",
- "type": "outgoing",
- "call_date": "2023-01-17 23:52:21"
}, - {
- "id": 66795308,
- "client_id": 0,
- "caller_phone": "791112345678",
- "record_link": "",
- "duration": 0,
- "status": "missed",
- "type": "incoming",
- "call_date": "2023-01-17 12:31:12"
}
]
}
chain_id required | number Example: 123 Chain ID. |
abonementId required | number Example: 123 Membership ID. |
freeze_till required | string The date until which the membership will be frozen. |
{- "freeze_till": "string"
}
[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
]
chain_id required | number Example: 123 Chain ID. |
abonementId required | number Example: 123 Membership ID. |
[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
]
chain_id required | number Example: 123 Chain ID. |
abonementId required | number Example: 123 Membership ID. |
period required | number Period duration |
period_unit_id required | number Period type (1 - day, 2 - week, 3 - month, 4 - year) |
{- "period": 0,
- "period_unit_id": 0
}
[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
]
chain_id required | number Example: 123 Chain ID. |
abonementId required | number Example: 123 Membership ID. |
united_balance_services_count required | number Number of services for a membership with a pooled balance |
required | Array of objects Transfer service amount for a membership with a separate balance |
{- "united_balance_services_count": 0,
- "services_balance_count": [
- {
- "service_id": 0,
- "balance": 0
}
]
}
[- {
- "success": false,
- "meta": {
- "message": "Can't change balance"
}
}
]
chain_id required | number Example: 123 Chain ID. |
created_after | string Example: created_after=2025-09-21T23:00:00.000+03:00 Creation date from (filter by creation date). |
created_before | string Example: created_before=2025-09-21T23:00:00.000+03:00 Creation date by (filter by creation date). |
abonements_ids | Array of numbers List of identifiers for the filter. |
page | number Example: page=1 Page number. |
count | number Example: count=25 Number of appointments per page. |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}, - {
- "id": 720,
- "number": 208867,
- "balance_string": "Some services (x10)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 3,
- "title": "Overdue",
- "extended_title": "Overdue"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Some services"
}
}
]
}, - "type": {
- "id": 897,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Some services"
}
}
]
}
}
}
], - "meta": {
- "count": 2
}
}
]
Returns a list of client's memberships by phone
company_id required | number Location ID |
phone required | number Customer phone number |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of subscriptions found) |
{- "success": true,
- "data": [
- {
- "id": 659878,
- "number": "788376",
- "balance_string": "Surfing (x10)",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 9999,
- "period_unit_id": 3,
- "status": {
- "id": 1,
- "title": "Released",
- "extended_title": "Released"
}, - "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}, - "type": {
- "id": 97804,
- "salon_group_id": 145071,
- "title": "89999",
- "period": 9999,
- "period_unit_id": 3,
- "allow_freeze": false,
- "freeze_limit": 0,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
Returns a list of memberships of an authorized user
company_id required | number Location ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of subscriptions found) |
{- "success": true,
- "data": [
- {
- "id": 659878,
- "number": "788376",
- "balance_string": "Surfing (x10)",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 9999,
- "period_unit_id": 3,
- "status": {
- "id": 1,
- "title": "Released",
- "extended_title": "Released"
}, - "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}, - "type": {
- "id": 97804,
- "salon_group_id": 145071,
- "title": "89999",
- "period": 9999,
- "period_unit_id": 3,
- "allow_freeze": false,
- "freeze_limit": 0,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
Returns a list of client gift cards by phone
Attribute | Type | Description |
---|---|---|
id | int | Gift card ID |
number | string | Gift card code |
balance | decimal | Current balance |
default_balance | decimal | Initial balance |
type_id | int | Gift card type identifier |
status_id | int | Status ID |
created_date | timestamp | Date of sale |
expiration_date | datetime | Burn date |
type | object | Object with gift card type information |
status | object | An object with information about the current gift card status |
The type array contains the following objects:
Attribute | Type | Description |
---|---|---|
id | int | Gift card type identifier |
title | string | Type name |
balance | decimal | Gift card denomination |
is_multi | boolean | Is it available for multiple debits |
company_group_id | int | ID of the chain where the certificate type was created |
item_type_id | int | Restriction on the use of redemption points. 0 - no limit, 1 - services only, 2 - some services + all products, 3 - some services, 4 - products only |
expiration_type_id | int | The ID of the expiration limit. 0 - unlimited, 1 - fixed date, 2 - fixed term |
expiration_date | timestamp | Burn date of all gift cards. Populated with expiration_type_id = 1 |
expiration_timeout | int | Validity period of gift card. Populated with expiration_type_id = 2 |
expiration_timeout_unit_id | int | Time units. 1 - Day, 2 - Week, 3 - Month, 4 - Year |
is_allow_empty_code | boolean | Sale without code |
item_type | object | Object with item_type_id and its name |
copmany_id required | number Location ID |
phone required | number Customer phone number |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificates found) |
{- "success": true,
- "data": [
- {
- "id": 409726,
- "number": "888",
- "balance": 9000,
- "default_balance": 9000,
- "type_id": 27841,
- "status_id": 2,
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "type": {
- "id": 27841,
- "title": "certificate 9000",
- "balance": 9000,
- "is_multi": true,
- "company_group_id": 128284,
- "item_type_id": 0,
- "expiration_type_id": 2,
- "expiration_timeout": 365,
- "expiration_timeout_unit_id": 1,
- "is_allow_empty_code": false,
- "item_type": {
- "id": 0,
- "title": "No limits"
}
}, - "status": {
- "id": 2,
- "title": "activated"
}
}
], - "meta": {
- "count": 1
}
}
Returns a list of authorized user gift cards
company_id required | number Location ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificates found) |
{- "success": true,
- "data": [
- {
- "id": 409726,
- "number": "888",
- "balance": 9000,
- "default_balance": 9000,
- "type_id": 27841,
- "status_id": 2,
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "type": {
- "id": 27841,
- "title": "certificate 9000",
- "balance": 9000,
- "is_multi": true,
- "company_group_id": 128284,
- "item_type_id": 0,
- "expiration_type_id": 2,
- "expiration_timeout": 365,
- "expiration_timeout_unit_id": 1,
- "is_allow_empty_code": false,
- "item_type": {
- "id": 0,
- "title": "No limits"
}
}, - "status": {
- "id": 2,
- "title": "activated"
}
}
], - "meta": {
- "count": 1
}
}
country_id | number Country ID to get cities from |
company_id | number Location ID. If passed, the city of the location will also be returned, regardless of whether it belongs to the specified country or not |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 2,
- "country_id": 1,
- "title": "New York"
}, - {
- "id": 1040,
- "country_id": 30,
- "title": "Belfast"
}, - {
- "id": 1201,
- "country_id": 38,
- "title": "București"
}, - {
- "id": 1334,
- "country_id": 31,
- "title": "Budapest"
}
], - "meta": [ ]
}
The response object has the following fields:
Field | Type | Description |
---|---|---|
image_binded | boolean | Status of linking images to an entity |
image_group | object | Image group object |
entity required | string Example: "master" entity name (master/service) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string form-data |
Authorization required | string Bearer partner_token, User user_token |
company_id | number Location ID for image binding (for entity=service) |
service_id | number Service ID for image binding (for entity=service) |
master_id | number Employee ID for image binding (for entity=master) |
image required | string transferred image (image/jpeg, image/png) |
object (ImageGroup) | |
required | object (ImageGroup) |
{- "success": true,
- "data": {
- "image_binded": false,
- "image_group ": {
- "id": 72256,
- "entity": "",
- "entity_id": 0,
- "images": {
- "basic": {
- "id": 186826,
- "width": 373,
- "height": 280,
- "type": "jpeg",
- "image_group_id": 72256,
- "version": "basic"
}
}
}
}, - "meta": [ ]
}
The response object has the following fields:
Field | Type | Description |
---|---|---|
success | boolean | Deletion result |
entity required | string entity name (master/service) |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string form-data |
Authorization required | string Bearer partner_token, User user_token |
image_group_id required | number Image group ID to delete |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
object (LicenseOption) | |
active required | number Is the subscription active |
deactivation_date required | string Subscription expiration date |
id required | number Subscription ID |
name required | string Subscription name |
options required | Array of objects Subscription options |
salon_id required | number Company ID |
staff_limit required | number Employee limit |
start_date required | string Subscription start date |
{- "success": true,
- "data": {
- "id": 1,
- "salon_id": 4523464,
- "staff_limit": 5,
- "deactivation_date": "08.11.2019",
- "start_date": "07.05.2025",
- "name": "Start",
- "active": 1,
- "options": [
- {
- "id": 3,
- "title": "Online payment"
}
]
}, - "meta": [ ]
}
recordToken required | string Short entry token |
success | boolean Execution success status (true) |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "is_review_submitted": false,
- "page_title": "Leave feedback",
- "master": {
- "id": 58961,
- "name": "Alexey Uvarov",
- "company_id": 28939,
- "specialization": "Permanent Makeup, Artistic Tattoo",
- "rating": 5,
- "show_rating": 1,
- "prepaid": "forbidden",
- "position": {
- "id": 2185,
- "title": "Master PM"
}
}, - "company": {
- "id": 28939,
- "title": "\"Eyes-n-Lips\" New York",
- "address": "New York, 787 Jackson Drive"
}, - "tips": [ ],
- "record": {
- "id": 8219891,
- "payed_cost": "2000",
- "date": "2017-08-11T15:00:00+0000"
}, - "currency": {
- "id": 1,
- "iso": "RUB",
- "name": "US Dollar",
- "symbol": "USD",
- "is_symbol_after_amount": true
}, - "agreement_links": {
}, - "language": {
- "id": 1,
- "locale": "en-US",
- "iso": "usa"
}
}, - "meta": [ ]
}
recordToken required | string Short entry token |
rating required | integer <int32> Rating for the review (number of stars from 1 to 5) |
text | string Feedback text |
tips_amount | number <double> Tip amount |
redirect_prefix | string The prefix part of the url that will be redirected to after returning from the payment form |
{- "rating": 5,
- "text": "Excellent master!",
- "tips_amount": 22.5,
}
{- "success": true,
- "meta": [ ]
}
company_id required | integer location ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of found masters) |
{- "success": true,
- "data": [
- {
- "id": 3120,
- "location_id": 4564,
- "staff_id": 1071804,
- "hash": "1a27116c-726d-4cec-a7dd-7bd6d669a8c1",
- "status": 1,
- "status_title": "new settings",
- "is_enabled": false,
- "landing_external": "https://app.alteg.io/tips/external/4564/1a27116c-726d-4cec-a7dd-7bd6d669a8c1/",
- "staff": {
- "id": 1071804,
- "name": "Testimonials Branch Business Example",
- "specialization": "Reviews"
}
}, - {
- "id": 1,
- "location_id": 4564,
- "staff_id": 37695,
- "hash": "abf52f53-e94c-41e8-9f76-93485fd76e5e",
- "status": 1,
- "status_title": "new settings",
- "is_enabled": false,
- "landing_external": "https://app.alteg.io/tips/external/4564/abf52f53-e94c-41e8-9f76-93485fd76e5e/",
- "staff": {
- "id": 37695,
- "name": "Kim Kardashian",
- "specialization": "Cosmetologist-makeup artist",
- "user": {
- "id": 746310,
- "name": "James Smith",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 452,
- "title": "Masseur"
}
}
}
]
}
master_tips_settings_id required | integer tip settings id |
company_id required | number Company ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of found masters) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "location_id": 253859,
- "staff_id": 742418,
- "hash": "ba816199-eecf-4bd2-9f1d-db470545bfaf",
- "status": 3,
- "status_title": "pending account",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/ba816199-eecf-4bd2-9f1d-db470545bfaf/",
- "invite_sms_sent": false,
- "staff": {
- "id": 742418,
- "name": "Fusa",
- "specialization": "specialist",
- "employee": {
- "id": 733043,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 1553930,
- "name": "James Smith",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103883,
- "title": "Yogist"
}
}
}, - {
- "id": 152763,
- "location_id": 253859,
- "staff_id": 743018,
- "hash": "b7c81cab-290a-4b0a-ad05-9c4b98ef3565",
- "status": 4,
- "status_title": "everything is set",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/b7c81cab-290a-4b0a-ad05-9c4b98ef3565/",
- "invite_sms_sent": false,
- "staff": {
- "id": 743018,
- "name": "Natasha M",
- "specialization": "manicurist",
- "employee": {
- "id": 733547,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 6259059,
- "name": "Alice Smith",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103731,
- "title": "Manicurist"
}
}
}
], - "meta": {
- "count": 2
}
}
company_id required | integer location id |
master_tips_settings_id required | integer tip settings id |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of found masters) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "location_id": 253859,
- "staff_id": 742418,
- "hash": "ba816199-eecf-4bd2-9f1d-db470545bfaf",
- "status": 3,
- "status_title": "pending account",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/ba816199-eecf-4bd2-9f1d-db470545bfaf/",
- "invite_sms_sent": false,
- "staff": {
- "id": 742418,
- "name": "Fusa",
- "specialization": "specialist",
- "employee": {
- "id": 733043,
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103883,
- "title": "Yogist"
}
}
}, - {
- "id": 152763,
- "location_id": 253859,
- "staff_id": 743018,
- "hash": "b7c81cab-290a-4b0a-ad05-9c4b98ef3565",
- "status": 4,
- "status_title": "everything is set",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/b7c81cab-290a-4b0a-ad05-9c4b98ef3565/",
- "invite_sms_sent": false,
- "staff": {
- "id": 743018,
- "name": "Natasha M",
- "specialization": "manicurist",
- "employee": {
- "id": 733547,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 6259059,
- "name": "Alice Smith",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103731,
- "title": "Manicurist"
}
}
}
], - "meta": {
- "count": 2
}
}
The method allows company owner to search payroll calculations for the period for an employee.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Mutual settlements) | |
object (Meta object with response results count) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 123,
- "company_id": 456,
- "staff_id": 789,
- "amount": 1000,
- "status": "confirmed",
- "date_create": "2023-03-03",
- "date_from": "2023-03-01",
- "date_to": "2023-03-02",
- "comment": "Calculation per day"
}
], - "meta": {
- "count": 1
}
}
The method allows company owner to get details of a specific payroll calculation.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
calculation_id required | number Example: 789 ID of a salary calculation. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Salary calculation object with details) | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "id": 123,
- "company_id": 456,
- "staff_id": 789,
- "amount": 1000,
- "status": "confirmed",
- "date_create": "2023-03-03",
- "date_from": "2023-03-01",
- "date_to": "2023-03-02",
- "comment": "Calculation per day",
- "salary_items": [
- {
- "date": "2023-03-01",
- "time": "12:00",
- "item_id": 123,
- "item_type_slug": "record",
- "salary_sum": "10",
- "record_id": 123,
- "client_id": 456,
- "cost": "1000",
- "paid": {
- "money_sum": "900",
- "discount_sum": "30",
- "bonus_sum": "70",
- "certificate_sum": "0",
- "abonement_sum": "0",
- "deposit_sum": "0"
}, - "salary_calculation_info": {
- "criteria_title": "Applied calculation criterium",
- "param_title": "Applied calculation parameter",
- "scheme_title": "Applied calculation scheme"
}, - "targets": [
- {
- "target_type_slug": "service",
- "target_id": 321,
- "title": "Cuttings",
- "cost": "1000",
- "net_cost": "500",
- "salary_sum": "10",
- "salary_promotion_sum": "1",
- "salary_calculation": {
- "type_slug": "percent",
- "value": 1.5,
- "description": "1.5% of cost"
}
}
], - "salary_discrepancy": {
- "reason": "updated_rule",
- "actual_sum": "15",
- "difference_sum": "5"
}
}
], - "currency": {
- "id": 2,
- "iso": "USD",
- "name": "US Dollar",
- "symbol": "$",
- "is_symbol_after_amount": false
}
}, - "meta": [ ]
}
The method allows you to get salary calculation schemes count for an employee before trying to obtain calculation data.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Salary schemes count) | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "staff_id": 1112684,
- "salary_schemes_count": 2
}, - "meta": [ ]
}
The method allows company owner to get mutual settlements of an employee.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Mutual settlements) Mutual settlements. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "total_sum": {
- "income": "0",
- "expense": "0",
- "balance": "240746.48"
}, - "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}
The method allows company owner to get mutual settlements of an employee grouped by date.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Mutual settlements grouped by date) Mutual settlements grouped by date. | |
object (Meta object with response results count) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "payroll_daily": [
- {
- "date": "2023-03-01",
- "payroll_sum": {
- "income": "0",
- "expense": "0",
- "balance": "240746.48"
}
}
], - "currency": {
- "symbol": "$"
}
}, - "meta": {
- "count": 1
}
}
The method allows company owner to get the calculation for the period for an employee.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Mutual settlements) Mutual settlements. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "working_days_count": 32,
- "working_hours_count": 353,
- "group_services_count": 3,
- "services_count": 0,
- "services_sum": "0",
- "goods_sales_count": 0,
- "goods_sales_sum": "0",
- "total_sum": "0",
- "salary": "70600",
- "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}
The method allows company owner to get the calculation for the period for an employee grouped by date.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Payroll for a period for an employee grouped by date) Payroll for a period for a specific employee grouped by date. | |
object (Meta object with response results count) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "period_calculation_daily": [
- {
- "date": "2023-03-01",
- "period_calculation": {
- "working_days_count": 32,
- "working_hours_count": 353,
- "group_services_count": 3,
- "services_count": 0,
- "services_sum": "0",
- "goods_sales_count": 0,
- "goods_sales_sum": "0",
- "total_sum": "0",
- "salary": "70600"
}
}
], - "currency": {
- "symbol": "$"
}
}, - "meta": {
- "count": 1
}
}
The method allows you to get mutual settlements of a specific employee. In the user's access rights, the checkbox "Access to payroll only for a specific employee" must be specified.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Mutual settlements) Mutual settlements. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "total_sum": {
- "income": "0",
- "expense": "0",
- "balance": "240746.48"
}, - "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}
The method allows you to get own salary calculation schemes for a specific employee. In the user's access rights, the checkbox "Access to payroll only for a specific employee" must be specified.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
Array of objects (Salary scheme object) | |
object (Meta object with response results count) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "staff_id": 1112684,
- "date_start": "2025-09-21T23:00:00.000+03:00",
- "date_end": "2025-09-21T23:00:00.000+03:00",
- "salary_scheme": {
- "id": 28681,
- "title": "Service 20%"
}
}, - {
- "staff_id": 1112684,
- "date_start": "2025-09-21T23:00:00.000+03:00",
- "salary_scheme": {
- "id": 28680,
- "title": "Service 30%"
}
}
], - "meta": {
- "count": 2
}
}
The method allows you to get the calculation for the period for a specific employee. In the user's access rights, the checkbox "Access to payroll only for a specific employee" must be checked.
company_id required | number Example: 123 ID of a company. |
staff_id required | number Example: 123 ID of an employee. |
date_from required | string Example: date_from=2023-03-01 Start from date. |
date_to required | string Example: date_to=2023-03-31 End to date. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
success | boolean (Successful response status) Response status. |
object (Payroll for a period for an employee) Payroll for a period for a specific employee. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "working_days_count": 32,
- "working_hours_count": 353,
- "group_services_count": 3,
- "services_count": 0,
- "services_sum": "0",
- "goods_sales_count": 0,
- "goods_sales_sum": "0",
- "total_sum": "0",
- "salary": "70600",
- "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}
The method allows you to get notification settings in a location.
company_id required | number Company ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, USer user_token |
success | boolean Execution success status |
Array of objects Array of objects | |
object Metadata (contains the number of objects) |
{- "success": true,
- "data": [
- {
- "type": "record_create_online_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_move_admin",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 1,
- "sms": 1,
- "email": 1
}
}, - {
- "type": "record_create_offline_admin",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_create_offline_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_create_online_admin",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_delete_admin",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_delete_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_move_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}
], - "meta": {
- "count": 9
}
}
The method allows you to get notification settings for a particular location user.
company_id required | number Company ID |
user_id required | number User ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, User user_token |
success | boolean Execution success status |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "mode": "staff",
- "notification_types": [
- {
- "type": "record_create_online_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_create_offline_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_delete_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_move_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}
]
}, - "meta": [ ]
}
The method allows you to change the user's PUSH notification settings. The type of notification to be changed (record_create_online_staff or record_create_online_admin, etc.) should be selected based on the type of notification specified by the user (mode: admin or mode: staff)
company_id required | number Company ID |
user_id required | number User ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer bearer_token, User user_token |
Array of objects Array of objects |
success | boolean Execution success status |
object Object with data | |
meta | Array of objects Metadata (empty array) |
{- "notification_types": [
- {
- "type": "record_create_online_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "record_create_offline_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "record_delete_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "record_move_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 1
}
}
]
}
{- "success": true,
- "data": {
- "mode": "staff",
- "notification_types": [
- {
- "type": "record_create_online_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_create_offline_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_delete_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_move_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}
]
}, - "meta": [ ]
}
The method allows you to create a product
company_id required | number Location ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Product Name |
print_title | string Title to be printed on receipt |
article | string vendor code |
barcode | string Barcode |
category_id required | integer Product category ID |
cost | number <float> Selling price |
actual_cost | number <float> Cost price |
sale_unit_id required | integer Sales unit |
service_unit_id required | integer Write-off unit |
unit_equals | number <float> The ratio of the unit of measure for sale to the unit of measure for write-off |
critical_amount | number <float> critical residue |
desired_amount | number <float> Desired balance |
netto | number <float> Net weight |
brutto | number <float> Gross weight |
comment | string A comment |
tax_variant | integer Taxation system |
vat_id | integer VAT |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status |
data | string Contains null |
object Contains an error message |
{- "title": "Shampoo",
- "print_title": "Shampoo",
- "article": "123",
- "barcode": "123",
- "category_id": 289632,
- "cost": 1000,
- "actual_cost": 500,
- "sale_unit_id": 216762,
- "service_unit_id": 216762,
- "unit_equals": 100,
- "critical_amount": 1,
- "desired_amount": 1,
- "netto": 200,
- "brutto": 250,
- "comment": "Test comment 123",
- "tax_variant": 0,
- "vat_id": 3
}
{- "success": true,
- "data": [
- {
- "title": "Shampoo 1",
- "value": "Shampoo 1",
- "label": "Shampoo 1 (123)",
- "good_id": "123456",
- "cost": "100500",
- "unit_id": "4835",
- "unit_short_title": "PC",
- "service_unit_id": "3548",
- "service_unit_short_title": "gr",
- "actual_cost": "1050",
- "unit_actual_cost": "105",
- "unit_actual_cost_format": "105 r",
- "unit_equals": "10",
- "barcode": "123",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "critical_amount": 0,
- "desired_amount": 0,
- "actual_amounts": [
- {
- "storage_id": "987",
- "amount": "1000000"
}
], - "last_change_date": "2017-01-01T12:00:00+0400"
}
], - "meta": [ ]
}
term: Name, article or barcode
page (number, 1
) - Page number (not used if good_id is passed)
count (number, 25
) - Number of products on the page (not used if good_id is passed)
category_id (number, 777
) - Id of the product category (not used if good_id is passed)
changed_after (string) - filtering products changed/created since a specific date and time (not used if good_id is passed)
changed_before (string) - filtering products changed/created before a specific date and time (not used if good_id is passed)
company_id required | number Company ID |
good_id required | number Product ID (if you need to get a specific product) |
term | string name, article number or barcode |
page | number Example: page=1 page number |
count | number Example: count=25 number of products per page |
category_id | number Product category ID |
changed_after | string Example: changed_after=2025-09-21T23:00:00.000+03:00 filtering products modified/created since a specific date and time |
changed_before | string Example: changed_before=2017-01-01T12:00:00+0400 filtering products modified/created before a specific date and time |
Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "title": "Shampoo 1",
- "value": "Shampoo 1",
- "label": "Shampoo 1 (123)",
- "good_id": "123456",
- "cost": "100500",
- "unit_id": "4835",
- "unit_short_title": "PC",
- "service_unit_id": "3548",
- "service_unit_short_title": "gr",
- "actual_cost": "1050",
- "unit_actual_cost": "105",
- "unit_actual_cost_format": "105 r",
- "unit_equals": "10",
- "barcode": "123",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "critical_amount": 0,
- "desired_amount": 0,
- "actual_amounts": [
- {
- "storage_id": "987",
- "amount": "1000000"
}
], - "last_change_date": "2017-01-01T12:00:00+0400"
}
], - "meta": [ ]
}
The method allows you to change the product parameters. When editing units of measure for an item that already has inventory operations, you must add an array of rules for recalculating units of measure - correction_rules. Otherwise, the array is optional.
company_id required | number Location ID |
good_id required | number Item ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
title required | string Product Name |
print_title | string Title to be printed on receipt |
article | string vendor code |
barcode | string Barcode |
category_id required | integer Product category ID |
cost | number <float> Selling price |
actual_cost | number <float> Cost price |
sale_unit_id required | integer Sales unit |
service_unit_id required | integer Write-off unit |
unit_equals | number <float> The ratio of the unit of measure for sale to the unit of measure for write-off |
critical_amount | number <float> critical residue |
desired_amount | number <float> Desired balance |
netto | number <float> Net weight |
brutto | number <float> Gross weight |
comment | string A comment |
tax_variant | integer Taxation system |
vat_id | integer VAT |
Array of objects An array of rules for converting units of measurement (required if there are inventory operations for the product) |
success | boolean Execution success status (true) |
Array of objects Array with data objects | |
meta | Array of objects Metadata (empty array) |
success | boolean Execution success status |
data | string Contains null |
object Object with error message |
success | boolean Execution success status |
data | string Contains null |
object Contains an error message |
{- "title": "Shampoo",
- "print_title": "Shampoo",
- "article": "123",
- "barcode": "123",
- "category_id": 289632,
- "cost": 1000,
- "actual_cost": 500,
- "sale_unit_id": 216762,
- "service_unit_id": 216762,
- "unit_equals": 100,
- "critical_amount": 1,
- "desired_amount": 1,
- "netto": 200,
- "brutto": 250,
- "comment": "Test comment 123",
- "tax_variant": 0,
- "vat_id": 3,
- "correction_rules": [
- {
- "type": 1,
- "base_unit": "service"
}, - {
- "type": 2,
- "base_unit": "service"
}, - {
- "type": 3,
- "base_unit": "sale"
}, - {
- "type": 4,
- "base_unit": "sale"
}, - {
- "type": 5,
- "base_unit": "sale"
}
]
}
{- "success": true,
- "data": [
- {
- "title": "Shampoo 1",
- "value": "Shampoo 1",
- "label": "Shampoo 1 (123)",
- "good_id": "123456",
- "cost": "100500",
- "unit_id": "4835",
- "unit_short_title": "PC",
- "service_unit_id": "3548",
- "service_unit_short_title": "gr",
- "actual_cost": "1050",
- "unit_actual_cost": "105",
- "unit_actual_cost_format": "105 r",
- "unit_equals": "10",
- "barcode": "123",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "critical_amount": 0,
- "desired_amount": 0,
- "actual_amounts": [
- {
- "storage_id": "987",
- "amount": "1000000"
}
], - "last_change_date": "2017-01-01T12:00:00+0400"
}
], - "meta": [ ]
}
The method allows you to remove the product
company_id required | number Location ID |
good_id required | number Item ID |
Accept required | string application/vnd.api.v2+json |
Content-Type required | string application/json |
Authorization required | string Bearer partner_token, User user_token |
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
success | boolean Execution success status (true) |
object (Root Type for company_get_online_settings_response_data_field_data_types) | |
meta | Array of objects metadata |
{- "success": true,
- "data": {
- "confirm_number": false,
- "any_master": true,
- "seance_delay_step": 90,
- "activity_online_record_clients_count_max": 1
}, - "meta": [ ]
}
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
confirm_number required | boolean Confirm customer number via SMS |
any_master required | boolean "Any employee" mode |
seance_delay_step required | integer [ 0 .. 1380 ] Delay to the next session, in minutes from 0 to 23 hours (inclusive) in increments of 30 minutes |
activity_online_record_clients_count_max required | integer [ 1 .. 255 ] Maximum number of seats in one group event |
success | boolean Execution success status (true) |
object (Root Type for company_get_online_settings_response_data_field_data_types) | |
meta | Array of objects metadata |
{- "confirm_number": false,
- "any_master": true,
- "seance_delay_step": 90,
- "activity_online_record_clients_count_max": 1
}
{- "success": true,
- "data": {
- "confirm_number": false,
- "any_master": true,
- "seance_delay_step": 90,
- "activity_online_record_clients_count_max": 1
}, - "meta": [ ]
}
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
success | boolean Execution success status (true) |
object (Root Type for company_get_timetable_settings_response_data_field_data_types) | |
meta | Array of objects metadata |
{- "success": true,
- "data": {
- "record_type": 0,
- "activity_record_clients_count_max": 1
}, - "meta": [ ]
}
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
record_type required | integer [ 0 .. 2 ] Default record type: 0 - Mixed appointment, 1 - Individual appointment, 2 - Group event |
activity_record_clients_count_max required | integer [ 1 .. 255 ] Maximum number of seats in one group event |
success | boolean Execution success status (true) |
object (Root Type for company_get_timetable_settings_response_data_field_data_types) | |
meta | Array of objects metadata |
{- "record_type": 0,
- "activity_record_clients_count_max": 1
}
{- "success": true,
- "data": {
- "record_type": 90,
- "activity_record_clients_count_max": 1
}, - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
required | Array of objects (Root Type BookformSettingsResponse) Array of data |
meta required | Array of objects Metadata (contains the total count of bookforms) |
success required | boolean Success status (true) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}
], - "meta": [ ]
}
company_id required | number Company ID |
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
title required | string Name of the booking widget |
description | string Default: "" Booking widget description |
is_default | boolean Default: false Default booking widget flag |
without_menu | boolean Default: false Step mode flag |
service_step_default | number Service ID |
service_step_hide | boolean Default: false Service Hiding Flag |
master_step_default | number Employee ID |
master_step_hide | boolean Default: false Employee hide flag |
service_step_num | number Service step sequence number |
master_step_num | number Sequence number of the wizard step |
datetime_step_num | number Sequence number of the date and time step |
show_button | boolean Default: true Button visibility flag |
button_position | string Default: "bottom right" Enum: "bottom right" "bottom left" "top right" "top left " Button location on the page |
form_position | string Default: "right" Enum: "right" "left" Panel position on the page |
button_color | string Default: "#1c84c6" Button color |
button_animation | boolean Default: true Button animation enable flag |
required | object (Root Type BookformSettingsResponse) Booking Widget Settings |
meta required | Array of objects Metadata |
success required | boolean Success status (true) |
{- "title": "string",
- "description": "",
- "is_default": false,
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 0,
- "master_step_num": 0,
- "datetime_step_num": 0,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true
}
{- "success": true,
- "data": {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}, - "meta": [ ]
}
company_id required | number Company ID |
form_id required | number Booking widget ID |
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
required | object (Root Type BookformSettingsResponse) Booking Widget Settings |
meta required | Array of objects Metadata |
success required | boolean Success status (true) |
{- "success": true,
- "data": {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}, - "meta": [ ]
}
company_id required | number Company ID |
form_id required | number Booking widget ID |
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
company_id required | number Company ID |
form_id required | number Booking widget ID |
Accept required | string e.g. application/vnd.api.v2+json |
Authorization required | string Bearer partner_token, User user_token |
Content-Type required | string application/json |
title required | string Name of the booking widget |
description required | string Booking widget description |
is_default required | boolean Default booking widget flag |
without_menu required | boolean Step mode flag |
service_step_default required | number Service ID |
service_step_hide required | boolean Service Hiding Flag |
master_step_default required | number Employee ID |
master_step_hide required | boolean Employee hide flag |
service_step_num required | number Service step sequence number |
master_step_num required | number Sequence number of the wizard step |
datetime_step_num required | number Sequence number of the date and time step |
show_button required | boolean Button Visibility Step |
button_position required | string Enum: "bottom right" "bottom left" "top right" "top left" Button location on the page |
form_position required | string Enum: "right" "left" Panel position on the page |
button_color required | string Button color |
button_animation required | boolean Button animation enable flag |
required | object (Root Type BookformSettingsResponse) Booking Widget Settings |
meta required | Array of objects Metadata |
success required | boolean Success status (true) |
{- "title": "string",
- "description": "string",
- "is_default": true,
- "without_menu": true,
- "service_step_default": 0,
- "service_step_hide": true,
- "master_step_default": 0,
- "master_step_hide": true,
- "service_step_num": 0,
- "master_step_num": 0,
- "datetime_step_num": 0,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "string",
- "button_animation": true
}
{- "success": true,
- "data": {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}, - "meta": [ ]
}
The method allows you to get a list of current positions in the company
company_id required | number Company ID |
required | Array of objects (StaffPosition) Array of objects with data |
meta required | Array of objects Metadata (contains the number of posts found) |
success required | boolean Execution success status (true) |
{- "data": [
- {
- "id": 123,
- "title": "Job title"
}
], - "meta": [
- { }
], - "success": true
}
Creates a new position in a company; position is created as a chain entity and at the same time linked to a company initiated its creation.
company_id required | number Example: 123 ID of a company. |
Accept required | string Example: application/vnd.api.v2+json Should be equal to |
Content-Type required | string Example: application/json Should be equal to |
title required | string Title of a position. |
success | boolean (Successful response status) Response status. |
object (Object of model "Position") Data for an existing position in a chain. | |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
meta | object (Empty meta object) Additional response data. |
success | boolean (Unsuccessful response status) Response status. |
data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "title": "Position"
}
{- "success": true,
- "data": {
- "id": 123,
- "chain_id": 123,
- "title": "Position",
- "description": "Position description",
- "services_binding_type": 0,
- "rules_required_fields": [
- "employee_name",
- "surname",
- "patronymic",
- "date_admission",
- "date_registration_end",
- "phone_number",
- "citizenship",
- "sex",
- "passport_data",
- "inn",
- "number_insurance_certificates"
], - "only_chain_appointment": false
}, - "meta": { }
}
The method allows you to get the main indicators of the company for the selected period and compare with the previous period of the same duration
company_id required | number Company ID |
date_from required | string <date> Start date of the analyzed period |
date_to required | string <date> End date of the analyzed period (included in the report) |
staff_id | integer ID of the company employee whose work needs to be analyzed |
position_id | integer Company position ID to analyze the work of all employees belonging to the same position |
user_id | integer The user ID of the company whose work you want to analyze |
required | object (AnalyticsReportOverallStats) Summary indicators |
meta required | Array of objects metadata |
success required | boolean Execution success status (true) |
{- "data": {
- "income_total_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_services_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_goods_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_average_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_average_services_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "fullness_stats": {
- "current_percent": 12.1,
- "previous_percent": 10.2,
- "change_percent": 18
}, - "record_stats": {
- "current_completed_count": 150,
- "current_completed_percent": 75,
- "current_pending_count": 30,
- "current_pending_percent": 15,
- "current_canceled_count": 20,
- "current_canceled_percent": 10,
- "current_total_count": 200,
- "previous_total_count": 180,
- "change_percent": 11
}, - "client_stats": {
- "total_count": 1000,
- "new_count": 50,
- "new_percent": 10,
- "return_count": 450,
- "return_percent": 90,
- "active_count": 500,
- "lost_count": 20,
- "lost_percent": 2
}
}, - "meta": [
- { }
], - "success": true
}
company_id required | number Company ID |
date_from required | string <date> Start date of the analyzed period |
date_to required | string <date> End date of the analyzed period (included in the report) |
staff_id | integer ID of the company employee whose work needs to be analyzed |
position_id | integer Company position ID to analyze the work of all employees belonging to the same position |
user_id | integer The user ID of the company whose work you want to analyze |
label | string Name of data series |
data | Array of integers (AnalyticsReportOverallChartDailyRowItem) [ items <int32 >[ items <int32 > ] ] Data for each day. Each day is an array of two numbers. The first number is the timestamp of the beginning of the day in the UTC zone, the second number is the value of the indicator on that day. |
[- {
- "label": "Revenue",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}
]
company_id required | number Company ID |
date_from required | string <date> Start date of the analyzed period |
date_to required | string <date> End date of the analyzed period (included in the report) |
staff_id | integer ID of the company employee whose work needs to be analyzed |
user_id | integer User ID of the company whose work you want to analyze |
label | string Name of data series |
data | Array of integers (AnalyticsReportOverallChartDailyRowItem) [ items <int32 >[ items <int32 > ] ] Data for each day. Each day is an array of two numbers. The first number is the timestamp of the beginning of the day in the UTC zone, the second number is the value of the indicator on that day. |
[- {
- "label": "Number of records",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}, - {
- "label": "Number of online entries",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}, - {
- "label": "Number of new customer entries",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}
]
company_id required | number Company ID |
date_from required | string <date> Start date of the analyzed period |
date_to required | string <date> End date of the analyzed period (included in the report) |
staff_id | integer ID of the company employee whose work needs to be analyzed |
user_id | integer The user ID of the company whose work you want to analyze |
label | string Name of data series |
data | Array of integers (AnalyticsReportOverallChartDailyRowItem) [ items <int32 >[ items <int32 > ] ] Data for each day. Each day is an array of two numbers. The first number is the timestamp of the beginning of the day in the UTC zone, the second number is the value of the indicator on that day. |
[- {
- "label": "Working day occupancy, %",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 89.7
], - [
- "2025-09-21T23:00:00.000+03:00",
- 91.2
]
]
}
]
company_id required | number Company ID |
date_from required | string <date> Start date of the analyzed period |
date_to required | string <date> End date of the analyzed period (included in the report) |
staff_id | integer ID of the company employee whose work needs to be analyzed |
user_id | integer The user ID of the company whose work you want to analyze |
label | string Name of indicator |
data | integer Indicator value |
[- {
- "label": "Administrator",
- "data": 10
}, - {
- "label": "Widget",
- "data": 30
}
]
company_id required | number Company ID |
date_from required | string <date> Start date of the analyzed period |
date_to required | string <date> End date of the analyzed period (included in the report) |
staff_id | integer ID of the company employee whose work needs to be analyzed |
user_id | integer The user ID of the company whose work you want to analyze |
label | string Name of indicator |
data | integer Indicator value |
[- {
- "label": "Customer expectation",
- "data": 10
}, - {
- "label": "The client came",
- "data": 30
}, - {
- "label": "Customer confirmed",
- "data": 5
}, - {
- "label": "Client didn't come",
- "data": 2
}
]