Kliniko

Kliniko Privacy Policy

Effective date: 24 October 2026
Last updated: 24 October 2026

1. Introduction

Kliniko ("Kliniko", "we", "our", or "us") is a medication management application designed to help users organize medicines, manage medication reminders, review dose history, and maintain personal health-related records.

This Privacy Policy explains how Kliniko handles information when you use the application, including information stored on your device and information processed by third-party services when you choose to use features that require them.

We aim to minimize unnecessary collection of personal information. Your records are stored on your device first and, if you allow cloud storage, are also copied to your own Firebase account, so that you can get them back after signing in on another device; section 3 lists exactly what is copied and what never leaves the device.

By using Kliniko, you acknowledge that you have read this policy and the Terms of Use. Where applicable law requires consent for a particular processing activity, we will seek that consent separately.

2. Information We Handle

The information handled by Kliniko depends on which features you use.

2.1 Account information

Kliniko uses Firebase Authentication to support account registration, sign-in, and authentication-related account operations. The current version of Kliniko offers email-and-password sign-in only. It does not offer Google, Apple, or any other third-party sign-in. Firebase Authentication processes information such as:

Your password, where applicable, is managed through Firebase Authentication. Kliniko does not store your plaintext password in its local medication database.

2.2 Medication and health information

Kliniko saves medication and health-related information on your device first, so the app keeps working offline. If you allow cloud storage, as described in section 3.3, the same records are also stored in your own account in Google Firebase, so you can sign in on another device and get them back. If you do not allow cloud storage, nothing is uploaded. This may include:

This information may be sensitive. You should protect access to your device and avoid entering information that you do not want stored in the app or in your Firebase account.

The current architecture uses account-scoped local Isar databases on your device. Each signed-in account gets its own local database file. Sensitive local field values and prescription photos are encrypted at rest. The database file as a whole is not encrypted, and some operational metadata remains unencrypted. Encryption uses a per-account AES-256-GCM key that Kliniko stores in your device's secure key storage. Release builds also block screenshots of the app and disable Android auto-backup of app data. These measures are designed to help separate and protect local user data, but no security measure can guarantee that data on a lost, compromised, or rooted device is unrecoverable by an attacker.

Section 3 explains what the cloud copy contains, what never leaves the device, and how to remove it.

Local field encryption does not extend to synchronized payloads: the app decodes those values for Firestore, where they remain application-readable under account access rules. Synchronized records are not end-to-end encrypted with the device key.

2.3 Prescription images and scanned text

If you use medication scanning, you may select or capture a prescription or medicine image. The image is processed on your device using on-device text recognition, and the recognized text is shown to you for review and correction before anything else happens. Temporary working copies of the image are created in the app's private temporary storage during recognition and are deleted after processing.

Image selection, local text recognition, and the optional cloud AI step are distinct activities. Text recognition runs entirely on your device. The optional AI step is separate: after you consent and choose to run it, the app sends only the recognized text you reviewed, together with short text fragments derived from that text. The image itself is not uploaded to the AI service.

Nothing is sent to the AI service unless you review the recognized text and explicitly choose to use the AI step. If you decline, or if the AI step is unavailable, you can continue by entering or editing the medicine details manually.

2.4 Device and application information

Kliniko and its supporting services may process technical information needed for authentication, notification delivery, security, troubleshooting, and service operation. The precise information collected depends on the app version, operating system, Firebase configuration, and any enabled integrations.

The current application does not include advertising SDKs, analytics SDKs, or crash-reporting SDKs of its own. If those integrations are ever added, this policy will be updated before release to describe them.

Kliniko does include Google-provided libraries: Firebase Authentication, Firebase App Check, Firebase AI Logic, and the on-device ML Kit text recognition library. Like most Google SDKs, these may transmit limited technical and diagnostic information to Google as part of normal service operation, such as app and device identifiers, API usage, and error information. Kliniko does not control the content of that service-level telemetry; Google's processing is governed by the applicable Google and Firebase terms and privacy documentation.

2.5 Device permissions and background operation

Kliniko requests Android permissions only for the features it provides:

To keep future reminders scheduled, Kliniko registers a periodic background task with Android's WorkManager. That task re-establishes the app's sign-in session and refreshes the local notification schedules. It does not transmit your medication or health records.

3. Where Information Is Stored

3.1 Local storage

Medication and health-related records are saved in the app's local database on your device first, so the app works offline, and are then synchronized to your own Firebase account as described in section 3.3. The current architecture uses Isar as its local data store.

Synchronization needs an internet connection. While a device is offline, records are still saved locally and are uploaded when the connection returns.

Information stored locally may be lost if you uninstall the application, clear its data, lose your device, or experience storage corruption. For synchronized records, signing in on another device restores them from your Firebase account. Prescription photos are the exception: they exist only on the device where they were added, so a photo cannot be recovered from the cloud.

