Vai al contenuto
OdoKeep
Informativa sulla privacy

Questo documento esiste solo in inglese, e la versione inglese è quella che vale: una traduzione automatica di un testo legale smette di dire la stessa cosa.

Privacy Policy

Last update: August 23rd, 2026

OdoKeep is a vehicle logbook app for iOS and Android, provided by Rafael Soares, based in Porto, Portugal.

This Privacy Policy explains what personal data OdoKeep processes, why, on what legal basis, who else is involved, how long it is kept, and what rights you have. It is written to meet Articles 13 and 14 of the General Data Protection Regulation (Regulation (EU) 2016/679, the "GDPR").

This policy describes what the app and the website actually do today. It does not describe features that do not exist.


1. Who Is Responsible for Your Data

The data controller is:

Rafael Soares

Porto, Portugal

[email protected]

OdoKeep is a service provided by Rafael Soares. There is no separate company behind it and no data protection officer has been appointed, because the conditions in Article 37 GDPR are not met.


2. What This Policy Covers

This policy covers the OdoKeep mobile app for iOS and Android, and the website at https://odokeep.com.


3. Where Your Data Is Stored

OdoKeep is offline-first. Everything you record is written to your device first and works with no connection at all. The local database is encrypted with AES-256 under a key generated on your device and held in the iOS Keychain or the Android Keystore, which never leaves the device.

When you are signed in and online, your data is synced to our database at Supabase, hosted in the European Union (Stockholm region, eu-north-1). Access is restricted at database level so that an account can only read and write its own rows.


4. What Data We Process

4.1 Account Data

Signing in is available with an email address and password, or with Google.

4.2 Garage Data

This is the content you create in the app:

A licence plate can identify a specific vehicle and therefore, indirectly, you. It is stored because the app is a logbook, and it is deleted with the rest of your garage when you delete your account.

4.3 Vehicle Sharing

OdoKeep lets the owner of a vehicle share it with other people. This is the one part of the app where your data reaches someone else, so it is described in full.

When you invite someone, you give us their email address and we process it in order to send them the invitation and to record that the invitation exists. That address is stored in the invitation record together with the vehicle it concerns, the role you chose, who sent it and when. We use it for nothing else: it is never added to a mailing list, never used for marketing, and never disclosed to anyone but the person you addressed it to.

We are relying on you having a reason to send that email. Under Art. 6(1)(f) our legitimate interest is in operating a feature you asked for; the recipient's interest is in not being mailed by strangers, which is why an invitation can only be sent by the owner of a real vehicle, why the number an account may send is rate limited, and why anyone can switch invitations off entirely (see below).

What the other person sees. If they accept, they see that vehicle and everything attached to it: its details, its full record history, its obligations and the notes on it. They do not see anything else in your account, and they never see your other vehicles. What they may write is decided by the role you gave them, and you can change that role or withdraw access at any moment, from the app.

Your name, to them. An invitation carries the first name on your profile, so the person receiving it knows who is asking. Once they accept, that name is what identifies you as the owner of the vehicle inside their app.

Records they add belong to the vehicle, not to them. Everything logged on a shared vehicle is stored under the owner's account. That means the history stays intact when somebody leaves or is removed, and it also means a guest who deletes their own account does not take the vehicle's history with them.

Refusing invitations. In Settings, under Privacy, you can turn on "Decline invitations automatically". While it is on, any invitation addressed to you is declined the moment it is created, no email is sent to you and nothing appears in the app. The sender is simply told the invitation was declined, and is not told whether the address has an OdoKeep account.

How long the record lasts. An unanswered invitation expires by itself after 14 days. Declined, expired and withdrawn invitations are kept as a record that access once existed, because that record is what enforces the cooldown before the same address can be invited to the same vehicle again. They are deleted with the rest of your data when you delete your account.

4.4 Purchases and Plan

OdoKeep has two plans: Free and OdoKeep Plus. Plus is sold as an auto-renewable subscription (monthly or annual) or as a one-off lifetime purchase.

We process whether your account has Plus, which type of purchase it came from, and when it expires or renews.

Payment itself is handled entirely by the Apple App Store or Google Play. Subscription state is managed for us by RevenueCat. We never receive your card number, bank details or billing address.

4.5 App Preferences and Device Data

4.6 Location (Optional, Only When You Ask)

Two optional features use your location. Neither does anything until you use it and grant the location permission; the app then asks your operating system for a location fix and uses it for one lookup:

In both cases the coordinates are used for that one lookup. They are not stored on our servers, not written to our logs, and not linked to your account.

This is entirely optional. If you refuse the permission, or never use these features, no location data is collected, and the record form works exactly the same: you type the place name yourself. You can withdraw the permission at any time in your device settings.

