engineAPIengineAPI
// guias

Guia: Segurança

Práticas de segurança da engineAPI: encriptação, certificados, LGPD, infraestrutura e compliance.

Segurança

A engineAPI lida com dados fiscais sensíveis e certificados digitais. Levamos segurança a sério em todas as camadas da infraestrutura.

Encriptação

TLS 1.3 em trânsito, AES-256 em repouso

Isolamento

Dados segregados por Partner e Issuer

Compliance

Aderência à LGPD e padrões fiscais


Certificados digitais

Armazenamento seguro

Os certificados A1 (.pfx) dos seus clientes são tratados com o mais alto nível de proteção:

AspectoImplementação
UploadVia HTTPS (TLS 1.3). Certificado nunca trafega em texto plano
ArmazenamentoEncriptado com AES-256 usando chave rotacionada
AcessoSomente o serviço de emissão fiscal acessa o certificado, em memória
ExposiçãoA API nunca retorna o conteúdo do certificado. Apenas metadados
SubstituiçãoNão existe endpoint para remover só o certificado. Um novo upload via POST /v1/companies/:id/certificate substitui o anterior
Remoção totalDELETE /v1/companies/:id remove a empresa inteira, incluindo o certificado

Certificados A1 são arquivos sensíveis. Nunca armazene a senha do certificado em código-fonte, logs ou variáveis de ambiente expostas. Use um vault de secrets (AWS Secrets Manager, HashiCorp Vault, etc.).

Validade e renovação

bash
# Verificar status do certificado
curl https://api.engineapi.com.br/v1/companies/ISSUER_UUID \
  -H "Authorization: Bearer SEU_JWT"
# → { "data": { "certificateExpiresAt": "...", ... } }

O client companies do SDK TypeScript desta versão chama rotas erradas (/issuers/* em vez de /companies). Use chamadas REST diretas como acima. Detalhe em SDK TypeScript.

Recomendamos configurar um webhook para ser notificado quando um certificado está próximo do vencimento.


Autenticação

API Keys

CaracterísticaImplementação
Formatoek_live_UUID (prefixo identificável)
HashArmazenada como hash bcrypt. Impossível recuperar
RotaçãoCrie quantas keys quiser, revogue as antigas
ExposiçãoO valor completo é mostrado apenas na criação
bash
# Regenerar API Key (revoga a anterior)
curl -X POST https://api.engineapi.com.br/v1/auth/api-keys/regenerate \
  -H "Authorization: Bearer SEU_JWT"
# → { "apiKey": "ek_live_..." }  (único momento em que a chave completa aparece)

JWT (sessões de dashboard)

CaracterísticaImplementação
AlgoritmoHS256 com secret rotacionado
Expiração24 horas
RefreshVia re-login

Infraestrutura

Stack de segurança

CamadaTecnologia
Proxy reversoNginx com TLS 1.3, HSTS, rate limiting
ApplicationNestJS com Helmet.js (headers de segurança)
AutenticaçãoPassport.js (JWT + API Key strategies)
ValidaçãoValidação de schema em cada endpoint, com mensagens de erro estruturadas
DatabasePostgreSQL 16 com conexões encriptadas
ContainerDocker com user não-root, read-only filesystem
MonitoramentoSentry para error tracking, Prometheus para métricas

Headers de segurança

Todas as respostas incluem headers de segurança via Helmet.js:

font-mono text-sm bg-slate-800 text-[var(--eng-glow)] rounded px-1.5 py-0.5
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 0
Content-Security-Policy: default-src 'self'
Referrer-Policy: strict-origin-when-cross-origin

LGPD e proteção de dados

Dados coletados

DadoPropósitoRetenção
CNPJ/CPFEmissão fiscal (obrigatório por lei)Enquanto a conta estiver ativa
Certificado A1Assinatura digital junto à SEFAZAté remoção pelo partner
EndereçosComposição do XML fiscalEnquanto a conta estiver ativa
Logs de acessoAuditoria e troubleshooting90 dias

Direitos do titular

DireitoComo exercer
AcessoGET /v1/companies/:id retorna todos os dados
CorreçãoPATCH /v1/companies/:id atualiza dados
ExclusãoDELETE /v1/companies/:id remove empresa e dados
PortabilidadeDownload de XMLs via endpoints de download

A engineAPI atua como operadora de dados. O Partner (Software House) é o controlador perante a LGPD. O Partner é responsável por obter consentimento do titular antes de enviar dados para a API.


Boas práticas


Próximos passos