Hostme | Регистрация приложения

Регистрация приложения

Обновлено: 2026-06-24 17:30 MSK

Эта страница описывает, как внешнее приложение (партнёр, POS, CRM) получает доступ к Hostme API: как выпустить партнёрский токен, узнать список своих ресторанов и partnerId, как устроена регистрация вендорского приложения и что такое appId.

Общие правила аутентификации — в разделе Аутентификация. Здесь — специфика именно партнёрского/вендорского доступа.

Часть схем запросов и ответов в этом разделе спецификации не зафиксирована (тело пустое или ответ не описан). Такие места отмечены явно — точный формат согласуется с командой Hostme на этапе онбординга.


Партнёрский токен

POST /api/core/admin/account/partners/token

Выпускает токен для партнёрского доступа. Тело запроса — PartnerTokenRequest.

Внимание. В спецификации тело PartnerTokenRequest пустое — конкретные поля (идентификатор партнёра, секрет и т.п.) в выгрузке не описаны. Формат запроса и набор учётных данных согласуются при онбординге с командой Hostme.

curl -X POST https://api.hostmeapp.com/api/core/admin/account/partners/token \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ }'

Полученный токен используется как Authorization: Bearer $TOKEN в остальных запросах. Поведение эндпоинтов может зависеть от типа токена (Hostme / Partner / Vendor) — например, при создании брони бронь оформляется от имени партнёра или внешнего приложения.


GET /api/core/admin/account/me — кто я и мои рестораны

Возвращает UserInfoContract — данные текущего аккаунта, его partnerId и список ресторанов, к которым есть доступ. Это первый запрос после получения токена: из него вы берёте restaurantId для всех остальных вызовов и partnerId для партнёрских сценариев.

Ключевые поля ответа (UserInfoContract)

ПолеТипОписание
idstringИдентификатор пользователя
userNamestringЛогин
emailstringEmail
fullNamestringИмя
languagestringЯзык
partnerIdstringИдентификатор партнёра (если аккаунт партнёрский)
rolesarrayРоли по ресторанам (RoleInfoContract: restaurantId, restaurantName, name, type)
restaurantsarrayДоступные рестораны (RestaurantSummaryContract, см. ниже)

Ресторан в списке (RestaurantSummaryContract)

ПолеТипОписание
idintegerrestaurantId для API-вызовов
namestringНазвание
address, city, country, countryShortstringАдрес
timeZonestringЧасовой пояс
isVerifiedbooleanВерифицирован
isSuspendedbooleanПриостановлен
isOnlinebooleanОнлайн
rolestringВаша роль в этом ресторане
curl https://api.hostmeapp.com/api/core/admin/account/me \
  -H "Authorization: Bearer $TOKEN"

Регистрация вендорского приложения (VendorSignup)

Поток VendorSignup нужен, когда внешний сервис (POS/CRM) подключается к Hostme через OAuth-подобный сценарий: пользователь авторизуется на стороне вендора, Hostme получает callback и выпускает токен.

Ответы этих эндпоинтов в спецификации не описаны (RESPONSE 200 — OK без схемы). Используйте их по согласованию с Hostme; точные форматы уточняются при онбординге.

ЭндпоинтНазначение
GET /api/vendor/signup/vendorsСписок доступных вендоров
GET /api/vendor/signup/vendors/{vendorId}Информация о вендоре
GET /api/vendor/signup/auth/callback/{vendorId}OAuth-callback (параметры: code, state, account, merchant_id, employee_id, referer)
GET /api/vendor/signup/auth/tokenВыпуск токена (параметры: vendorId, username, password, restaurantId)
GET /api/vendor/signup/token/hostmeТокен Hostme по connectionId
GET /api/vendor/signup/accountsАккаунты вендора по connectionId
GET /api/vendor/signup/locationsЛокации (connectionId, accountId)
POST /api/vendor/signup/submitСоздание ресторана из вендорского аккаунта (тело CreateRestaurantContract)

POST /api/vendor/signup/submit

Создаёт заведение по данным из вендорского аккаунта. Тело — CreateRestaurantContract (адрес, название, контакты, услуги, часы работы, connectionId, companyId, siteId и др.). Это объёмный объект; ключевые поля — name, phone, email, addressObj, openingHours, services, connectionId.

Полная схема CreateRestaurantContract — в Swagger UI.


Вендорское приложение (VendorApp) и vendorId

После регистрации приложение работает в пространстве /api/pos/apps/{vendorId}/…. Здесь vendorId — идентификатор вашего приложения. Через эти эндпоинты идут события и интеграции (телефония, печать, WhatsApp, статусы устройств).

Большинство эндпоинтов VendorApp — это входящие вебхуки конкретных провайдеров (телефония, AmoCRM и т.п.) и служебные операции. Ответы в спецификации не описаны. Подключение — по согласованию с Hostme.

ЭндпоинтНазначение
GET /api/pos/apps/{vendorId}/auth2Авторизация приложения (параметр token)
GET /api/pos/apps/{vendorId}/mappings/{entity}Маппинг сущностей
POST /api/pos/apps/{vendorId}/eventsПриём событий (параметр appId)
GET /api/pos/apps/{vendorId}/dashboardДашборд приложения
POST /api/pos/apps/{vendorId}/whatsapp/{restaurantId}/connectПодключение WhatsApp

Понятие appId

appId — идентификатор партнёрского/вендорского приложения. Он используется как фильтр и метка источника в ряде эндпоинтов. В частности, по нему строится путь к партнёрским броням:

/api/rsv/partner/{appId}/reservations

Подробнее о работе с бронями от имени приложения — в разделе Партнёрские брони. При листинге броней appId (как VendorAppId) может проставляться автоматически для запросов от внешних приложений — см. Создание и управление.


Возможные ошибки — ProblemDetails, коды 400/401/403/404. Общие правила см. в Соглашениях и разделе Ошибки.