Przejdź do głównej zawartości

Uwierzytelnianie

Aplikacja dostarcza Ci Client ID oraz Secret Key, które są potrzebne do utworzenia uwierzytelnionej sesji OAuth2, umożliwiającej komunikację z API Wink i TripPay.

Oto kroki do utworzenia uwierzytelnionej sesji.

Krok 1. Pobierz token dostępu na środowisku staging lub produkcyjnym:

Najprawdopodobniej będziesz korzystać z solidnej biblioteki OAuth2 dla swojego języka, która wykona za Ciebie większość pracy. Nasze przykłady pokażą najprostsze użycie z linii poleceń przy pomocy curl.

Okno terminala
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>"
Okno terminala
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>"

Otrzymasz token dostępu wraz z innymi danymi odpowiedzi OAuth2:

{
"access_token": "abc123"
}

Przy wywołaniu dowolnego z naszych endpointów dołącz w nagłówku:

  • Wink-Version = 2.0 Najnowsza - Zobacz naszą dokumentację API, aby poznać inne dostępne wersje.
  • Authorization = Bearer ${access_token} Wstaw swój token dostępu.

Scope to uprawnienie, które niesie Twój token dostępu. Podczas żądania tokena przekazujesz listę zakresów oddzielonych spacjami w parametrze scope, a token może uzyskać dostęp tylko do obszarów objętych tymi zakresami. Przy grantcie client_credentials ustawiasz zakresy w żądaniu tokena — zobacz powyższe przykłady curl oraz przewodnik Postman.

Zakresy mają nazwę w formacie section.action, gdzie akcja to jedna z:

  • read — przeglądanie zasobów (bezpieczne żądania GET)
  • write — tworzenie i aktualizacja zasobów (POST / PUT / PATCH)
  • remove — usuwanie zasobów (DELETE)

Wink grupuje uprawnienia według obszarów funkcjonalnych. Żądaj tylko zakresów, których potrzebuje Twoja integracja:

Grupa zakresówZakresyCo odblokowująRyzyko
Kontoaccount.read account.write account.removeZarządzanie podmiotami, członkami zespołu, ustawieniami, aplikacjamiNiskie–Średnie
Inwentarzinventory.read inventory.write inventory.removeObiekty, typy pokoi, plany taryfowe, ceny, dodatki, dostępność, aktywności, atrakcjeNiskie–Średnie
Rezerwacjebooking.read booking.write booking.removeWyszukiwanie, przeglądanie, tworzenie, anulowanie i zwroty rezerwacji; finalizacja; polityki anulacjiNiskie–Średnie
Marketingmarketing.read marketing.write marketing.removeKampanie, korzyści, kanały sprzedaży, WinkLinks, zarządzane social media, lojalnośćNiskie–Średnie
Treśćcontent.read content.write content.removeOpisy obiektów, recenzje, media, mapy, wskaźnik ekologicznyNiskie–Średnie
Analitykaanalytics.read analytics.write analytics.removeRaportowanie i analizy — przychody, rankingiNiskie–Średnie
Integracjeintegrations.read integrations.write integrations.removeMenedżery kanałów, zewnętrzne systemy rezerwacji, Google Hotel, endpointy powiadomień, synchronizacja rezerwacjiNiskie–Średnie
Płatnościpayment.read payment.write payment.removePrzetwarzanie płatności, Stripe, Revolut, wypłaty, subskrypcjeŚrednie–Wysokie
Księgowośćaccounting.read accounting.write accounting.removeKsięgowość, rejestr wypłat, uzgadnianieŚrednie–Wysokie
MCPmcp.read mcp.write mcp.removeOtwiera transport MCP (/mcp) dla agentów AINiskie–Średnie

Kilka rzeczy, o których warto pamiętać:

  • Żądaj minimum. Proś tylko o zakresy, których Twoja integracja faktycznie używa — token z szerszym dostępem niż potrzebny zwiększa potencjalne szkody w przypadku wycieku.
  • Nieznane zakresy są odrzucane. Żądanie zakresu, na który Twoja aplikacja nie jest zarejestrowana lub który nie istnieje, powoduje błąd przy wydawaniu tokena.
  • mcp.* jest tylko dla klientów agentów AI. Potrzebujesz go, aby otworzyć transport MCP; nie jest wymagany do zwykłych wywołań REST API. Zobacz Model Context Protocol.