Security policy
Last updated October 4, 2026
This policy describes how Mint Labs protects the data Mint Ask Buyers handles, including personal data of merchants' customers processed on behalf of merchants. It applies to everyone at Mint Labs with access to our systems.
Data loss prevention
- We keep as little data as possible. For a buyer who said yes to answering questions we store the email address on the order they said yes with, the first name and last initial they chose to show, when and where they said yes, and the products of that order. Their email, name and products are deleted the moment they stop or the merchant removes them. For a shopper who asks a question we store the question, an optional first name and, only if they ask for an answer notice, their email until that notice is sent. We never store IP addresses: rate limits use keyed one-way hashes, deleted after 30 days.
- Email addresses are encrypted by the app (AES-256-GCM) before they are written to the database, with a key stored as a separate encrypted secret. Duplicates, unsubscribes and privacy requests use a keyed one-way hash, so an address is only decrypted to send an email or to show the merchant a masked version.
- Consent is enforced in the code twice: buyers can only be added through an opt-in proven with their own order (order ID and confirmation number), and every question email is re-checked against the buyer's opt-in, unsubscribes and the weekly limit right before it is sent.
- Answer links are random 256-bit tokens; only a one-way hash is stored, each works once and expires. Unsubscribe links are signed (HMAC-SHA256) and can't be guessed or forged.
- Emails are never dropped on errors: an email is marked sent only after the email service accepted it; anything else puts it back in the outbox, and stuck messages are recovered automatically.
- Our database is Cloudflare D1: encrypted at rest, with point-in-time recovery so it can be restored to any minute in the retention window.
- All traffic uses HTTPS (TLS). Production and development use separate databases; development never uses real merchant or shopper data.
- Webhooks and storefront requests are verified with Shopify HMAC signatures; unsigned requests are rejected.
Access control
- Only authorised Mint Labs personnel who need it to run and support the app can access production systems.
- The app has no internal screen that lets us browse customers' personal data.
- Access is removed immediately when it is no longer needed.
Passwords and authentication
- Every account with access to production (hosting and Shopify Partner) uses a strong, unique password stored in a password manager.
- Two-factor authentication is required on all of those accounts.
- API secrets are stored as encrypted environment secrets, never in source code, and are rotated after any suspected exposure.
Logging
- Every request to the app, including requests that process personal data, is logged with a timestamp by our hosting provider's request logs. Logs never contain buyers' or shoppers' email addresses, names or the text they write.
- Logs are reviewed when investigating errors or suspected incidents.
Security incident response
- Report. Anyone can report a suspected issue to support@stickermint.com. We acknowledge reports within one business day.
- Contain. We stop the exposure first: disable the affected feature, revoke and rotate keys and access tokens, and block abusive traffic.
- Investigate. We use request logs and database history to find what happened, which shops and data were affected, and when.
- Notify. If personal data was affected, we notify affected merchants without undue delay and within 72 hours of confirming the incident, and tell Shopify where required, with what happened and what we are doing about it.
- Recover. We fix the root cause and, if needed, restore data from point-in-time recovery.
- Review. We record each incident and the lessons learned, and update this policy.
Contact
Mint Labs — support@stickermint.com