Pular para o conteúdo principal

Provisionamento de Credenciais

Quick Reference

WhatEntenda e gerencie as credenciais da API A55
WhyO gerenciamento adequado de credenciais previne incidentes de segurança e falhas de integração
Reading Time8 min
DifficultyBeginner
PrerequisitesConta sandbox ou produção

Tipos de Credenciais

CredencialFormatoFinalidade
entity_uuidUUID v4Identifica sua entidade comercial na A55
merchant_uuidUUID v4Identifica uma configuração específica de comerciante
client_idStringIdentificador de cliente OAuth2 para autenticação
client_secretStringSegredo de cliente OAuth2 — mantenha em sigilo
wallet_uuidUUID v4Identifica uma carteira que contém cobranças

Hierarquia

Entity (entity_uuid)
└── Merchant (merchant_uuid)
├── Wallet A (wallet_uuid)
│ ├── Charge 1
│ └── Charge 2
└── Wallet B (wallet_uuid)
└── Charge 3

Uma única entidade pode ter múltiplos comerciantes (por exemplo, diferentes linhas de negócio), e cada comerciante pode ter múltiplas carteiras.

Sandbox vs Produção

AspectoSandboxProdução
URL base da APIhttps://sandbox.api.a55.techhttps://api.a55.tech
URL de autenticaçãohttps://auth.sandbox.a55.techhttps://auth.a55.tech
Pool CognitoPool separadoPool separado
Credenciaisclient_id/client_secret diferentesclient_id/client_secret diferentes
Dinheiro realNãoSim
Cartões de testeAceitosRejeitados
As credenciais não são intercambiáveis

Credenciais do sandbox não funcionam em produção e vice-versa. Cada ambiente possui seu próprio pool Cognito com client IDs e secrets separados.

Como Rotacionar Credenciais

  1. Entre em contato com tech.services@a55.tech solicitando uma rotação de credenciais
  2. A A55 gera um novo client_secret mantendo seu client_id inalterado
  3. Ambos os secrets (antigo e novo) permanecem válidos por um período de transição de 24 horas
  4. Atualize suas variáveis de ambiente e faça o deploy
  5. Confirme que o novo secret funciona e notifique a A55 para revogar o antigo
# After receiving new credentials
export A55_CLIENT_SECRET="new_rotated_secret_value"

# Verify authentication works
curl -s -X POST "https://auth.sandbox.a55.tech/oauth2/token" \
-d "grant_type=client_credentials" \
-d "client_id=${A55_CLIENT_ID}" \
-d "client_secret=${A55_CLIENT_SECRET}" \
-d "scope=api/readwrite" | python3 -m json.tool

Boas Práticas de Segurança

Nunca faça commit de secrets no controle de versão

# .gitignore
.env
.env.local
.env.production

Use variáveis de ambiente

# .env (local development only — never commit this file)
A55_CLIENT_ID=your_client_id
A55_CLIENT_SECRET=your_client_secret

# In your application
import os
client_id = os.environ["A55_CLIENT_ID"]

Rotacione a cada 90 dias

Crie um lembrete no calendário. A rotação de credenciais limita o raio de impacto de um secret vazado.

Limite o acesso

  • Apenas serviços backend devem ter acesso ao client_secret
  • Nunca exponha credenciais em código frontend, logs ou mensagens de erro
  • Use o gerenciador de secrets do seu provedor de nuvem (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager)

Monitore o uso

  • Rastreie a emissão de tokens nos seus logs
  • Configure alertas para falhas de autenticação — elas podem indicar credenciais vazadas ou revogadas
  • Revise os padrões de acesso à API mensalmente

A A55 utiliza o tipo de concessão OAuth2 client_credentials, projetado para autenticação máquina-a-máquina (M2M):

  1. Seu servidor envia client_id + client_secret para o endpoint de token
  2. O Cognito da A55 retorna um token de acesso JWT válido por 3600 segundos (1 hora)
  3. Você inclui este token como Authorization: Bearer <token> em cada requisição à API
  4. Antes que o token expire, seu código deve solicitar um novo

Não há interação do usuário, nenhum código de autorização, nenhum redirecionamento — trata-se de uma troca direta de credenciais adequada para serviços backend.

Estrutura do token: O JWT contém seu entity_uuid, escopos concedidos e expiração. Você pode decodificá-lo (é base64), mas não precisa — passe-o como está para a API.