Proteção de dados (LGPD)

Exportar dados LGPD

A LGPD (Art. 18) garante ao titular 9 direitos. O Repasse implementa todos tecnicamente ou operacionalmente — você precisa saber só o fluxo de cada um.

SLA LGPD

Você tem 15 dias pra responder qualquer pedido (Art. 19 §1º). SLA interno recomendado:

  • Resposta inicial em 5 dias úteis
  • Conclusão em 15 dias

Como identificar o titular (anti-impersonação)

Antes de atender qualquer pedido:

  1. Pessoa deve estar em contato pelo email cadastrado como owners.email
  2. Se o cadastro é recente ou email não bate, peça confirmação via WhatsApp
  3. Registre o contato manualmente em notas internas pra auditoria

Fluxos por direito

I — Confirmação de tratamento ("vocês têm meus dados?")

  • Resposta: "Sim, pela administração do imóvel [X]". Ponto.
  • Aponte pra /privacy com detalhes

II — Acesso ("quero ver meus dados")

→ Ver III (mesmo fluxo que portabilidade).

III — Correção ("meu CPF/email/banco mudou")

  1. No admin: Proprietários → [nome] → Editar
  2. Atualize os campos
  3. Salve (dados sensíveis viram cifrados automaticamente)
  4. Sistema loga em lgpd_data_access_log com purpose='correct'

IV + V — Portabilidade ("me mande meus dados em formato legível")

  1. Gera acesso ao Portal do Proprietário (ou proprietário já tem)
  2. Proprietário acessa → scrolla até Meus dados (LGPD) → clica Baixar meus dados (JSON)
  3. Sistema monta JSON estruturado com tudo: owner decifrado, units, reservations, reports, repasses, expenses, comprovantes, logs de consent/acesso
  4. Acesso é logado automaticamente

Caso proprietário não consiga/queira usar o portal:

  • Admin pode chamar direto: GET /api/portal/[token]/export com token válido
  • JSON é baixado, você envia por email

VI — Exclusão ("quero meus dados apagados")

Fluxo oficial (self-service):

  1. Proprietário acessa portal → Meus dados (LGPD) → Solicitar exclusão dos meus dados
  2. Pedido cai em lgpd_deletion_requests status pending
  3. Você é notificado (email + Conversia)
  4. Acessa admin → lista de pedidos → revisa caso

Checklist antes de aprovar:

  • Contrato ATIVO? (se sim, resolve o contrato primeiro, depois aprova)
  • Pagamento pendente? (faz o repasse primeiro)
  • Obrigação fiscal? (dados ficarão por 5 anos por lei — informa o titular)

Pra aprovar:

  • Chama PATCH /api/owners/[id]/deletion-requests/[reqId] com {status: 'approved', decision_note: '...'}
  • Ou cria admin UI de aprovação (TODO futuro — hoje é via DevTools)
  • Sistema anonimiza: nome → "Proprietário Excluído", email → deleted-<id>@anonymous.invalid, CPF/RG/dados bancários → NULL, portal_token revogado
  • Dados fiscais (reports, repasses) preservados pra compliance

Pra rejeitar (ex.: contrato ativo):

  • Mesmo endpoint com {status: 'rejected', decision_note: 'Contrato vigente. Resolva antes.'} (decision_note obrigatória)

VII — Info sobre compartilhamento

Resposta padrão: link pra /privacy que lista todos os sub-operadores (Supabase, Stays, D4Sign, Resend, Anthropic, OpenAI).

VIII — Info sobre recusa e consequências

Se titular recusa o tratamento, o serviço de administração não pode ser prestado. Responder com:

"O tratamento dos seus dados pessoais (nome, CPF, dados bancários) é condição essencial pra prestarmos o serviço de administração do seu imóvel. Sem esses dados, não conseguimos emitir repasse, contratos ou relatórios fiscais. Você pode encerrar a administração a qualquer momento."

IX — Revogação de consentimento

Base legal primária é contrato (não consentimento explícito), então revogação só afeta processamentos auxiliares (ex.: IA — ver opt-out).

Opt-out de IA (LGPD)

Proprietário que não quer que seus dados sejam processados por IA (Anthropic/OpenAI):

  • Ele marca sozinho: portal → Meus dados (LGPD) → checkbox "Não processar meus dados com IA"
  • Sistema grava owners.ai_opt_out = true
  • Upload de boleto no portal bloqueia (mensagem amigável)
  • Admin continua podendo usar IA normalmente

Audit trail (pra auditoria ANPD)

Todas as ações são logadas automaticamente em:

  • lgpd_consent_log — aceites e revogações
  • lgpd_data_access_log — acessos (export, delete, view, correct)
  • lgpd_deletion_requests — pedidos formais de exclusão

Admin acessa: GET /api/owners/[id]/access-log

DPO (Encarregado de Dados)

  • Email público: dpo@vivarestay.com (configurável em env NEXT_PUBLIC_DPO_EMAIL)
  • Aparece no footer de todas páginas públicas
  • Canal oficial pra questões LGPD

Problemas comuns

"Proprietário quer dados num formato específico (Excel)"

  • JSON exportado pelo portal pode ser convertido pra Excel facilmente
  • Alternativa: você mesmo exporta dados selecionados em CSV pelo admin

"Admin (eu) preciso exportar dados de TODOS os proprietários"

  • Não existe endpoint pra isso (seria vazamento)
  • Pra auditoria interna: SELECT direto no Supabase SQL Editor

"Pedido de exclusão de dados fiscais (Receita)"

  • Explica que retenção de 5 anos é OBRIGAÇÃO legal (CTN Art. 195) e não LGPD
  • Reports/repasses ficam preservados mesmo após anonimização do owner

Ver também: docs/lgpd.md (dossiê técnico completo) e docs/ripd.md (RIPD formal).

Atualizado em Thu Apr 23 2026 00:00:00 GMT+0000 (Coordinated Universal Time)