Documento publico de contratacao
Politica de privacidade (minuta)
Categorias, finalidades, bases, retencao e direitos LGPD.
1. Status do documento
Este texto e uma MINUTA TECNICA pendente de revisao juridica. Nao constitui politica aprovada, nao esta apto a producao e nao deve ser apresentado a titulares ou parceiros como documento final.
Versao da minuta: 0.1.0-minuta. Preparada em 2026-07-18.
Controlador: identidade completa (razao social, CNPJ, endereco e pais) pendente de validacao juridica — esses dados nao constam de forma verificavel no repositorio do Ofertal.
2. Papeis LGPD
Controlador: a pessoa/organizacao que decide as finalidades do Ofertal na operacao de afiliados — identidade formal pendente de validacao.
Operadores/suboperadores: provedores de infraestrutura e APIs listados em Transparencia e na tabela de suboperadores, na medida em que tratam dados sob instrucao do controlador.
Titulares relevantes podem incluir: operadores autenticados do painel; participantes de grupos WhatsApp (identificados no Ofertal so por hash); eventualmente titulares cujos dados financeiros/de pedido chegam via relatorios de afiliado dos marketplaces.
Encarregado (DPO): nao designado de forma verificavel no repositorio — pendente.
Multitenancy e escopo atual
O produto opera com cadastro publico, Better Auth e autorizacao server-side por workspace. A validacao de isolamento deve ser feita no checklist de corte antes de producao ampla.
3. Categorias de dados tratados
As categorias abaixo derivam do schema PostgreSQL da aplicação, do Postgres de mensagens, do storage S3 e das integracoes presentes no codigo.
| Categoria | Exemplos no Ofertal | Origem tipica |
|---|---|---|
| Conta e autenticacao | Email, nome de exibicao, identificador de usuario Auth, papel administrativo interno | Better Auth / cadastro publico |
| Credenciais de integracao | Tokens Meta, secrets Shopee, tokens/cookies ML | Operador em /mais/integracoes ou env de servidor |
| Financeiro e performance | Gastos de ads, comissoes, ROI/ROAS calculados, orcamentos, status de pedido | Meta Ads, Shopee, Mercado Livre, calculos internos |
| Campanhas e ofertas | Nomes/IDs de campanha, adsets, ads, titulos de oferta, URLs de afiliado, categorias | Importacao e cadastro operacional |
| Grupos WhatsApp | Nome do grupo, nicho, invite URL, JID, contagem de membros, status | Cadastro Ofertal + Evolution API |
| Participantes (pseudonimizados) | hash de participante (SHA-256 + salt), eventos de entrada/saida/remocao, snapshots diarios | Webhooks e sincronizacao da Evolution; salt mantido no servidor |
| Mensagens e midia | Fila outbound, historico de envio, capturas de fontes monitoradas, objetos de midia | Evolution + Postgres Ofertal + bucket S3 |
| Conexao WhatsApp | Instance name, numero pareado, estado da sessao, timestamps | Evolution / registro interno de conexao |
| Conteudo de IA | Briefings, narrativas, sugestoes de categoria, mensagens de chat | DeepSeek + cache PostgreSQL |
| Logs tecnicos e sync | estado de sincronizacao, horarios de importacao, erros de integracao | Servidor Ofertal |
Categoria
Conta e autenticacao
Exemplos no Ofertal
Email, nome de exibicao, identificador de usuario Auth, papel administrativo interno
Origem tipica
Better Auth / cadastro publico
Categoria
Credenciais de integracao
Exemplos no Ofertal
Tokens Meta, secrets Shopee, tokens/cookies ML
Origem tipica
Operador em /mais/integracoes ou env de servidor
Categoria
Financeiro e performance
Exemplos no Ofertal
Gastos de ads, comissoes, ROI/ROAS calculados, orcamentos, status de pedido
Origem tipica
Meta Ads, Shopee, Mercado Livre, calculos internos
Categoria
Campanhas e ofertas
Exemplos no Ofertal
Nomes/IDs de campanha, adsets, ads, titulos de oferta, URLs de afiliado, categorias
Origem tipica
Importacao e cadastro operacional
Categoria
Grupos WhatsApp
Exemplos no Ofertal
Nome do grupo, nicho, invite URL, JID, contagem de membros, status
Origem tipica
Cadastro Ofertal + Evolution API
Categoria
Participantes (pseudonimizados)
Exemplos no Ofertal
hash de participante (SHA-256 + salt), eventos de entrada/saida/remocao, snapshots diarios
Origem tipica
Webhooks e sincronizacao da Evolution; salt mantido no servidor
Categoria
Mensagens e midia
Exemplos no Ofertal
Fila outbound, historico de envio, capturas de fontes monitoradas, objetos de midia
Origem tipica
Evolution + Postgres Ofertal + bucket S3
Categoria
Conexao WhatsApp
Exemplos no Ofertal
Instance name, numero pareado, estado da sessao, timestamps
Origem tipica
Evolution / registro interno de conexao
Categoria
Conteudo de IA
Exemplos no Ofertal
Briefings, narrativas, sugestoes de categoria, mensagens de chat
Origem tipica
DeepSeek + cache PostgreSQL
Categoria
Logs tecnicos e sync
Exemplos no Ofertal
estado de sincronizacao, horarios de importacao, erros de integracao
Origem tipica
Servidor Ofertal
4. Finalidades
Tratamos dados para fins operacionais do painel, em especial:
- Autenticar operadores autorizados e proteger o acesso.
- Cruzar gasto de trafego com comissoes de marketplace para apoiar decisoes (escalar, manter, revisar, pausar).
- Monitorar saude de grupos WhatsApp (entradas, saidas, churn) sem armazenar telefone em claro.
- Enfileirar e enviar mensagens operacionais aos grupos vinculados.
- Gerar leituras assistidas por IA a partir de numeros ja calculados.
- Manter trilha de sincronizacao e diagnostico de integracoes.
- Cumprir obrigacoes legais e exercer direitos em processo proprio, quando aplicavel.
5. Bases legais (minuta — validar com juridico)
As bases abaixo sao hipotese de trabalho tecnico alinhada a LGPD e PRECISAM de confirmacao juridica caso a caso. Nao sao parecer.
| Tratamento | Base candidata (a validar) | Notas |
|---|---|---|
| Conta do operador e assinatura | Execucao de contrato / procedimentos preliminares (art. 7º, V) ou legitimo interesse (art. 7º, IX) | Depende do vinculo juridico com cada operador |
| Credenciais de integracao fornecidas pelo operador | Execucao de contrato (art. 7º, V) | Dados inseridos para prestar o servico de sync |
| Dados financeiros de ads e afiliados da propria operacao | Execucao de contrato e/ou legitimo interesse | Em regra dados da atividade do controlador; validar se ha dados de terceiros titulares |
| Hashes de participantes e eventos de grupo | Legitimo interesse (art. 7º, IX) e/ou consentimento quando exigivel | Pseudonimizacao reduz risco, mas nao elimina deveres LGPD. Juridico deve validar balancing test e avisos aos titulares |
| Mensagens e midia operacionais | Execucao de contrato / legitimo interesse | Conteudo pode incluir dados de terceiros — revisar fontes monitoradas |
| Envio a DeepSeek para IA | Legitimo interesse e/ou execucao de contrato | Transferencia internacional potencial; avaliar clausulas e minimizacao |
| Cumprimento de obrigacao legal / defesa de direitos | Art. 7º, II e VI | Quando houver exigencia legal ou processo |
Tratamento
Conta do operador e assinatura
Base candidata (a validar)
Execucao de contrato / procedimentos preliminares (art. 7º, V) ou legitimo interesse (art. 7º, IX)
Notas
Depende do vinculo juridico com cada operador
Tratamento
Credenciais de integracao fornecidas pelo operador
Base candidata (a validar)
Execucao de contrato (art. 7º, V)
Notas
Dados inseridos para prestar o servico de sync
Tratamento
Dados financeiros de ads e afiliados da propria operacao
Base candidata (a validar)
Execucao de contrato e/ou legitimo interesse
Notas
Em regra dados da atividade do controlador; validar se ha dados de terceiros titulares
Tratamento
Hashes de participantes e eventos de grupo
Base candidata (a validar)
Legitimo interesse (art. 7º, IX) e/ou consentimento quando exigivel
Notas
Pseudonimizacao reduz risco, mas nao elimina deveres LGPD. Juridico deve validar balancing test e avisos aos titulares
Tratamento
Mensagens e midia operacionais
Base candidata (a validar)
Execucao de contrato / legitimo interesse
Notas
Conteudo pode incluir dados de terceiros — revisar fontes monitoradas
Tratamento
Envio a DeepSeek para IA
Base candidata (a validar)
Legitimo interesse e/ou execucao de contrato
Notas
Transferencia internacional potencial; avaliar clausulas e minimizacao
Tratamento
Cumprimento de obrigacao legal / defesa de direitos
Base candidata (a validar)
Art. 7º, II e VI
Notas
Quando houver exigencia legal ou processo
6. Retencao
A politica operacional aprovada (versao 2026-07-19) define a remocao automatica de eventos de membros, hashes de participantes e snapshots apos 180 dias. Bases legais, legal holds e demais categorias continuam sujeitos a revisao juridica antes da publicacao externa.
Prazos operacionais codificados; revisao juridica pendente
A janela de eventos e hashes esta implementada e versionada. Pedidos legais ou legal holds devem suspender o purge antes da execucao; as demais categorias ainda precisam de aprovacao juridica especifica.
| Categoria | Retencao operacional | Observacao tecnica |
|---|---|---|
| Conta Auth / papel administrativo | Enquanto houver conta ou assinatura + prazo legal residual a definir | Exclusao de usuario Auth exige acao administrativa ou pedido do titular |
| Gastos, comissoes, campanhas, ofertas | Enquanto necessarios a operacao e analise historica; sugerido revisao periodica (ex.: 24–60 meses) — validar | Importacoes usam janelas recentes (ex.: sync Meta ~30 dias), mas o banco pode acumular historico |
| Eventos e snapshots de membros | Eventos, hashes de participantes e snapshots: 180 dias apos o registro | Purge protegido por workspace; o hash e removido junto com o evento |
| Fila e historico de mensagens | Historico operacional com prazo a definir; midia no bucket sob as mesmas regras | banco de dados PostgreSQL (Railway) + armazenamento de arquivos S3 |
| Caches de IA | TTL curto de regeneracao (ex.: briefings/narrativas com janela de dezenas de minutos no codigo) + retenção do registro em tabela ate limpeza | Hash de payload evita regenerar sem necessidade |
| Logs de sync / estado | estado de sincronizacao: enquanto util ao diagnostico; historico de execucoes: 30 dias com purge automatico apos cada finalizacao | Registros de estado de sincronizacao (lock) e historico de execucoes |
| Sessao Evolution | Enquanto a instancia estiver pareada; logout encerra no provedor quando acionado | Numero e estado no registro de conexao |
Categoria
Conta Auth / papel administrativo
Retencao operacional
Enquanto houver conta ou assinatura + prazo legal residual a definir
Observacao tecnica
Exclusao de usuario Auth exige acao administrativa ou pedido do titular
Categoria
Gastos, comissoes, campanhas, ofertas
Retencao operacional
Enquanto necessarios a operacao e analise historica; sugerido revisao periodica (ex.: 24–60 meses) — validar
Observacao tecnica
Importacoes usam janelas recentes (ex.: sync Meta ~30 dias), mas o banco pode acumular historico
Categoria
Eventos e snapshots de membros
Retencao operacional
Eventos, hashes de participantes e snapshots: 180 dias apos o registro
Observacao tecnica
Purge protegido por workspace; o hash e removido junto com o evento
Categoria
Fila e historico de mensagens
Retencao operacional
Historico operacional com prazo a definir; midia no bucket sob as mesmas regras
Observacao tecnica
banco de dados PostgreSQL (Railway) + armazenamento de arquivos S3
Categoria
Caches de IA
Retencao operacional
TTL curto de regeneracao (ex.: briefings/narrativas com janela de dezenas de minutos no codigo) + retenção do registro em tabela ate limpeza
Observacao tecnica
Hash de payload evita regenerar sem necessidade
Categoria
Logs de sync / estado
Retencao operacional
estado de sincronizacao: enquanto util ao diagnostico; historico de execucoes: 30 dias com purge automatico apos cada finalizacao
Observacao tecnica
Registros de estado de sincronizacao (lock) e historico de execucoes
Categoria
Sessao Evolution
Retencao operacional
Enquanto a instancia estiver pareada; logout encerra no provedor quando acionado
Observacao tecnica
Numero e estado no registro de conexao
7. Direitos dos titulares
Nos termos da LGPD, titulares podem solicitar confirmacao de tratamento, acesso, correcao, anonimizacao, portabilidade, eliminacao, informacao sobre compartilhamentos e revogacao de consentimento quando esta for a base aplicavel.
Canal do titular / encarregado (DPO): e-mail, telefone e prazos de resposta ainda nao estao definidos no codigo. Ate la, solicitacoes devem ser registradas com a administracao da operacao e encaminhadas ao responsavel juridico quando designado.
Processo sugerido (operacional, ate haver canal formal): (1) titular ou operador registra o pedido com a administracao do Ofertal; (2) identidade e escopo sao validados; (3) juridico/operacao classifica o pedido; (4) executa-se acao tecnica nos sistemas aplicaveis; (5) resposta e registrada com a versao dos documentos vigentes.
Prazo legal de resposta: a confirmar com o juridico (nao ha SLA codificado).
8. Compartilhamento e transferencias
Dados podem ser processados pelos suboperadores listados na Transparencia, apenas para as finalidades do painel.
Transferencias internacionais podem ocorrer dependendo da regiao de Railway, DeepSeek, Meta e demais APIs. Nao ha evidencia no repositorio de pais fixo para cada servico — cada item esta marcado para validacao.
Nao vendemos dados pessoais.
9. Seguranca
Medidas observadas no codigo (nao exaustivas e nao certificacao):
Limites
Nenhum sistema e 100% seguro. Incidentes devem ter playbook (ainda pendente de formalizacao). Políticas anon de leitura no schema base sao inadequadas para producao aberta — aplicar auth-hardening antes de expor dados reais amplamente.
- Segredos de integracao e IA apenas em variaveis de servidor (sem NEXT_PUBLIC_ para chaves sensiveis).
- Better Auth e gate de allowlist no proxy.
- Participantes WhatsApp hasheados com salt de servidor.
- Midia capturada em bucket privado; leitura via proxy autenticado ou URL assinada de curta duracao.
- Webhook/sync WhatsApp protegidos por segredos dedicados.
- Autorizacao server-side por workspace; o PostgreSQL nao fica exposto ao navegador.
10. Criancas e adolescentes
O Ofertal nao e destinado a menores. Se for identificado tratamento indevido, a operacao deve interromper e apagar conforme orientacao juridica.
11. Mudancas e vigencia
Apos aprovacao, alteracoes materiais serao versionadas. Esta minuta pode evoluir sem efeito externo ate o status approved_for_production.
12. Contato do titular
Canal do titular / encarregado (DPO): e-mail, telefone e prazos de resposta ainda nao estao definidos no codigo. Ate la, solicitacoes devem ser registradas com a administracao da operacao e encaminhadas ao responsavel juridico quando designado.
Controlador: identidade completa (razao social, CNPJ, endereco e pais) pendente de validacao juridica — esses dados nao constam de forma verificavel no repositorio do Ofertal.