Política de Privacidade do WhiskerCheck
Última atualização: 10 de outubro de 2026.
Esta política explica o que o WhiskerCheck faz com os seus dados. Ela foi escrita a partir do que o código faz de verdade, não do que gostaríamos que ele fizesse.
Quem é o responsável
Miguel Gamarra, pessoa física. Endereço: Proviv. Res. La Esperanza, Carabayllo, Lima 15121, Perú. Contato para qualquer assunto de privacidade: privacy@whiskercheck.com.
O mais importante
- O nome do seu pet, as fotos dele e o que você escreve no diário dele não saem do seu celular. Nunca. O seu histórico não sai do celular como lista, embora o nosso servidor anote cada escaneamento e as métricas contem o que sai em cada um.
- Quando o que você escaneia não está na nossa base documentada, perguntamos ao assistente e anotamos essa palavra para saber o que documentar depois.
- Quando você escaneia um rótulo ou tira uma foto, essa foto é enviada, sim, ao nosso servidor, e um serviço de inteligência artificial do Google (Gemini) a lê. Ela fica 30 dias no nosso registro técnico e depois se apaga sozinha.
- Do seu pet enviamos apenas espécie e peso, porque é disso que depende o veredito.
- O nosso servidor guarda cada escaneamento com o identificador do app: que modo, o que saiu, a espécie e o peso, a versão do app, se você está no plano grátis ou Pro e, durante 30 dias, o seu endereço IP. Serve para saber como o app é usado, o que falha e se alguém abusa dele. O identificador é solto aos 14 meses, e você pode soltá-lo antes em Ajustes.
- Se você assinar, o RevenueCat vê essa compra —a partir do seu celular, não do nosso servidor— amarrada a um identificador anônimo que eles geram e que não é o nosso.
- Medimos como o app é usado e quando ele falha, com o Firebase, do Google: que telas são abertas, o que sai em cada escaneamento, o que você busca e o que falha. Isso vem ativado e você desativa quando quiser em Ajustes → Privacidade. Não inclui o nome do seu pet, as fotos dele nem o seu diário.
- Não há contas, nem publicidade, nem rastreamento entre apps, nem identificadores de publicidade.
- Não vendemos dados para ninguém, nem os cedemos com fins comerciais.
O que fica guardado no seu celular
Quase tudo isto vive no armazenamento normal do app, sem criptografia adicional. As duas últimas linhas são a exceção e vão para o Keychain do celular, que é o lugar onde o iOS guarda o que não deve se perder nem ser copiado para outro aparelho:
| Dado | O que é |
|---|---|
| Perfil de cada pet | nome, espécie, peso de hoje e, se você preencher, raça, sexo e data de nascimento |
| Foto de cada pet | uma cópia própria dentro do app, não um link para o seu rolo da câmera |
| Histórico de peso | cada pesagem com a sua data, para poder desenhar a curva |
| Vacinas, vermifugação, medicação e consultas | o quê, quando foi feito, quando é a próxima vez e as suas anotações |
| Diário | o que você escrever, com a sua data |
| Revisão da casa | o que você marcou como colocado fora do alcance dele |
| Histórico | os últimos 100 escaneamentos: o veredito inteiro, com o pet e o peso que ele tinha naquele dia, e quanto comeu, se você informou |
| Idioma, país e aparência | se você os mudou na mão nos ajustes |
| Se você compartilha métricas | o que você escolheu em Ajustes → Privacidade |
| Identificadores do Firebase | os que o SDK dele gera para esta instalação. Quem os põe é ele, não nós, e eles só são enviados se as métricas estiverem ativadas |
| Identificador do app | veja a seção seguinte |
| Quantos escaneamentos grátis você já gastou | um número de 0 a 5, e nada mais: nem o que você escaneou nem quando. No Keychain |
| Identificador do RevenueCat | o que o SDK deles gera se você chegar a abrir o muro de pagamento. No Keychain, e quem o põe é ele, não nós |
Os lembretes de vacina ou medicação não são um dado desta tabela: quem os programa é o seu celular, não o nosso servidor. Quando você apaga um registro ou apaga tudo, o app os cancela.
Desta tabela, ao nosso servidor chegam com cada escaneamento o identificador do app, a espécie e o peso do pet, o seu idioma, o país se você o escolheu na mão e a quantidade se você a informar, e com cada requisição se você está no plano grátis ou Pro, que o app sabe pela assinatura. E ficam guardados com o escaneamento. Quem conta isso é a seção “O que é enviado ao nosso servidor”. Para outros, algumas linhas saem, sim. O identificador do RevenueCat vai para o RevenueCat. E, se as métricas estiverem ativadas, vão para o Google o identificador do app, os do Firebase, o seu idioma, a sua aparência, o país, se você o escolheu na mão, e quantos escaneamentos grátis você já gastou. Quem conta isso são as seções “As métricas” e “Quem mais vê alguma coisa”.
Você pode apagar todas as linhas de cima em Ajustes → “Apagar tudo o que está neste celular”, ou desinstalando o app, menos as duas últimas. Essas duas vivem no Keychain, e o Keychain sobrevive às duas coisas.
“Apagar tudo” respeita, além disso, a sua escolha sobre as métricas, de propósito: apagar os seus dados não deve voltar a ativar o que você desativou. Desinstalar o app apaga essa escolha, sim. Esse botão troca, sim, o identificador do Analytics, para que no Google o de antes e o de depois não fiquem ligados; o do Crashlytics quem gerencia é o SDK dele, e não há como trocá-lo pelo app. Sem conexão, nenhum dos dois muda: se o servidor não responder, o identificador do app fica para você poder repetir a exclusão, e com ele tudo continuaria ligado. A ligação se desfaz quando você repete com conexão.
E isso é de propósito, então dizemos sem enfeitar: se o contador fosse apagado, reinstalar daria cinco escaneamentos grátis de presente toda vez, e o muro de pagamento não existiria. Comprovado num iPhone em 7 de setembro de 2026 — ao reinstalar, voltaram o mesmo contador e a mesma assinatura, sem apertar “Restaurar compras”.
Leve em conta que, se você tiver ativado o backup do iCloud ou do Google, esses dados podem acabar indo para lá. Esse backup está na sua conta e se rege pelas condições da Apple ou do Google, não pelas nossas. O contador de escaneamentos é a exceção: ele está marcado para não ser copiado para outro celular, nem sequer num backup.
Os dois identificadores
São dois que importam, e não passamos um para o outro. Isso é o importante, e por isso vem primeiro: o RevenueCat não recebe o nosso, então não pode saber o que uma instalação escaneou.
O que mudou em setembro de 2026, e convém dizer aqui: se as métricas estiverem ativadas, o nosso viaja para o Google com elas, e com ele se você está no plano grátis ou Pro, os passos do muro de pagamento e o que sai em cada escaneamento. Nós podemos juntar isso, sim, com os reportes que você enviar e com os escaneamentos que o nosso servidor guarda, que levam o mesmo identificador: é para isso que o usamos. Quem conta isso é a seção “As métricas”.
O nosso
Ao abrir o app pela primeira vez, é gerado um número aleatório (um UUID). Não o obtemos do seu celular nem da sua conta: quem o inventa é o app. Ele serve para quatro coisas: frear o abuso —quantos escaneamentos você já fez na hora em curso—, saber que um reporte de resultado incorreto vem da mesma instalação, saber como cada instalação usa o app e o que falha para ela —o nosso servidor guarda cada escaneamento com ele— e, se você compartilha métricas, ligar o que aconteceu nessa instalação às falhas dela, aos reportes dela e aos registros do nosso servidor.
Esse “quantos escaneamentos” não tem nada a ver com os cinco grátis: são dois contadores diferentes, em dois lugares diferentes. O daqui quem cuida é o nosso servidor, vai por hora e se apaga sozinho. O dos cinco grátis quem cuida é o seu celular, e é para a vida toda; ao nosso servidor ele não chega, e ao Google só como métrica, se elas estiverem ativadas.
Nós o tratamos como dado pessoal. Ele não leva o seu nome e só o compartilhamos com o Google, para as métricas e só se elas estiverem ativadas, mas é estável e identifica a sua instalação, e, sob o GDPR, isso basta.
Se você apagar tudo pelos ajustes, o app avisa o servidor antes para que ele solte o que tiver amarrado a esse identificador, e só depois o apaga do seu celular e começa a usar um novo. Essa ordem importa: ao contrário, perderíamos a única chave para encontrar os seus dados. Se nesse momento não houver conexão, o app avisa você em vez de dar a exclusão como feita.
Desinstalar o app sem passar pelos ajustes não avisa o servidor. Se isso acontecer com você, escreva para privacy@whiskercheck.com e nós fazemos isso — vamos precisar que você nos diga quando e o que escaneou ou reportou, porque sem o identificador não conseguimos localizar isso por você. E, se você não escrever, ele é solto sozinho aos 14 meses.
O do RevenueCat
Quem cuida da assinatura é o RevenueCat, e o SDK dele gera um identificador próprio dele
—começa por $RCAnonymousID— na primeira vez que o app arranca com as compras ativas.
Não passamos o nosso para ele, e isso é uma decisão, não um descuido: o SDK aceita que lhe demos um identificador de usuário, e deliberadamente não damos. Também não damos o seu e-mail, nem o seu nome, nem nenhum atributo seu, mesmo que o SDK também permita. Assim, o RevenueCat não recebe nada do que mandamos para o Google, nem o Google o identificador do RevenueCat. O que impede juntar o que cada um sabe é que ninguém passa isso para o outro, e dizemos desse jeito porque é o jeito exato: já tiramos do Firebase o identificador que a Apple dá ao seu iPhone para o nosso app, que era a única coisa que os dois recebiam igual.
Nós não lemos esse identificador em momento nenhum: de tudo o que o RevenueCat responde, o app olha só uma coisa, se a assinatura está ativa ou não. Um sim ou um não.
Este também vive no Keychain, então sobrevive a desinstalar o app e a “Apagar tudo o que está neste celular”. É isso que faz com que, ao reinstalar, a sua assinatura volte sem você ter que restaurá-la, e também o que faz com que “Apagar tudo” não alcance o RevenueCat: esse botão limpa o seu celular e o nosso servidor, não o dele. Para isso, escreva para nós.
O que é enviado ao nosso servidor
O nosso servidor está no Cloudflare Workers.
Ao escanear um código de barras: o código, o identificador do app, a espécie e o peso do pet, e o idioma. Se depois você informar quanto ele comeu, também essa quantidade.
Ao escanear um rótulo ou uma foto: o mesmo, mais a fotografia. A foto é reduzida para 1280 pixels de largura antes de ser enviada; esse reprocessamento elimina de quebra os metadados da imagem original, incluída a localização, se ela a levava.
Ao reportar um resultado incorreto: o identificador do app, o que você escaneou, o veredito que recebeu e o motivo que escolheu.
Se um escaneamento falha dentro do app —a conexão cai, a resposta não chega—: o que falhou, em que passo e quanto tempo já tinha passado, com o identificador do app.
E em cada uma dessas requisições, o app diz de si mesmo: a versão dele, a versão nativa com que roda e o pacote de atualização que tem, o sistema do celular —“ios 26.1”— e se você está no plano grátis ou Pro.
Se você é Pro, o nosso servidor sabe, mas não decide nada com isso. O app diz isso para que possamos separar como usa o app quem paga de quem não paga. O muro de pagamento continua se resolvendo inteiro no seu celular, e da compra não nos chega nada: nem o recibo, nem o preço, nem o identificador do RevenueCat.
Como em qualquer conexão à internet, a Cloudflare vê também o seu endereço IP. O nosso servidor o guarda com cada escaneamento e cada falha durante 30 dias, junto com a rede de onde você se conecta —o número da sua operadora, não a sua localização—. É o que deixa ver que um pico de requisições vem de um programa e não de pessoas, e bloqueá-lo. Ele lê também o país que a Cloudflare deduz dele —duas letras, “PE”, “ES”—, ou o que você tiver escolhido na mão nos ajustes, se o mudou.
Esse país é usado para quatro coisas: escolher o telefone de toxicologia que aparece para você numa emergência, pedir ao modelo o nome que se usa onde você está —“palta” e não “aguacate”—, guardar a resposta separada por país, para que ninguém receba o nome de outro lugar, e anotá-lo com cada escaneamento, para saber de onde o app é usado. É um país inteiro, não uma localização.
O que guardamos no servidor, e por quanto tempo
Aqui não vamos enfeitar nada.
| O quê | Por quanto tempo | O que apaga isso hoje |
|---|---|---|
| Cada escaneamento: que modo, a espécie e o peso, o que saiu, o código de barras ou o que foi identificado, quanto demorou, o país, a rede, a versão do app e se você está no plano grátis ou Pro, com o identificador do app | O identificador, 14 meses. O resto, indefinidamente | Um processo diário automático |
| O seu endereço IP, com cada escaneamento e cada falha | 30 dias | Um processo diário automático |
| As falhas de um escaneamento dentro do app, com o identificador | 90 dias, inteiras | Um processo diário automático |
| Reportes de resultado incorreto | O identificador e o comentário, 14 meses. O resto, indefinidamente | Um processo diário automático |
| Códigos de barras escaneados, com a data | Indefinidamente | Nada |
| Contador antiabuso, por hora (não é o dos cinco grátis, que vive no seu celular) | Pouco mais de uma hora | Apaga-se sozinho |
| Cache de produtos | 30 dias (7 se o produto não existir) | Apaga-se sozinho |
| Nomes do que você consulta e não temos documentado, com o país | Indefinidamente | Nada |
| A resposta guardada para esses nomes | 14 dias se ela disse que não consta como perigoso, 30 se alertou sobre algo | Um processo diário automático |
| As fotos | 30 dias, no registro técnico das chamadas ao modelo | A Cloudflare, quando o prazo se cumpre |
Sobre os códigos de barras: guardamos quais produtos alguém já consultou alguma vez, com a data, para não termos que perguntar de novo ao Open Food Facts. Essa tabela não guarda quem os escaneou; o registro de escaneamentos guarda, e quem conta isso é o parágrafo depois do próximo.
Sobre o que você consulta e não temos documentado: a nossa base não cobre tudo o que se pode escanear, então às vezes o que você escaneia não está lá. Quando isso acontece, perguntamos ao assistente e anotamos o nome daquilo que você perguntou —“banana”, “manga”— junto com a espécie e um contador de quantas vezes nos perguntaram isso. Serve para decidir o que documentar em seguida com uma fonte veterinária de verdade, em vez de escolher no olho.
Junto com o nome guarda-se também a resposta, para não pagar de novo a mesma pergunta com a espera que ela custa: a explicação, os sinais, a gravidade e com que modelo ela foi obtida. É a mesma resposta que você viu na tela, e serve para o próximo que perguntar o mesmo.
Junto com tudo isso guarda-se também o país de onde se perguntou. Está aí porque o idioma não basta para nomear as coisas: “palta” e “aguacate” são a mesma fruta e o mesmo idioma, e, se a resposta não fosse separada por país, a primeira que fosse guardada seria servida a todos os demais com o nome errado.
Essa tabela não guarda quem perguntou. Não há identificador de celular, nem foto, nem o nome nem o peso do seu pet: a palavra, a espécie, o idioma, o país, um contador e a resposta. Quem escaneou o quê fica no registro de escaneamentos, que vem a seguir.
Sobre o registro de escaneamentos: desde setembro de 2026, o nosso servidor anota cada escaneamento com o identificador do app, dê certo ou falhe. Guarda o modo, a espécie e o peso, que nível saiu e que substância o decidiu, o código de barras ou o nome do que foi identificado na foto —nunca a foto—, quanto demorou, o país, a rede, a versão do app e se você está no plano grátis ou Pro. Serve para saber como o app é usado, que instalação o usa mais, o que falha e onde, e o que falta documentar; e para ver quando um volume estranho é abuso. Sem o identificador teríamos os números, mas não poderíamos separar com quem acontece cada coisa.
Aos 30 dias tira-se dele o IP, e aos 14 meses o identificador; a linha fica, porque sem eles já não diz de quem é e continua servindo para ver tendências. É o mesmo prazo que as métricas do Google já guardam com o mesmo identificador: o nosso servidor não o retém por mais tempo que elas. E “Apagar tudo o que está neste celular” o solta na hora.
Sobre as fotos: elas não são guardadas em nenhum banco de dados nosso —não há tabela de fotos, nem pasta, nem jeito de procurar a sua—, mas também não somem no ar. A chamada ao modelo passa pelo AI Gateway da Cloudflare, que registra cada requisição com o seu conteúdo, e o conteúdo de uma requisição de foto é a foto. Esse registro é conservado por 30 dias e depois é apagado.
Ele está ligado de propósito e não vamos desligá-lo: é o que nos permite descobrir por que um escaneamento falhou, devolveu algo absurdo ou demorou vinte segundos. Sem ele, uma falha que só acontece com uma pessoa é uma falha que não dá para consertar. Nós o consultamos para isso e só para isso, ninguém de fora o olha, e ele não está associado ao seu nome nem ao seu pet.
No seu celular fica uma cópia temporária na memória interna do app, que o app apaga ao terminar cada escaneamento.
Sobre os reportes: aos 14 meses tiram-se deles o identificador do app e o comentário, e quem faz isso é um processo automático que roda todos os dias. O que sobra —que produto, que veredito, que motivo— já não diz de quem veio, e continua nos servindo para corrigir os dados. Até setembro de 2026 eram noventa dias; o prazo foi ampliado para que um reporte possa ser ligado aos escaneamentos da mesma instalação enquanto estes o estiverem.
As métricas
Desde setembro de 2026 o app mede como é usado e quando falha, com o Firebase Analytics e o Firebase Crashlytics, do Google. Sem isso não saberíamos onde o app trava, o que falha nem que partes servem de verdade, e uma falha que só acontece com poucas pessoas não daria para consertar.
Elas vêm ativadas, e você as desativa em Ajustes → Privacidade quando quiser. Desativadas, o app funciona exatamente igual e para de mandar métricas de uso na hora. Com as falhas há um detalhe: se o app fechar de repente na mesma sessão em que você as desativou, essa falha ainda pode ser enviada na próxima vez que você abrir o app. As que acontecerem com as métricas já desativadas são apagadas sem ser enviadas.
O que é enviado, em linhas gerais:
- O que você faz no app. Que telas você abre e quanto tempo usa o app. De cada escaneamento, o modo, que nível saiu, que substância da nossa base o decidiu, quanto demorou e quantos escaneamentos grátis ainda restam, ou por que falhou. Se você recalcula pela quantidade, se reporta um resultado —o motivo, não o comentário— e se abre a ficha de emergência ou a busca de veterinário. Os passos do cadastro inicial e do muro de pagamento. Que você marca uma tarefa da rotina e as conquistas que ganha; que anota um peso e se a tendência dele saiu do normal, não o peso; que escreve no diário e o tamanho do que escreveu, não o texto; que adiciona ou compartilha fotos do álbum e de que categoria, não as fotos; as fichas que você abre, as temporadas e os cômodos da casa que você revisa, e se exporta ou restaura uma cópia.
- O que você escreve numa busca, do jeito que está e até 100 caracteres: a do catálogo e a do histórico. Se você procurar um produto ou um código no seu histórico, isso chega ao Google.
- Como é a sua instalação. Idioma, aparência, o país, se você o escolheu na mão, se você está no plano grátis ou Pro e quantos escaneamentos grátis já gastou, quantos pets você tem e de que espécie, e, do pet selecionado, a faixa de peso e de idade —“de 10 a 25 kg”, “de 3 a 7 anos”—, não o peso nem a data exatos. Se você usa a calculadora de ração, a fase da vida dele, se está gestante ou amamentando e se você quer que ele perca ou ganhe peso. Também se você permitiu os avisos, quantas fotos tem no álbum (por faixas) e se tem backup.
- As falhas. Que erro, em que tela, o modelo do celular, a versão do iOS, as telas que você abriu logo antes e os últimos eventos de uso descritos acima, que o SDK anexa por conta própria a cada relatório.
- O identificador do app, o mesmo dos reportes e dos escaneamentos que o nosso servidor guarda, para poder ligar uma falha ao que aconteceu antes nessa instalação.
O app nunca envia por conta própria o nome do seu pet, as fotos dele, o que você escreve no diário, o comentário de um reporte, o código de barras nem a foto de um escaneamento. A única coisa que você escreve e que sai é a da busca, contada acima.
De uma compra, o SDK do Google pode registrar por conta própria o produto, o preço e a moeda. O seu meio de pagamento ninguém vê além da Apple.
O SDK do Google gera ainda identificadores próprios para esta instalação. Ele não recolhe o identificador de publicidade —o app é feito sem ele— nem o que a Apple dá ao seu iPhone para o nosso app (o IDFV), que deixamos desativado. Como fala diretamente a partir do seu celular, o Google vê também o seu endereço IP e deduz dele o seu país e a sua cidade aproximados.
O Google não usa isso para publicidade: deixamos desativados os “sinais do Google” e a personalização de anúncios. O Google Analytics conserva o que está ligado à sua instalação por 14 meses, e o Crashlytics, as falhas por 90 dias; depois isso é apagado. As contagens totais, que já não dizem de quem são, ficam.
Além disso, uma cópia desses eventos e falhas vai todo dia para o BigQuery, na nossa conta do Google Cloud, para podermos consultá-los com mais detalhe do que os relatórios do Google permitem. Essa cópia se apaga sozinha aos 60 dias.
Quem mais vê alguma coisa
| Quem | O que recebe | Para quê |
|---|---|---|
| Cloudflare | Tudo o que você envia, mais o seu IP. Guarda ainda, durante 30 dias, o registro de cada chamada ao modelo —com a foto dentro— | Hospeda o servidor, a base e o cache, e nos deixa ver o que falhou quando algo falha |
| Google (Firebase) | Se as métricas estiverem ativadas, o que conta a seção “As métricas”, com o identificador do app. Por falar a partir do seu celular, vê ainda o seu IP | Saber o que é usado e o que falha no app |
| Google (Gemini) | A foto; no modo foto, além disso a lista do que temos documentado e pode ser reconhecido numa imagem; e, quando não temos ficha do que foi escaneado, o nome disso com a espécie e, se havia, a lista de ingredientes. Nos dois casos vai também o seu país, em duas letras | Ler o rótulo, identificar o que está na foto, ou responder pelo que não temos documentado — e chamar aquilo como se chama onde você está |
| Open Food Facts | Só o código de barras | Saber que produto é |
| Expo (EAS Update) | Toda vez que o app arranca, a partir do seu celular: o seu IP, um identificador próprio da instalação, a versão do app e o sistema | Conferir se há uma versão nova do app e baixá-la |
| RevenueCat | O identificador anônimo dele, os eventos de compra, renovação e restauração, e o recibo da Apple com o produto, o preço e a moeda. Por falar a partir do seu celular, vê ainda o seu IP, o modelo, a versão do iOS, o seu idioma e o país da sua App Store | Conferir o recibo com a Apple, decidir se a sua assinatura está ativa e devolvê-la a você ao restaurar |
| Apple | O pagamento inteiro: quem você é para eles, o seu meio de pagamento e a transação | Cobrar. Nós não vemos nada disso |
Três serviços falam diretamente com o seu celular, e por isso veem o seu endereço IP: o RevenueCat; o Firebase, se as métricas estiverem ativadas; e o Expo, que toda vez que o app arranca confere se há uma versão nova do app. Eles fazem isso sozinhos, sem você tocar em nada, não como os dois links do fim desta seção, que só se abrem se você tocar neles. Nenhuma dessas chamadas passa pelo nosso servidor.
O SDK da RevenueCat manda também, por conta própria, o identificador que a Apple dá ao seu iPhone para o nosso app (o IDFV). Não somos nós que pedimos isso e não o vemos, mas ele vai, e preferimos dizer a que você descubra. Não é o identificador de publicidade: esse aqui ninguém recolhe, e é por isso que o app nunca pede permissão para rastrear você.
Nem o Gemini nem o Open Food Facts veem o seu endereço IP. Essas consultas saem do nosso servidor, não do seu celular. (O botão de procurar um veterinário perto é outra coisa e vai à parte, mais abaixo.) Eles também não recebem o identificador do app nem o peso do seu pet. A espécie chega, sim, ao Gemini em dois casos, porque é dela que depende a resposta: no modo foto, a lista de candidatas vai filtrada por espécie; e, quando perguntamos por algo que não temos documentado, a pergunta é literalmente “isto é perigoso para um cão?”.
O país chega ao Gemini por um motivo e só por esse: para que ele devolva o nome que se usa onde você está. São duas letras de um país inteiro, não uma localização, e viajam soltas —sem identificador, sem IP e sem nada do seu pet—, então não aproximam ninguém de saber quem perguntou.
Do seu pet, ao Gemini não chega nada além da espécie. Ao Firebase, se as métricas estiverem ativadas, chegam ainda quantos pets você tem, a faixa de peso e de idade do selecionado e o que a seção “As métricas” conta sobre a ração e o peso. O peso exato dele chega ao nosso servidor —é dele que sai o veredito—, é guardado com o escaneamento e não passa daí. O nome dele, a foto, a raça e o diário não chegam a ninguém.
Não usamos publicidade, identificadores de publicidade, notificações push, localização nem contatos.
Medição há de dois tipos, e eles vão com nome e tudo: as métricas do Firebase, contadas na seção delas, e a conta das assinaturas que o RevenueCat leva —quantas são compradas, quantas são renovadas, quantas são canceladas—, amarrada ao identificador anônimo dele. O do RevenueCat não usamos para mais nada, e não se junta com o que você escaneia porque não podemos juntar.
Os avisos de vacina ou medicação que você pode programar não são notificações push: não saem de nenhum servidor. Quem os agenda é o seu próprio celular, com o que você escreveu, e nós não ficamos sabendo que eles dispararam.
Os casos em que você sai daqui
Os dois desta seção têm algo em comum, e convém dizer antes: nenhum se abre sozinho. (O RevenueCat, o Firebase e o Expo falam sozinhos, sim, e isso está contado mais acima.)
Na tela de veredito há um link para a fonte do dado (ASPCA, o Manual Merck e similares). Se você tocar nele, abre aquele site, e ele vê, sim, o seu endereço IP, como em qualquer visita normal. Não somos nós que controlamos isso. O link não se abre sozinho: só se você tocar nele.
E, num veredito vermelho ou laranja, há um botão para procurar um veterinário de emergência perto. Se você tocar nele, o seu celular abre o Google Maps —ou o Apple Maps, se for o que você tem— com a busca já escrita. Dali em diante você está no app deles e nas condições deles: eles veem o seu endereço IP e, se você der permissão, a sua localização. Nós não damos essa localização a eles: o app não pede a permissão de localização e na busca não viaja nenhum dado seu, só as palavras “veterinário de emergência”. Ele também não se abre sozinho.
O site
whiskercheck.com é um site estático: páginas já escritas que são servidas como estão.
- Não há cookies. Nenhum, nem sequer técnicos.
- Não há análise de uso de nenhum tipo, nem nossa nem de terceiros. Não sabemos quanta gente entra nem de onde vem.
- Não há formulários. Para escrever para nós há um endereço de e-mail, e nada mais.
- As fontes tipográficas são servidas a partir do nosso próprio domínio, não do domínio do Google, para que a sua visita não chegue a mais ninguém.
Como em qualquer site, a Cloudflare vê a requisição e o seu endereço IP porque é ela quem serve as páginas, e as conserva nos registros dela conforme a sua própria política. Nós não lemos esses registros nem os cruzamos com nada: o site não sabe quem você é, e não tem como relacionar você com o app.
Menores de idade
O WhiskerCheck não é dirigido a menores de 16 anos e eles não devem usá-lo sem autorização de quem tem a guarda deles. Não pedimos a idade e não temos como comprová-la.
Os seus direitos
Você pode nos pedir acesso aos seus dados, a retificação deles, a sua eliminação, a limitação ou oposição ao tratamento, e a sua portabilidade. Escreva para privacy@whiskercheck.com.
No nosso servidor, o que está associado à sua instalação são os seus escaneamentos, as falhas do app e os reportes que você tenha enviado, e você mesmo pode soltar isso em Ajustes → “Apagar tudo o que está neste celular”, sem escrever para nós nem esperar: as falhas são apagadas inteiras, e dos escaneamentos e reportes tiram-se o identificador, o IP e o comentário. O que sobra depois —que produto, que veredito, que motivo— já não diz de quem veio e continua nos servindo para ver tendências e corrigir os dados.
Se você quiser uma cópia do que a sua instalação tem no nosso servidor, escreva para privacy@whiskercheck.com com o identificador do app, que está no fim de Ajustes → Privacidade.
O que as métricas mandaram para o Google esse botão também não apaga. O que deixa de acontecer é isso ficar ligado ao que vem depois, porque ele troca os identificadores. Isso se apaga sozinho aos 14 meses (as falhas, aos 90 dias, e a cópia do BigQuery, aos 60). Se você quiser que saia antes, escreva para privacy@whiskercheck.com com o identificador do app, que fica no fim de Ajustes → Privacidade, e faça isso antes de apagar tudo, porque depois ele já terá mudado.
O do RevenueCat vai à parte, e esse botão não o toca. Se você já assinou alguma vez, eles têm uma ficha amarrada ao identificador anônimo deles com as suas compras e renovações. Para que a apaguem, escreva para privacy@whiskercheck.com e nós pedimos isso. Dois avisos honestos sobre isso:
- Vamos precisar que você nos ajude a encontrar você. Como não cruzamos o identificador deles com o nosso, não conseguimos localizar a sua ficha por você: seria preciso a data aproximada da compra, ou que você nos escreva do e-mail da sua conta da Apple.
- De uma compra fica um registro que não podemos apagar, porque uma venda tem as suas obrigações contábeis e fiscais. O que some, isso sim, é tudo o que a amarre à sua instalação.
E a sua assinatura em si vive na sua conta da Apple: cancelá-la ou pedir o reembolso se faz lá, não aqui.
- União Europeia: você pode reclamar perante a autoridade de controle do seu país; na Espanha, a Agencia Española de Protección de Datos.
- Peru: você pode reclamar perante a Autoridad Nacional de Protección de Datos Personales.
- Brasil: você pode reclamar perante a Autoridade Nacional de Proteção de Dados (ANPD). A LGPD ainda lhe dá o direito de que os dados desnecessários, ou tratados fora da lei, sejam anonimizados, bloqueados ou eliminados.
- Califórnia: não vendemos nem compartilhamos informações pessoais no sentido da CCPA/CPRA, e não o fizemos nos últimos doze meses. O RevenueCat trata os dados da assinatura por nossa conta e só para isso, que é o que a CCPA chama de prestador de serviço e não de venda.
Com que direito tratamos cada coisa
Para quem mora na União Europeia, esta é a base jurídica de cada tratamento:
| O quê | Por que podemos |
|---|---|
| O veredito: o que você escaneia, a espécie e o peso | Execução do contrato — é literalmente o que você nos pede para fazer |
| O identificador do app e a cota por hora | Legítimo interesse em que o serviço não seja devorado por um único cliente e a fatura não dispare |
| O registro de escaneamentos e de falhas, com o identificador, o IP e se você está no plano grátis ou Pro | Legítimo interesse em saber como o serviço é usado, o que falha e quem abusa dele, para melhorá-lo e protegê-lo. Você o solta quando quiser em Ajustes |
| Os reportes de resultado incorreto | Legítimo interesse em corrigir dados que podem fazer mal se estiverem errados |
| Os nomes do que não temos documentado | Legítimo interesse em saber o que documentar depois |
| As métricas de uso e de falhas | Legítimo interesse em saber o que falha e o que serve, para consertar e melhorar o app. Elas vêm ativadas e você pode se opor quando quiser, desativando-as em Ajustes → Privacidade |
| A assinatura: a compra, o recibo e saber se ela continua ativa | Execução do contrato — sem isso não há como lhe dar o que você pagou |
| O contador de cinco escaneamentos grátis, no seu celular | Execução do contrato — é a condição com a qual oferecemos a você a parte gratuita. Ele só sai do seu celular como métrica, se você as tiver ativadas |
| O registro contábil de uma venda | Obrigação legal — sobrevive a um pedido de eliminação, e é a única coisa que sobrevive |
Não pedimos consentimento antes de medir, e isso é uma decisão, não um esquecimento: as métricas vêm ativadas e se desativam com um toque. Publicidade, cookies e rastreamento entre apps não há, e o que não existe não precisa de permissão.
O app também não pede a você a permissão de rastreamento que o iOS mostra em outros apps, e isso não é esquecimento: essa permissão existe para o identificador de publicidade, e aqui não se recolhe nenhum, nem no Firebase. O do RevenueCat não vai por consentimento, e sim por contrato: é o que faz falta para lhe dar a assinatura que você comprou.
Os seus dados saem do seu país: Cloudflare, Google e RevenueCat, Inc. processam fora da União Europeia e fora do Brasil. Os três oferecem as cláusulas contratuais padrão da Comissão Europeia, que é o mecanismo com o qual essa transferência é feita; para o Brasil, o equivalente que a ANPD aprovou para transferências internacionais.
O RevenueCat e o Google, pelo Firebase, são os que convém olhar duas vezes: os dois recebem dados diretamente do seu celular, sem passar pelo nosso servidor, e o RevenueCat está nos Estados Unidos. O Expo, que também fala a partir do seu celular para as atualizações, processa igualmente fora da União Europeia e do Brasil. A Apple também fica de fora, e com ela não há contrato nosso que valha: o pagamento é dela e se rege pelas condições dela.
Mudanças
Se isto mudar, a data lá de cima muda também, e avisaremos dentro do app antes de a versão nova entrar em vigor.
Última atualização: 9 de outubro de 2026