Skip to main content

Metodos de autenticacao

A API Thalpay suporta dois metodos de autenticacao. Voce pode usar qualquer um em todos os endpoints autenticados.

API Key (recomendado para integracao)

Gere uma API Key no Dashboard e envie no header x-api-key:
curl -X GET https://api.thalbank.com/transactions \
  -H "x-api-key: thalpay_live_abc123def456"
A API Key e exibida apenas uma vez no momento da criacao. Armazene-a de forma segura (variavel de ambiente ou vault). Se perder, delete a key e crie uma nova.

JWT Bearer Token

Para fluxos com login de usuario, use o endpoint de login para obter um token:
curl -X POST https://api.thalbank.com/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "sua_senha"
  }'
Resposta:
{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "550e8400-e29b-41d4-a716-446655440000",
  "user": {
    "id": "uuid",
    "name": "Nome do Usuario",
    "email": "[email protected]",
    "role": "SELLER"
  }
}
Use o accessToken no header Authorization:
curl -X GET https://api.thalbank.com/transactions \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Refresh Token

O accessToken expira em 1 hora. Use o refreshToken (valido por 7 dias) para obter um novo token sem refazer login:
curl -X POST https://api.thalbank.com/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{
    "refreshToken": "550e8400-e29b-41d4-a716-446655440000"
  }'
Resposta:
{
  "token": "eyJhbGciOiJIUzI1NiIs...(novo)",
  "refreshToken": "660e8400-e29b-41d4-a716-446655440001"
}
O refresh token e rotacionado a cada uso — o token anterior e invalidado. Isso previne reutilizacao em caso de vazamento.

Logout

Para revogar todos os tokens de um usuario:
curl -X POST https://api.thalbank.com/auth/logout \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Boas praticas

API Keys e tokens JWT devem ser usados apenas no backend. Nunca inclua credenciais em codigo client-side (JavaScript no browser, apps mobile sem proxy).
Crie uma nova key, atualize sua integracao, e delete a antiga. Isso limita o impacto de um eventual vazamento.
Armazene credenciais em variaveis de ambiente ou servicos de secrets (AWS Secrets Manager, HashiCorp Vault). Nunca commite credenciais no repositorio.

Erros de autenticacao

StatusErroDescricao
401UnauthorizedToken invalido, expirado ou ausente
403ForbiddenToken valido mas sem permissao para o recurso