Аутентификация
Приложение предоставляет вам 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.
Области доступа (Scopes)
Заголовок раздела «Области доступа (Scopes)»Scope — это разрешение, которое несёт ваш access token. При запросе токена вы передаёте
список областей доступа, разделённых пробелами, в параметре scope, и токен сможет работать только с теми областями,
которые вы указали. При использовании гранта client_credentials вы задаёте области доступа в запросе токена —
см. примеры curl выше и пошаговое руководство Postman.
Области доступа имеют формат section.action, где действие — одно из:
read— просмотр ресурсов (безопасныеGETзапросы)write— создание и обновление ресурсов (POST/PUT/PATCH)remove— удаление ресурсов (DELETE)
Wink группирует разрешения по функциональным областям. Запрашивайте только те области, которые нужны вашей интеграции:
| Группа областей | Области доступа | Что они открывают | Риск |
|---|---|---|---|
| Account | account.read account.write account.remove | Управление сущностями, членами команды, настройками, приложениями | Низкий–Средний |
| Inventory | inventory.read inventory.write inventory.remove | Объекты, типы номеров, тарифные планы, тарифы, доп. услуги, доступность, активности, достопримечательности | Низкий–Средний |
| Booking | booking.read booking.write booking.remove | Поиск, просмотр, создание, отмена и возврат бронирований; оформление; политики отмены | Низкий–Средний |
| Marketing | marketing.read marketing.write marketing.remove | Кампании, бонусы, каналы продаж, WinkLinks, управляемые соцсети, лояльность | Низкий–Средний |
| Content | content.read content.write content.remove | Описания объектов, отзывы, медиа, карты, green-index | Низкий–Средний |
| Analytics | analytics.read analytics.write analytics.remove | Отчёты и аналитика — доходы, рейтинги | Низкий–Средний |
| Integrations | integrations.read integrations.write integrations.remove | Менеджеры каналов, внешние системы бронирования, Google Hotel, конечные точки уведомлений, синхронизация бронирований | Низкий–Средний |
| Payment | payment.read payment.write payment.remove | Обработка платежей, Stripe, Revolut, выплаты, подписки | Средний–Высокий |
| Accounting | accounting.read accounting.write accounting.remove | Бухгалтерия, журнал выплат, сверка | Средний–Высокий |
| MCP | mcp.read mcp.write mcp.remove | Открывает MCP транспорт (/mcp) для AI-агентов | Низкий–Средний |
Несколько важных моментов:
- Запрашивайте минимум. Просите только те области доступа, которые действительно нужны вашей интеграции — токен с избыточными правами увеличивает потенциальный ущерб при утечке.
- Неизвестные области отклоняются. Запрос области, на которую ваше приложение не зарегистрировано или которая не существует, приведёт к ошибке при выдаче токена.
mcp.*предназначены только для клиентов AI-агентов. Они нужны для открытия MCP транспорта; для обычных REST API вызовов не требуются. Подробнее см. Model Context Protocol.