Pular para o conteúdo

Autenticação

Uma aplicação fornece-lhe um Client ID e uma Secret Key que precisa para criar uma sessão OAuth2 autenticada que pode usar para comunicar com as APIs da Wink e TripPay.

Aqui estão os passos para criar uma sessão autenticada.

Passo 1. Obtenha um token de acesso no ambiente de staging ou no nosso ambiente de produção:

Provavelmente, estará a trabalhar com uma biblioteca OAuth2 robusta para a sua linguagem, que fará todo o trabalho pesado por si. Os nossos exemplos mostrarão o uso mais básico a partir da linha de comandos usando 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>"

Isto irá devolver um token de acesso, juntamente com outros dados da resposta OAuth2:

{
"access_token": "abc123"
}

Quando fizer uma chamada a qualquer um dos nossos endpoints, inclua o seguinte no cabeçalho:

  • Wink-Version = 2.0 Última - Consulte a nossa documentação API para outras versões disponíveis.
  • Authorization = Bearer ${access_token} Insira o seu token de acesso.

Um scope é uma permissão que o seu token de acesso transporta. Quando solicita um token, passa uma lista de scopes delimitada por espaços no parâmetro scope, e o token só pode aceder às áreas que esses scopes abrangem. Com o grant client_credentials define os scopes no seu pedido de token — veja os exemplos curl acima e o tutorial Postman.

Os scopes são nomeados section.action, onde a ação é uma das seguintes:

  • read — visualizar recursos (requisições seguras GET)
  • write — criar e atualizar recursos (POST / PUT / PATCH)
  • remove — eliminar recursos (DELETE)

A Wink agrupa permissões por área funcional. Solicite apenas os scopes que a sua integração necessita:

Grupo de scopesScopesO que desbloqueiamRisco
Accountaccount.read account.write account.removeGestão de entidades, membros da equipa, definições, aplicaçõesBaixo–Médio
Inventoryinventory.read inventory.write inventory.removePropriedades, tipos de quartos, planos de tarifas, tarifas, extras, disponibilidade, atividades, atraçõesBaixo–Médio
Bookingbooking.read booking.write booking.removePesquisa, visualização, criação, cancelamento e reembolso de reservas; checkout; políticas de cancelamentoBaixo–Médio
Marketingmarketing.read marketing.write marketing.removeCampanhas, benefícios, canais de venda, WinkLinks, social gerido, fidelizaçãoBaixo–Médio
Contentcontent.read content.write content.removeDescrições de propriedades, avaliações, media, mapas, índice verdeBaixo–Médio
Analyticsanalytics.read analytics.write analytics.removeRelatórios e análises — receitas, rankingsBaixo–Médio
Integrationsintegrations.read integrations.write integrations.removeGestores de canais, sistemas externos de reservas, Google Hotel, endpoints de notificação, sincronização de reservasBaixo–Médio
Paymentpayment.read payment.write payment.removeProcessamento de pagamentos, Stripe, Revolut, pagamentos, subscriçõesMédio–Alto
Accountingaccounting.read accounting.write accounting.removeContabilidade, livro de retiradas, reconciliaçãoMédio–Alto
MCPmcp.read mcp.write mcp.removeAbre o transporte MCP (/mcp) para agentes de IABaixo–Médio

Algumas coisas a ter em conta:

  • Solicite o mínimo. Peça apenas os scopes que a sua integração realmente usa — um token emitido com acesso mais amplo do que o necessário tem um raio de impacto maior se for comprometido.
  • Scopes desconhecidos são rejeitados. Solicitar um scope para o qual a sua aplicação não está registada, ou que não existe, falha na emissão do token.
  • mcp.* é apenas para clientes agentes de IA. Precisa dele para abrir o transporte MCP; não é necessário para chamadas REST API regulares. Veja Model Context Protocol.