API ТапВей: как подключить онлайн-запись, магазин и CRM к своей системе
Как создать ключ и сделать первые запросы: запись клиента с вашего сайта, загрузка товаров и заказы, вебхуки с подписью и повторами. И когда API не нужно.
С 13 ноября 2026 года у ТапВей есть открытое API. Ваш сайт, CRM или учётная программа могут сами записывать клиентов, загружать товары, забирать заказы и заявки. Нужное событие сразу приходит к вам вебхуком. API доступно на тарифах «Про» и «Бизнес», ключ создаётся в кабинете за минуту.
Ниже — что умеет API и как сделать первые запросы. В конце — когда API не нужен и хватит готовых интеграций. Статья для владельцев проектов и их программистов: код короткий, каждый пример можно повторить из терминала.
Содержание
- Что умеет API
- Кому пригодится
- Шаг 1. Создайте ключ
- Шаг 2. Проверьте ключ
- Пример: запись клиента с вашего сайта
- Пример: товары и заказы
- Вебхуки: события без опроса
- Документация
- Безопасность и ограничения
- Когда API не нужно
- Частые вопросы
Что умеет API
Адрес API — https://api.tapway.me/v1. Ключ относится к одному проекту и видит только его данные. Права ключа включаются галочками: можно выдать сайту только запись, а учётной программе — только магазин.
| Раздел | Что можно | Права ключа |
|---|---|---|
| Онлайн-запись | Мастера и услуги, свободное время, список записей, создание, перенос, отмена, отметка «пришёл / не пришёл» | чтение / создание и изменение |
| Магазин | Товары и варианты, категории, загрузка фото, пакетная загрузка до 100 товаров по артикулам, заказы и их статусы, отзывы | чтение / товары и заказы |
| Заявки и квизы | Заявки с форм мультиссылки и сайта, ответы на квизы — вопрос и ответ текстом | чтение |
| CRM | Контакты и сделки: список, поиск, создание, правка | чтение / контакты и сделки |
| Статистика | Посещения, уникальные посетители, клики, источники, UTM за период | чтение |
В ответ приходит JSON. Списки отдаются постранично, а параметр updated_since возвращает только то, что изменилось с прошлого раза. Так удобно синхронизировать данные раз в несколько минут.
Кому пригодится
- Сайт на своём движке. Сайт студии сделан на WordPress или самописный, а расписание ведётся в ТапВей. Форма записи на сайте берёт свободное время из API и создаёт запись. Владельцу и мастеру уведомления уходят так же, как при записи со страницы.
- Учёт товаров в другой системе. Цены и остатки живут в учётной программе. Ваш программист раз в час отправляет их пакетом по артикулам, а новые заказы забирает обратно.
- Своя CRM или таблица. Заявки, ответы квизов и контакты попадают туда, где работает менеджер. Через API — по расписанию, через вебхук — сразу.
- Отчёты. Посещения и клики из статистики можно подтянуть в общий отчёт по рекламе.
Шаг 1. Создайте ключ
- Откройте проект → «Ещё» → «Настройки» → раздел «API». Раздел видит только владелец проекта.
- Нажмите «Создать ключ» и дайте ему понятное название, например «Сайт студии».
- Отметьте только нужные права. Сайту с записью хватит «Онлайн-запись: чтение» и «создание и изменение».
- Подтвердите паролем от аккаунта, а если включена двухфакторная защита — ещё и кодом из приложения.

Ключ tw_live_… показывается один раз — сразу скопируйте его в настройки своей программы. У нас хранится только его отпечаток, поэтому восстановить ключ нельзя. Потерялся — отзовите старый и создайте новый. После создания ключа владельцу приходит письмо.

