Integrar o Tracer significa decidir em qual ponto do seu fluxo de autorização fazer a chamada de validação, quais dados enviar e como tratar as três decisões possíveis. O padrão é curto: seu sistema coleta o contexto completo da transação, chamaDocumentation Index
Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/validations, age sobre ALLOW / DENY / REVIEW e segue em frente. O Tracer nunca volta a chamar a sua stack — não há webhooks ou callbacks; a integração termina com a resposta.
O que muda na sua operação: a decisão sai de lógica in-process e vai pra uma chamada externa. A chamada é síncrona (request/response, sem webhooks), então fica no caminho crítico da transação. Bem feita, adiciona menos de 80ms p99 e te dá um ponto único de política e auditoria. Mal feita — sem timeout, sem retry, sem fallback — vira um ponto único de falha.
O trade-off honesto: você está adicionando um hop de rede. A boa notícia é que o contrato é simples: idempotente por requestId, sem callbacks, resposta determinística de três estados. A má notícia é que você precisa pensar em timeouts, retries e o que fazer se o Tracer estiver inalcançável — a maior parte deste guia é sobre isso.
Este guia cobre os requisitos de payload, o fluxo de integração e práticas que mantêm a chamada de validação dentro do seu budget de latência.
Visão geral da integração
O Tracer foi projetado para ser chamado por sistemas de autorização (gateways de pagamento, orquestradores de workflow ou processadores de transações) que precisam de decisões de validação em tempo real. A integração segue um padrão simples de requisição-resposta:

Padrão Payload-Complete
O Tracer usa o Padrão Payload-Complete, o que significa que todo o contexto necessário para a validação deve ser incluído na requisição. Este design garante:
| Benefício | Descrição |
|---|---|
| Latência previsível | Sem chamadas externas durante a validação; tempo de resposta abaixo de 80ms |
| Simplicidade | Uma única requisição contém tudo necessário para a decisão |
| Confiabilidade | Sem dependência de serviços externos durante a validação |
| Flexibilidade | Seu sistema controla a atualização dos dados e a lógica de enriquecimento |
Suas responsabilidades
Como sistema integrador, você é responsável por:- Enriquecer o payload com dados de conta, segmento, portfólio e comerciante antes de chamar o Tracer
- Fornecer contexto preciso para avaliação de regras e limites—o Tracer não consegue buscar dados faltantes
- Tratar a decisão (ALLOW, DENY ou REVIEW) adequadamente no seu fluxo de trabalho
- Implementar lógica de retry se o Tracer estiver temporariamente indisponível
- Gerenciar fluxos de revisão quando o Tracer retornar
REVIEW—o Tracer não inclui gestão de casos
Responsabilidades do Tracer
O Tracer é responsável por:- Avaliar regras contra o contexto fornecido
- Verificar limites contra o uso atual
- Registrar trilha de auditoria para conformidade
- Retornar decisão com informações detalhadas
Fluxo de integração
Siga estes passos para integrar seu sistema com o Tracer.
Passo 1: Prepare o contexto da transação
Antes de chamar o Tracer, reúna todos os dados relevantes dos seus sistemas:
Passo 2: Chame a API do Tracer
Envie uma requisição POST para/v1/validations com o contexto completo da transação incluindo:
- Detalhes da transação (tipo, subTipo, valor, moeda, timestamp)
- Informações da conta (obrigatório)
- Opcional: segmento, portfólio, comerciante e personalizada
Passo 3: Trate a resposta
Processe a decisão retornada pelo Tracer:| Decisão | Ação |
|---|---|
ALLOW | Prossiga com a transação |
DENY | Rejeite a transação; mostre o motivo ao usuário se apropriado |
REVIEW | Enfileire para revisão manual no seu sistema de revisão |
validationId para correlação da trilha de auditoria, detalhes sobre quais regras corresponderam e informações do uso atual do limite.
Usando metadata
Metadata permite passar campos personalizados que suas regras podem avaliar. Use para contexto como canal, informações do dispositivo, nível do cliente ou qualquer atributo específico do negócio.As chaves de metadata devem ser alfanuméricas com underscores apenas, máximo de 64 caracteres. Máximo de 50 entradas por requisição.
Idempotência de requisições
Requisições de validação são idempotentes com base no campo
requestId. Se você enviar o mesmo requestId duas vezes, o Tracer retorna o resultado em cache da primeira requisição ao invés de reprocessar.
| Código de resposta | Significado |
|---|---|
201 Created | Nova validação processada |
200 OK | Requisição duplicada detectada; resultado em cache retornado |
requestId garante semântica de processamento exactly-once.
Contrato de idempotência:
- Mesmo
requestId→ Mesma resposta (garantido) requestIddiferente → Processamento independente (mesmo com dados de transação idênticos)
Autenticação
O Tracer suporta dois modos de autenticação que podem ser usados independentemente ou combinados.
Autenticação por API key
A opção mais simples. Envie sua API key no headerX-API-Key em cada requisição.
| Variável de ambiente | Descrição |
|---|---|
API_KEY_ENABLED | Habilitar autenticação por API key (padrão: false) |
API_KEY | O valor da chave secreta |
API_KEY_ENABLED_ONLY_VALIDATION | Usar API key apenas para o endpoint /v1/validations (padrão: false) |
Autenticação por plugin (Access Manager)
Para implantações enterprise, o Tracer pode delegar autenticação ao Lerian Access Manager. Isso habilita autenticação centralizada em todos os serviços Lerian.| Variável de ambiente | Descrição |
|---|---|
PLUGIN_AUTH_ENABLED | Habilitar autenticação por plugin (padrão: false) |
PLUGIN_AUTH_ADDRESS | URL do serviço de autenticação (padrão: http://localhost:4000) |
Prioridade de autenticação
Quando ambos os modos estão habilitados, o Tracer usa esta prioridade:- Se
PLUGIN_AUTH_ENABLED=truee o endpoint não está marcado para API-key-only → Autenticação por plugin - Se
API_KEY_ENABLED=trueou o endpoint está marcado para API-key-only → Autenticação por API key
/v1/* documentada nesta referência.
O endpoint
/v1/validations pode ser configurado para autenticação apenas por API key via API_KEY_ENABLED_ONLY_VALIDATION=true. Isso é útil em cenários de alta vazão onde a autenticação por plugin adiciona latência inaceitável. Essa flag é incompatível com o modo multi-tenant (MULTI_TENANT_ENABLED=true) — o serviço não inicia, falhando com TRC-0327.Autenticação multi-tenant
QuandoMULTI_TENANT_ENABLED=true, o Tracer roda em modo multi-tenant e o modelo de autenticação muda:
- Plugin auth é obrigatório. O serviço falha ao iniciar com TRC-0326 se
PLUGIN_AUTH_ENABLED=false. - Toda requisição
/v1/*deve carregar um JWT bearer token emitido pelo Access Manager:Authorization: Bearer <jwt>. - O
tenantIdé resolvido a partir da claim do JWT, não de um header, path, body, metadata ou escopo de regra. Não existe headerX-Tenant-ID— passar o identificador do tenant em qualquer outro lugar que não seja a claim do token é não suportado e ignorado. - Cada tenant opera em seu próprio banco PostgreSQL. A conexão específica do tenant é resolvida pelo Tenant Manager da plataforma no momento da requisição.
- Endpoints públicos (
/health,/readyz,/version,/swagger/*) seguem sem autenticação em modo multi-tenant — a exigência de bearer token aplica-se apenas a/v1/*.
"code": "Unauthenticated" (o mesmo código usado para API key ausente; nenhum código TRC separado é emitido).
Se a implantação multi-tenant atingir seu cap por instância de tenants ativos, requisições para tenants frios retornam HTTP 503 com TRC-0335 e um header Retry-After. O cliente deve fazer backoff e tentar novamente; o cap reseta automaticamente conforme o pool LRU eviciona tenants frios.
Consulte Multi-tenancy para o modelo de tenants da plataforma.
Considerações de desempenho
Otimize sua integração para baixa latência e alta confiabilidade.
Limite de tempo
O Tracer foi projetado para responder em menos de 80ms (p99). Configure o timeout do seu cliente adequadamente:| Configuração | Valor recomendado |
|---|---|
| Timeout do cliente | 100ms |
| Timeout de conexão | 50ms |
| Timeout de leitura | 100ms |
Estratégia de retry
Implemente lógica de retry para falhas transitórias:Comportamento de fallback
Decida o que acontece quando o Tracer está indisponível:| Estratégia | Quando usar |
|---|---|
| Fail-open | Permita a transação se o Tracer estiver fora (priorize disponibilidade) |
| Fail-closed | Negue a transação se o Tracer estiver fora (priorize segurança) |
| Enfileirar para revisão | Enfileire a transação para revisão manual |
Atualização dos dados
Como você controla o enriquecimento do payload, a atualização dos dados é sua responsabilidade. O Tracer confia nos dados que você fornece e não consegue detectar informações desatualizadas.
| Tipo de dado | Recomendação de atualização | Risco se desatualizado |
|---|---|---|
| Status da conta | Tempo real ou quase tempo real | Transações em contas suspensas podem ser permitidas |
| Associação ao segmento | Pode ser cacheado (muda com pouca frequência) | Limites ou regras erradas podem ser aplicadas |
| Atribuição de portfólio | Pode ser cacheado (muda com pouca frequência) | Correspondência de escopo incorreta |
| Dados do comerciante | Pode ser cacheado com atualização periódica | Regras de risco podem não disparar corretamente |
Formato de data e hora
Todos os campos datetime devem usar formato RFC3339 com timezone obrigatório: Formatos válidos:
Lista de verificação da integração
Antes de ir para produção, verifique:
- API Key está configurada e segura
- Cada requisição inclui um requestId único (UUID)
- Cliente trata respostas 201 e 200 como sucesso
- Timeout do cliente está definido para 100ms
- Lógica de retry está implementada para erros 5xx
- Comportamento de fallback está definido
- Todos os campos obrigatórios estão preenchidos
- Timestamps usam formato RFC3339 com timezone
- Códigos de moeda estão em maiúsculas ISO 4217
- Tratamento de decisão está implementado (ALLOW/DENY/REVIEW)
- IDs de validação estão sendo logados para correlação na trilha de auditoria
Exemplo de integração (pseudocódigo)
Próximos passos
- Motor de regras - Crie regras que avaliam contra o contexto que você fornece
- Limites de gastos - Configure limites que se aplicam aos escopos das suas transações
- Auditoria e conformidade - Consulte o histórico de validações e a trilha de auditoria

