Bouncely privacy policy
Last updated: November 8, 2026
This policy explains what information Bouncely ("Bouncely: Block Customers" on the Shopify App Store) handles, why, where it goes, and how long it is kept. It applies to merchants who install Bouncely, to the people those merchants block, to buyers whose checkout Bouncely checks, and to anyone who contacts us.
1. Who we are
Bouncely is a Shopify app operated by Prodo Labs. In this policy, "we" and "us" mean Prodo Labs. You can reach us at hello@bouncely.app.
Bouncely lets a merchant keep a list of specific people who may not buy from their store, usually customers who filed a chargeback, and stops those people at the store's online checkout before they pay.
2. The merchant's role and ours
- The merchant decides. Each merchant chooses who to block, which of that person's details to enter, the reason, any note, and the message blocked buyers see. Bouncely never adds anyone to a list by itself and does not score or rate buyers.
- We process on the merchant's behalf. For information about the people a merchant blocks and the buyers checked at checkout, the merchant is the controller (the business responsible for that data) and we are its processor. We use that information only to run Bouncely for that merchant, as described here and in the terms.
- We are responsible for merchant account data. For the information we keep about the store itself (section 3.1) and for messages you send us, we decide how it is used.
Each store's list is separate. A person blocked by one store is not blocked anywhere else, and no store can see another store's list.
3. Information we handle
3.1 About the store
When a merchant installs Bouncely we store:
- the store's myshopify.com domain;
- Shopify's access session for the store, which lets Bouncely call Shopify on the merchant's behalf;
- the store's plan (Free or Basic) and when we last checked it with Shopify;
- the checkout message the merchant wrote, if they changed the default;
- settings Bouncely needs to run: install and uninstall times, the store's checkout rule ID, a random value unique to the store (its "salt", see 3.3), and the status of Bouncely's last sync with Shopify.
We do not store the store owner's or staff members' names or email addresses, and we do not record which staff member blocked someone.
3.2 About each blocked person
For every person a merchant blocks, we store what the merchant entered or selected:
- any of their email address, phone number, first and last name, shipping address (street, unit, postal code, country) and Shopify customer ID;
- a display name for the list, taken from their name, email, phone or address;
- the reason (chargeback, refund abuse, reseller, abusive or other) and an optional private note written by the merchant;
- how they were added (by hand, from an order, or from an imported list), the Shopify ID of the order they were blocked from, if any, and when they were added.
When a merchant imports a list by pasting it or uploading a CSV file, Bouncely reads the file and stores only the rows it adds to the list. The file itself is not kept.
3.3 Checkout fingerprints
Shopify's checkout cannot send a buyer's details to an outside service while it decides whether an order can go ahead. So Bouncely turns each blocked detail into a short fingerprint (an 8-character code calculated from the store's salt and the detail) and saves the store's fingerprints in the store's own Shopify data, in fields Shopify reserves for Bouncely.
At checkout, Bouncely's check runs inside Shopify. It makes fingerprints from the buyer's email, phone, Shopify customer ID and each delivery address (name, phone and street address), compares them with the store's list, and either lets the checkout continue or shows the merchant's message. The buyer's details are not sent to us during this check.
Fingerprints are not the details themselves, but they are not anonymous either. Someone who has a store's fingerprints and its salt could confirm a guessed detail. The salt is also given to the block log pixel in the buyer's browser (3.4), so we don't treat it as secret. We treat fingerprints as personal data and delete them with the rest of a person's entry (section 7).
3.4 Block log
The block log tells a merchant when a blocked person tried to check out. It comes from a Bouncely pixel that Shopify loads in the store's checkout:
- The pixel watches checkout in the buyer's browser, inside Shopify's sandbox. For a checkout Bouncely did not stop, it sends nothing.
- When checkout shows the store's Bouncely message, meaning the buyer was blocked, the pixel sends us the store's domain, the checkout's token and fingerprints of the buyer's email, phone, customer ID, name and shipping address. It never sends the details themselves. It sends again if the buyer changes their details in that checkout.
- We compare the fingerprints with the store's list. If they match a blocked person, we keep one entry per checkout: which person on the list it was, which kinds of detail matched (for example "email" and "name"), and when the attempt was first and last seen. We keep a one-way hash of the checkout token, not the token, so repeated attempts in one checkout count once.
- If the fingerprints match no one on the list, or the store is unknown or has uninstalled Bouncely, we discard the report. We also stop accepting new entries for a store after 300 in an hour.
The pixel sets no cookies, stores nothing in the browser, and is not used for analytics or advertising. It runs without asking for cookie consent because it exists only to record checkouts the merchant's block list stopped. Shopify gives the pixel only some of what checkout knows, so a block that matched only on a detail the pixel cannot see (such as a second delivery address) is not logged.
3.5 Information we read from Shopify but do not store
To help a merchant decide who to block, Bouncely reads from the merchant's Shopify store when the merchant opens the relevant screen:
- customers matching what the merchant types (name, email, phone, default address), with their recent orders' chargeback and refund status;
- orders matching what the merchant types, and recent orders with a chargeback, refund, cancellation for fraud or Shopify's high-risk recommendation, to suggest people worth blocking;
- a person's orders from the last 60 days, to show which ones a block would have stopped.
These results are shown to the merchant and not saved, except for the details the merchant then chooses to block (3.2). The Block customer action on Shopify's order and customer pages reads the same kinds of details in the merchant's admin and sends us only what the merchant submits.
3.6 Technical logs
Bouncely runs on Cloudflare Workers. Cloudflare records requests to our servers in operational logs that we use to find and fix problems. They are kept for up to 7 days and include the time, the address requested and network information about the device that made the request, such as its approximate location. Some addresses in the merchant's admin contain what the merchant searched for or the person they just unblocked, which can include a customer's name, email or phone, so those can appear in these logs. Our own error messages name the store but not the people on its list.
3.7 When you contact us
If you email us, we receive your email address and whatever you include in the message. We use it to reply and to handle your request.
3.8 This website
bouncely.app uses no cookies, analytics or advertising tools. Its fonts and other assets are served from bouncely.app itself, so visiting it doesn't send anything to another service. Cloudflare logs requests to it as described in 3.6.
4. How we use information
We use the information above only to:
- stop the people a merchant blocked at that store's online checkout;
- show the merchant who is blocked, why, and when they tried to check out;
- suggest orders and customers worth blocking and show past orders a block would have stopped;
- check the store's plan and apply its limits;
- keep Bouncely working, secure and free of abuse, including limiting forged block log reports;
- answer support, privacy and deletion requests, and meet our obligations to Shopify and under law.
5. What we don't do
- We don't sell personal information or share it for advertising.
- We don't build profiles of buyers, score them, or decide on our own that anyone should be blocked.
- We don't share one store's block list with any other store or use it for anything else.
- We don't use advertising or analytics tools in the Bouncely app.
- We don't tell a blocked buyer which detail matched. The checkout shows only the merchant's message.
6. Who we share information with
We use these service providers to run Bouncely:
| Provider | What it does for Bouncely | What it handles |
|---|---|---|
| Shopify | The platform Bouncely runs on: admin, checkout, the checkout check, the block log pixel, billing | Everything in section 3. Shopify also holds the store's own order and customer records. |
| Cloudflare | Hosts Bouncely's servers (Cloudflare Workers) and database (Cloudflare D1) | The stored information in 3.1, 3.2 and 3.4, and the request logs in 3.6 |
To check a store's plan, Bouncely sends the store's Shopify ID to Shopify's Partner API. No other service receives Bouncely app data: no analytics, error-tracking, email or chat providers.
We may also disclose information if the law requires it (for example a valid court order), to protect the rights, safety or security of merchants, buyers, us or others, or to a successor if the business that operates Bouncely is sold or reorganized, in which case this policy continues to apply to the information.
7. How long we keep information
| Information | When it is deleted |
|---|---|
| A blocked person's entry, details, fingerprints and block log entries | As soon as the merchant unblocks them. Bouncely then removes their fingerprints from the store's Shopify data, retrying every minute if Shopify doesn't respond. |
| Block log entries | 90 days after the attempt was last seen, or earlier if the person is unblocked. |
| A blocked person, after Shopify sends us a deletion request for that customer | See below. |
| The store's access session | When the merchant uninstalls Bouncely. |
| Everything else about the store, including its whole block list and block log | When Shopify sends its shop deletion request, 48 hours after the merchant uninstalls Bouncely. |
| Request logs | Within 7 days. |
| Backups | Cloudflare keeps a restore history of the database for up to 30 days. Deleted information leaves that history when it ages out. We keep no other copies. |
Customer deletion requests. When a buyer asks a store to delete their data and Shopify passes the request to us, we look for a blocked person who matches that customer by email, phone or Shopify customer ID. For a match, we delete their name, email, phone, address, customer ID, display name, the merchant's note and the source order. We keep their fingerprints and the block reason, and the entry then reads "Details removed at the customer's request", so the merchant's block stays in effect. We do this to protect the merchant from repeat chargebacks and similar abuse. The merchant can unblock the entry at any time, which deletes it completely. An entry the merchant created with only a name or an address can't be matched to the request; the merchant can find it in the app and unblock it.
After uninstall. When Bouncely is uninstalled, its checkout check and block log pixel stop running, so no one is blocked and no reports are sent.
8. Your rights and choices
If you think a store blocked you by mistake
Contact the store. The store decides who it sells to, and only the store can review and change its list: it can see why you were blocked and unblock you, which deletes everything Bouncely held about you. Its contact details are on its website, and the checkout message usually says how to reach it. We don't review, change or override a store's list, and we can't tell you whether a particular store has blocked you. Merchants contact us when they need help with their list.
If you are a buyer and want access to or deletion of your data
Ask the store. Under privacy laws such as the GDPR and California's CCPA, it is the business responsible for your data. The merchant can see what Bouncely holds about a blocked person in the app and can delete it by unblocking them. If you ask the store to delete your Shopify customer data, Shopify passes that request to us and we act on it as described in section 7. If a merchant needs a full copy of what we hold about a person to answer a request, they can email us and we will provide it.
If you are a merchant
You can see, correct and delete your block list in the app at any time. To get a copy of the information we hold about your store, or to ask a question about it, email hello@bouncely.app. Uninstalling Bouncely deletes your store's data as described in section 7.
Depending on where you live, you may have the right to access, correct, delete or restrict the use of your information, to object to its use, to receive a copy in a portable format, and to complain to your local data protection authority. We won't treat you differently for exercising these rights.
9. Security
- Connections to Bouncely, between Bouncely and Shopify, and from the checkout pixel use encrypted HTTPS.
- Cloudflare encrypts Bouncely's database and secrets at rest.
- Development, staging and production are separate Shopify apps, each with its own server and database. Production data is not copied into development or testing.
- Only the people who run Bouncely can access its production systems, using accounts protected by unique passwords and two-factor authentication.
- The block log endpoint accepts reports only in the expected format, keeps only reports that match a store's list, and limits how many new entries a store can receive per hour.
- If Bouncely fails, checkout continues normally, so an error can't stop a store's sales.
If a security incident affects merchants' customer data, we will tell the affected merchants without undue delay and within 72 hours of becoming aware of it, and notify Shopify as its partner rules require.
No system is perfectly secure. If you find a security problem, please email hello@bouncely.app.
10. Where information is processed
Shopify and Cloudflare run their services in many countries, including the United States, and Cloudflare handles each request at a data center near the person making it. When personal data from the European Economic Area, the United Kingdom or Switzerland is processed elsewhere, we rely on our providers' transfer safeguards.
11. Children
Bouncely is a tool for businesses and is not directed to children. We don't knowingly collect information from children. A merchant may enter details about any person they choose to block; if you believe a child's details are on a store's list, contact the store.
12. Changes to this policy
When Bouncely or the way it handles information changes, we update this page and the "Last updated" date. We will tell merchants about significant changes in the app or by email.
13. Contact
Questions or requests about privacy and Bouncely: hello@bouncely.app.