4.7 Crash and Error Reports

The app sends crash and error reports to Sentry so that faults can be found and fixed. A report contains the error message and stack trace, the app version, the operating system version, the device model, and a technical trail of the actions that preceded the fault.

Sentry is deliberately configured to reduce what it sees:

4.8 Support Data

If you open a support ticket, we process the messages you send, our replies, and the account identifier that opened the ticket.

4.9 Website Data

The website is an informational and legal site. It stores a language preference so that it can show you the right version.

It sets no analytics cookies and no advertising cookies, runs no tracking or advertising scripts, and therefore shows no cookie consent banner, because nothing beyond what is strictly necessary is stored. Standard technical logs generated by the hosting infrastructure (such as IP address, timestamp and browser user agent) may be kept for a short period to serve the site and protect it against abuse.

4.10 What We Do Not Collect

To be explicit, because these are common in other apps and are absent here:


5. Why We Process Your Data and On What Legal Basis

PurposeData usedLegal basis
Create your account, sign you in, keep you signed inAccount dataPerformance of a contract, Art. 6(1)(b)
Store, sync and show your garage across your devicesGarage dataPerformance of a contract, Art. 6(1)(b)
Share a vehicle with someone you invite, and show it in their garageGarage data of that vehicle, your first namePerformance of a contract, Art. 6(1)(b)
Send an invitation to the address you typed, and remember it was sentThe invited email addressLegitimate interest, Art. 6(1)(f): operating a sharing feature at your request, bounded by rate limits and by the recipient's ability to refuse all invitations
Give you the plan you paid for and check whether Plus is activePurchase data, account identifierPerformance of a contract, Art. 6(1)(b)
Remember your settings and preferencesApp preferencesPerformance of a contract, Art. 6(1)(b)
Remind you about insurance, IUC and IPO dates, about a service that is due, and about checking your tyresObligation dates, service intervals, odometer readings and tyre pressure datesPerformance of a contract, Art. 6(1)(b); the notification permission itself is consent, Art. 6(1)(a)
List fuel stations and workshops near you, or show fuel prices around you, when you askApproximate coordinatesConsent, Art. 6(1)(a), given through the operating system permission prompt and withdrawable in device settings
Convert amounts between currenciesA currency pair and a date onlyPerformance of a contract, Art. 6(1)(b). No personal data is sent for this
Detect whether your device is online, so offline mode worksThe network request itselfLegitimate interest, Art. 6(1)(f): an offline-first app has to know it is offline
Diagnose crashes and errorsCrash and error reportsLegitimate interest, Art. 6(1)(f): keeping the app stable and usable
Answer your support requestsSupport dataPerformance of a contract, Art. 6(1)(b); after account deletion, legitimate interest, Art. 6(1)(f), see section 8
Protect the service against fraud, abuse and misuseAccount identifier, technical logsLegitimate interest, Art. 6(1)(f): keeping the service and its users safe
Comply with legal obligationsWhatever the obligation requiresLegal obligation, Art. 6(1)(c)

Where we rely on legitimate interest, we have weighed that interest against your rights and freedoms, and limited the processing accordingly. You can object at any time (see section 9).

Where we rely on consent, you can withdraw it at any time, with no effect on the lawfulness of processing carried out before you withdrew it.


6. Who Else Processes Your Data

We use the following recipients and processors. This list is complete: there are no others.

RecipientWhat it doesWhere it processes data
SupabaseDatabase, authentication and hosting for your account and garage, plus the server functions the app callsDatabase in the European Union (Stockholm, eu-north-1); Supabase Inc. is US-based
HostingerDelivers every email OdoKeep sends: password reset links, replies to your support tickets, and vehicle share invitations. It handles the recipient address and the contents of the messageHOSTINGER, UAB, Lithuania (European Union). Its own policy names further processing locations, and any transfer outside the EEA rests on the safeguards in section 7
RevenueCatKeeps track of whether your OdoKeep Plus purchase is valid and activeUnited States
Apple App StoreProcesses your payment and manages your subscription when you buy on iOSIreland and the United States
Google PlayProcesses your payment and manages your subscription when you buy on AndroidIreland and the United States
GoogleGoogle sign-in, if you choose it; and a connectivity check the app makes to a Google endpoint to tell online from offlineIreland and the United States
SentryCrash and error reportingSentry is a US company; where its region is outside the EEA, transfers rest on the safeguards in section 7
OpenStreetMap Overpass APIReturns fuel stations and workshops near a set of coordinates, only when you use "find nearby places"Public Overpass instance operated in Germany (European Union)
FrankfurterProvides foreign exchange rates for currency conversion. It is called by our server, never by your device, and receives only a currency pair and a dateNo personal data is sent to it

