Autenticação
Visão Geral
Todas as chamadas à API do Payment Gateway (exceto a tokenização, que usa sua chave pública) exigem um token Bearer obtido através do endpoint /oauth/token.
Características principais:
- Tipo de concessão (grant type): Client Credentials (máquina a máquina)
- Tempo de vida do token: Curta duração (normalmente 1 hora) — solicite um novo token quando expirar
- Transporte: Sempre use HTTPS; nunca envie credenciais por conexões não criptografadas
- Armazenamento: Os tokens devem ser armazenados com segurança no lado do servidor; nunca os exponha em código do lado do cliente
Obtendo um Token de Acesso
POST /oauth/token
Requisição
curl -X POST https://{FQDN}/oauth/token \
-H 'Content-Type: application/json' \
-d '{
"clientId": "YOUR_CLIENT_ID",
"secretId": "YOUR_CLIENT_SECRET"
}'
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
clientId | string | Sim | Seu identificador de cliente OAuth, fornecido durante o onboarding |
secretId | string | Sim | Seu segredo de cliente OAuth, fornecido durante o onboarding |
Resposta (Sucesso — 200)
{
"accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"tokenType": "Bearer",
"expiresIn": 3600
}
| Campo | Tipo | Descrição |
|---|---|---|
accessToken | string | Token JWT a ser incluído nas chamadas subsequentes à API |
tokenType | string | Sempre "Bearer" |
expiresIn | number | Validade do token em segundos |
Resposta (Não Autorizado — 401)
{
"status": 401,
"message": "Unauthorized request",
"responseCode": "SE_001"
}
Usando o Token
Inclua o token de acesso no header Authorization de todas as requisições à API:
curl -X POST https://{FQDN}/v2/payment \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
-H 'Content-Type: application/json' \
-d '{ ... }'
Boas Práticas de Gerenciamento de Tokens
Faça cache dos tokens — Reutilize o mesmo token até que ele expire, em vez de solicitar um novo a cada chamada à API. O endpoint de autenticação tem um limite de taxa de 60 requisições/minuto.
Trate a expiração de forma adequada — Ao receber uma resposta
401ou403, solicite um novo token e repita a requisição original.Nunca exponha credenciais no lado do cliente — O
clientIde osecretIddevem ser usados apenas a partir do seu servidor backend (padrão Backend-for-Frontend). A única credencial do lado do cliente é apublicKeyusada para a tokenização de cartões.Faça a rotação dos segredos periodicamente — Entre em contato com a equipe Inyo para rotacionar seu client secret se suspeitar que ele foi comprometido.
Autenticação vs. Tokenização
| Aspecto | Lado do servidor (OAuth) | Lado do cliente (Tokenizer) |
|---|---|---|
| Credencial | clientId + secretId | publicKey |
| Endpoint | POST /oauth/token | biblioteca inyo.js |
| Finalidade | Autenticar chamadas à API | Tokenizar dados de cartão |
| Exposição | Apenas backend | Navegador (seguro para expor) |
Limites de Taxa
| Endpoint | Limite |
|---|---|
Autenticação (/oauth/token) | 60 requisições/minuto |
| Taxas de câmbio (FX) | 200 requisições/minuto |
| Todos os demais endpoints autenticados | 400 requisições/minuto |
Quando o limite de taxa é atingido, a API retorna HTTP 429. Implemente backoff exponencial com jitter na sua lógica de retentativa.
