Pular para o conteúdo

Autenticação

Uma aplicação fornece a você um Client ID e uma Secret Key que você precisa para criar uma sessão OAuth2 autenticada que pode ser usada para se comunicar com as APIs da Wink e TripPay.

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

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

Você provavelmente estará trabalhando com uma biblioteca OAuth2 robusta para sua linguagem, que fará todo o trabalho pesado para você. Nossos exemplos mostrarão o uso mais básico a partir da linha de comando 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>"

Isso retornará um token de acesso, junto com outros dados da resposta OAuth2:

{
"access_token": "abc123"
}

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

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

Um escopo é uma permissão que seu token de acesso carrega. Quando você solicita um token, você passa uma lista de escopos delimitada por espaço no parâmetro scope, e o token só pode acessar as áreas que esses escopos cobrem. Com o grant client_credentials você define os escopos na sua requisição de token — veja os exemplos de curl acima e o tutorial do Postman.

Os escopos são nomeados como 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 — deletar recursos (DELETE)

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

Grupo de escopoEscoposO que desbloqueiamRisco
Accountaccount.read account.write account.removeGerenciamento de entidades, membros da equipe, configurações, aplicaçõesBaixo–Médio
Inventoryinventory.read inventory.write inventory.removePropriedades, tipos de quarto, planos de tarifa, tarifas, adicionais, disponibilidade, atividades, atraçõesBaixo–Médio
Bookingbooking.read booking.write booking.removeBuscar, visualizar, criar, cancelar e reembolsar reservas; checkout; políticas de cancelamentoBaixo–Médio
Marketingmarketing.read marketing.write marketing.removeCampanhas, benefícios, canais de venda, WinkLinks, social gerenciado, fidelidadeBaixo–Médio
Contentcontent.read content.write content.removeDescrições de propriedades, avaliações, mídia, mapas, índice verdeBaixo–Médio
Analyticsanalytics.read analytics.write analytics.removeRelatórios e análises — receita, rankingsBaixo–Médio
Integrationsintegrations.read integrations.write integrations.removeGerenciadores de canais, sistemas externos de reserva, Google Hotel, endpoints de notificação, sincronização de reservasBaixo–Médio
Paymentpayment.read payment.write payment.removeProcessamento de pagamentos, Stripe, Revolut, pagamentos, assinaturasMédio–Alto
Accountingaccounting.read accounting.write accounting.removeContabilidade, livro de retiradas, conciliaçãoMédio–Alto
MCPmcp.read mcp.write mcp.removeAbre o transporte MCP (/mcp) para agentes de IABaixo–Médio

Algumas coisas para ter em mente:

  • Solicite o mínimo. Peça apenas os escopos que 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 vazado.
  • Escopos desconhecidos são rejeitados. Solicitar um escopo para o qual sua aplicação não está registrada, ou que não existe, falha na emissão do token.
  • mcp.* é apenas para clientes agentes de IA. Você precisa dele para abrir o transporte MCP; não é necessário para chamadas REST API regulares. Veja Model Context Protocol.