3.2 Firebase Authentication

Firebase Authentication is used to authenticate users. Authentication information is processed by Google Firebase under the applicable service terms and privacy documentation. Review Google's Privacy Policy and the terms that apply to Firebase services for details about Google's processing, security, and retention.

Your password is managed by Firebase Authentication. Kliniko never receives or stores it.

3.3 Automatic synchronization to your own Firebase account

Before anything is uploaded, the app shows you a cloud-storage disclosure and asks you to allow it. Your answer is remembered for your account on the device you gave it, together with the version of the disclosure you accepted. If the disclosure text changes, the app asks you again, once, before anything new is uploaded.

When you allow cloud storage, the records you enter are copied to Google Cloud Firestore under your own account identifier. This happens automatically from then on: saving a record writes it to your device first and then uploads it. You can sign in on another device and the same records are restored there.

Allowing cloud storage covers both the records that already belong to your account on that device and every change you make from then on. The app enrolls those existing records automatically after this consent; there is no second bulk-upload confirmation. Untouched preference defaults are not uploaded over saved account choices. Previously customized preferences are enrolled without asking you to toggle each setting.

The account details copied with those records are the display name you set and your account identifier, together with a schema version and the time Google recorded the update.

Each cloud document contains the record's own fields plus bookkeeping values: a schema version, your account identifier, the record identifier, a revision number, a deleted marker, a random per-install identifier, the creation time, the time your device last changed the record, and the time Google recorded the update. Records you delete in the app leave a marker with no content behind, so the deletion reaches your other devices without the record's text remaining.

The following are excluded from record synchronization, and the security rules reject record documents containing them. Separate sign-in, AI and explicitly confirmed Telegram requests are described in their own sections:

A decision about your display name in an earlier version of the app is not treated as consent to upload medical records, and the app does not read that earlier decision when it asks about cloud storage. The acceptance of the Terms of Use and the Privacy Policy is a separate decision from allowing cloud storage, and the consent to use the AI scanner is a third one that stays on the device.

If the upload cannot complete — for example because the device is offline or the published security rules refuse it — the record stays on your device and the app shows it as waiting rather than as stored. The app never deletes a record because an upload failed.

If an earlier version of Kliniko stored information under paths that the current app no longer uses, that historical information may remain until it is separately deleted. Deleting local data does not, by itself, delete those historical cloud records.

When two devices edit the same record, the later modification wins; an exact timestamp tie goes to the cloud copy. Deletions win over edits. This compares device clocks, so incorrect clocks can choose the wrong copy. Whole records are compared, not individual fields, and overwritten edits have no recoverable version history. Pending offline edits remain queued until they can be compared and confirmed; a retry is bounded to three conflicting writes per flush.

4. Optional AI-Assisted Medication Scanning

Kliniko may offer optional AI-assisted medication scanning through Firebase AI Logic and a Gemini model. If you choose to use this feature:

Do not submit unrelated personal information or information about another person unless you have the necessary authority and the feature requires it.

AI scanning is optional. You can choose not to use it and instead enter or review medication information manually, where manual entry is available. The app asks for your consent before the first AI request and remembers your answer; you can turn the AI step off, or reset that consent so that you are asked again, in the app's Settings under "Privacy & AI".

Google's processing of information submitted through its services is also subject to the applicable Google and Firebase terms and privacy documentation. We do not promise that information sent to a third-party AI service is processed exclusively on your device.

The AI step uses Firebase AI Logic and a Gemini model. Google's handling of the text you submit is subject to the applicable Google and Firebase terms and privacy documentation.

5. Prescription Photos and Telegram

Prescription photos stay on the device where they were added. The prescription's details — medicine, doctor, instructions and notes — are synchronized to your account like the rest of your records, but the photo file, its thumbnails and its local file path are not uploaded, and are rejected by the published security rules if they ever appear in a document. When you open such a prescription on another device, Kliniko shows the details and explains that the photo is available only on the device that added it.

Kliniko may also provide a feature that allows you to send a prescription image and associated information to Telegram.

Where this feature is enabled, the intended workflow requires you to review the information and explicitly choose to send it before the transmission takes place. A preview or review screen is not, by itself, permission to transmit information.

If you confirm the send action:

Prescription images can contain sensitive medical and personal information. Review the destination and contents carefully before sending. Do not send another person's prescription without appropriate authority.

Telegram transmission is a separate activity from local storage and optional AI scanning. Consent to one activity should not be treated as consent to another.

The Telegram feature is optional and only works when a Telegram destination has been configured for the app. Transmission uses an HTTPS connection to a Kliniko-operated relay, which then delivers the prescription to the configured Telegram destination. If no destination is configured, the app does not offer the send action.

