HTTP API и вебхуки Alchem
Читайте и создавайте записи и клиентов, получайте свободное время мастеров и события бизнеса. Ключ выпускает сам салон — с нужными правами и лимитом.
https://rest.business.eywa.uz/partner/v1curl "https://rest.business.eywa.uz/partner/v1/availability?staff_id=<staff_id>&service_ids=<service_id>&date=2026-10-01" \ -H "Authorization: Bearer alk_…"
Как устроен доступ
Ключ, права и лимит задаёт салон — вы получаете ровно то, что вам выдали.
Ключ выпускает салон
В «Настройки → Интеграции → Ключи API»: имя, права, филиалы и срок. Ключ показывается один раз — в ответах и журналах его нет. Отозвать можно в любой момент.
Заголовок Authorization
Каждый запрос — с заголовком Authorization: Bearer и ключом. Без ключа или с отозванным ключом — ответ 401.
Лимит запросов
От 10 до 1200 запросов в минуту на ключ, по умолчанию 300. Сверх лимита — ответ 429 с заголовком Retry-After.
Права ключа
Ключ видит только разрешённое — и не больше, чем сейчас может сотрудник, который его выпустил. Контакты клиентов — отдельное право.
Ошибки по стандарту
Ошибки приходят как application/problem+json (RFC 9457): код, понятное сообщение и адрес запроса.
Время, деньги, списки
Время — RFC 3339 со смещением пояса филиала, деньги — в минимальных единицах. Списки постраничные: limit до 100, дальше — по next_cursor.
Права ключа
Право на изменение раздела включает его просмотр; контакты клиентов выдаются только явно.
- Бизнес и филиалы
business:read - Услуги и категории
services:read - Мастера и сотрудники
staff:read - Свободное время мастеров
availability:read - Записи: просмотр
appointments:read - Записи: создание, перенос, смена статуса, удаление
appointments:write - Клиенты: просмотр без контактов
clients:read - Контакты клиентов: телефон и почта
clients:read_contact - Клиенты: создание
clients:write - Журнал звонков Eywa Connect
calls:read
Методы
Все пути — от базового адреса https://rest.business.eywa.uz/partner/v1. Справа — право, которое нужно ключу.
- GET
/meКлюч: бизнес, права, филиалы и лимит - POST
/revokeОтозвать ключ, которым сделан запрос - GET
/businessБизнесbusiness:read - GET
/locationsФилиалыbusiness:read - GET
/servicesУслуги; фильтр по филиалу и категорииservices:read - GET
/service-categoriesКатегории услугservices:read - GET
/staffМастера; фильтр по филиалу и услугеstaff:read - GET
/availabilityСвободное время мастера на деньavailability:read - GET
/appointmentsЗаписи за период, изменённые после даты, по мастеру или клиентуappointments:read - GET
/appointments/{id}Одна записьappointments:read - POST
/appointmentsСоздать запись — с новым или существующим клиентомappointments:write - PATCH
/appointments/{id}Перенести запись, сменить статус или комментарийappointments:write - DELETE
/appointments/{id}Удалить записьappointments:write - GET
/clientsКлиенты; поиск по телефонуclients:read - GET
/clients/{id}Один клиентclients:read - POST
/clientsДобавить клиентаclients:write - GET
/callsЗвонки Eywa Connect за периодcalls:read - GET
/references/countriesСправочник стран - GET
/references/business-typesСправочник видов бизнеса - POST
/app/callbackПриложение партнёра подтверждает установкуapp key - POST
/app/redirectКуда вернуть пользователя после настройки приложенияapp key
Примеры запросов
curl -X POST "https://rest.business.eywa.uz/partner/v1/appointments" \
-H "Authorization: Bearer alk_…" \
-H "Content-Type: application/json" \
-d '{
"staff_id": "<staff_id>",
"service_ids": ["<service_id>"],
"starts_at": "2026-10-01T10:00:00+05:00",
"client": { "name": "Dilnoza", "phone": "+998901234567" },
"comment": "…",
"api_id": "order-1042"
}'{
"object": "availability",
"date": "2026-10-01",
"time_zone": "Asia/Tashkent",
"staff_id": "<staff_id>",
"location_id": "<location_id>",
"is_working_day": true,
"duration_minutes": 60,
"step_minutes": 15,
"slots": [
{ "starts_at": "2026-10-01T10:00:00+05:00", "ends_at": "2026-10-01T11:00:00+05:00" },
{ "starts_at": "2026-10-01T10:15:00+05:00", "ends_at": "2026-10-01T11:15:00+05:00" }
]
}Вебхуки
Салон подписывает ваш адрес на события в «Настройки → Интеграции → Вебхуки» — для всего бизнеса или отдельных филиалов.
Что приходит
POST с JSON: event, delivered_at, business_id и data — сама сущность. Заголовки X-Eywa-Event и X-Eywa-Delivery-Id.
Подпись
Если у подписки задан секрет, в X-Eywa-Signature — HMAC-SHA256 тела запроса в шестнадцатеричном виде. Можно добавить свои заголовки.
Повторы
Ответ 2xx — доставлено. Иначе ещё попытки через 5, 15, 60 и 60 минут — всего до пяти; ответа ждём 15 секунд. Журнал доставок и ручной повтор — в настройках.
- Записи
appointment.createdappointment.updatedappointment.cancelledappointment.completedappointment.deleted - Клиенты
client.createdclient.updatedclient.deleted - Услуги
service.createdservice.updatedservice.deleted - Категории услуг
service_category.createdservice_category.updatedservice_category.deleted - Сотрудники
staff.createdstaff.updatedstaff.deleted - График
schedule.updated - Филиалы
location.createdlocation.updatedlocation.deleted - Товары
good.createdgood.updatedgood.deleted - Складские операции
goods_operation.salegoods_operation.receiptgoods_operation.consumablegoods_operation.stolengoods_operation.movegoods_operation.other - Финансовые операции
finance_operation.createdfinance_operation.updatedfinance_operation.deleted
Делаете приложение для многих салонов?
Вместо ключа от каждого салона — приложение в каталоге Alchem: салон выдаёт доступ одним нажатием, вы управляете установками через API партнёра.
Попробуйте Alchem на своём салоне
7 дней бесплатно, все функции включены. Или сначала посмотрите демо салона — без регистрации.