Last updated: 25 October 2026
FairInvoice is a local-first invoice, estimate, and receipt maker. Everything you enter — your business profile, logo, clients, line items, prices, tax rates, payment instructions, every document you create and any job-site photos you attach — is stored on your device: on iPhone, iPad and Mac using Apple's SwiftData framework, and on Android in a database inside the app (see FairInvoice for Android). This data never leaves your device and is never transmitted to us or anyone else. There is no FairInvoice account, no sign-up, no login, and no FairInvoice server. If you turn on iCloud Sync, your data is also stored in your personal iCloud account — see the next section.
iCloud Sync is off by default. If you turn it on (a Pro feature), FairInvoice uses Apple's CloudKit private database to keep your invoices, clients, items and job-site photos identical across your iPhone, iPad and Mac. That data lives in your own iCloud account, encrypted and governed by Apple's iCloud terms. We have no access to it and cannot read it — it is not transmitted to us and we do not consider it collected. Turning iCloud Sync off stops syncing; to remove the iCloud copy, delete FairInvoice's data from iCloud in your device's Settings (Apple ID → iCloud → Manage Storage).
To understand how the app is used and to catch bugs, FairInvoice sends a small set of anonymous diagnostics using Google's Firebase service, whether or not you allow notifications:
Firebase recognizes an installation by identifiers scoped to this app (a Firebase installation ID and Apple's identifier for vendor), and derives an approximate location (country/region/city) from your masked IP address — the app itself never uses Location Services. It never reads your advertising identifier: FairInvoice ships Firebase without Google's advertising-ID and ad-conversion modules. None of this is linked to your identity — there is no account, so we could not link it even if we wanted to — and none of it is used to track you.
This section applies to FairInvoice on iPhone, iPad and Mac and, from version 1.1.0, on Android. Android differences are noted in FairInvoice for Android.
What: each time FairInvoice launches, it registers a small device record
with our own server at engage.puzzpics.com. The record contains a random
identifier the app creates for itself (not your advertising identifier and not Apple's
identifier for vendor), the app and iOS or Android version, your device's language and time zone
settings, and whether you have turned on App announcements. If you allow
notifications, the device's push token is added to it. The app also tells this server when a
session starts and when a notification is opened — each with a timestamp and, for a
notification, the campaign it belonged to.
When: on every launch, whether or not you allow notifications. The record never contains your clients, invoices, amounts, or anything you typed.
Why: to deliver notifications, to count how many devices use the app, and to choose which devices receive an app announcement — which is marketing, and we say so. Push announcements are on by default: they are occasional news about FairInvoice, never about your clients or invoices, and they can only reach you if you also allow notifications. You can switch them off at any time in Settings → App announcements, and that choice is kept.
In-app messages (from 1.6, iPhone and iPad): the app can also show an occasional message of ours inside FairInvoice — for example a new feature, or another of our apps. To find out whether there is one, it asks this server at most every six hours, sending the app's name and the same random identifier. A message appears at most once per session and never during the intro, over the paywall, while you are editing a document or over any other screen that is open, and you close it with one tap. When a message is shown, tapped or closed, the app tells the server, with the same random identifier, a timestamp and the campaign it belonged to. These messages are not push notifications, so App announcements does not control them; they are never third-party ads. The Mac app does not show them.
Service status (from 1.6, iPhone and iPad): the app also checks a public
status page on the same server (/api/status/fairinvoice) for maintenance and
outage notices — when it opens and, while it is open, at most once a minute. That request
contains no identifier: only the app's name. If there is a notice, it appears as a banner, and
an outage or a maintenance in progress is also shown once as a short sheet. The Mac app does
not make this request.
Not linked to you, not tracking: the record carries no name, email, or account, so we cannot tell who you are from it. It is our own first-party service: we do not sell it, share it with data brokers or ad networks, or combine it with data from other companies' apps or websites.
What: an anonymous device push token (Apple Push Notification service / Firebase Cloud Messaging) — a random identifier your device generates so notifications can be delivered to it. It contains none of your data.
When: only after you allow notifications. The app asks:
App announcements are on by default, so allowing notifications on any of these screens lets them reach you; you can switch them off at any time in Settings. If you never allow notifications, no push token is ever created — but the anonymous diagnostics and the Engagement Center device record described above are still sent.
Why: reminders themselves — payment reminders, tax dates and the weekly summary — are created on your device; the token lets us deliver notifications to it, including app announcements unless you have turned them off. Notification content never includes your clients, invoices, amounts, or anything you typed.
Not linked to you: FairInvoice has no accounts, so the token is not tied to your name, email, or identity — we could not look you up by it if we wanted to.
Opting out: turn off App announcements in FairInvoice's Settings to stop marketing messages, or turn off notifications for FairInvoice in iOS Settings to stop all notifications. Everything else in the app works identically without them.
From version 1.6 you can attach photos of the job to an invoice or estimate (a Pro feature). Photos you attach to a document stay on your device (and in your own iCloud if Sync is on) and appear only on PDFs you choose to share. Location data is removed when a photo is added. They are included in your FairInvoice backup files unless you choose Back Up Without Photos.
The camera is used only when you tap Take Photo: to read a receipt in Scan Lines (that photo is never saved or sent) or to attach a job-site photo to an invoice or estimate. Choose Photo uses the system photo picker (Photos on iPhone, iPad and Mac; the Android photo picker), which hands over only the images you choose; the app never gets access to your photo library.
From version 1.5, FairInvoice can draft an invoice or estimate from a sentence you type or dictate (Describe It), read the lines of a supplier receipt, quote or materials list from a photo (Scan Lines), and word a payment reminder (Write a Reminder). These features appear only on devices where Apple Intelligence is available and switched on.
From version 1.5, if you turn off FairInvoice Pro's renewal (during a free trial or later), the next time you open the app it asks once why — five one-tap answers, and for "It didn't do what I needed" or "Something else" an optional short note you can type. You can close it without answering, and it never asks about the same subscription twice.
What is sent: the answer you chose, your note if you wrote one, whether it was a free trial, which Pro plan, how many whole days since it started, whether your access has ended yet, the app version, whether it came from a test build, and your language and region setting (for example en_US). It goes to our own feedback database (Google Firebase Firestore) and is not linked to you: no name, no email, no Apple ID, no purchase or transaction ID, no device identifier. The chosen answer (not your note) is also counted in the anonymous usage statistics. Please leave names and other personal details out of the note.
When version 1.5 is released, the App Store privacy label will also list User Content — Other User Content (Analytics) for this optional note.
From version 1.5, Settings › Send Feedback lets you write to us. Nothing is sent unless you fill in the form and tap Send. We then receive what you typed (up to 1,000 characters), the category you picked, the price you said you would pay (only if you entered one), and the email address you enter, which the form requires so we can reply. The same record includes whether Pro is active, a random install identifier, your device model, the operating-system and app version, and your language/region setting. It is stored in our own feedback database (Google Firebase Firestore) and used only to read and answer your message. Because it carries your email, this feedback is linked to you; please leave client details and other sensitive information out of it. To have it deleted, email us from the same address.
FairInvoice's App Store privacy label lists exactly this. Nothing is used for tracking. Every item is not linked to your identity, except the two Send Feedback items at the end of this list:
"Developer's Advertising or Marketing" on Device ID and Product Interaction is the app announcements (on by default; switch them off in Settings) and the in-app messages described above — our own messages about FairInvoice and our other apps, never third-party ads. Version 1.6 adds nothing to this list: the weekly summary, the year recap and job-site photos stay on your device (or in your own iCloud), the in-app message events are the Device ID and Product Interaction items above, and the status check carries no identifier. If a future version ever transmits anything more, we will update this policy first and describe exactly what it sends.
When you share an invoice, estimate, or receipt, the app generates a PDF on your device and hands it to the standard iOS share sheet. Where it goes from there — email, messages, files — is your choice and happens through the app you pick. Any payment instructions you type (bank details, payment handles) are rendered as plain text on your own PDF; FairInvoice never processes or transmits payments. Job-site photos you attached are part of that PDF unless you switch off Show photos on PDF for that document.
To be explicit:
Any optional purchase in FairInvoice (FairInvoice Pro) is processed by Apple through the App Store using StoreKit. FairInvoice never sees your payment method, Apple ID, or billing details — Apple processes the payment and we never receive card data. Apple's privacy policy governs that transaction. To confirm your Pro access, the app shares the App Store purchase record (which product, when, and an anonymous app user ID) with our subscription service, RevenueCat — never your name, email, or payment method. Firebase Analytics also records an anonymous in-app purchase event (which product and its price) so we can see how the app is doing; it is not linked to you.
FairInvoice requires no sign-up, no email address, no phone number, and no social login to work. There is no FairInvoice account and no FairInvoice server that stores your identity, your clients, or your paperwork.
This section covers the FairInvoice app from Google Play. Everything above applies to it too, except where this section says otherwise. In short, the Android app works the same way: your business data stays on your phone, there is no account and no FairInvoice server holding your documents, and the only things it sends are anonymous diagnostics, purchase records, a device record and app events for our own notification service and, if you allow notifications, a push token. The iPhone-only features described above — iCloud Sync, the on-device AI and Scan Lines, the cancellation question and the in-app feedback form — are not part of the Android app.
.fairinvoice backup you export is saved
where you choose and stays there. A backup made on an iPhone can be restored on
Android.Anonymous diagnostics. The Android app uses the same Google Firebase services described above: Firebase Analytics (which features are used, as counts and fixed labels — never your documents, client names, amounts, dates or anything you typed) and Firebase Crashlytics (crash reports with device and OS details). Firebase recognizes an installation by a Firebase installation ID and derives an approximate location (country, region or city) from your IP address; the app never asks for or uses your location. On Android, Firebase also reads the Google Play install referrer to count where installs come from.
No ads, no advertising ID. FairInvoice for Android contains no ads and does not read your device's advertising ID: the permission to read it is removed from the app and Firebase's advertising-ID collection is switched off. Analytics data is not used for ad personalization.
Reminders and the weekly summary. Reminders and the optional weekly summary are created on your device. The weekly summary is a local notification, built on this device from your own data; it shows totals only, never a client name, and is never sent to us or through any server. On a locked screen it shows only its title. Your year in invoices works as described above: it is computed on your phone, and an image is made only if you tap Share. Saving or sharing it needs no photo permission.
When FairInvoice asks. Once on the home screen, right after the welcome screens the first time you open the app (never during them), and when you turn on a reminder, the weekly summary or App announcements in Settings. On Android 12 and earlier, which has no notification permission, notifications are already allowed, so this screen does not appear while announcements are on. App announcements are on by default, and you can switch them off at any time in Settings.
The push token. If you allow notifications, the app registers a push token with Google's Firebase Cloud Messaging. It identifies the app installation, not you, and is deleted if you take back FairInvoice's notification permission (Android 13 and later; on earlier versions it is removed when you uninstall the app). Push announcements are on by default: they reach you only once notifications are allowed, and you can switch them off at any time in Settings → App announcements. Push messages never contain your business data.
Our Engagement Center on Android (from 1.1.0). As described above, the app
registers a device record with engage.puzzpics.com — a random identifier the app
creates (not your advertising ID, not Android's device ID and not a Firebase ID), the app and
Android version, your language and time-zone settings, whether notifications are allowed and
whether App announcements is on, plus the Firebase Cloud Messaging token if you allowed
notifications — and tells it when a session starts and when one of our messages is opened,
shown, tapped or closed. It can show an occasional in-app message, at most once per session and
never the first time you use the app, and checks the public status page, which carries no
identifier. The random identifier is not part of Android's device backup.
Purchases. FairInvoice Pro on Android is a single one-time purchase made through Google Play. Google handles payment; we never see your card or payment details. We use RevenueCat to confirm the purchase and unlock Pro. RevenueCat receives the Google Play purchase record and an anonymous ID it creates for the installation — not your name or email. Because there is no account, a purchase on one store does not carry over to the other: Pro bought on iPhone does not unlock Pro on Android, and the reverse. A Google Play purchase can be restored on any Android device signed in to the same Google account.
Feedback. Send Feedback in Settings opens your own email app with a message addressed to kenz@kenzapps.com, prefilled with the app version and Android version only. Nothing is sent until you send it from your email app. If you do, we receive your message and your email address and use them only to reply.
Android permissions. Internet and network state (Firebase diagnostics, RevenueCat, Google Play Billing, our Engagement Center and status check); notifications (reminders, the weekly summary and the occasional message, asked as described above); Google Play billing (the Pro purchase); run at startup, keep awake and foreground service (used by Android's WorkManager to deliver scheduled reminders after a restart); receive push messages (Firebase Cloud Messaging). FairInvoice for Android does not request location, contacts, camera, microphone, photos, storage or the advertising ID.
FairInvoice has no account, so there is nothing to close. Deleting the app (on any platform) deletes everything it stored on your device. Your own backup files, your iCloud data (if you used iCloud Sync) and your Google account backup are yours to delete in those services.
For the anonymous diagnostics and purchase records held by our service providers (Google Firebase and RevenueCat), and for any feedback you sent us, email kenz@kenzapps.com with the subject “FairInvoice data deletion”. Because this data is tied to random installation IDs and not to your identity, tell us anything that helps us find it — for example the date and store of a purchase, or the address you sent feedback from. We delete what we can match and confirm by email. Diagnostics we cannot match expire under our providers' retention settings.
FairInvoice is a business utility, is not directed at children under 13, and collects no personal data from anyone of any age.
Because your invoices and clients are stored only on your device and are never uploaded, there is no FairInvoice database of your business to breach. If your device is compromised, that is governed by your device's own security — we recommend using a strong passcode and your device's biometric lock.
Your documents, clients, items, job-site photos and business profile live only on your device and are deleted when you delete FairInvoice or delete them yourself. Unless you turn on iCloud Sync there is no cloud copy, so we recommend using Settings → Back up to export a backup file of anything important.
If this policy ever changes we will update the date at the top of this page. Material changes will be noted in the App Store or Google Play release notes. Continued use of FairInvoice after a change constitutes acceptance of the updated terms.
Questions about this privacy policy? Email kenz@kenzapps.com. We aim to reply within two business days.