6. Medication Reminders and Notifications

Kliniko may schedule local notifications to remind you about medication times and related actions. To provide this functionality, the application may store reminder settings and schedule notification requests through the operating system.

Notification delivery depends on device permissions, operating-system behavior, power management, device state, and other technical conditions. Notifications may be delayed, suppressed, missed, or canceled.

Kliniko does not guarantee that every reminder will be delivered or that you will take a medication at the scheduled time. You remain responsible for following the instructions provided by your healthcare professional.

7. How Information Is Used

Depending on the feature, Kliniko may process information to:

We do not state that local medication records are used for advertising or sold to advertisers. Any future analytics, advertising, or additional data-sharing functionality should be reflected accurately in an updated policy before release.

8. Sharing and Disclosure

Kliniko does not require cloud synchronization of local medication records as its primary data architecture. However, information may be shared with a service when you use a feature that requires it. Relevant service providers may include:

We may also disclose information where required by applicable law or where reasonably necessary to protect the security and integrity of the application, subject to applicable legal requirements.

9. Retention and Deletion

9.1 Local data and synchronized records

Local medication and health data may remain on your device until you delete it, clear the app's data, uninstall the application, or use a feature that removes the relevant records.

Support cannot remotely erase a device database or prescription photos. Clear app data on each device to remove local records, files, preferences and encryption keys. Signing out alone retains those files.

9.2 Account and cloud-data deletion

Request account deletion by email as described below. After verifying ownership, support blocks further cloud writes, purges synchronized records, settings, profile data and legacy cloud data, verifies the purge, and deletes the sign-in account. A minimal deletion marker (the account identifier and request timestamp) remains to prevent recreation by cached sessions. It contains no medical record fields and is not, by itself, proof that any associated data was erased.

9.3 Requesting deletion by email

To request deletion of your Kliniko account and associated cloud data, email klinikoapp@gmail.com. After verifying that the request belongs to the account holder, we will complete deletion within 30 days.

Sending a request does not delete your account immediately: your account stays active, and the data described in section 9.1 remains, until the request is verified and handled. You are told the outcome by email.

Two things cannot be erased remotely. Local prescription photos exist only on the device that added them, and copies you exported yourself — screenshots, printed prescriptions, Telegram messages or any other export — are outside Kliniko's control. To remove device data, clear Kliniko app data on that device.

Support includes legacy Firestore documents and older Firebase Storage objects associated with your account in the same verified deletion request. Partial failures are retried and reported; sending the email or creating a deletion marker is not confirmation that the purge is complete.

9.4 Third-party retention

Information submitted to Google, Telegram, or another third-party service may be subject to that provider's retention, deletion, security, and legal requirements. Deleting Kliniko or your Firebase Authentication account does not necessarily remove information already received by those services.

9.5 Legacy unscoped local database

Some devices may contain a legacy local database that was created before account-scoped storage existed. Because its records cannot be reliably attributed to a specific signed-in account, Kliniko intentionally does not open, import, or delete that legacy database. It is left untouched during normal use and during account deletion.

10. Security

We use the application's available technical safeguards to help protect information, including account-scoped local storage and encryption.

No application, device, database, or transmission method can be guaranteed completely secure. Your device security, operating-system configuration, account credentials, and permissions may affect the protection of your information.

Do not share your password, unlock credentials, or other security-sensitive information with anyone.

11. Your Privacy Rights

Depending on your location and applicable law, you may have rights to:

These rights may be subject to legal exceptions and may apply differently to information held locally, information held by Firebase, and information already submitted to third parties.

To make a privacy request, contact klinikoapp@gmail.com. We may need to verify your identity before acting on a request.

12. Children's Privacy

Kliniko is not intended for use by children who are not legally permitted to use the service or provide any required consent in their jurisdiction.

If you are a parent or legal guardian and believe a child has provided personal information through a feature that processes it, contact klinikoapp@gmail.com so we can review the situation and take appropriate action where required by law.

Kliniko is not directed to children, and the minimum age for using the app is determined by the app store's terms and the laws of your jurisdiction.

13. International Users and Transfers

Kliniko may be used in countries with different privacy and data protection laws. Third-party services used by the app may process information in locations outside your country of residence.

Where required by law, appropriate safeguards or other lawful grounds must apply to international transfers of personal information.

Nothing in this policy is intended to remove privacy rights that cannot lawfully be excluded under the law applicable to you.

14. Changes to This Policy

We may update this Privacy Policy when the application, its service providers, its data practices, or applicable legal requirements change.

The revised policy will display an updated effective date. Where required by applicable law, we will provide notice or obtain consent before implementing a material change.

15. Contact Us

For questions, privacy requests, or concerns about this policy, contact:

Please do not include unnecessary medical details when contacting us about a privacy request.