Last updated April 24, 2026
Cookie policy
We use strictly necessary cookies to operate Cuadra (session, language preferences) and anonymous, privacy-friendly analytics. Cuadra sets no advertising cookies of its own. A business selling through us may enable third-party measurement tools on its online store; when that happens we tell you on that store, and they only run if you accept.
Strictly necessary keys
| Key | Stored in | Purpose |
|---|---|---|
| cuadra.store.cart | localStorage | Keeps the items in your online-store basket so they survive closing the tab. Cleared when you empty the basket or complete the order. |
| cuadra.loyalty-grant. | sessionStorage | Carries a reward claimed on your loyalty card to that business's store or booking page. Cleared once used. |
| cuadra.consent | localStorage | Records your cookie-consent decision so we know whether analytics are allowed. |
| cuadra.locale | localStorage | Remembers your preferred language across visits. |
| cuadra.booking-again | localStorage | Remembers which services and staff member you last booked at a business, so the page can offer to repeat that booking in one tap. Stores only the catalogue references, never your name or contact details. Cleared when you dismiss the suggestion. |
| cuadra.pos.credit-standing | localStorage | Keeps the last known credit limit and outstanding balance for the customers served on this device, so a credit sale can still be judged while the register is offline. Cleared when you sign out. |
| cuadra.smart-default.payment-method | localStorage | Remembers the last payment method you used so the next sale defaults to it. UX preference, not analytics. |
| cuadra.smart-default.po-supplier | localStorage | Remembers the last supplier you raised a purchase order for so the next New-PO form defaults to it. UX preference, not analytics. |
| cuadra.smart-default.table-section | localStorage | Remembers the last section (e.g. "Patio") you assigned a table to so the next New-table dialog defaults to it. UX preference, not analytics. |
| cuadra.smart-default.pos-table | localStorage | Remembers the last table you opened a tab on in POS so the next sale defaults to it. UX preference, not analytics. |
| cuadra.smart-default.pos-modifier | localStorage | Remembers the most-frequently-picked modifier options per group so the POS picker surfaces them first. UX preference, not analytics. |
| cuadra.smart-default.pos-course | localStorage | Remembers the last course assigned per product category so the POS line chip defaults to it. UX preference, not analytics. |
| cuadra.smart-default.table-branch | localStorage | Remembers the last branch you assigned a table to so the next New-table dialog defaults to it. UX preference, not analytics. |
| cuadra.smart-default.pos-scanner-mode | localStorage | Remembers whether you last opened POS in scanner mode so a retail cashier lands ready-to-scan. UX preference, not analytics. |
| cuadra.smart-default.pos-catalog-density | localStorage | Remembers how big this device shows the POS catalog tiles (large, normal or compact). UX preference, not analytics. |
| cuadra.smart-default.shrinkage-cause | localStorage | Remembers the last shrinkage cause you picked on the stock-adjust form so unpacking a damaged shipment does not require re-picking the same cause for every variant. UX preference, not analytics. |
| cuadra_sidebar_collapsed | cookie | Remembers whether you collapsed the side menu to icons, so the page loads with it as you left it. |
| cuadra.tab-business-reloaded | sessionStorage | Marks that this tab moved by itself — because you switched business in another tab, or lost access to the business it showed — so it can tell you why. Read once and removed. |
| cuadra.welcome-prefill | sessionStorage | Carries your business name from signup to the welcome wizard so you do not retype it. |
| cuadra.welcome-draft | localStorage | Auto-saves your in-progress welcome wizard so a closed tab does not lose your work. |
| cuadra.referral-code | localStorage | Holds the referral code you arrived with so it is applied when your account is created. |
| cuadra.trial-banner-dismissed | sessionStorage | Hides the trial expiry banner for this session after you dismiss it. |
| cuadra.just-onboarded | sessionStorage | Surfaces the install-the-app prompt only on the first dashboard visit after signup. |
| cuadra.gate-offer-seen | sessionStorage | Remembers that this session already saw the screen asking you to add a payment method, so the app leads with it once and then lets you browse your data read-only. |
| cuadra.verify-banner-dismissed | sessionStorage | Hides the "verify your email" reminder for this session after you dismiss it. |
| cuadra.recent-routes | sessionStorage | Lists the pages you visited in this tab so the search palette can offer them back. |
| cuadra-native-onboarded | localStorage | Remembers that you already saw the app intro, so it plays once per device. |
| cuadra.tour: | localStorage | Remembers which one-off tips you closed, so they are not shown again on this device. |
| cuadra.recurrente-connection-banner-dismissed | sessionStorage | Hides the payment-connection warning for this session after you dismiss it; it returns while the connection is still broken. |
| cuadra.whatsapp-connection-banner-dismissed | sessionStorage | Hides the WhatsApp number warning for this session after you dismiss it; it returns while the number still cannot send. |
| cuadra.first-run-dismissed-legacy | localStorage | Pre-#1332 record that you closed a setup checklist on this device; read once and removed after it is saved to your account. |
| cuadra.recent-clients: | localStorage | Lists the clients you picked recently on this device so they are offered first. |
| cuadra.tenant-stores-owner | localStorage | Records which business the per-business entries on this device belong to, so they are erased the moment someone from another business signs in here. |
| cuadra.last-route | localStorage | Returns you to the page you were on when the app reloads itself. |
| cuadra.draft: | localStorage | Keeps a form you had not finished saving (a quote, a prescription, a client) so a closed tab or a crash does not lose it. Erased when you sign out or someone from another business signs in on this device. |
| cuadra-sw-updated | sessionStorage | Shows the "app updated" notice once after a new version installs. |
| cuadra.help-tour: | localStorage | Remembers which guided tours you finished or skipped on this device. |
| cuadra.pos-cart: | localStorage | Keeps the POS cart on this device so a reload, a crash or an offline moment does not lose a sale in progress. |
| cuadra.last-operator-id | localStorage | Remembers who last used this device so the operator picker can offer them first. |
| cuadra.retention-celebrated | localStorage | Remembers which milestone celebrations you already saw, so they play once. |
| cuadra.setup-min: | localStorage | Remembers that you minimised the setup progress card on this device. |
| cuadra.welcome-email-banner-dismissed | sessionStorage | Hides the "welcome email failed" notice for this session after you dismiss it; it returns while the send is still failing. |
| cuadra.appBarDismissed | localStorage | Hides the "get the app" strip on this device for two weeks after you close it. |
| cuadra.commsInbox.pushOptInDismissed | sessionStorage | Hides the inbox push-notification invitation for this session; a push subscription is per-device, so this is too. |
| cuadra.activation-celebrated | localStorage | Tracks which activation milestones we have already shown a celebration for. |
| cuadra.appointments-first-run-dismissed | localStorage | Remembers that you dismissed the appointments setup panel. |
| cuadra.crm-first-run-dismissed | localStorage | Remembers that you dismissed the clients setup panel. |
| cuadra.comms-first-run-dismissed | localStorage | Remembers that you dismissed the communications setup panel. |
| cuadra.loyalty-first-run-dismissed | localStorage | Remembers that you dismissed the loyalty setup panel. |
| cuadra.fel-first-run-dismissed | localStorage | Remembers that you dismissed the electronic-invoicing setup panel. |
| cuadra.orders-first-run-dismissed | localStorage | Remembers that you dismissed the sales setup panel. |
| cuadra.exit-intent-shown-at | localStorage | Records that we already showed the exit-intent modal so it does not re-fire on later visits. |
| cuadra.sticky-cta-dismissed-at | localStorage | Records that you dismissed the sticky bottom CTA bar so it does not re-appear on later visits. |
| cuadra.store.recently-viewed | localStorage | Remembers which products you looked at on this online store so the landing page can show a "Vistos recientemente" rail. Stores only catalogue product ids, scoped per store, capped at the last 12 — never your name or contact details. |
| cuadra.sync.clientId | localStorage | Stable per-browser identifier (UUID v4) used by the offline-first sync engine to record this device's last-seen cursor on the server. Lets the audit-retention sweep know which clients are still active so it does not purge data they would still need. |
| cuadra.member.codes. | localStorage | Keeps your gym entry codes for the next hours, so the member portal can show your QR at the door without a connection. Tied to your session on this device; cleared when it ends. |
| cuadra.member.session | localStorage | The id of the member portal session last confirmed on this device, so the entry codes kept here are shown only to that session (offline too). Cleared when the session ends. |
| cuadra.member.lastGym | localStorage | Remembers which of your gyms you opened last in the member portal, so it opens there next time. Cleared when you sign out. |
| __Secure-cuadra_member | cookie | Keeps you signed in to your gym's member portal on this device. Set by Cuadra's server, unreadable by scripts, sent only to the portal; ends after 30 days or when you sign out. |
| cuadra.sync.clientId.check_in | localStorage | Stable per-browser identifier (UUID v4) for the check-in door's own offline feed, which keeps its own cursor apart from the general sync engine's. Lets the audit-retention sweep keep the changes this door has not downloaded yet. |
Analytics keys (opt-in)
| Key | Stored in | Purpose |
|---|---|---|
| _ga | cookie | Google Analytics 4 client identifier. Tells GA4 your visits are from the same device. |
| ph_anonymous_id | localStorage | PostHog anonymous identifier for stitching events into a single funnel. |
Essential cookies
Keep your session alive and save your preferred language. Without these cookies, Cuadra doesn't work.
Analytical cookies
Privacy-friendly analytics let us see how many visitors each page receives, without identifying you personally. 100% anonymous.
How to control them
You can turn analytics and ad measurement on or off from the "Privacy" link at the foot of any page — no browser settings needed. Essential ones cannot be turned off: without them you cannot sign in.