Privacy policy
Last updated September 30, 2026
Mint Blocker is a Shopify app made by Mint Labs ("we", "us"). It lets a merchant block storefront visitors by country or IP address, stop blocked buyers at checkout, and flag orders that match the merchant's block lists. This policy explains what the app handles about merchants, their customers and their storefront visitors, why, and when it's deleted. For customer and visitor data we act as a service provider (processor) to the merchant, who is the controller.
The short version
- For every storefront visit the app checks the visitor's IP address and country. Nothing is stored for visitors who are allowed.
- For blocked visits we store the country, the rule that matched, and only a shortened form of the IP address (its network) plus a keyed hash — never the full address — for 30 days.
- The checkout rule runs inside Shopify; the app never receives checkout data.
- Order checks read an order's email and IP address to compare them with the merchant's lists, and keep neither — only the order number and which kind of rule matched.
- We never sell or share data, use it for advertising, or combine it across stores. No cookies.
Storefront visitors
| What | Why and how long |
|---|---|
| IP address, the country Cloudflare associates with it, and the browser's user agent — sent with each visitor check (at most once every 2 hours per browser) | To decide whether the visitor sees the store or the merchant's block page. Used in memory for that request only; not stored for allowed visitors. |
| For blocked visits: the date, the country code, the rule that matched, the IP address shortened to its network (IPv4: first three parts, /24; IPv6: first 48 bits, /48), a 16-character keyed hash of the full address (HMAC-SHA256 with a secret key unique to each store), and a visit count | To show the merchant what is being blocked and let them block a whole network. The hash lets repeat visits be grouped; it isn't reversible without the store's key, which never leaves our servers. Deleted after 30 days. Daily totals (numbers only) are kept for 90 days. |
| In the visitor's browser: one localStorage entry ("mint-blocker") holding the answer (allowed/blocked), the rules version and an expiry time | So the check isn't repeated on every page. No personal data; expires after 2 hours. It's not a cookie and isn't sent to anyone. |
Search engine crawlers that identify themselves in their user agent are not checked at all. The visitor check sends no cookies and no page address (referrer) to us.
The merchant's customers
| What | Why and how long |
|---|---|
| Email addresses and domains the merchant chooses to block, and customer tags to block | Entered by the merchant; stored in our database and in the store's checkout rule so Shopify can apply it. Kept until the merchant removes them, a customer data erasure request covers the address, or the store is deleted. |
| At checkout (inside Shopify): the shipping and billing address country, the email entered, and whether a signed-in customer has a blocked tag | Read by the checkout rule, which runs on Shopify's servers. Nothing is sent to us. |
| Order checks (paid plan, when switched on): the order's email address and the IP address it was placed from, from Shopify's order webhook (only these fields plus the order ID, number and dates are requested) | Compared with the merchant's lists, then discarded. For a matching order we keep the order ID and number, the kind of match (IP range, email domain, or "email address" — never the address itself) and what the app did (tagged, cancel requested). Deleted after 90 days. |
Merchants
| What | Why |
|---|---|
| Store domain and a Shopify access token | To publish the rules to the storefront and checkout, receive new orders (if order checks are on), and tag or cancel matching orders. |
| Settings: countries, IP rules, block lists, block page text and colours, checkout messages, order check options | To run the app the way the merchant set it up. |
| Plan and subscription status | Read from Shopify to decide which features apply. Payments are handled entirely by Shopify. |
| The merchant's own IP address and country, when they open the app | Shown to them (for the test tool and a warning if their own connection would be blocked). Not stored unless they add it to their allowed list. |
Where data is processed
The app runs on Cloudflare Workers with a Cloudflare D1 database and Workers KV (published rules). Cloudflare processes requests in its global network. We don't use any other service to process data.
Deletion and privacy requests
- Customer data requests (Shopify's customers/data_request webhook): we record the request with a hash of the customer's email (not the email) and the order IDs, and the merchant downloads a file listing the block-list entries that are that customer's email and the flagged-order records for their orders.
- Customer erasure (customers/redact): we remove the customer's email from the merchant's email block list (and the checkout rule), and delete flagged-order records for their orders. The merchant sees a note that this happened.
- Uninstall: the storefront rules are removed immediately, the access token is deleted, and Shopify removes the checkout rule and app embed. Remaining data is deleted when Shopify sends shop/redact, 48 hours after uninstall.
- Retention: blocked-visit log 30 days, daily totals 90 days, flagged orders 90 days, privacy requests 30 days, privacy request notes 90 days.
Security
Data is encrypted in transit (HTTPS) and at rest by Cloudflare. Webhooks are verified with Shopify's signature. The visitor check is rate limited and validates every request. See our security policy.
Contact
Questions or requests: support@stickermint.com. Customers of a store should contact that store first; we help the merchant with any request.