Заголовок: Подключение API онлайн-записи в Яндекс Бизнесе: технический гайд для юридических компаний

По запросу «юридическая консультация» в Москве Яндекс Карты фиксируют более 180 тысяч поисковых сессий ежемесячно. Конверсия из просмотра карточки в обращение падает в 2,5 раза, если клиенту предлагают только звонок или форму с обещанием перезвонить через 15 минут. Пользователь хочет зафиксировать время встречи с конкретным юристом. Кнопка «Записаться онлайн» в Яндекс Бизнесе требует интеграции с аккредитованными платформами или собственного API.

Два способа подключения онлайн-записи

Первый метод — использование партнерского сервиса из списка Яндекса. В пул входят Битрикс24, Altegio, Dikidi, 1 °C. Если юридическая фирма ведет учет в Битрикс24, активация бронирования сводится к включению коннектора в кабинете CRM и прохождению модерации.

Второй метод — прямое подключение к API Яндекс Бизнеса. Регламент рассчитан на крупные сети, которые хотят подключить онлайн-запись через собственную CRM-систему, или разработчиков CRM-систем, которые уже подключили более 300 компаний. Если юридическая компания — это федеральная коллегия с закрытым контуром безопасности, передача данных сторонним SaaS недопустима из-за адвокатской тайны. В этом случае собственное API — единственное решение.

Для небольших бюро без штата разработчиков есть альтернатива в рекламном кабинете. При покупке продвижения в Картах на вкладке «Материалы» настраивается кнопка «Записаться онлайн» с прямой ссылкой на лендинг с календарем. Нативный виджет внутри карточки доступен только через партнерскую CRM или прямой шлюз бронирования. Общие правила описаны в материале подключение онлайн-записи в Яндекс Бизнесе.

ПараметрПрямой API ЯндексаПартнерская CRMКнопка действия в рекламе
Кому подходитСети или разработчики ПО от 300 точекЛюбые компании от 1 офисаРекламодатели с приоритетным размещением
Срок запускаОт 1 месяцаОт 1 до 3 рабочих днейВ течение суток после модерации
Хранение персональных данныхНа серверах юридической компанииНа серверах сторонней CRMНа посадочной странице сайта
Отображение в КартахНативный виджет бронированияНативный виджет бронированияВнешняя ссылка на сайт
Требования к разработкеСоздание фида, вебхуков, эндпоинтовНе требуется, готовый коннекторНе требуется, указание URL

Сравнение архитектурных подходов к бронированию юридических консультаций.

Ограничения API и специфика юридических услуг

Прямой протокол бронирования подходит только организациям с фактическим адресом. Виртуальные офисы и абонентские ящики модерацию не проходят.

Интерфейс API настроен на сферу красоты и здоровья. Рубрики «юридические услуги», «адвокаты», «банкротство» требуют ручного согласования с техническим менеджером Яндекса. Необходимо зафиксировать, что слот записи соответствует времени консультации, а не аренде кабинета.

Срок интеграции прямого API составляет около месяца. Время увеличивается, если разработчики отступают от спецификации или медленно реагируют на замечания тестировщиков. После проверок кнопка действия появится в профиле в течение 10 дней.

Бонус 10 000 ₽ на рекламу
Первую рекламную кампанию в Яндекс Директе или Яндекс Бизнесе можно запустить с бонусом 10 000 ₽. Промокод PERK-6A16-4E35-977A активируется по реферальной ссылке при пополнении бюджета от 10 000 ₽ (только для новых клиентов). Перейти в Яндекс Бизнес

Согласование заявки и брендинг