Шаг 2. Проверьте ключ
Запрос /me показывает, какой проект видит ключ, какой у проекта тариф и сколько запросов осталось:
curl https://api.tapway.me/v1/me \ -H "Authorization: Bearer tw_live_…"
{
"data": {
"project": { "id": "fe6dee299ccf49369e79d9e18ca741c1", "name": "Студия Анны", "address": "mob.bio/studio-anna" },
"tariff": { "code": "pro", "name": "Про" },
"key": { "name": "Сайт студии", "prefix": "tw_live_aKpn", "scopes": ["bookings:read", "bookings:write"] },
"rate_limit": { "per_minute": 60, "per_day": 10000, "remaining_minute": 59, "remaining_day": 9874 }
}
}
Ответ 401 — ключ скопирован не целиком или отозван. Ответ 402 — у проекта тариф ниже «Про». После продления тарифа ключи снова заработают сами.
Пример: запись клиента с вашего сайта
Запись идёт в три запроса. Сначала узнайте мастеров и услуги — их id не меняются, их можно сохранить у себя:
curl https://api.tapway.me/v1/booking/resources -H "Authorization: Bearer tw_live_…"
Затем получите свободное время на нужную дату:
curl "https://api.tapway.me/v1/booking/slots?block_id=9db0cf42…&master_id=m1&service_id=s1&date=2026-11-20" \ -H "Authorization: Bearer tw_live_…"
И создайте запись на выбранное время:
curl -X POST https://api.tapway.me/v1/booking/appointments \
-H "Authorization: Bearer tw_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: site-order-1001" \
-d '{"block_id":"9db0cf42…","master_id":"m1","service_id":"s1",
"date":"2026-11-20","time":"14:00",
"client":{"name":"Мария","phone":"+79001234567"}}'
Проверки — те же, что у формы на странице:
- занято ли время;
- сколько мест осталось в группе;
- сколько записей у клиента в этот день;
- не исчерпан ли месячный лимит тарифа.
Если время уже заняли, придёт ответ 409. Покажите клиенту другие окна.
Заголовок Idempotency-Key защищает от дублей. Например, у клиента пропала связь, и ваш сайт отправил запрос второй раз. Тогда API вернёт первую запись, а не создаст вторую.
Перенос — POST /booking/appointments/{id}/reschedule. Отмена — PATCH /booking/appointments/{id} со статусом cancelled. Клиент и мастер получат сообщение о переносе или отмене, если подключён бот записи.
Пример: товары и заказы
Фото товара сначала загружается файлом — так мы проверяем снимок до того, как он появится на витрине. В ответ придёт адрес, его и указывайте в товаре:
curl -X POST https://api.tapway.me/v1/shop/images \ -H "Authorization: Bearer tw_live_…" \ -F "file=@lavanda.jpg"
Цены и остатки удобно отправлять пакетом. Товар с артикулом, который уже есть в магазине, обновится, остальные создадутся:
curl -X POST https://api.tapway.me/v1/shop/products/bulk \
-H "Authorization: Bearer tw_live_…" -H "Content-Type: application/json" \
-d '{"products":[
{"sku":"LAV-1","title":"Свеча «Лаванда»","price":1090,"stock":8},
{"sku":"ROSE-1","title":"Свеча «Роза»","price":890,"stock":3}]}'
Ответ приходит по каждой позиции: что создано, что обновлено, где ошибка. Одна неверная строка не останавливает остальные.
Новые заказы забирайте так: GET /shop/orders?updated_since=2026-11-13T10:00:00Z. Чтобы отметить отправку, передайте PATCH /shop/orders/{номер} со статусом shipped и ссылкой отслеживания. Покупатель получит письмо, как при смене статуса в кабинете. При отмене через API остатки вернутся на склад.
Вебхуки: события без опроса
Чтобы не спрашивать API каждые несколько минут, подключите вебхук. Тогда ТапВей сам отправит JSON на ваш адрес, когда:
- пришла заявка;
- клиент записался, перенёс запись или отменил её;
- оформлен, оплачен, отправлен или отменён заказ;
- изменилась сделка.
Адрес задаётся в разделе «CRM» → «Вебхуки».

