Short version: We set two strictly necessary HTTP cookies for authentication and cross-domain session detection. A third cookie stores your language preference if you switch languages. We also store your consent choice and, only if you accept analytics, a PostHog visitor ID in your browser's localStorage. Advertising measurement is a separate, off-by-default permission: nothing advertising-related is loaded or stored unless you switch it on, and we never use it to track you across other websites or to build advertising audiences.
A cookie is a small text file stored on your device by your browser when you visit a website. Cookies help websites remember your preferences or keep you logged in. Under GDPR and the Danish cookie rules derived from the ePrivacy Directive (EU 2002/58/EC, as amended by 2009/136/EC), we must tell you which cookies we use and obtain your consent for any cookies that are not strictly necessary.
This policy also covers localStorage identifiers, which have the same privacy impact as cookies and are treated equivalently under current EDPB guidance.
PennaSystems classifies cookies and similar client-side identifiers according to the four categories established under the ePrivacy Directive and EDPB guidance:
PennaSystems sets strictly necessary cookies (listed in the table below) and uses one consent-gated analytics identifier (the PostHog visitor ID, stored in browser localStorage rather than as a cookie — see §3 below). We do not set functional cookies (UI preferences such as theme and builder layout are stored in localStorage, not in cookies). The only advertising cookies that can ever appear are the Google Ads conversion cookies described in §6, they appear only after you grant the advertising-measurement permission, and no other advertising or retargeting technology is used on this site.
The following table lists every HTTP cookie set by pennapay.com, app.pennasystems.com, and pennasystems.com.
That is the complete list of HTTP cookies. Apart from the consent-gated Google Ads conversion cookies in the last row, we set no advertising cookies, no retargeting cookies and no cross-site tracking cookies of any kind — and that last row stays empty on your device unless you switch the permission on yourself.
In addition to HTTP cookies, we store the following items in your browser's localStorage. These are not transmitted to our servers with every request, but they persist across browser sessions until cleared.
If you decline analytics, only cookie_consent_v2 is stored in localStorage. The ph_* key is never created.
We use PostHog (PostHog, Inc., EU Cloud) for product and web analytics. PostHog:
ph_{key}_posthog entry above). It does not set HTTP cookies.PostHog is only initialized after you grant analytics consent. You can clear the PostHog visitor ID at any time by withdrawing consent below or by clearing localStorage for our domains in your browser's developer tools (Application → Local Storage → delete the ph_* key). PostHog privacy policy →
We use Cloudflare Web Analytics as a secondary analytics layer. It:
When you initiate a paid subscription, Stripe's checkout page may set Stripe-specific cookies on its own domain. These are governed by Stripe's cookie policy, not ours. We have no control over them once you are on Stripe's checkout page.
Apart from the consent-gated Google Ads conversion tag described immediately below, we embed no third-party advertising scripts, social media widgets, or tracking pixels. No other third-party HTTP cookie is set by any content originating on our pages.
If you follow a link from our site to a third party (e.g. Stripe's payment page), that third party may set its own cookies governed by its own cookie policy.
We use a single Google Ads conversion tag, and only to answer one question: did someone who clicked one of our advertisements go on to create an account. It is the only advertising technology on this site.
It is governed by two independent switches, and it runs only when both are on. The first is yours: the Advertising measurement permission, described in §7. The second is ours: a server setting that determines whether an advertising account is configured at all. When that server setting is off, no Google host is permitted by our Content Security Policy and no request reaches Google from any visitor, whatever they have consented to. Turning it on is a material change to this policy: we announce it in our legal changelog at least 14 days before it takes effect (§10), so that changelog — not this paragraph — is the authoritative record of whether we are currently advertising.
This is what does and does not happen, in both states:
_gcl_ and _gac_) so that a signup can be matched to the advertisement that led to it. Google acts as an independent controller for the data it receives through that tag; its use of it is governed by Google's own privacy terms, not by ours.The strictly necessary items listed in Sections 2 and 3 (access_token, ps_session, penna-locale, cookie_consent_v2) do not require your consent under GDPR Art. 6(1)(b) (performance of a contract) and the ePrivacy Directive exemption for technically necessary cookies.
Cloudflare Web Analytics sets no cookies and creates no client-side identifiers; it operates without consent under the ePrivacy strictly-necessary exemption.
PostHog stores a random visitor ID in localStorage. PostHog is only initialized after you grant analytics consent on the cookie banner.
The banner offers three choices, and every optional category is declined until you choose — closing or ignoring the banner grants nothing:
You may change or withdraw any of these choices at any time, without giving a reason and without affecting the lawfulness of what happened before you withdrew. Withdrawing the advertising permission also deletes the associated cookies (§6). Use the button below, or the link in the site footer:
You can control and delete cookies at any time through your browser settings:
Impact of deleting specific items:
access_token will log you out of PennaSystems.ps_session will hide the "Open dashboard" shortcut on pennasystems.com until your next login.penna-locale will reset your language to your browser's default on next visit.cookie_consent_v2 from localStorage will cause the consent banner to reappear on your next visit.ph_* keys from localStorage removes your PostHog visitor ID._gcl_* or _gac_* cookies removes Google Ads' record of which advertisement led you here. They exist on your device only if you granted the advertising-measurement permission; withdrawing it deletes them for you.We do not track you across other websites, build advertising profiles, or share your browsing with data brokers — with or without a Do Not Track signal, and whatever you have consented to here. Our practices therefore already align with what DNT requests, and we do not alter our behaviour in response to the signal. The advertising-measurement permission in §6 does not change this: it measures whether one of our own advertisements led to a signup on our own site, and it is off unless you switch it on.
If we add new cookies or materially change how we use existing ones, we will update this policy and display a notice on the site at least 14 days before the change takes effect. Registered users will also be notified by email if the change affects the authenticated application.
Questions about our use of cookies or this policy:
PennaSystems (CVR 46522036)
privacy@pennapay.com
We respond within 5 business days.
You may also contact Datatilsynet (the Danish Data Protection Agency) at [email protected] if you wish to lodge a complaint about how we use cookies or process personal data, or you may contact the supervisory authority in your EU/EEA country of residence.