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.
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:
- Contenha o incidente imediatamente
- Avalie o escopo: quais dados foram afetados, quantos titulares
- Notifique a ANPD em até 72 horas se houver risco relevante para titulares
- Notifique os titulares afetados se o risco for alto
- 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 →