Segurança & Compliance

LGPD para Plataformas SaaS: Guia Prático

Como adequar sua plataforma SaaS à LGPD na prática — mapeamento de dados, bases legais, consentimento, DPO e o que fazer quando chega uma solicitação de titular.

Everton Tubarao··6 min de leitura

A LGPD não é só política de privacidade

O erro mais comum que CTOs cometem é achar que LGPD se resolve com uma política de privacidade atualizada no rodapé do site. Não se resolve. LGPD é um conjunto de obrigações técnicas, organizacionais e jurídicas que afetam como você coleta, armazena, processa e descarta dados pessoais.

A boa notícia: adequação não precisa ser caótica. Existe um caminho estruturado.


Passo 1: Mapeamento de dados pessoais

Antes de qualquer ação técnica, você precisa saber o que tem. O mapeamento de dados (Record of Processing Activities — RoPA) responde:

  • Quais dados você coleta (nome, e-mail, CPF, IP, cookies, dados de comportamento)
  • Por que você coleta cada dado (base legal)
  • Onde ficam armazenados (banco de dados, S3, sistemas de terceiros)
  • Quem acessa (times internos, subprocessadores como AWS, Stripe, SendGrid)
  • Por quanto tempo você mantém os dados
  • Como são protegidos (criptografia, controle de acesso)

Template de mapeamento

| Categoria | Dado | Base Legal | Armazenamento | Retenção | Proteção | |---|---|---|---|---|---| | Conta | Nome, e-mail | Contrato | RDS PostgreSQL | Enquanto ativo | TLS + AES-256 | | Pagamento | Dados do cartão | Contrato | Stripe (tokenizado) | 5 anos (fiscal) | Tokenização | | Comportamento | Cliques, páginas | Legítimo interesse | Mixpanel | 2 anos | Pseudonimização | | Marketing | E-mail, preferências | Consentimento | Mailchimp | Até opt-out | TLS |


Passo 2: Identificar as bases legais corretas

A LGPD exige que cada tratamento de dados tenha uma base legal. Para SaaS B2B, as mais comuns:

Execução de contrato (art. 7°, V)

Dados necessários para prestar o serviço que o usuário contratou. É a base mais forte e não exige consentimento explícito.

Exemplos: nome de usuário para login, e-mail para notificações do produto, dados de pagamento para processar a assinatura.

Legítimo interesse (art. 7°, IX)

Quando o tratamento é necessário para interesses legítimos da empresa ou de terceiros, desde que não prejudique os direitos do titular.

Exemplos: logs de segurança para detectar fraude, analytics de produto para melhorar o serviço, dados de uso para suporte técnico.

Atenção: legítimo interesse não é carta branca. Você precisa documentar o balanceamento de interesses (a empresa vs. os direitos do titular) para cada uso.

Consentimento (art. 7°, I)

Necessário para marketing, cookies não-essenciais, compartilhamento com terceiros para fins publicitários.

Atenção: consentimento precisa ser livre, informado, específico e revogável. Uma caixa pré-marcada não é consentimento válido.


Passo 3: Implementação técnica

Banner de cookies (obrigatório)

// Categorias de cookies que precisam de consentimento
const COOKIE_CATEGORIES = {
  essential: true,      // sempre habilitado, sem consentimento
  analytics: false,     // Google Analytics, Mixpanel → precisa de consentimento
  marketing: false,     // Meta Pixel, LinkedIn Insight → precisa de consentimento
  functional: false,    // Zendesk chat, Intercom → precisa de consentimento
}

// Só inicialize scripts de terceiros após consentimento
if (consent.analytics) {
  initMixpanel()
}

O banner deve ser exibido antes de qualquer cookie não-essencial ser gravado. Não pode ser pré-marcado com "aceito tudo".

Pseudonimização de logs

Logs de acesso frequentemente contêm dados pessoais (IP, e-mail, IDs de usuário). Pseudonimize antes de enviar para sistemas de logging:

function pseudonymizeForLog(userId: string): string {
  return crypto.createHash('sha256')
    .update(userId + process.env.LOG_SALT)
    .digest('hex')
    .substring(0, 12)
}

logger.info('user_action', {
  user: pseudonymizeForLog(userId),  // nunca o userId real
  action: 'export_data',
  tenant: tenantId,
  timestamp: new Date().toISOString(),
})

