← Terminia Terms of Service

Privacy Policy

Last updated: October 5, 2026 · Version 1.4 beta

⚠️ Beta version: This Privacy Policy is provisional and will be finalized before public launch. Material changes will be communicated 30 days in advance.

English is the legally authoritative version.

Who this applies to

  • Visitors of terminia.net - basic site analytics and cookies (read this section).
  • Admins / trainers who register an organization on Terminia - full policy applies.
  • Members of clubs using Terminia - your club controls your data; contact them first. We process it on their behalf as a technical Processor (see GDPR Art. 28 in our Terms).

1. Who we are

Terminia is a SaaS platform for attendance and member management in sports clubs, schools, and fitness centers. We act as Controller for organization accounts (admins, trainers) and as Processor for the member data that organizations enter into the platform.

Data Controller identity: Terminia is operated from Serbia. A registered legal entity will be established before public launch. For all data protection matters and to exercise your GDPR rights, contact: privacy@terminia.net.

2. What we collect and why

From visitors - anonymous visit counting (without cookies, without consent): when a public page of terminia.net loads, we record one anonymous page view containing: the page address (access tokens in it are masked), the domain of the site you came from (the domain only - no path or query), the utm_source tag if the link carried one, your country (looked up from your IP address in our server's memory with an offline database; the IP address is then discarded), whether the device is a phone or a computer, and the browser family without its version. To count unique visitors without cookies, our server computes a one-way hash of your IP address, your browser identifier (User-Agent) and our domain, keyed with a random daily salt. The salt exists only in the server's memory, is replaced every day at midnight UTC (and whenever the server restarts) and is never written to disk, a database or a log; once it is replaced, the stored hash can no longer be linked to you or to any other visit. In this mode we do not store your IP address, the full User-Agent, the full referring address, scroll depth or time on page, we do not use fingerprinting, and nothing is stored on or read from your device (the only thing read is your answer to the cookie banner, so that we can respect it). Requests from obvious bots and crawlers are discarded. Purpose: knowing how many people visit the site, which pages and from where. Legal basis: legitimate interest (Art. 6.1.f) - measuring the use of our own website with minimal data that does not identify you. Because these records cannot be linked to a person, we cannot find "your" records on request (Art. 11); if you do not want even this anonymous count, a content blocker that blocks /api/track stops it.

From visitors - detailed analytics (only after you accept): IP address, country (offline lookup), browser identifier (User-Agent), referring address, pages visited, scroll depth and time on page, plus the same daily hash. Purpose: site analytics. Legal basis: consent (Art. 6.1.a).

From admins/trainers at registration: name, email, password (hashed), organization name and type, acceptance timestamp + IP. Purpose: account, authentication, plan administration, compliance proof. Legal basis: contract (Art. 6.1.b) and legal obligation (Art. 6.1.c).

From organizations on behalf of their members: name, contact, date of birth, parent contact (for minors), attendance, payments, optional photo, optional PIN/QR. Purpose: providing the service the club purchased. Legal basis: contract with the club; the club is responsible for its own legal basis toward members (typically legitimate interest or consent).

When an organization asks for a paid plan: the requested plan, the contact email and/or phone number entered in the request form, an optional message, and the number of active members at the moment of the request. Purpose: contacting you and enabling the plan manually. Legal basis: contract and steps taken at your request before entering into one (Art. 6.1.b).

Product news by email (optional, off by default): if an organization's admin enters an address in Settings → Messaging and ticks the consent box, we store that email address, the organization's language at the time of subscription, the date and time of the consent, the IP address from which it was given, and a token used for the unsubscribe link. Purpose: sending a message when a new version of Terminia is released. Legal basis: consent (Art. 6.1.a). No organization is ever subscribed automatically, and registering does not subscribe you. Every such message carries an unsubscribe link that works without logging in; the address can also be removed at any time in the same settings screen. These messages are sent through the same email provider (Resend) as our transactional email.

We do not sell personal data, use it for advertising, or make automated decisions that significantly affect you.

2.1 Cookies and local storage

NameStored asPurposeLifetimeType
terminia_sessionCookie (HttpOnly)Authentication session for logged-in users8 hoursStrictly necessary - no consent required
langCookieRemembers the interface language you chose12 monthsStrictly necessary - no consent required
onb_skipCookieRemembers which setup steps an admin chose to skip ("Skip for now")30 daysStrictly necessary - no consent required
terminia_cookie_consentlocalStorageYour answer to the cookie banner (accepted / rejected)Until you clear itStrictly necessary - no consent required
sidebar-settings, portal-tablocalStorageInterface preferences: whether the sidebar section is open, which tab was last open in the member portalUntil you clear itStrictly necessary - no consent required

Detailed analytics (with your IP address) is sent only while your stored answer to the banner is "accepted". If you reject or do not answer, only the anonymous page view described in Section 2 is sent, and no cookie or local storage entry is created for it. We do not use third-party tracking cookies, Google Analytics, Facebook Pixel, or any similar third-party analytics service.

3. Who sees your data

We use the following sub-processors, each bound by a Data Processing Agreement:

  • Hetzner (EU, Finland) - hosting and database.
  • Resend (US) - transactional emails - under Standard Contractual Clauses (SCCs).
  • Anthropic (US) - AI Help chat only; no member PII transmitted - SCCs.
  • MaxMind - offline GeoIP database (no data leaves our server).

Email that you send to info@, privacy@ or legal@terminia.net reaches us through ImprovMX (email forwarding), which delivers it to a mailbox we operate with Microsoft (Outlook). Any personal data you put in such a message is therefore handled by those two providers as well.

We do not currently use a payment processor: the Service has no checkout and we do not collect or store card data (see Section 5 of the Terms). If that changes, this policy will list the provider before any payment data is collected.

We do not share data with anyone else unless required by law or to protect our rights.

4. How long we keep it

Account data: for as long as the account exists. The Service has no self-service account deletion; when you ask us to delete an account or an organization's data (privacy@terminia.net), we do it within 30 days and confirm it in writing. Anonymized member records: aggregated statistics retained; PII permanently erased. Financial records: payments that a club records about its own members are the club's records - the club keeps them for as long as its law requires (using the data export), and they are deleted together with the organization's data; records of our own billing to organizations are kept for the period required by tax law. Server, session, and email-delivery logs: 30-90 days.

Inactive organizations: if there is no activity in an organization's account for 6 months, we notify its admin by email. After 12 months or more without activity, the organization's data may be moved out of the live Service into an encrypted archive; user accounts remain, and the data is restored if the club comes back. The archive is kept for 24 months; after that, and only after we have notified the admin and offered an export, the data may be permanently deleted. Each archiving and each deletion is confirmed by a person, never done automatically.

Backups: used only to restore the Service after a failure, and kept for a limited time - at most 30 days. Data deleted from the Service may remain in backups until they expire. Backups are not an archive (and are separate from the archive of inactive organizations above): for long-term records, a club uses the data export (Section 5).

Site analytics records (anonymous and detailed): 24 months, then deleted automatically by a scheduled job. These records are not aggregated while they are stored - each page view is kept as a separate row. A detailed record (after consent) contains the visitor's IP address in full, country, browser, page, referrer, scroll depth and time on page. An anonymous record contains no IP address - only the data listed in Section 2 and the daily hash, which cannot be linked to anyone once the daily salt has been replaced.

Product news subscription: until the address is unsubscribed or the organization is deleted. After an unsubscribe, the record (address, time and IP of the consent, time of withdrawal) is kept as evidence that consent was given and later withdrawn, and no further messages are sent to it.

5. Your rights

If you are in the EU/EEA (or covered by similar law) you may: access your data, correct it, request erasure, restrict or object to processing, receive it in a portable format (JSON), and withdraw consent at any time.

How to exercise:

  • Admins/trainers: email privacy@terminia.net - we respond within 30 days.
  • Account deletion: there is no delete button in the Service. Send the request to privacy@terminia.net; we delete the account and its data within 30 days and confirm it in writing.
  • Export of a club's data: the admin of an organization can request an export of all of the organization's data by writing to privacy@terminia.net from the admin's email address; we deliver it within 30 days, in a machine-readable format (CSV and JSON). Inside the Service, admins can already download reports (Excel or CSV) and the data of an individual member (JSON).
  • Withdrawing consent: for detailed analytics, reject cookies in the banner (or clear the stored answer) - the anonymous visit count described in Section 2 does not rely on consent; for product news, use the unsubscribe link in any such email or remove the address in Settings → Messaging.
  • Members of a club: contact your club first. The club can export or anonymize an individual member's data directly in the Service.

Right to complain: you may lodge a complaint with your local data protection authority - see the EDPB list of EU/EEA DPAs - or with the Finnish DPA (where data is hosted) or the Serbian DPA (where Terminia is operated).

6. Children

Terminia stores data about minors only when the organization (typically a school or sports club) enters it on their behalf. The organization must obtain parental consent before doing so. Where organizations use the in-app consent tool, we record timestamp, IP address, parent name and a signature. Minors do not create their own accounts.

7. Security and breach notification

We use HTTPS/TLS in transit, encryption at rest for sensitive identifiers using per-organization keys, password hashing, multi-tenant isolation, parameterized queries, a default-deny firewall, and intrusion detection. In the event of a personal data breach we will notify affected organizations within 72 hours of becoming aware, as required by GDPR Art. 33.

8. Changes and contact

Material changes to this policy will be announced 30 days in advance by email or in-app notice. During beta, minor clarifications may be made without notice; the "Last updated" date reflects the most recent change.

Contact: privacy@terminia.net · info@terminia.net