Security
Last updated: October 28, 2026
Em português: veja o resumo da segurança em português.
En español: consulta el resumen de la seguridad en español.
This page describes how ZapClaw protects the data it processes: the data of your account, and the messages, contacts and webhook events it processes for your organization. It describes the measures in general terms. No system is 100% secure, and these measures reduce risk; they do not remove it. Our Privacy Policy says what we collect and why, and our Data Deletion page explains how to delete it.
1. Encryption in Transit
The dashboard, the API and the webhooks we receive work over HTTPS. We deliver webhooks only to HTTPS addresses, and we refuse addresses that point to private or internal networks.
2. Encryption at Rest
Message content is stored encrypted with AES-256-GCM: the text of messages and their captions, the names of document files, the chat history imported from the WhatsApp Business app and the content of webhook deliveries. The names and usernames of your contacts are encrypted the same way. Each value has its own random initialization vector and is bound to the field it belongs to. Content stored before this encryption was introduced is encrypted by a background job.
Stored short-lived copies of message content are encrypted too: the answer to a send made with an idempotency key, kept for about a day (a request repeated within 10 minutes gets the same answer), and copies of messages that could not be stored, kept for troubleshooting for at most 7 days.
What identifies a message or a contact, such as phone numbers, message identifiers, message types and delivery statuses, is stored without this encryption, because delivering messages, counting usage and support depend on it.
The encryption keys are kept apart from the database. The key of message content can be rotated: what was encrypted with the previous key stays readable and is encrypted again with the new one. The access tokens to your WhatsApp Business Accounts and the secrets of authenticator apps used for two-factor authentication are encrypted with AES-256-GCM under a separate key.
Message text that you choose to include in a support ticket is kept with that ticket, like the rest of our support conversations, and is covered neither by this encryption nor by the retention period of section 4.
3. Backups
Our database backups are encrypted. Section 12 says how long they keep a copy of a deleted account.
4. How Long We Keep Message Content
Each organization chooses how long ZapClaw keeps its message content: 90 days by default, configurable to 30, 7 or 0 (no content kept), and never longer than its plan allows. An owner or an administrator chooses it in the dashboard, in Settings, Privacy and contracts. Messages, webhook deliveries and imported history are deleted automatically when their period ends.
With 0, ZapClaw keeps no message content once your system has received it, apart from the short-lived copies of section 2: messages are stored without their text, captions and file names, and the content of a webhook delivery is cleared as soon as it is delivered. What is not delivered yet is kept for at most 7 days. The records of messages and deliveries, without content, are deleted after 7 days, because delivery statuses, usage counts and support depend on them. The chat history of the WhatsApp Business app is not imported, and without a webhook the content of the messages you receive is not kept anywhere.
A change of the period applies to what arrives after it. Only the owner can also ask for the content already stored to follow the new period.
5. Separation Between Customers
The dashboard and the API read and change only the data of the organization a request belongs to (and, in an agency, of the client concerned), and each API key belongs to one organization.
6. Access to Accounts
- Roles: the plan, the message retention period and the optional AI features can be managed, and the activity log seen, only by an owner or an administrator of the organization; only the owner can delete the account.
- Passwords: stored only as bcrypt hashes, never in plain text.
- Two-factor authentication: available to every user with an authenticator app, with single-use recovery codes stored only as hashes.
- Sessions: short-lived access tokens; the tokens that renew them are stored only as hashes and end when you sign out.
- Sign-in: the number of sign-in attempts is limited.
- API keys: stored only as SHA-256 hashes and shown once, when they are created.
7. Webhook Signatures
The events we receive from the WhatsApp Business Platform are checked against the platform's signature before we process them. The events we deliver to your webhook are signed with HMAC-SHA256 under your webhook's secret, so your system can check that they come from ZapClaw.
8. Activity Log
Owners and administrators see, in Settings, Activity, a log of the changes made in their organization (webhooks, API keys, numbers, the plan, passwords, two-factor authentication, the AI permission, the message retention period and others), with who made each change and when. Each entry is kept for 365 days. The log records no message content, passwords or keys.
9. Error Reports and Records
- If we turn on error monitoring, the error reports our servers send to it leave out request bodies, cookies, query strings and the caller's address.
- In the records we keep of consents (to the optional AI features and to an agency's connect link), in the activity log and in the record of where a sign-up came from, IP addresses are stored with their last part removed.
- The request logs of our servers keep the full IP address of each request to our API, including the requests the dashboard makes, for security and to operate the service, for a limited period.
10. Optional AI Features
The optional AI features stay off until an owner or an administrator of your organization gives permission, and the permission can be revoked at any time in Settings. These features send the AI provider only the text of the message template being analyzed: never your conversations, your contacts or the content of your messages. We do not store that text, and the provider does not use it to train its models.
11. Security Incidents
If a security incident affects your organization's data, we notify your organization's owners and administrators by email (and, if your organization has a data processing agreement with us, the privacy contact named in it) without undue delay, and in any case within 48 hours of becoming aware of it. The notice describes what we know at that time, and we send the rest as we learn it.
12. Deletion
An owner or an administrator can delete a disconnected number together with its messages, imported history and contacts. The owner can delete the whole account in Settings: access ends at once, and the account and its data are erased from our database 7 days later, or later if our payment provider cannot confirm by then that nothing is left to cancel, except the records we must keep to meet legal obligations or to prove what was agreed, as our Data Deletion page explains. Encrypted database backups keep a copy for up to 30 days after the erasure, and then it is gone.
13. Data Processing Agreement and Service Providers
An organization that needs a data processing agreement (DPA) with ZapClaw can write to contato@zapclaw.app.
By category, the providers we use for the service include hosting (including the storage of encrypted backups), email delivery, payments, the issue of Brazilian service invoices (NFS-e) and our accounting, product analytics, the protection of our contact form against automated abuse and, only for the organizations that turn them on, the optional AI features. Our Privacy Policy describes what each kind of provider receives.
14. Report a Security Issue or Abuse
If you find a security issue in ZapClaw, write to contato@zapclaw.app with what you found and how to reproduce it. Please do not access, change or delete data that is not yours, and give us time to fix the issue before you make it public.
To report abuse of ZapClaw, such as spam, scams or other misuse of a WhatsApp number connected to it, write to the same address with the number, the date and what happened. We look into every report and may suspend the account or disconnect the numbers involved, as our Terms of Service describe.
Segurança: resumo em português
Este resumo traz as principais medidas descritas acima. Nenhum sistema é 100% seguro: estas medidas reduzem o risco, não o eliminam.
- Criptografia: o painel, a API e os webhooks usam HTTPS, e só entregamos webhooks a endereços HTTPS públicos. O conteúdo das mensagens (textos, legendas e nomes de arquivos), o histórico importado do app WhatsApp Business, o conteúdo das entregas de webhook e os nomes e nomes de usuário dos contatos ficam criptografados com AES-256-GCM; o conteúdo guardado antes dessa criptografia é criptografado por uma rotina em segundo plano. O que identifica uma mensagem ou um contato, como números de telefone, identificadores de mensagens, tipos e status de entrega, fica guardado sem essa criptografia. As cópias temporárias de conteúdo também são criptografadas: a resposta a um envio feito com chave de idempotência, guardada por cerca de um dia (um pedido repetido em até 10 minutos recebe a mesma resposta), e cópias de mensagens que não puderam ser guardadas, mantidas para análise de problemas por no máximo 7 dias. O texto de mensagens que você decide incluir num chamado de suporte fica guardado com o chamado e não é coberto por essa criptografia nem pelo prazo de retenção. As chaves ficam fora do banco de dados, e a chave do conteúdo pode ser trocada; os tokens de acesso às contas do WhatsApp Business e as chaves secretas dos apps autenticadores usam outra chave. Os backups do banco de dados são criptografados.
- Retenção: cada organização escolhe por quanto tempo o ZapClaw guarda o conteúdo das mensagens: 90 dias por padrão, configurável para 30, 7 ou 0 (sem guardar conteúdo), e nunca por mais tempo do que o plano permite. Com 0, salvo as cópias temporárias descritas acima, o conteúdo é apagado assim que chega ao seu webhook, o que ainda não foi entregue fica no máximo 7 dias, os registros sem conteúdo são apagados depois de 7 dias, o histórico do app não é importado e, sem webhook, o conteúdo das mensagens recebidas não fica guardado em lugar nenhum. Uma mudança de prazo vale para o que chega depois dela; só o proprietário pode pedir também que o conteúdo já guardado siga o novo prazo.
- Acesso: o painel e a API leem e alteram só os dados da organização a que cada requisição pertence; o plano, o prazo de retenção e os recursos de IA são geridos só por um proprietário ou administrador da organização, que também vê o registro de atividades, e só o proprietário exclui a conta; as senhas ficam guardadas só como hash bcrypt; a autenticação em dois fatores é opcional; as chaves de API ficam guardadas só como hash SHA-256; as tentativas de login são limitadas; e o registro de atividades guarda cada item por 365 dias.
- Webhooks: conferimos a assinatura da plataforma do WhatsApp Business nos eventos que recebemos e assinamos com HMAC-SHA256 os eventos que entregamos ao seu webhook.
- Registros: os endereços IP ficam sem a parte final nos registros de consentimento, no registro de atividades e no registro da origem de um cadastro; os registros de requisições dos nossos servidores guardam o endereço IP completo de cada requisição à nossa API, inclusive as que o painel faz, por segurança e para operar o serviço, por um período limitado.
- Relatórios de erro: se ativarmos o monitoramento de erros, os relatórios enviados a ele não levam o corpo das requisições, os cookies, a parte de consulta dos endereços (query string) nem o endereço de quem fez a requisição.
- IA opcional: fica desligada até um proprietário ou administrador autorizar, e a autorização pode ser revogada a qualquer momento. Só o texto do template analisado é enviado; não o guardamos, e o provedor não o usa para treinar modelos.
- Incidentes: se um incidente de segurança afetar os dados da sua organização, avisamos por e-mail os proprietários e administradores dela (e, se a organização tiver um acordo de tratamento de dados conosco, o contato de privacidade indicado nele) sem demora injustificada e, em qualquer caso, em até 48 horas depois de tomarmos conhecimento dele.
- Acordo de tratamento de dados: uma organização que precise de um acordo de tratamento de dados (DPA) com o ZapClaw pode escrever para contato@zapclaw.app.
- Exclusão: o proprietário exclui a conta em Configurações; a conta e os seus dados são apagados do nosso banco de dados 7 dias depois, ou mais tarde se o nosso provedor de pagamentos não conseguir confirmar até lá que não sobrou nada a cancelar, exceto os registros que precisamos guardar para cumprir obrigações legais ou comprovar o que foi acordado, e os backups criptografados do banco de dados guardam uma cópia por até 30 dias depois disso. Veja a página de exclusão de dados.
- Para relatar um problema de segurança ou um abuso: escreva para contato@zapclaw.app.
Seguridad: resumen en español
Este resumen trae las principales medidas descritas arriba. Ningún sistema es 100% seguro: estas medidas reducen el riesgo, no lo eliminan.
- Cifrado: el panel, la API y los webhooks usan HTTPS, y solo entregamos webhooks a direcciones HTTPS públicas. El contenido de los mensajes (textos, leyendas y nombres de archivos), el historial importado de la app de WhatsApp Business, el contenido de las entregas de webhook y los nombres y nombres de usuario de los contactos se guardan cifrados con AES-256-GCM; el contenido guardado antes de este cifrado se cifra con un proceso en segundo plano. Lo que identifica un mensaje o un contacto, como los números de teléfono, los identificadores de los mensajes, los tipos y los estados de entrega, se guarda sin este cifrado. Las copias temporales de contenido también se cifran: la respuesta a un envío hecho con clave de idempotencia, que se guarda cerca de un día (una solicitud repetida dentro de 10 minutos recibe la misma respuesta), y copias de mensajes que no se pudieron guardar, que se conservan para analizar problemas como máximo 7 días. El texto de mensajes que decides incluir en un ticket de soporte se guarda con el ticket y no lo cubren este cifrado ni el plazo de conservación. Las claves se guardan fuera de la base de datos, y la clave del contenido se puede rotar; los tokens de acceso a las cuentas de WhatsApp Business y las claves secretas de las apps de autenticación usan otra clave. Las copias de seguridad de la base de datos están cifradas.
- Conservación: cada organización elige cuánto tiempo guarda ZapClaw el contenido de los mensajes: 90 días por defecto, configurable a 30, 7 o 0 (sin guardar contenido), y nunca por más tiempo del que permite el plan. Con 0, salvo las copias temporales descritas arriba, el contenido se borra en cuanto llega a tu webhook, lo que aún no se entregó se guarda como máximo 7 días, los registros sin contenido se eliminan después de 7 días, no se importa el historial de la app y, sin webhook, el contenido de los mensajes recibidos no se guarda en ningún lugar. Un cambio de plazo vale para lo que llega después de él; solo el propietario puede pedir además que el contenido ya guardado siga el nuevo plazo.
- Acceso: el panel y la API leen y cambian solo los datos de la organización a la que pertenece cada solicitud; el plan, el plazo de conservación y las funciones de IA los gestiona solo un propietario o un administrador de la organización, que también ve el registro de actividad, y solo el propietario elimina la cuenta; las contraseñas se guardan solo como hash bcrypt; la autenticación en dos pasos es opcional; las claves de API se guardan solo como hash SHA-256; los intentos de inicio de sesión son limitados; y el registro de actividad guarda cada entrada durante 365 días.
- Webhooks: verificamos la firma de la plataforma de WhatsApp Business en los eventos que recibimos y firmamos con HMAC-SHA256 los eventos que entregamos a tu webhook.
- Registros: las direcciones IP se guardan sin la parte final en los registros de consentimiento, en el registro de actividad y en el registro del origen de una cuenta nueva; los registros de solicitudes de nuestros servidores guardan la dirección IP completa de cada solicitud a nuestra API, incluidas las que hace el panel, por seguridad y para operar el servicio, durante un período limitado.
- Informes de errores: si activamos el monitoreo de errores, los informes que se le envían no incluyen el cuerpo de las solicitudes, las cookies, la parte de consulta de las direcciones (query string) ni la dirección de quien hizo la solicitud.
- IA opcional: queda desactivada hasta que un propietario o un administrador la autoriza, y la autorización se puede revocar en cualquier momento. Solo se envía el texto de la plantilla analizada; no lo guardamos, y el proveedor no lo usa para entrenar modelos.
- Incidentes: si un incidente de seguridad afecta los datos de tu organización, avisamos por correo a sus propietarios y administradores (y, si la organización tiene un acuerdo de tratamiento de datos con nosotros, al contacto de privacidad indicado en él) sin dilación indebida y, en cualquier caso, dentro de las 48 horas desde que tenemos conocimiento de él.
- Acuerdo de tratamiento de datos: una organización que necesite un acuerdo de tratamiento de datos (DPA) con ZapClaw puede escribir a contato@zapclaw.app.
- Eliminación: el propietario elimina la cuenta en Configuración; la cuenta y sus datos se borran de nuestra base de datos 7 días después, o más tarde si nuestro proveedor de pagos no puede confirmar para entonces que no queda nada por cancelar, salvo los registros que debemos conservar para cumplir obligaciones legales o probar lo acordado, y las copias de seguridad cifradas de la base de datos guardan una copia hasta 30 días después. Consulta la página de eliminación de datos.
- Para informar un problema de seguridad o un abuso: escribe a contato@zapclaw.app.