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

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

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

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

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

Скорее всего, вы будете использовать мощную 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. При запросе токена вы передаёте список областей доступа, разделённых пробелами, в параметре scope, и токен сможет работать только с теми областями, которые вы указали. При использовании гранта client_credentials вы задаёте области доступа в запросе токена — см. примеры curl выше и пошаговое руководство Postman.

Области доступа имеют формат section.action, где действие — одно из:

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

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

Группа областейОбласти доступаЧто они открываютРиск
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-агентовНизкий–Средний

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

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