Интеграция начинается с заполнения формы заявки, где выбирается пункт «Подключиться через API Яндекса». После отправки анкеты менеджер связывается с представителем компании в Telegram. Требуемый пакет данных:

  • Официальное наименование по ЕГРЮЛ или реестру адвокатских образований.
  • Маркетинговое название бренда для шапки виджета.
  • Ссылка на сайт компании.
  • Логотип в формате монохромного векторного файла SVG без растровых элементов. Высота — 16 пикселей.
  • После валидации менеджер регистрирует компанию, выдает идентификатор partnerName и пару секретных ключей для JWT. Детали процесса — в статье про прямую интеграцию API онлайн-записи в Яндекс Бизнесе.

    Архитектура API и эндпоинты

    Интеграция требует тестового (Testing) и боевого (Production) окружений. Яндекс взаимодействует с API через синхронные HTTP-запросы и асинхронные вебхуки. Сервер должен принимать заголовок Accept: application/json и возвращать ответы с Content-Type: application/json. Редиректы с HTTPS на HTTP запрещены.

    Для авторизации используется JWT. Токен генерируется без временной метки (--no-iat) в payload. Ошибки в заголовках вызывают ответ 406 Not Acceptable.

    Обязательные методы:

  • GET /companies/feed — список филиалов с пагинацией. ID филиалов передаются как строки.
  • GET /companies/{id}/services — список услуг с ID, длительностью и ценой.
  • GET /companies/{id}/resources — список юристов.
  • GET /companies/{id}/slots?serviceIds[]=... — расчет свободных интервалов.
  • POST /bookings — создание бронирования.
  • GET /bookings/{id} — проверка записи.
  • PUT /bookings/{id} — изменение или отмена.
  • Метод получения слотов при отсутствии окон обязан возвращать {"availableTimeSlots": []}. Передача null или пустой строки расценивается как сбой.

    ПараметрТребование спецификацииТиповая ошибка разработчиков
    Формат идентификаторовСтроковый тип (String)Передача ID числом (Integer)
    Метка времени (Timestamp)ISO 8601 с часовым поясом (+03:00)Время в UTC или без таймзоны
    Статус отмены«cancelled» (две l)«canceled» (одна l)
    Пустые поляИсключение ключа из JSONПередача null или пустой строки
    КомментарииПоле comment обязательноВозврат только при POST

    Технические требования к обработке данных.

    Настройка ресурсов и таймслотов

    Юридические услуги сегментированы. Доверитель не пойдет к специалисту по семейным спорам за помощью по арбитражу. В методе GET /companies/{id}/resources ФИО специалиста передается в поле title, а должность и специализация — в description.

    Таймслоты в GET /companies/{id}/slots должны соответствовать стандарту ISO 8601 с локальным смещением: 2026-10-15T11:00:00+03:00. Если филиалы в разных часовых поясах, сервер отдает интервалы в таймзоне запрашиваемого филиала.

    Синхронизация через вебхуки

    Данные должны быть синхронны. При отмене визита через CRM, сервер отправляет PUT на https://partner.maps.yandex.net/booking/v1/partners/{partnerName}/{bookingId}. Статус отмены — cancelled.

    После завершения консультации отправляются финальные статусы:

  • visited — визит состоялся.
  • not_visited — клиент не пришел.
  • Систематическое отсутствие статусов ведет к отключению виджета. Подробности — в техническом гайде по онлайн-записи.

    Подготовка тестовой среды

    Тестирование на продакшене запрещено. Требования к тестовому хосту:

    1. Размер списка — не менее 10 позиций и не менее 10% от рабочего фида.
    2. Запрещены синтетические данные. Только реальные адреса и расписание.
    3. Поддержка всех операций: бронирование, перенос, отмена.
    4. Круглосуточная доступность.
    5. Исправление ошибок в течение двух рабочих дней.

    Сквозное E2E-тестирование

    Яндекс запускает E2E-тест: проверяет фид, пагинацию, расчет слотов, создание бронирования, перенос и отмену. При успешном тесте запуск идет поэтапно: сначала 1-5 филиалов, через 1-2 недели — вся сеть.

    Пример: сеть «Правовой Стандарт»

    Сеть из 14 филиалов перевела запись на API. Нагрузка — 120 звонков в день на филиал.

    1. Развернули api-booking.company.ru и stage-booking.company.ru.
    2. Настроили GET /companies/{id}/resources с указанием специализаций.
    3. Внедрили фильтр: исключение времени судебных заседаний из слотов для предотвращения овербукинга.
    4. Реализовали JWT HS256 без --no-iat.
    5. Настроили вебхук-обработчик с откликом до 40 секунд.
    6. Прошли E2E-тест за 3 дня.

    Результат: доля бронирований через Карты — 34% за первый месяц. Потери обращений в нерабочее время сведены к нулю.

    Диагностика перед подключением

    Интеграция не даст конверсий без подготовки карточки. Робот сопоставляет данные фида с профилем. Проверьте права доступа, график работы, прайс-лист и фото входной группы. Дополнительно изучите техническое руководство по онлайн-записи.

    Localis · Бесплатно
    Оценка карточки Яндекс Бизнеса за 120 секунд
    Покажет что не так в карточке и как это исправить. Оценка бесплатная, без регистрации, результат через 2 минуты.
    Проверить свою карточку

    Чек-лист готовности

    1. Права на все филиалы подтверждены под единым аккаунтом.
    2. Адреса и названия в БД совпадают с Яндекс Картами.
    3. Тестовый хост изолирован и содержит реальные данные.
    4. Все ID передаются строками (String).
    5. Сервер отдает Content-Type: application/json без редиректов.
    6. JWT генерируется без iat.
    7. Поле title — имя специалиста, description — специализация.
    8. Таймслоты — ISO 8601 с локальным часовым поясом.
    9. Пустые окна — {"availableTimeSlots": []}.
    10. Необязательные параметры при отсутствии значений исключаются.
    11. Статус отмены — cancelled.
    12. Поле comment возвращается во всех методах.
    13. Настроены вебхуки на изменение статуса.
    14. Реализована передача финальных статусов визита.
    Бонус 10 000 ₽ на первую рекламную кампанию
    Промокод PERK-6A16-4E35-977A добавит 10 000 ₽ к бюджету рекламной кампании в Яндекс Директе или Яндекс Бизнесе. Условия: минимальное пополнение от 10 000 ₽, действует только для новых клиентов (компания раньше не запускала рекламу или последняя кампания была больше года назад), не применяется при запуске через агентство. Активировать нужно по реферальной ссылке. Перейти в Яндекс Бизнес

    Частые вопросы

    Подходит ли прямой API для одного офиса?

    Нет. Прямой API предназначен для крупных сетей или разработчиков CRM-систем, которые уже подключили более 300 компаний. Одиночному офису нужны партнерские платформы (Битрикс24, Altegio) или кнопка действия со ссылкой на сайт.

    Сколько времени занимает запуск?

    Около месяца. Кнопка появляется в течение 10 дней после успешного E2E-теста.

    Что будет, если вернуть null вместо пустого массива?

    Критическая ошибка десериализации. Модерация будет заблокирована.

    Можно ли кастомизировать кнопку?

    Нет, дизайн виджета унифицирован.

    Как передать специализацию адвоката?

    Через поле description в объекте ресурса.