← All policies

TMK Land — Privacy Policy

Real-Estate Management & Shared Investment

Bundle ID: com.tmkgroup.tmkland Last updated: 2026-06-15

Summary

TMK Land is a collaborative real-estate platform: you create property listings, manage rental contracts, raise or join shared-investment opportunities, and message other users. Because every one of these features requires sharing data with other accounts (co-owners, tenants, investors, friends), TMK Land does operate a backend — your account profile, listings, rooms, contracts, payments and investment records are stored on TMK servers (Supabase, hosted at api.tmkgroup.vn). Anything that does not need to be shared — draft form state, app preferences, call history — stays on your device.

National-ID (CCCD/CMND) handling — in line with Vietnamese personal-data regulations:

The app currently ships without analytics, without crash reporting, and without advertising. AdMob is declared in the Android manifest only because a shared TMK package (tmk_wallet_package) pulls in play-services-ads; the AdMob App ID is Google’s official test ID and no real ads are requested.


Data we collect

Sent to TMK servers (Supabase, api.tmkgroup.vn)

What Why Stored in
Account: provider UID, display name, email (from Google / Apple) Authentication profiles
Optional tenant identity fields: name on ID, CCCD/CMND number, issue date, issuing authority, date of expiry, nationality, place of origin Tenant identification for rental contracts (only fields the user types or auto-fills via on-device OCR) profiles, tenants
Avatar image Show your face to other users you interact with Supabase Storage avatars/
Property listings (title, description, price, address, photos, location) Display the listing to other users properties + Supabase Storage
Rental rooms and contracts (room details, tenant name & contact, term, rent amount) Manage rentals between landlord and tenant accounts rooms, contracts
Rental payment & expense records Track who paid what, when payments, income/expense receipt tables
Shared investment opportunities (amount, term, interest, participants) Match investors with property owners opportunities, interest-rate tables
Friend / follow relationships Display your social graph inside the app profiles relationships, follow tables
Friend chat messages Deliver messages between accounts TMK chat tables
Call log entries (peer ID, timestamp, duration) Show your meeting history call_logs

You initiate every one of these writes — the app does not silently upload anything in the background.

What Why When asked
Camera Take photos of properties, scan QR codes, take a short-lived photo of a CCCD that is processed on-device by OCR and discarded (never uploaded) First time you tap the camera icon
Photo Library / Gallery Pick existing photos for property listings, avatars, attachments First time you tap the gallery icon
Save to Photo Library Save shared receipts / generated PDFs back to your device First time you tap “Save image”
Location Centre the map on your area, suggest nearby properties, fill the address field of a new listing First time you open the map or tap “Use my location”
Microphone Join Jitsi-powered video meetings inside the app First time you join a call
Face ID / Touch ID (iOS) Optional biometric unlock for the app session When you enable biometric lock in Profile
Notifications Deliver reminders (e.g. upcoming rent due date) First time the relevant feature opts in

You can revoke any of these in your OS settings at any time; the corresponding feature degrades gracefully (you can still type an address manually, paste a photo URL, attend a call without microphone, etc.).

On your device, locally

What Stored where
Drift / SQLite cache (call history, draft forms, ephemeral lookups) App sandbox, app_database.dart
shared_preferences (theme, language, last-used filters) App sandbox
Supabase OAuth session token Encrypted on-device, used to authenticate API calls
.env config (Supabase URL + anon key, Google web client ID) Bundled asset, public values

Permissions explained

Android

Permission Why TMK Land needs it Fallback if denied
INTERNET Talk to Supabase, Maplibre tile server, Jitsi meeting server, ML Kit model download (one-time) App cannot function — every collaborative feature is online
ACCESS_FINE_LOCATION / ACCESS_COARSE_LOCATION Centre the map, pre-fill address field on a new listing You can type the address by hand
CAMERA Property photos, QR scan, transient CCCD photo for on-device OCR (discarded immediately) Pick from gallery instead
READ_MEDIA_IMAGES (Android 13+) / READ_EXTERNAL_STORAGE (≤ 12) Pick a photo from gallery for listings / avatar You can still take a fresh photo with the camera
RECORD_AUDIO Jitsi voice/video meetings Join muted / skip meetings
WRITE_EXTERNAL_STORAGE (Android ≤ 9 only) Save generated PDFs / shared receipts to public Downloads Save inside app sandbox only

iOS

Key (Info.plist) Why TMK Land needs it
NSCameraUsageDescription Property photos, QR scan, transient CCCD photo for on-device OCR (discarded immediately)
NSPhotoLibraryUsageDescription Pick photos for listings / avatar
NSPhotoLibraryAddUsageDescription Save generated receipts / PDFs back to Photos
NSMicrophoneUsageDescription Jitsi voice/video meetings
NSLocationWhenInUseUsageDescription / NSLocationAlwaysAndWhenInUseUsageDescription Map centring, address pre-fill
NSFaceIDUsageDescription Optional biometric session unlock

Third-party services

