Reservly Cookie Policy
Last updated: October 9, 2026
The short version
- Essential cookies, always on. Session, authentication, and security cookies that are strictly necessary for the service, plus the record of your own cookie choice (we cannot remember "no" without storing "no").
- Preferences you choose yourself are remembered. If you pick a language or a currency on a booking page, we store that choice because you asked us to. We never write one you didn't pick.
- Optional cookies need your "yes" first. Referral attribution (
reservly_ref) and our exchange-rate cache are stored only after you accept. If you have not answered the banner, we treat that as a no — not as a yes. This applies everywhere, including the US, where the law would let us default them on. - Rejecting deletes, not just stops. Choosing Reject — at the banner or later via Cookie preferences in the footer — deletes the optional cookies already set. It does not merely stop future ones.
- Analytics and advertising cookies may be activated as Reservly grows (Google Analytics 4 for aggregate traffic; Meta Pixel and Google Ads conversion pixels when we run paid campaigns). Not active today — we run none of them. When activated, all consent-gated, all disclosed below at least 30 days in advance.
- Advertising cookies would live on our marketing site only. They are never set on Reservly-hosted booking pages. End-user booking data never flows to any advertising platform.
- We don’t sell your data. We may "share" marketing-site visitor data with advertising platforms (CCPA/CPRA's term for the measurement and retargeting that paid campaigns rely on) — strictly consent-gated, strictly opt-outable.
- We honour Global Privacy Control (GPC). If your browser sends a GPC signal, we treat it as a rejection — you don't need to click the banner, and any optional cookies already set are deleted.
- Accept and Reject are equal choices. Both appear together, at the same level, at the same size, one click each. Reject is never hidden behind an extra step. No dark patterns.
Questions: support@reservly.io.
1. What cookies are
A cookie is a small text file that a website places in your browser. Cookies let a website remember things between visits — that you're logged in, what language you speak, whether you've already seen a banner. Similar technologies include localStorage, sessionStorage, IndexedDB, and tracking pixels. This policy covers all of them; we use "cookies" throughout as shorthand.
2. Who sets cookies on Reservly
- Reservly (first-party) sets cookies on
reservly.ioand Reservly-hosted booking pages. - Third parties that a business or end user interacts with (Stripe, Paddle, Upstash, Twilio) may set their own cookies or process data when their services are engaged. Those cookies are governed by their own privacy policies, not ours.
3. Cookie categories
| Category | What it's for | Required? | Consent |
|---|---|---|---|
| Essential | Session, authentication, CSRF protection, site delivery, and the record of your cookie choice | Yes — the service can't run without them | Not a consent item; can't be turned off |
| Preferences you set yourself | A language or currency you actively pick on a booking page, remembered for your next visit | No | Not consent-gated. Storing a preference you explicitly chose is the thing you asked us to do — it is exempt on that basis, and on that basis only. We do not write a language or currency you didn't pick. |
| Optional | Referral-source attribution (reservly_ref) and our exchange-rate cache (reservly_rates_*) | No | Stored only after you accept. No answer = no storage, in every region. Deleted if you later reject. |
| Analytics | Aggregated site analytics to understand how visitors use reservly.io — which pages perform, where drop-offs happen, which features convert | No | Not currently active — we run none. If activated (we anticipate Google Analytics 4), it would be consent-gated like the Optional category, and disclosed in § 4 first. |
| Advertising / marketing | Conversion-tracking and retargeting pixels for paid advertising campaigns Reservly runs on Meta (Facebook / Instagram), Google, and similar platforms. Would be limited to the marketing site at reservly.io — never set on Reservly-hosted booking pages, and end-user booking data is never shared with advertising platforms. | No | Not currently active — we run none. If activated, consent-gated, GPC honoured, each pixel disclosed in § 4 before it goes live. |
Jurisdiction note. Storing anything on your device that is not strictly necessary requires your prior consent under the EU ePrivacy Directive Art. 5(3) and its national implementations — UK PECR reg. 6, Germany's TTDSG § 25. That rule applies to the act of storing, whether or not the stored value is personal data.
We apply the opt-in discipline everywhere, not only in the EU / UK / EEA / Switzerland / Canada. US state privacy laws would permit us to default optional cookies on and let you opt out afterwards; we don't. What still varies by region is only how the choice is presented — a blocking modal where prior consent is legally required, an unobtrusive bar elsewhere — never what is stored before you answer.
Germany's TTDSG § 25 permits no legitimate-interest exception for storing information on a terminal device; our optional cookies are opt-in for German visitors as for everyone. The language and currency preferences are exempt on a different basis — you actively chose them (see the table above), not on legitimate interest.
3a. Email tracking
We do not track whether you open our emails, or which links you click. Booking confirmations, reminders and account notices carry no tracking pixel and no click-tracking links. Our email provider (Resend) tells us whether a message was delivered, bounced or marked as spam, and nothing more — see Privacy Policy § 10A.2. If we ever activate open or click tracking, we will say so there and here at least 30 days before.
4. Our specific cookies
The table below lists every Reservly-set cookie and storage item we use. We keep this list current.
Strictly necessary — no consent required
| Name | Type | Purpose | Duration |
|---|---|---|---|
sb-<project>-auth-token (may be split into …-auth-token.0 / .1 when it is too large for one cookie) | Cookie | Supabase auth — keeps a signed-in Business owner's dashboard session active. httpOnly and Secure, so no script can read it. Not set for booking-page visitors, who never sign in. | Up to 400 days, refreshed while you stay signed in. Sign out, or clear your cookies, to end it sooner |
sb-<project>-auth-token-code-verifier | Cookie | Single-use value that completes a secure sign-in, password-reset or email-confirmation link and proves the link was opened in the browser that requested it. Deleted the moment the link is used. | Minutes |
stripe_oauth_nonce | Cookie | Single-use CSRF nonce protecting the Stripe Connect sign-in a Business owner starts. httpOnly; deleted as soon as it is used. | 10 minutes |
reservly_cookie_consent | Cookie | Records your cookie choice, so the banner does not ask again and so we know what we may and may not store. Exempt because we cannot honour a "no" without remembering it. | 12 months |
| Service-worker cache | Cache Storage + IndexedDB (serwist-expiration) | Caches the site's own pages and assets in your browser so Reservly loads quickly and survives a flaky connection. Holds site files, not information about you. | Until evicted or you clear site data |
Preferences you set yourself — no consent required
These are stored only when you actively pick them. Nothing here is ever written from a guess about you — we do not, for example, detect your browser's language and quietly save it. That is what makes them exempt from consent, and it is a promise about our code, not just about our intentions.
| Name | Type | Purpose | Duration |
|---|---|---|---|
reservly_language | Cookie + localStorage | Remembers the language you selected with the language picker on a booking page | 1 year |
reservly_currency_<business> | localStorage | Remembers the display currency you selected with the currency picker, per business | Until you clear your browser storage |
Optional — stored only if you accept
If you have not answered the banner, none of these exist. If you reject — at the banner, later via Cookie preferences in the footer, or by sending a Global Privacy Control signal — any that were already set are deleted, not merely frozen.
| Name | Type | Purpose | Duration |
|---|---|---|---|
reservly_ref_<business> | Cookie | Attribution: remembers which link or site sent you to a Business's booking page (from a ?ref= parameter or the referring site), one per business, so the Business can credit the referral if you come back later. | 30 days |
reservly_rates_<currency>_<date> | localStorage | Caches that day's public currency-exchange rates so prices don't re-fetch on every page. Contains published exchange rates only — no identifier, nothing about you. Purely a speed optimisation; if you reject, we simply fetch the rates each time and everything works the same. | Used only on the day it was written, but kept until you reject cookies or clear your browser storage |
What rejecting actually costs you: nothing you can see. Prices, currency conversion, language, and the entire booking flow work identically either way. The only real consequence is for the Business: if you reject, and you leave and return later without the original referral link, they will not be able to tell that they had referred you.
Signed-in Business owners (dashboard)
These are stored only for Business owners using the Reservly dashboard, never for booking-page visitors. They hold interface state, contain no tracking, and are covered by the "strictly necessary / preferences you set yourself" exemptions above.
| Name | Type | Purpose | Duration |
|---|---|---|---|
reservly_remember_me | localStorage | Remembers a signed-in owner's "remember me" choice on the login form | Until cleared |
reservly-calendar-mode | localStorage | Remembers whether you last viewed bookings as a calendar or a list | Until cleared |
getting-started-dismissed-<id> | localStorage | Remembers that you dismissed the getting-started checklist | Until cleared |
| Onboarding draft | sessionStorage | Keeps your partly-finished onboarding form if you reload mid-signup, so you don't lose your work | Session only (cleared when the tab closes) |
Third-party cookies / sessions
Third-party cookies may appear depending on which services a Business or visitor activates:
| Set by | When it appears | Typical purpose | Link |
|---|---|---|---|
Stripe (__stripe_mid, ~1 year; __stripe_sid, ~30 minutes) | Only when a payment step loads — i.e. when you are paying for a booking. Not set on booking pages that don't take payment. | Fraud prevention and payment processing, by Stripe, for the payment you are making. __stripe_mid is a device identifier Stripe uses to detect card fraud. We do not set, read, or control these, and we never see your card details. | stripe.com/cookies-policy/legal |
| Paddle | Only in the signed-in dashboard, on Settings → Subscription, when a business owner pays for or changes a plan: Paddle's checkout opens in Paddle's own frame over the page, and Paddle Retain (Paddle's payment-recovery script) loads with it. Inside that frame and through that script Paddle may set its own cookies under its own policy; we do not set, read or control them. Never on a booking page. | Subscription checkout, payment recovery and fraud prevention — by Paddle, for the plan you are paying for | paddle.com/legal/privacy |
Google Maps (NID and other Google cookies) | Only after you click "Load map" in a Location dialog, or automatically if you've already accepted optional cookies | Renders the interactive map embed | policies.google.com/technologies/cookies |
| Upstash | Server-side only — Redis-backed rate limiting | Does not set browser cookies. Stores only request counters keyed by a one-way hash of the caller, never session or booking data | upstash.com/trust/privacy.pdf |
| Twilio | When an SMS booking confirmation or reminder is sent | No browser cookie; processes phone number and message content server-side | twilio.com/en-us/legal/privacy |
| Sentry (session replay) | Only if/when Session Replay is enabled to help debug errors — disabled today | Error capture, session replay | sentry.io/privacy |
Reservly does not control those third-party cookies. If you don't want them, don't activate the corresponding integration.
When Reservly activates analytics or advertising cookies
Reservly is not currently running paid advertising campaigns and has no analytics or advertising cookies active as of the Last updated date above. We anticipate activating them as Reservly grows. When that happens:
- We update this policy at least 30 days in advance. Active subscribers receive email notice; prospective visitors see the update in § 4.
- We activate cookies consent-gated. Opt-in for EU / UK / EEA / CH / CA residents; opt-out for the US and other regions, per regional law.
- We honour the Global Privacy Control signal as an opt-out — no banner click needed.
- We disclose the specific pixels — name, purpose, duration, first-party or third-party — in § 4 above before they go live.
- We update the Sub-Processor List to include each advertising platform with 30 days' notice.
The analytics and advertising providers we anticipate activating include Google Analytics 4 (first-party cookies for aggregate marketing-site traffic), Google Ads conversion tracking (when running paid search campaigns), and Meta Pixel (measurement and retargeting when running Facebook / Instagram paid social). Other platforms — TikTok, LinkedIn, and similar — may be added as our marketing mix evolves; each follows the notice process above.
What we will not do, ever:
- Sell your personal information for money. "Sell" is a CCPA/CPRA-specific term and this commitment is final.
- Set ad pixels on Reservly-hosted booking pages. Ad pixels are limited to the marketing site (
reservly.ioand marketing subpages). End-user booking data onreservly.io/<business-slug>pages is never shared with advertising platforms. - Use your Reservly subscriber account data (business owner email, subscription details) for cross-context behavioural advertising beyond what the consent banner covers for marketing-site visitors.
- Silently introduce new tracking without the notice and disclosure commitments above.
5. Consent banner — geo-adaptive
On your first visit to Reservly, you'll see a cookie banner. What varies by region is how the choice is presented — never what we store before you make it.
- European Union, United Kingdom, European Economic Area, Switzerland, and Canada: an opt-in modal, because prior consent is legally required there.
- United States, and most other regions: an unobtrusive bar at the bottom of the screen, so it doesn't block the page.
In both cases the storage rule is identical and the stricter one: no optional cookie is stored until you accept. If you never answer, we treat that as a no. US state privacy laws would let us switch optional cookies on by default and make you opt out afterwards — we have chosen not to, because a default nobody chose isn't a choice.
Inside an embedded booking widget — when a business puts Reservly's booking flow on their own website — we show a link to this policy instead of the banner. A consent modal inside a small embedded frame would cover the booking form, so unless you have already accepted on a Reservly page yourself, we simply store nothing optional there: no referral attribution, no exchange-rate cache, no map cookie. If the business shows Reservly's footer in their embed, the Cookie preferences control still reopens the full banner.
The choice is binary, and we describe it as binary. Accept stores the optional cookies listed in § 4; Reject stores none of them and deletes any already set. We do not offer per-category toggles, and this policy will not pretend otherwise — we would rather present two honest options than a granular interface that doesn't exist. If we ever add categories worth separating (analytics, advertising), we will build the per-category control and say so here before switching anything on.
Accept and Reject sit side by side, at the same level, the same size, one click each. Reject is never buried behind "Manage options" or an extra screen. This follows ICO guidance that rejecting must be as easy as accepting.
CASL (Canada). For Canadian visitors, the consent modal also serves as notice under Canada's Anti-Spam Legislation (CASL) § 8 for any marketing-related tracking triggered by cookie preferences. Purely transactional notifications (booking confirmations, reminders) are sent under CASL § 6(5) implied consent and are not gated on cookie consent.
PECR (United Kingdom). Reservly's cookie consent practices for UK visitors comply with the Privacy and Electronic Communications Regulations 2003 (PECR), which implements the EU ePrivacy Directive in UK law. Storing any non-essential cookie requires prior informed consent under PECR reg. 6, regardless of the UK GDPR lawful basis used for the underlying data processing. The ICO recommends that Accept and Reject options are presented with equal visual prominence; our banner complies with this guidance.
TTDSG (Germany). German visitors should note that Reservly's optional cookies are always opt-in — the Telekommunikation-Telemedien-Datenschutz-Gesetz (TTDSG § 25) does not permit a legitimate-interest exception for storing information on a terminal device, and we do not rely on one. The language and currency preferences in § 4 rest on a different footing: they are stored only because you actively selected them, which is the "service explicitly requested by the user" exemption, not a legitimate-interest argument.
Your preference is stored in the reservly_cookie_consent cookie and is consulted before every optional cookie we write.
5.1 Change your cookie preferences
A Cookie preferences link in the footer of every page reopens the banner, so you can change your answer at any time — withdrawing consent is exactly as easy as giving it (GDPR Art. 7(3)).
Withdrawal is retroactive, and it is complete. Switching to Reject does not merely stop future cookies: it deletes the optional cookies already on your device (§ 4) — all of them, including the referral cookies for every Business whose page you have visited, no matter which page you are on when you withdraw. We consider "we've stopped adding more" an inadequate answer to "I withdraw my consent."
You can also clear everything immediately in your browser at any time (§ 8).
6. Global Privacy Control (GPC)
If your browser sends the Global Privacy Control (GPC) signal on a request, Reservly honours the signal as an opt-out of any non-essential cookies and of any "sale" or "sharing" that might otherwise apply under California or other state privacy laws. You do not need to click the banner — the signal suffices.
7. Do Not Sell or Share
Reservly does not sell personal information. Under CCPA/CPRA, "sell" means exchange of personal information for money or equivalent consideration. That's not our business model and never will be.
Reservly may "share" personal information with advertising platforms (Meta, Google, and similar) when we run paid campaigns. Under CCPA/CPRA, "share" is a distinct term that covers cross-context behavioural advertising — the measurement pixels and retargeting that paid acquisition relies on. When active, sharing is limited to marketing-site visitor data (never end-user booking data) and is consent-gated per region.
You can opt out of sharing at any time:
- Click Reject in the cookie banner (labelled "Reject non-essential" in the EU/UK/CA modal, "Reject" elsewhere), or Cookie preferences in the footer to change an earlier answer.
- Use the Do Not Sell or Share My Personal Information page.
- Enable Global Privacy Control in your browser — we honour it automatically.
8. How to manage cookies in your browser
Most browsers let you delete cookies, block specific cookies, or block all cookies. Instructions for the major browsers:
Blocking essential cookies will prevent Reservly from working (you won't be able to stay logged in). Blocking the preference cookies will disable things like "remember my language choice" but won't prevent you from using the booking flow. Blocking the optional cookies changes nothing you can see — which is why rejecting them is a safe thing to do.
9. Mobile devices and local storage
Reservly uses localStorage, Cache Storage, and IndexedDB in your browser as well as cookies — for a language or currency you picked, for caching the site's own files so pages load fast, and for the exchange-rate cache listed in § 4. These are treated as equivalent to cookies under this policy and are governed by the same rules: the optional ones (reservly_rates_*) are stored only if you accept, and deleted if you reject.
We do not currently use sessionStorage on booking pages.
We do not currently have native mobile apps, so there is no mobile-device identifier equivalent (no IDFA / GAID). If we add native apps in the future we will update this policy.
9.1 Your rights regarding cookie data
Cookie data and localStorage entries that are linked to an identifiable person are personal information and subject to your rights under applicable law (see our Privacy Policy):
- Access: You may request a list of the cookies and storage items we hold associated with your account.
- Deletion / erasure: Your cookie choice lives only in your own browser, in the
reservly_cookie_consentcookie. We keep no server-side copy, so there is nothing on our side to delete — clearing your cookies removes the record completely. - Withdrawal of consent: You can withdraw cookie consent at any time via the Cookie preferences link in the footer of any page, which reopens the banner. Optional cookies already set are deleted on withdrawal (§ 5.1). Withdrawal does not affect the lawfulness of processing based on consent before withdrawal.
- Portability: The cookie-choice record is a single word (
accept,reject, orreject-gpc). You can read it yourself in your browser's cookie inspector; we hold no copy to export.
For UK residents, cookie-related complaints may be directed to the Information Commissioner's Office (ICO): ico.org.uk/make-a-complaint or by post to Information Commissioner's Office, Wycliffe House, Water Lane, Wilmslow, Cheshire SK9 5AF. You have the right to complain to the ICO about Reservly's cookie practices under both PECR and UK GDPR.
10. Children
Reservly is not directed at children under 18 (see our Terms of Service § 4.1), and we do not knowingly collect data from children or set cookies for that purpose.
11. Changes to this policy
We will update this policy when we add, change, or remove cookies. The Last updated date at the top reflects the latest revision. Material changes — for example, if we were to introduce analytics or a new third-party cookie — will be announced with a banner on your next visit and an email to active subscribers.
12. Contact
Questions about a specific cookie, a consent choice, or this policy:
Email: support@reservly.io
Subject line for cookie-specific questions: Cookies
This Cookie Policy works together with our Privacy Policy and Terms of Service. Where the Privacy Policy describes in more detail how we process personal information, those descriptions apply here too.