Trust center
Trust and security at SyncZap
How SyncZap isolates each organization, what it stores and what it doesn't, how it protects credentials, AI assistant access, the infrastructure and how to report a vulnerability.
SyncZap connects your organization's WhatsApp to a dashboard and to the AI assistants you authorize, such as ChatGPT and Claude. This page explains to customers and security reviewers how data is kept apart, what we store and what we don't, and how we protect the service. It describes what exists today; when something changes, this page changes with it.
- Isolation
- Own SQLite database, session and directory per number of each organization
- Media
- Not stored; temporary copy deleted 24 h after download
- WhatsApp credentials
- Never leave the sync server
- Passwords and tokens
- Passwords with scrypt; tokens and API keys only as hashes
- Transport
- TLS 1.2 and 1.3 only, HSTS and a strict CSP
- AI assistants
- OAuth 2.1 with PKCE; read and send are separate permissions
- Certifications
- No certification or independent audit at this time
Each organization isolated
- On the sync server, each WhatsApp number of each organization has its own SQLite database, its own session and its own directory. The directory name is the SHA-256 hash of the internal identifier, and the server never accepts a disk path sent by a customer. Directories and databases are readable only by the service's process.
- Every request is authorized on the server against the user's membership in the organization. Roles, organizations and identifiers sent by the browser are not accepted as proof. A signed-in account gets no access to an organization it doesn't belong to.
- API keys and assistant authorizations belong to a single organization. A key of one organization cannot read another's data.
- The platform console shows administrative data and counts, not conversation content.
What we store and what we don't
- Messages only from conversations with sync turned on: the ones the organization picks or, when an owner or admin turns on Sync all conversations, all of them except WhatsApp's system feeds. Conversations without sync are not saved, shown or read by assistants.
- Photos, voice notes, videos and documents are not stored: they stay on the phone. When someone opens an attachment, asks the AI to read it, or automatic transcription receives a voice note, SyncZap downloads a temporary copy that is deleted from the server 24 hours after the download.
- AI transcripts and readings are kept as text, with the message.
- Erase everything immediately removes a number's saved messages and files. The retention period of each kind of data is in the Privacy Policy.
- We don't use conversation content for advertising, profiling or training AI models, and we don't sell personal data.
Credentials and secrets
- The linked-device session (the WhatsApp keys) lives only on the sync server. It never goes to the browser, the dashboard, API responses or AI assistants.
- Passwords are stored with scrypt and a random salt. Session, OAuth and invitation tokens and API keys are stored only as SHA-256 hashes; the full API key is shown once, when it is created.
- Webhook secrets are encrypted with AES-256-GCM. The key is kept outside the database and outside the backups.
Transport and browser
- The site and the API accept only TLS 1.2 and TLS 1.3. HTTP redirects to HTTPS, and HSTS tells the browser to use HTTPS for a year, subdomains included.
- A strict Content Security Policy allows only SyncZap's own scripts and prevents the dashboard from being embedded in another site. There are no third-party analytics or advertising scripts in the browser.
- Session cookies are HttpOnly, Secure and SameSite=Lax. Transactional emails are sent with mandatory TLS.
AI assistant access
- ChatGPT, Claude and other MCP clients connect over OAuth 2.1 with PKCE (S256), with no key or secret to copy. Each authorization covers one organization you choose, and the token only works for SyncZap's MCP server. Access tokens last 1 hour.
- Each tool declares the permission it requires. Reading (whatsapp:read) and sending (whatsapp:send) are separate permissions, and only an owner or admin can grant sending.
- Text messages you ask the assistant to send go out directly, without per-message confirmation, capped at 60 sends per hour per organization. Files, locations and contacts, as well as editing, deleting and pinning messages, require a prepare-and-confirm step. Each send has an idempotency key: repeating the key does not send the message again.
- The assistant receives only the results of the tools it calls, and only from synced conversations. Names, messages and captions are delivered as data, never as instructions. The authorization can be revoked at any time in the dashboard.
Infrastructure
- The dashboard and the sync server run in containers as an unprivileged user, with a read-only filesystem, all Linux capabilities dropped and memory and process limits.
- The sync server has no public address: its port exists only on the server's local interface and the internal container network. Every call from the dashboard carries an HMAC-SHA256 signature over the method, path, time, a single-use nonce and the body; calls outside a 60-second window or replayed are refused.
- From the internet, only the web ports (80, which redirects to HTTPS, and 443) and SSH answer. SSH accepts key authentication only, no passwords.
- Daily backups of the dashboard database and of each number's database and session, without media, are kept for 14 days in a folder only the server administrator (root) can read. The backup files have no encryption of their own: they are protected by access control. The keys that decrypt webhook secrets are not in the backups.
- Administrative actions are recorded in the audit log: invitations, permissions, integrations, sync options and deletions.
Account security
- Password sign-up requires confirming the email through a link valid for 24 hours. You can also sign in with Google or Microsoft.
- Forgot password sends a link valid for 1 hour. Resetting the password ends every open session of the account.
- Sign-in attempts are rate-limited per IP address and per email. Responses don't reveal whether an email has an account.
- Invitations have a recipient, an expiry and a single use.
Email security
The synczap.ai domain publishes SPF and DKIM for the servers that send on our behalf and a DMARC policy set to quarantine (p=quarantine): messages pretending to come from SyncZap that fail the check go to spam. SyncZap never asks for your password, WhatsApp code or card details by email.
Subprocessors
The list of companies that process data for SyncZap, with the purpose of each, is in the Subprocessors section of the DPA and in Privacy Policy. Voice notes and images sent for transcription or reading go to the Google Gemini API (paid tier) or the OpenAI API, contracted without use of the data to train models.
Compliance
- LGPD and GDPR: for the conversations an organization syncs, the customer organization is the controller and Atlas Equities LLC, the company that provides SyncZap, is the processor. For account, subscription, support and security data, Atlas Equities LLC is the controller. The obligations are set out in the DPA.
- SyncZap does not hold any security certification or independent audit report at this time. If that changes, the document will be cited here.
- Unofficial connection: SyncZap connects as a linked device, through the WhatsApp Web protocol, without the official WhatsApp Business API, and is not affiliated with WhatsApp or Meta. WhatsApp may disconnect, restrict or ban numbers that use unofficial devices, especially with abusive use or unusual message volume. SyncZap does no bulk messaging or campaigns.
Incident response
If a security incident affects an organization's data, we notify the organization without undue delay and, where possible, within 48 hours of confirming it, with what is known, the data affected and the measures taken. When the law requires it, we also notify Brazil's data protection authority (ANPD).
Report a vulnerability
Found a vulnerability? Write to support@synczap.ai with the subject Security, the steps to reproduce it and the impact you observed. Test only with your own account and organization, don't access other people's data, don't degrade the service, and give us a reasonable time to fix it before disclosing. There is no bug bounty at this time. The contact is also in /.well-known/security.txt.
Legal details: Privacy Policy, Terms of Use and Data Processing Agreement (DPA).