We may also disclose data where we are legally required to, for example in response to a lawful order from a competent authority. If OdoKeep is ever transferred to another owner, your data may pass to that owner, and you will be told before it happens.

Public data sources. The fuel prices shown in the app come from official open data published by national authorities. Our server reads those feeds on a schedule and keeps a copy at Supabase; the app only ever talks to our server. These bodies are sources we read from, not recipients of anything about you: no personal data, no location and no identifier is ever sent to them, and they have no way of identifying you. They are:


7. International Transfers

Your account and garage data is stored in the European Union. Crash reports go to Sentry, a US company; where its processing region is outside the European Economic Area, the transfer rests on the safeguards described below.

Email is delivered by Hostinger, a Lithuanian company, so the message itself does not leave the European Union to be sent. Hostinger's own policy does name locations outside the EEA among the places it may process data, and where that happens the transfer rests on the same safeguards below.

Some of the providers above are companies established in the United States, and their support and engineering staff may access data from there. For those transfers we rely on the European Commission's Standard Contractual Clauses and, where the provider is certified, on the EU-US Data Privacy Framework, together with the additional safeguards those providers apply.

You can ask us for more detail about the safeguards applied to a specific transfer at [email protected].


8. How Long We Keep Your Data

DataRetention
Data on your deviceUntil you delete the account, sign out and clear the app data, or uninstall the app
Account and garage dataUntil you delete your account. Deleting your account in the app is a hard delete of your garage data, not a hidden archive
Purchase and plan statusWhile your account exists. Apple, Google and RevenueCat keep their own transaction records under their own retention rules
Crash and error reportsNo longer than Sentry's standard retention window (90 days for error events), after which they are deleted automatically
Vehicle sharing invitationsAn unanswered invitation expires after 14 days. Answered, expired and withdrawn ones are kept as the record that access once existed, and are deleted when the owner deletes their account
Location dataNot retained at all, by either lookup. Coordinates are used once and then discarded; our server keeps no copy and writes none to its logs
Support tickets and their messagesKept after your account is deleted. See below

8.1 Why Support Tickets Outlive the Account

We are honest about this because it is the one exception to "delete the account, delete everything".

When you delete your account, your support tickets and their messages are not deleted. They stop belonging to a live account, but the ticket, its contents and the identifier of the account that opened it remain. We keep them because:

The legal basis is our legitimate interest under Art. 6(1)(f) in supporting the product and in establishing, exercising or defending legal claims. You can ask us to erase them, and we will, unless we still need a specific ticket for one of the reasons above, which is a limit the GDPR itself recognises in Art. 17(3)(e). If we refuse, we will tell you why.


9. Your Rights Under the GDPR

You have the right to:

Some of these you can exercise yourself, immediately, inside the app:


10. How to Exercise Your Rights

Write to [email protected] from the email address on your account, and tell us what you want.


11. Complaints to a Supervisory Authority

If you believe we have handled your personal data unlawfully, we would like to hear from you first at [email protected], but you do not have to contact us before complaining.

You have the right to lodge a complaint with a supervisory authority. In Portugal, that is:

Comissão Nacional de Proteção de Dados (CNPD)

https://www.cnpd.pt

If you live or work in another EU or EEA country, you may complain to the supervisory authority there instead.


12. No Automated Decision-Making or Profiling

OdoKeep does not carry out automated decision-making that produces legal effects or similarly significantly affects you, in the sense of Art. 22 GDPR, and it does not profile you.

Your data is not used to score, rank or categorise you, and it is not used to train anything. Statistics such as cost per kilometre and consumption are calculated for you, from your own records, and shown only to you. A decision to restrict or close an account is taken by a person, not by an algorithm.


13. Security

The measures in place include:

No system is perfectly secure, but if a personal data breach ever puts your rights at risk, we will notify the CNPD and, where required by Art. 34 GDPR, you.


14. Children

OdoKeep is a vehicle logbook. It is not directed at children under 16, and accounts should not be created by them.

We do not knowingly process the data of a child under 16. If you believe a child has created an account, write to [email protected] and it will be deleted.


15. Changes to This Policy

We may update this policy, for example if a feature changes or a new processor is added.

The current version is always published here with its "Last update" date. If a change is significant, we will make it visible in the app or by email before it takes effect. Continuing to use OdoKeep after a change does not replace a legal basis where one is required: where a change needs your consent, we will ask for it.


16. Contact

For questions, requests or concerns about this Privacy Policy:

📧 Data protection and legal: [email protected]

📧 General support: [email protected]

🌐 https://odokeep.com

OdoKeep is a service provided by Rafael Soares, Porto, Portugal.

Torna alla home