Что изменилось в вебхуках вместе с API:
- Повторы. Ваш сервер не ответил или вернул ошибку 5xx — ТапВей повторит отправку 6 раз в течение примерно 21 часа. id события при повторах не меняется: по нему легко отсеять дубль.
- Подпись со временем. Заголовок
X-TapWay-Signature-V2подтверждает, что запрос от ТапВей. Его нельзя переслать повторно через сутки. Пример проверки на Node.js и PHP — в справке. - Журнал и проверка. Кнопка «Проверить» отправляет тестовое событие и сразу показывает ответ вашего сервера. Журнал хранит отправки за 30 дней. Неудачную отправку можно повторить вручную.
- Только https. Данные клиентов не уходят открытым текстом, а на адреса внутренних сетей ничего не отправляется.
Документация
Все методы описаны на странице api.tapway.me/v1/docs: параметры, права, примеры запросов и ответов, ошибки. Там же лимиты и проверка подписи вебхуков. Машинное описание в формате OpenAPI 3.1 открывается в Postman и Insomnia, по нему можно сгенерировать клиент на любом языке.


Безопасность и ограничения
- Ключ — только на сервере. Не вставляйте его в код страницы или мобильного приложения. Из браузера посетителя API не отвечает.
- Только свой проект. Ключ видит данные одного проекта. Чужой id получит ответ «не найдено».
- Лимиты. На «Про» — 60 запросов в минуту и 10 000 в сутки, на «Бизнесе» — 300 и 100 000. Лимиты тарифа тоже действуют: например, на число товаров и записей в месяц.
- Проверка содержания. Тексты, ссылки и фото товаров проходят ту же проверку, что и в кабинете. Фото с чужих сайтов поставить нельзя — только загруженные через API.
- Через API нельзя: менять дизайн и блоки страниц, удалять контакты и сделки CRM, создавать отправления СДЭК и Яндекс Доставки, управлять тарифом и доменами. Запись через API создаётся без предоплаты: оплату принимает ваша система.
Когда API не нужно
API — инструмент для программиста. Многие задачи решаются без кода:
- заявки в amoCRM, Bitrix24 или RetailCRM — готовые интеграции на «Бизнесе»;
- контакты в рассылку — подключение Unisender с «Про»;
- уведомления о заявках и записях — в Telegram через общий бот ТапВей на любом тарифе;
- разовая выгрузка — CSV заказов, товаров, ответов на опросы и статистики в кабинете.
Подробнее про все способы — на странице «API и интеграции».
Частые вопросы
Сколько стоит API?
Отдельной платы нет: API входит в тарифы «Про» и «Бизнес». На бесплатном и «Базовом» тарифах ключ создать нельзя. Сравнить тарифы можно на странице тарифов.
Можно ли подключить запись к Яндекс Картам через API?
Кнопку «Записаться онлайн» в Яндекс Картах ставят только партнёры Яндекса. ТапВей пока не партнёр. Сейчас страницу с записью можно указать в карточке организации как сайт — как это сделать, рассказали в статье «Как добавить онлайн-запись в Яндекс Карты».
Что будет с ключом, если я передам проект другому человеку?
Все ключи проекта отзовутся автоматически. Новый владелец создаст свои.
Как понять, что ключ украли?
В списке ключей видно, когда каждым пользовались в последний раз. Если время не совпадает с работой вашей программы, отзовите ключ — доступ пропадёт сразу.
Нужно ли что-то менять в старых вебхуках?
Нет. Прежний заголовок X-TapWay-Signature по-прежнему приходит, а «Webhook URL» из настроек проекта шлёт тело прежнего формата. Новое — повторы, журнал и подпись со временем — работает само. Одно исключение: адреса с http больше не принимаются и события на них не уходят. Если у вас такой адрес, замените его на https.