Service Purpose Data sent Link
Supabase (TMK-hosted at api.tmkgroup.vn) Authentication, database, file storage Everything in the “Sent to TMK servers” table above Supabase privacy
Google Sign-In Sign in with Google Your Google provider UID + the public profile fields you approve (name, email, picture) Google privacy
Apple Sign-In Sign in with Apple (iOS) Your Apple provider UID + optionally a relay email Apple privacy
Google ML Kit — Text Recognition On-device OCR for the CCCD scanner (auto-fill tenant identity form) The photo bytes are processed on-device only; nothing is uploaded by ML Kit ML Kit terms
Maplibre GL Render the map Map-tile requests (your viewport coordinates) go to the configured tile provider Provider’s own policy
Jitsi Meet In-app video meetings Audio/video stream + room name during the call Jitsi privacy
Google AdMob SDK Currently not serving ads. The SDK is pulled in by a shared TMK package; the App ID configured is Google’s official test ID (ca-app-pub-3940256099942544~3347511713). Nothing — no AdRequest is ever made by TMK Land Google privacy

TMK Land does not integrate any third-party analytics, crash reporting or advertising attribution SDK.


In-app purchases

TMK Land offers optional VIP subscriptions and one-time purchases through Apple App Store / Google Play billing. All payment transactions are processed entirely by Apple or Google — TMK Land never receives or stores your payment card information. Purchases are subject to the respective platform’s terms of service.


Data retention

Data Retained until
Account profile, properties, contracts, payments, opportunities Until you delete the record inside the app, or request account deletion (see “Your rights”)
Supabase Storage files (avatars, property images) Until the parent record is deleted; orphan files are pruned during periodic clean-up
OAuth session token on-device Until you sign out or uninstall the app
On-device caches (Drift / SQLite / shared_preferences / OCR form state) Until you tap “Clear Data” in Profile, sign out, or uninstall
Backend access logs Up to 30 days for security and abuse-prevention, then aggregated or deleted

Children’s privacy

TMK Land is not directed to children. Renting property and joining a shared-investment opportunity create legal and financial obligations, and the platform requires an adult account. You must be at least 18 years old (or the age of legal majority where you live) to use TMK Land. We do not knowingly collect personal data from anyone under that age; if we learn that we have, the account and its data will be deleted.


Your rights

Right How to exercise it
Access Open Profile → My Listings / My Opportunities / My Contracts to see every record tied to your account
Correct Edit any record directly from its detail page; edit your profile in Profile → Edit Profile
Export Email trucmn@gmail.com from the address tied to your account; we will return a JSON dump within 30 days
Delete a single record Open the record → Delete
Delete your account Profile → Settings → Delete Account, or email trucmn@gmail.com. We remove your profiles row, your Supabase Storage files, and anonymise any records that other accounts still depend on (e.g. a contract you signed with another user).
Revoke OAuth Sign out, then revoke the app at myaccount.google.com/permissions or, on iOS, Settings → Apple ID → Sign in with Apple
Revoke a device permission OS Settings → Apps → TMK Land → Permissions

Account Deletion

You can delete your TMK Land account and all associated data at any time using either of the following methods:

Option 1 — In-app (recommended): Open the app → Profile → Settings → Delete Account → confirm deletion.

Option 2 — Email request: Send an email to tmktechgroup@gmail.com with the subject line “Account Deletion Request” and include the email address associated with your TMK Land account. We will process your request within 30 days.

Upon deletion, we will permanently remove:

Records that other accounts depend on (e.g., a rental contract co-signed with a tenant) will be anonymised rather than deleted, so those users are not affected.


Changes to this policy

When we make material changes, we update the last_updated date at the top and ship a new app version. Continued use after an update constitutes acceptance. Updates will clarify or expand your rights — never restrict them silently.


TMK Group — General Privacy Statement

### Who we are **TMK Group** publishes privacy-first mobile and web applications. Each app on this domain has its own data-practices section above; this general statement applies on top of it. - **Publisher**: TMK Group - **Contact**: [dev@tmkgroup.vn](mailto:dev@tmkgroup.vn) - **Domain**: [tmkgroup.vn](https://tmkgroup.vn) ### Our principles 1. **No selling, no sharing, no advertising profile**. We never sell your personal data, never share it with advertisers, and never build a profile of you for marketing. 2. **Minimum data possible**. Each app collects only what it strictly needs to function. Most of our apps collect nothing at all. 3. **On-device first**. Where possible, all processing and storage happens locally on your device. We design for airplane-mode use. 4. **No hidden third parties**. The "Third-party services" section of each app lists every external service it talks to. If we add one, the policy is updated and the app version is bumped. 5. **Transparency by version**. Every change to this policy is tracked in [the public Git history of the privacy repository](https://github.com/tmkgroup/privacy). You can see when any wording changed and why. ### Your rights (GDPR, CCPA, and similar regimes) Even when we hold no personal data about you, you always have the right to: - **Access** any data an app stores (use the in-app export where available — most of our apps store everything in plain on-device files you already control). - **Erase** any data — uninstall the app or use the in-app reset, and the data is gone with it. - **Object / restrict / port** your data — same as above. - **Lodge a complaint** with your local data protection authority. ### Children's privacy Our apps are suitable for general audiences. We do not knowingly collect personal information from children under 13 (or under 16 in the EU). Most of our apps collect nothing from anyone. ### International users Our apps are distributed globally through Google Play and the Apple App Store. Where any data is processed (rare), it is processed on-device, in the user's own jurisdiction. We do not transfer personal data internationally because, in most apps, we do not hold personal data at all. ### Changes to this policy If we update this policy, we update the "Last updated" date on the app-specific page above and ship a new app version. Since most of our apps collect no data, any changes to this general statement only clarify or expand your rights. ### Contact Questions, complaints, or data requests: [dev@tmkgroup.vn](mailto:dev@tmkgroup.vn).