Security policy
Last updated October 7, 2026
This policy describes how Mint Labs protects the data Mint Scan to Pack handles, including any 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. The app reads order numbers and the items to ship (titles, barcodes, SKUs, images) and keeps a packing record per order. It never requests, stores, logs or shows customer names, emails, phone numbers or addresses, and stores no customer IDs.
- What the app writes to the store is limited to app-owned order metafields (the packing record), packed-box photos in the store's own Shopify Files, and fulfillments a packer explicitly asks for. The browser's packing check is re-done on the server against fresh Shopify data before anything is written, and a partial fulfillment needs an explicit confirmation.
- Station device links contain 256 random bits; only a SHA-256 hash is stored. A link only gives access to packing at that station (order numbers and items), is rate limited, can be replaced or switched off by the merchant at any time, and stops working when the app is uninstalled.
- Every database query is scoped to the authenticated store; values are always passed as bound parameters. CSV exports are built so spreadsheet programs never run their contents as formulas.
- 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 customer data.
- Webhooks are verified with Shopify HMAC signatures and admin requests with Shopify session tokens; unsigned requests are rejected. Internal background endpoints accept only calls signed with a key derived from the app secret.
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 merchants' 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 is logged with a timestamp by our hosting provider's request logs. Our own log lines never contain customer data, scanned codes or packer names.
- 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