Privacy Policy
Last Updated: October 14, 2026
Kwhit (“the App”) values your privacy. The App helps you organize EV charging records and ownership costs. Data is stored on your device by default, and you can use the App without creating an account. This policy covers both the iOS and Android versions. The two platforms are separate product lines: subscriptions and charging records do not automatically sync across stores or sign-in providers.
Platform Differences at a Glance
Most features and data practices are the same on both platforms. Key differences:
- Sign-in: iOS uses Sign in with Apple; Android uses Google Sign-In. Both are optional; you can use the App locally without signing in. Only a stable account identifier — never the email address — is passed to RevenueCat to link your subscription.
- Subscriptions: iOS via the App Store; Android via Google Play. Manage or cancel in each store’s subscription settings. Cross-platform Pro restore is not supported.
- Cloud sync: Optional iCloud / CloudKit private-database sync is available for iOS Pro only. Android has no cloud sync; use JSON export/import to back up or move data yourself.
- Screenshot import: iOS uses Photos permissions; Android uses the system Photo Picker / Share Target and requests no photo-library read permission — we only receive the image you select. OCR runs on device (iOS: Apple Vision; Android: Google ML Kit, with optional on-device Gemini Nano on supported devices). Neither the image nor recognized text is uploaded for OCR.
- Maps & geocoding: iOS uses Apple MapKit; Android uses the Google Maps SDK. When you search or enter a station address, the query may be sent to the platform geocoder for coordinates. Creating a station does not silently inject your live GPS.
- Push: iOS uses APNs; Android uses FCM. After you allow notifications, a push token may be registered with our push service.
- Wearables / widgets: Apple Watch is iOS-only. Both platforms may offer home-screen widgets fed from on-device summaries.
- Deletion help: For Android, see also Account & Data Deletion.
Information We Process
Depending on the features you use, the App may process:
- Charging records — date/time, energy, cost, unit price, station, operator, notes, and optional ending state of charge (SOC) or dashboard odometer readings (from OCR, manual entry, post-charge check-in, or later edits). Records may also note the import channel (for example Photos screenshot or Share import).
- Charging stations & charging map — stations you create or bind (name, operator, optional address/coordinates, aliases, and pioneer flag), plus a personal map footprint derived from on-device sessions. “My charging map” is a private on-device footprint, not a public nationwide browse map. Stored on device by default. Stations marked private do not participate in fingerprint upload.
- Station location lookup — when you search, enter, or resolve a station address, the query string may be sent to the platform geocoding service so the App can show a map pin.
- Nearby charging location — only when you actively use Nearby Charging features may the App read device location for on-device search, community price lookup, or route estimates. We do not continuously track location in the background.
- Charging screenshots — images you select from Photos, import via Share, or review on the confirm screen (the App may keep a local copy for confirm/edit).
- OCR results — on-device text recognition (and optional on-device language-model assist) output and parsed fields (including confidence and operator detection).
- Vehicle information — catalog brand, model, year, trim, and battery type; optional license plate and purchase date; dashboard mileage / tracking baseline for cost-per-km. Stored on device by default.
- Ownership expenses — maintenance, insurance, parking, accessories, and similar costs you enter (date, amount, category, optional odometer and notes), stored on device.
- Battery / range snapshots — SOC, estimated remaining range, notes, and timestamps you log for range trends and full-charge estimates, stored on device.
- Derived insights — AI Insights, Instant Coach tips, monthly reports, and cost-per-km calculated on device from your local charging, vehicle, ownership, range, achievement progress, career / station-mapping summaries, and import-method counts. Insight text and details stay on device by default and are not uploaded in full to our servers.
- Account information — if you sign in, we receive the platform’s stable identifier, display name, and (if provided) email address, stored mainly on device; the App does not create its own passwords.
- Subscription status — purchase, expiry, and entitlement data from the App Store or Google Play, and RevenueCat.
- App settings — for example OCR feedback prompts, whether to attach screenshots to feedback, auto-delete after import, reminder toggles, post-charge mileage/SOC logging, and push category preferences (stored on device).
- Push device token — if you allow notifications, APNs (iOS) or FCM (Android) may produce a token. We may send the token (plus minimal delivery metadata such as a local user id, platform, app id, a kwhit Pro membership flag, and push category preferences) to our push service so we can deliver product messages and optionally target Pro or free members. Used for delivery and audience filtering only — not for advertising tracking.
- In-app message state — read status and “hide for today” preferences for App Messages (stored on device).
- Achievements & Driver Card — unlock progress and showcase medal choices computed on device; Driver Card titles, theme, and share content (stored on device; iOS Pro can sync achievement unlock state via iCloud — Driver Card theme/showcase settings are not synced to iCloud).
- Mileage alarms — reminders, interval km, recurring/advance notification preferences, and trigger state (stored on device; due or advance alerts may appear in “My Notifications” and as local push).
- My Notifications — read state for the local inbox (achievement unlocks, mileage alarms, etc.; stored on device, not uploaded to Kwhit servers).
- Backup export/import — JSON (or report share / CSV) you deliberately export may include charging, stations, vehicles, expenses, range snapshots, mileage alarms, and achievements. You keep and transfer that file yourself. Screenshot image files are typically not included in JSON backups.
- Charge excerpts — a stretch of charging sessions you select, route captions, an optional cover photo, and share-card content. Stored on device by default; cover photos you pick from Photos stay in the App sandbox and are not uploaded to create an excerpt. Share cards/text leave the device only when you use the system share sheet.
- Tesla account link (optional) — if you link a Tesla account in the App, we obtain the access you approve on Tesla’s official sign-in page and read your vehicle list (VIN, vehicle name, model), charge state, battery level (SOC), odometer, and Tesla-billed charging history and invoices (e.g. Superchargers). See “Tesla Account Link & Automatic Recording” below.
- Tesla automatic recording (Pro, optional) — once you enable it for a vehicle, the vehicle sends charging signals while charging (charge state, battery level, energy added, charging power, time to full, etc.). If you allowed vehicle location when authorizing Tesla, this also includes the vehicle’s location at the moment it is plugged in (never a driving trace). These signals are used to build “pending charges” that become records only after you confirm them.
- Live charging progress — with Tesla automatic recording, the iOS Live Activity (Dynamic Island) push token, or what Android needs for its charging-progress notification, may be held on our servers temporarily to update progress while charging.
- Home tariff & home location — your home electricity rate (flat or peak/off-peak), home name, home-charging coordinate, and the private station you bind as home are stored on your device only. They are used to tell whether a Tesla-recorded charge happened at home and to estimate its cost, and are never uploaded.
- Product analytics events — via Firebase Analytics, anonymous/pseudonymous events such as screen views, feature toggles, funnel steps, and Pro adoption. We intentionally do not upload actual mileage, SOC percentages, license plates, charge-line item amounts, or full insight text as analytics parameters. On Android, bundled Google Play services components may also involve an advertising ID, used solely for product analytics and not for cross-app advertising tracking.
How We Use Information
- Create, edit, display, and summarize charging records.
- Manage vehicles, compute tracking-period cost per km, and show the vehicle dashboard.
- Track ownership expenses and range trends (including estimated full-charge range).
- Generate on-device monthly reports, charts, share cards, AI Insights, and post-save Instant Coach tips (some advanced features require kwhit Pro). Insights may also use on-device aggregates such as achievement progress, days owned, station-mapping rate, and import counts; full insight text is still not uploaded.
- Recognize charging information from screenshots.
- Verify, restore, and manage kwhit Pro subscriptions.
- Download and cache public operator catalogs, vehicle catalogs, searchable station catalogs, and in-app message catalogs (public copy/specs/links/image URLs only — not your personal charge history).
- When you use related features, send aggregated vehicle stats (not raw session logs) to our cohort benchmark service, and optionally make anonymous contributions of those aggregates to improve cohort quality (see “Vehicle Benchmarks & Anonymous Contribution”).
- Show a personal charging map, bind sessions to stations, power Nearby Charging / along-route recommendations, and use community aggregated price ranges (cheapest / most expensive) plus public facility references (connector counts / AC·DC / power — not live availability) when picking stations; creating or binding a public station may anonymously contribute a station fingerprint; you may also voluntarily report facilities for an existing catalog station (see “Station Fingerprints, Community Prices, Pioneer & Facility Reports”).
- Build on-device “charge excerpts” and, if you choose, add a Photos cover or share a card via the system share sheet.
- When you voluntarily report a missing vehicle, or add a station that is not in the searchable catalog, send the necessary fields to a review queue so we can consider adding it to the public catalog.
- When you open a partner link (for example JackEV), open their site in the browser; opening from the vehicle screen may pass vehicle specs and mileage as query parameters (see “Partner Links”).
- With notification permission, send local and/or remote (APNs / FCM) reminders about logging, monthly reports, or product updates.
- Show summaries on home-screen widgets (and Apple Watch on iOS) from on-device data or device-to-device sync; this does not upload your full charge history to our servers.
- Improve OCR only when you voluntarily send feedback email.
- Provide achievements, Driver Card, and mileage alarms (mileage reminders are for personal reference only — not OEM warranty or service-contract alerts).
- Optionally sync selected data to your iCloud private database for cross-device restore (iOS Pro only; see “iCloud Sync (Pro, iOS only)” below).
- Improve product quality and stability via analytics (not ad retargeting profiles).
Data Storage
Charging records, vehicles, ownership expenses, battery snapshots, mileage alarms, achievement progress, Driver Card settings, account data, and most settings remain on your device by default and are not automatically uploaded to Kwhit servers.
Other cases where data may leave your device — but Kwhit does not store your full personal records on our own servers — include:
- APNs / FCM device tokens (and minimal delivery metadata, including a Pro membership flag) may be stored on our push infrastructure (currently Cloudflare Workers / D1).
- Product analytics events may be processed by Firebase (Google) under its policies.
- Aggregated vehicle benchmarks and anonymous contributions, as well as missing-vehicle reports you submit, may be stored on our cohort service (currently Cloudflare Workers / D1).
- Anonymous station fingerprints, pioneer-station review reports, facility reports for existing stations, and community price / facility-reference aggregates may be stored on our station service (currently Cloudflare Workers / D1).
- Nearby Charging / along-route community-price lookups or route estimates may send current location or the origin/destination coordinates you choose to the relevant services (see “Nearby Charging & Location”).
- Station-address geocoding queries may be handled by Apple or Google / Android geocoding services.
- If you link Tesla, encrypted Tesla tokens, vehicle and charging-history summaries, automatic-recording vehicle signals and pending charges, and the push details needed for live charging progress are stored in our Tesla service (Cloudflare Workers / D1) and on a vehicle-signal receiving server we operate (see “Tesla Account Link & Automatic Recording”).
- iOS Pro users who enable cloud sync may store selected data in Apple’s iCloud private database (see next section).
- OCR feedback you send through your Mail app travels via your chosen email provider.
Remote data is used only for the purposes described and is not sold or used to build advertising profiles.
Sign-in is used for subscription binding, restore, and linking Tesla; you can keep using local charging records without signing in.
Tesla Account Link & Automatic Recording
All Tesla features are optional and require signing in to Kwhit (Apple / Google) first. If you never link Tesla, the App reads no Tesla data.
- Authorization — you sign in on Tesla’s official page and choose the scopes to grant (e.g. vehicle information, charging history, vehicle location). We never receive your Tesla password. Access and refresh tokens are encrypted with AES-256-GCM and stored on our servers (Cloudflare Workers / D1); the App itself never holds Tesla tokens. Your Kwhit account is mapped by a hashed identifier; the raw identifier is not stored.
- Read-only — we read your vehicle list, charge state, battery level, odometer, charging history and invoices. We do not control your vehicle (no locking/unlocking, no starting or stopping charging). The only exception: when you ask for a refresh we may send a limited number of “wake” requests so the vehicle can report its latest state.
- Tesla charging history & invoices (Pro) — Tesla-billed sessions (date, site name, energy, amount, site coordinates, etc.) and invoice PDFs are synced so you can import them as Kwhit records; session summaries are kept on the server for de-duplication.
- Automatic recording (Pro) — once enabled, the vehicle sends charging signals via Tesla Fleet Telemetry to a receiving server we operate, which forwards them to our backend to build “pending charges” that become records only after you confirm them in the App. Vehicle location is received only while plugged in (and only if you granted vehicle location to Kwhit on Tesla), to match the charging station and recognize home charging. We do not collect driving traces.
- Retention — “pending charges” built by automatic recording (time, battery level, energy and plug-in location) stay on our servers after you confirm or dismiss them, so the same charge is not offered twice, until you unlink Tesla; raw vehicle signals are kept for up to 60 days after automatic recording is stopped; Live Activity and progress-notification data is cleared shortly after charging ends.
- Stopping & deletion — you can stop automatic recording or unlink Tesla in the App at any time. Unlinking deletes all data tied to your Tesla account on our servers — tokens, vehicles, Tesla charging history, pending charges and recorded vehicle signals — and guides you to Tesla’s page to revoke Kwhit’s access. Charging records you already imported stay on your device and can be deleted by you.
Tesla data is also subject to Tesla’s privacy policy. Kwhit is not affiliated with Tesla, Inc.
iCloud Sync (Pro, iOS only)
If you subscribe to kwhit Pro on iOS, enable “Cloud Sync” in the App, and are signed in to iCloud, the App syncs the following to your Apple ID’s iCloud private database (CloudKit) so you can restore on other devices signed in with the same Apple ID:
- Charging records
- Charging station profiles (name, optional address and coordinates, pioneer flag, etc.; not screenshots)
- Ownership expenses
- Vehicle profiles (including multiple vehicles)
- Battery / range snapshots
- Achievement unlock state
Sync does not include: charging screenshots, Driver Card theme/showcase settings, mileage alarm settings, or “My Notifications” inbox content. Synced data is hosted by Apple under its iCloud policies and is not relayed or backed up in full on Kwhit servers. You can turn off cloud sync anytime in the App; local data remains, but new changes are no longer uploaded to iCloud.
Android does not offer iCloud or equivalent cloud sync; use JSON export/import instead. Sync may fail if iCloud is temporarily unavailable or the device is not signed in to iCloud. Check Settings → Apple ID → iCloud on your device.
Nearby Charging & Location
When you use Nearby Charging or along-route planning, the App may:
- Read your current device location and match it on device against the cached station catalog / facility references;
- Query the community price service for nearby aggregated prices (requests may include location coordinates);
- For along-route planning, estimate direct and via-station detour times using a routing service (for example Apple MapKit Directions, or a public routing API / Google Directions, depending on device and configuration) based on the origin and destination you set (location, search place, or a recent record); requests may include origin, station, and destination coordinates.
Location is obtained on demand while you use the feature — not continuously in the background. You can deny or revoke location permission in system settings; some nearby / along-route features may then be unavailable.
Vehicle Benchmarks & Anonymous Contribution
To show peer references for the same vehicle catalog model (for example aggregated range, efficiency, or unit price), the App may:
- Download the public vehicle catalog and cohort benchmark summaries;
- Send already-aggregated on-device metrics (such as average price per kWh, cost per km, estimated full-charge range, monthly session counts) to the benchmark service to retrieve reference insights;
- Anonymously contribute those aggregates using an irreversible hash derived from a local user identifier plus a normalized vehicle ID, to improve cohort statistics.
This flow does not upload raw charging sessions, screenshots, license plates, full addresses, or full insight text. You can stop future contributions by not using related features or by deleting the App / account data. Anonymous samples already merged into cohort stats may not be removable record-by-record.
Station Fingerprints, Community Prices, Pioneer & Facility Reports
To improve station search and show reference price ranges and facility summaries for frequent or nearby stations in AI Insights or Nearby Charging, the App may:
- When you create or bind a public charging station, send an anonymous station fingerprint to the station service. A fingerprint may include: an irreversible hash derived from a local user identifier, a local station id, a cleaned station name, operator id, coarsened coordinates (roughly 100-meter precision, not a precise pin), visit count, link source, app version, and — only when that station has enough paid sessions — the cheapest / most expensive paid price-per-kWh range. This flow does not upload per-session amounts, screenshots, OCR text, or full insight text. Private stations are never fingerprinted.
- Query a station-price service for aggregated cheapest / most expensive ranges (including contributor counts). A lookup may send a normalized station name, operator id, and coarsened coordinates; nearby lookups may also include current location.
- If you choose “Add station” because search found no match, send the station name, optional address/note, coarsened coordinates, and the same anonymous identifiers to a review queue so we can verify it before adding it to the public searchable catalog. Approved public catalog entries do not include your personal charge history.
- If you voluntarily “Report facilities” for an existing catalog station, send the station name / catalog id, operator, coarsened coordinates, the AC/DC / connector counts / max power you select, plus an irreversible hash derived from a local user identifier and the app version, to a facility-report review queue. After approval, the data may appear in public facility references (still labeled as reference — not live availability). This is not adding a new station and does not upload your charge history or screenshots.
Anonymous fingerprints already merged into cohort stats, and pioneer / facility reports in the review queue, may not be removable record-by-record.
Partner Links
The App may show partner entries (for example JackEV). Tapping opens their website in the system browser; that service’s privacy policy applies, not this one.
If you open a partner service from the vehicle screen, the URL query may include the brand, model, year, trim, and dashboard mileage you already entered (when available). We do not append license plates, charge details, or account identifiers to that link. Using the partner service is entirely optional.
Remote Content (Public Catalogs)
The App may download and cache:
- Charging operator catalogs (public names and aliases).
- Vehicle catalogs (public brand, model, year, trim, battery, and official range specs).
- Searchable charging-station catalogs (public names, operators, coordinates, aliases).
- Station facility references (for example connector counts, AC/DC, rated power, hours notes — labeled as reference, not live availability).
- In-app message / notification-center copy (title, body, links, image URLs; Android may use a separate message list).
- Public fuel-price reference data (for example CPC open data), used only for insight or settings reference.
These downloads do not include your personal charging records.
Notifications
The notification center is split into App Messages (product/ops copy) and My Notifications (personal alerts such as achievement unlocks and mileage alarms).
- The system may ask for notification permission on first use. You can decline or later disable notifications in system settings (iOS: Settings → Notifications → Kwhit; Android: app notification settings).
- If notifications are off, we cannot send system/remote alerts; the in-app message center may still show downloaded copy.
- With Tesla automatic recording, the charging-complete notification is always sent; if your Live Activity already shows the charge as complete, it arrives quietly (no sound) in Notification Center.
- To ask us to remove a stored push token, turn off notifications and contact us (see “Contact”).
Photos Access & Auto-Delete After Import
iOS: When you import charging screenshots, the App requests Photos read access (and optional write access to delete the imported screenshot). Deletion applies only to screenshots you designate for that import, via iOS Photos permissions.
Android: Uses the system Photo Picker or Share import and requests no photo-library read permission; we only receive the image you select. “Delete screenshot after import” runs through an Android system confirmation dialog / MediaStore delete request.
- Auto-delete after import is optional and can be turned off anytime in settings.
- We do not background-scan or upload your entire photo library.
Post-Charge Mileage & Battery Logging
After you save a charging session dated today and you have a vehicle, the App may ask for dashboard mileage and ending SOC to improve cost-per-km and insights. The first time, we ask for your consent; you can also toggle this anytime under Profile → After-charge logging. If off, the prompt will not appear automatically; you can still enter values manually in Vehicle or session edit screens.
Voluntary OCR Feedback
If recognition looks wrong, or after you edit a record, the App can help you send feedback through your device’s Mail app. You must confirm and send; we never send email automatically.
Feedback may include:
- Recognized fields, your corrections, and OCR text (JSON attachment).
- App version, OS version, and device model (for debugging).
- An optional screenshot (off by default; can be enabled in settings).
- Notes you write.
Mail is sent to [email protected] via your chosen email provider, subject to that provider’s privacy policy.
Voluntary Missing-Vehicle Reports
If your vehicle is not in the catalog, you can submit a report. It may include brand, model, optional year/trim, a note you write, and the app version. Reports are stored on our vehicle-catalog service (currently Cloudflare Workers / D1) so we can consider adding the model to the public catalog. Reports do not include license plates, charging details, or screenshots. Submitted reports may not be removable record-by-record.
Third-Party Services
The App may interact with:
- RevenueCat — entitlement checks and paywall
- Firebase Analytics (Google) — product analytics with de-identified events/parameters
- GitHub (public JSON/images) — operator catalog, vehicle catalog, and in-app message updates
- Cloudflare — push token registration/broadcast APIs, vehicle benchmark / anonymous aggregate APIs, missing-vehicle reports, anonymous station fingerprints, pioneer-station review, facility reports for existing stations, and community station-price / facility-reference lookup
- Public routing / navigation services (for example Apple MapKit Directions, OSRM, or Google Directions) — Nearby Charging / along-route detour estimates (only when you use that feature)
- Tesla Fleet API / Tesla authorization — only when you link Tesla: authorization, reading vehicle and charging data, and automatic recording (Fleet Telemetry)
- Partner websites (for example JackEV) — opened in the browser only when you tap a partner link; may receive vehicle specs and mileage as query parameters (see “Partner Links”)
iOS may also use:
- Sign in with Apple — authentication
- Apple App Store — subscription billing
- Apple Push Notification service (APNs) — remote delivery
- Apple Vision — on-device OCR
- Apple MapKit — maps and station-address geocoding
- Apple iCloud / CloudKit — optional private-database sync for Pro users
Android may also use:
- Google Sign-In — authentication
- Google Play Billing — subscription billing
- Firebase Cloud Messaging (FCM) — remote delivery
- Google ML Kit — on-device OCR; some devices may use on-device Gemini Nano / AICore (requests stay on device)
- Google Maps (Android SDK) and Android Geocoder — maps and station-address geocoding
Important Notes
- OCR accuracy can vary with screenshot quality, brightness, or operator-app UI changes — please confirm before saving.
- You can always create records with manual entry without OCR.
- AI Insights and Instant Coach are estimates based on your on-device data — not battery health diagnoses, OEM guarantees, or financial advice.
- Kwhit is not a charging operator and does not provide charging, payment, invoicing, or control of third-party charging apps.
- The App does not use advertising identifiers for cross-app ad tracking (no IDFA ad tracking on iOS; no cross-app ad tracking on Android).
- iOS and Android subscriptions and local data are independent; when switching platforms, export/import yourself or recreate records.
Account & Data Deletion
You can delete local data or account-related information in the App (labels may include “Delete local data” or “Delete account”), which removes charging records, charging stations, vehicles, ownership expenses, battery snapshots, achievements, mileage alarms, Driver Card data, and local screenshot copies on that device. Deletion cannot be undone; export a backup first if needed.
iOS: Deleting your local account does not automatically delete Kwhit data already synced to your iCloud private database. You can turn off cloud sync in the App; existing iCloud data is governed by your Apple ID and iCloud storage settings. If you subscribed to kwhit Pro, manage or cancel under Settings → Apple ID → Subscriptions.
Android: After local deletion, our servers do not keep a copy of your charging details. Manage or cancel subscriptions in Google Play → Subscriptions. See Account & Data Deletion for full steps and how to request server-side association cleanup.
Tesla: Unlinking Tesla in the App deletes all data tied to your Tesla account on our servers (tokens, vehicles, Tesla charging history, pending charges and recorded vehicle signals). To revoke access on Tesla’s side, use Tesla’s official page (the App takes you there when you unlink).
Anonymous vehicle samples and station fingerprints already merged into cohort stats, as well as missing-vehicle, pioneer-station, and facility-report review items, may not be removable record-by-record. Uninstalling the App also removes on-device data (including charge excerpts and cover photos, unless covered by a system backup). After uninstall, push tokens may be cleared or marked invalid when delivery fails.
Policy Updates
We may update this policy for product or legal reasons and will revise the “Last Updated” date on this page. For material changes, we will provide appropriate notice in the App or on our site.
Contact
Questions about privacy, or requests to remove a push token: [email protected]