Credenciais e tokens
Token de API armazenado em cofre de credenciais (ex.: AWS Secrets Manager, HashiCorp Vault, variável de ambiente segura).
Token nunca commitado em repositório Git (nem em
.env commitado, nem em comentários).Token nunca logado em claro em nenhum nível de logging.
Acesso ao token restrito ao processo/serviço que precisa dele — princípio do menor privilégio.
Processo de rotação de credenciais documentado; rotação testada antes de ir a produção.
Token de administração (geração de chaves) separado das credenciais de integração operacional (se aplicável).
Verificação de webhook
Toda requisição de webhook verifica a assinatura
Digital-Signature antes de qualquer processamento.Payload sem assinatura válida é rejeitado com
401 — nunca processado parcialmente.Chave pública obtida de
GET /public-key programaticamente — não hardcoded.Cache da chave pública com TTL e rotação automática em caso de falha de verificação.
Raw body preservado antes do parse JSON — middleware de parsing não pode modificar o buffer antes da verificação.
Transporte (TLS)
Todas as chamadas à API usam HTTPS (TLS 1.2+). Nenhuma chamada em HTTP.
Endpoint de webhook exposto apenas via HTTPS com certificado público válido (não autoassinado).
Certificado com validade monitorada; alertas para renovação automática configurados.
Nenhuma aceitação de certificado inválido em clientes HTTP de produção (
--insecure e equivalentes proibidos).Proteção do endpoint de webhook
Endpoint de webhook não autentica por IP exclusivamente — confiança baseada em assinatura criptográfica.
WAF/proxy não remove ou modifica o header
Digital-Signature.Rate limiting configurado no endpoint para mitigar abuso.
Corpo máximo de requisição configurado (rejeitar payloads anormalmente grandes).
LGPD e dados pessoais
Dados pessoais do pagador (nome, documento) tratados conforme a LGPD: minimização de uso, armazenamento seguro.
Documentos em respostas da API podem ser mascarados (ex.:
***.456.789-**); não dependência do valor completo para lógica de negócio crítica.Logs de requisição não registram payloads completos com dados pessoais em texto claro.
Política de retenção de dados definida e respeitada.
Usuários finais informados sobre o uso de dados nos termos de serviço/privacidade.
Segurança de aplicação
Endpoint de webhook não executa operações de escrita diretas no banco durante o request (use filas — previne injeção via payload).
Validação de campos antes de persistir qualquer dado recebido no webhook.
Sem exposição de stack trace ou detalhes internos em respostas de erro para o chamador externo.
Dependências do projeto atualizadas (sem vulnerabilidades conhecidas nas bibliotecas de criptografia usadas).