Retenção e exclusão automática

Dados pessoais devem ser excluídos quando não há mais necessidade. Implemente jobs de limpeza:

-- Usuários desativados há mais de 3 anos
DELETE FROM users
WHERE status = 'deleted'
  AND deleted_at < NOW() - INTERVAL '3 years';

-- Logs de acesso com mais de 12 meses (mantidos para auditoria)
DELETE FROM access_logs
WHERE created_at < NOW() - INTERVAL '12 months';

Audit log de dados pessoais

Todo acesso a dados pessoais deve ser registrado. Mínimo necessário:

CREATE TABLE data_access_log (
  id         UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id    UUID NOT NULL,
  action     TEXT NOT NULL,  -- 'view', 'export', 'delete', 'update'
  resource   TEXT NOT NULL,  -- 'user_profile', 'payment_data', etc.
  tenant_id  UUID NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

Passo 4: Direitos dos titulares

A LGPD garante aos titulares 9 direitos. Os que mais chegam via solicitação na prática:

Direito de acesso (art. 18, II)

O titular pode pedir todos os dados que você tem sobre ele. Prazo: você deve responder em prazo razoável (a ANPD indica 15 dias).

O que implementar: endpoint ou funcionalidade de "exportar meus dados" que gera um JSON/CSV com todos os dados do usuário. Idealmente self-service para reduzir carga operacional.

Direito à eliminação (art. 18, VI)

O titular pode pedir exclusão dos dados quando o tratamento se baseou em consentimento.

Atenção: dados necessários para obrigação legal (fiscal, contábil) não precisam ser excluídos mesmo com solicitação. O prazo de retenção do fisco no Brasil é 5 anos.

Portabilidade (art. 18, V)

Dados fornecidos pelo titular podem ser solicitados em formato interoperável. Para SaaS B2B, isso geralmente significa exportação em JSON ou CSV.


Passo 5: DPO (Encarregado de Dados)

A LGPD exige a designação de um DPO (Data Protection Officer), chamado de Encarregado pela lei. Para startups, as opções:

DPO interno: alguém do time (CTO, jurídico, ops) formalmente designado. Custo: zero, mas precisa de capacitação e tempo dedicado.

DPO externo: empresa especializada que assume a função. Custo: R$ 2.000–8.000/mês. Vantagem: expertise e disponibilidade.

O DPO precisa:

  • Ser o ponto de contato público para titulares e a ANPD
  • Receber e responder solicitações de titulares
  • Orientar o time sobre LGPD
  • Monitorar conformidade

Passo 6: Incidente de dados — o que fazer

Se ocorrer um incidente de segurança envolvendo dados pessoais:

  1. Contenha o incidente imediatamente
  2. Avalie o escopo: quais dados foram afetados, quantos titulares
  3. Notifique a ANPD em até 72 horas se houver risco relevante para titulares
  4. Notifique os titulares afetados se o risco for alto
  5. Documente tudo: o que aconteceu, quando, como foi resolvido

Não notificar é pior do que notificar. A ANPD trata transparência como atenuante.


Checklist de conformidade LGPD para SaaS

  • [ ] Mapeamento de dados pessoais documentado (RoPA)
  • [ ] Base legal identificada para cada tratamento
  • [ ] Política de privacidade atualizada e acessível
  • [ ] Banner de cookies com opt-in para não-essenciais
  • [ ] DPO designado e canal de contato público
  • [ ] Funcionalidade de exportação de dados do usuário
  • [ ] Funcionalidade de exclusão de conta com verificação de retenção legal
  • [ ] Contratos com subprocessadores (DPAs com AWS, Stripe, etc.)
  • [ ] Logs de acesso a dados pessoais
  • [ ] Processo documentado de resposta a incidentes
  • [ ] Treinamento da equipe sobre LGPD

A Codevops implementa todos esses controles como parte do desenvolvimento ou como projeto de adequação para plataformas existentes.

Solicitar adequação LGPD → · Guia completo SOC 2 + LGPD → · Falar com especialista →

Precisa de ajuda com segurança & compliance?

A Codevops transforma ideias em produtos reais. Cuidamos de toda a parte técnica para que você foque no seu negócio. Respondemos em até 12 horas.

Falar com especialista →