Перейти до вмісту

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

Додаток надає вам Client ID та Secret Key, які потрібні для створення аутентифікованої сесії OAuth2, яку ви можете використовувати для взаємодії з API Wink та TripPay.

Ось кроки для створення аутентифікованої сесії.

Крок 1. Отримайте токен доступу на staging або в нашому продуктивному середовищі:

Ви, найімовірніше, будете працювати з потужною бібліотекою OAuth2 для вашої мови програмування, яка виконає всю складну роботу за вас. Наші приклади покажуть найпростіше використання з командного рядка за допомогою curl.

Terminal window
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>"
Terminal window
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>"

Це поверне токен доступу разом з іншими даними відповіді OAuth2:

{
"access_token": "abc123"
}

Коли ви робите виклик до будь-якої з наших кінцевих точок, включайте у заголовок:

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

Scope — це дозвіл, який несе ваш токен доступу. Коли ви запитуєте токен, ви передаєте список scope, розділений пробілами, у параметрі scope, і токен може отримати доступ лише до тих областей, які охоплюють ці scope. За грантом client_credentials ви встановлюєте scope у запиті токена — дивіться приклади curl вище та покроковий посібник Postman.

Scope мають назви у форматі section.action, де action — один із:

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

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

Група scopeScopeЩо відкриваєРизик
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Опис властивостей, відгуки, медіа, карти, зелений індексНизький–Середній
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 transport (/mcp) для AI-агентівНизький–Середній

Декілька важливих моментів:

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