Перейти к содержимому

Аутентификация

Приложение предоставляет вам Client ID и Secret Key, которые необходимы для создания аутентифицированной сессии OAuth2, которую вы можете использовать для взаимодействия с API Wink и TripPay.

Вот шаги для создания аутентифицированной сессии.

Шаг 1. Получите access token в staging или в нашей production среде:

Скорее всего, вы будете использовать мощную OAuth2 библиотеку для вашего языка программирования, которая выполнит всю основную работу за вас. Наши примеры покажут самый базовый способ с командной строки с помощью curl.

Окно терминала
curl -X POST https://staging-iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"
Окно терминала
curl -X POST https://iam.wink.travel/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=<YOUR_CLIENT_ID>" \
-d "client_secret=<YOUR_SECRET_KEY>"

В ответ вы получите access token вместе с другими данными OAuth2:

{
"access_token": "abc123"
}

При вызове любого из наших эндпоинтов включайте в заголовок следующие параметры:

  • Wink-Version = 2.0 Последняя версия - Смотрите нашу документацию API для других доступных версий.
  • Authorization = Bearer ${access_token} Вставьте ваш access token.

Scope — это разрешение, которое несет ваш access token. При запросе токена вы передаете список scopes, разделенных пробелами, в параметре scope, и токен может получить доступ только к тем областям, которые покрывают эти scopes. При использовании гранта client_credentials вы задаете scopes в запросе токена — см. примеры curl выше и пошаговое руководство Postman.

Scopes имеют формат section.action, где action — одно из:

  • read — просмотр ресурсов (безопасные GET запросы)
  • write — создание и обновление ресурсов (POST / PUT / PATCH)
  • remove — удаление ресурсов (DELETE)

Wink группирует разрешения по функциональным областям. Запрашивайте только те scopes, которые нужны вашей интеграции:

Группа scopeScopesЧто они открываютРиск
Accountaccount.read account.write account.removeУправление сущностями, членами команды, настройками, приложениямиНизкий–Средний
Inventoryinventory.read inventory.write inventory.removeОбъекты, типы номеров, тарифные планы, тарифы, доп. услуги, доступность, активности, достопримечательностиНизкий–Средний
Bookingbooking.read booking.write booking.removeПоиск, просмотр, создание, отмена и возврат бронирований; оформление; политики отменыНизкий–Средний
Marketingmarketing.read marketing.write marketing.removeКампании, бонусы, каналы продаж, WinkLinks, управляемые соцсети, лояльностьНизкий–Средний
Contentcontent.read content.write content.removeОписания объектов, отзывы, медиа, карты, green-indexНизкий–Средний
Analyticsanalytics.read analytics.write analytics.removeОтчеты и аналитика — доходы, рейтингиНизкий–Средний
Integrationsintegrations.read integrations.write integrations.removeМенеджеры каналов, внешние системы бронирования, Google Hotel, конечные точки уведомлений, синхронизация бронированийНизкий–Средний
Paymentpayment.read payment.write payment.removeОбработка платежей, Stripe, Revolut, выплаты, подпискиСредний–Высокий
Accountingaccounting.read accounting.write accounting.removeБухгалтерия, реестр выплат, сверкаСредний–Высокий
MCPmcp.read mcp.write mcp.removeОткрывает MCP транспорт (/mcp) для AI-агентовНизкий–Средний

Несколько важных моментов:

  • Запрашивайте минимум. Просите только те scopes, которые действительно нужны вашей интеграции — токен с избыточными правами увеличивает потенциальный ущерб при утечке.
  • Неизвестные scopes отклоняются. Запрос scope, на который ваше приложение не зарегистрировано или который не существует, приведет к ошибке при выдаче токена.
  • mcp.* предназначены только для клиентов AI-агентов. Они нужны для открытия MCP транспорта; для обычных REST API вызовов не требуются. Подробнее см. Model Context Protocol.