Your scan data is private. HalalCheck stores your scan history and settings locally on your device. We do not collect, transmit, or store your personal data or scan records on any server we control.
1. Data We Don't Collect
HalalCheck does not:
- Transmit your scan history, ingredient queries, or product lookups to our servers
- Create or require user accounts
- Sell or share your personal information with third parties for marketing
- Store your data outside your device (except as described below for third-party services)
- Access your camera roll beyond the moment of scanning
2. Data Stored on Your Device
All app data lives locally on your device:
- Scan history: Product names, barcodes, ingredient lists, and verdicts you have received -- stored in SwiftData on your device only
- Daily scan count: A counter stored in UserDefaults to enforce free-tier daily limits; resets each day and contains no personal information
- Product cache: Ingredient data fetched via barcode lookup is cached locally for 30 days to reduce repeat network requests; stored in your device's caches directory
- Settings: Notification preferences, haptics setting, and onboarding completion status
3. Barcode Lookups -- OpenFoodFacts and UPC Item DB
When you scan a barcode, HalalCheck queries two public databases to retrieve the product's ingredient list:
- OpenFoodFacts (openfoodfacts.org) -- an open, community-maintained food database. Your barcode is sent to their API. OpenFoodFacts is governed by its own Terms of Use and privacy practices.
- UPC Item DB (upcitemdb.com) -- a free barcode lookup service. Your barcode is sent to their API as a fallback. UPC Item DB is governed by its own privacy policy.
Only the barcode number is transmitted -- no device identifiers, location, or personal information accompanies the request. Results are cached locally for 30 days so repeat lookups for the same barcode do not require a network call.
4. Label OCR Scanning
When you scan a product label, HalalCheck uses Apple's Vision framework to perform optical character recognition entirely on your device. No image or extracted text is ever sent to any external server. The camera frame is processed in real time on your device and immediately discarded.
5. Community Corrections (Optional Feature)
HalalCheck includes a community corrections system that can fetch ingredient override data from a hosted JSON file. When this feature is enabled, the app downloads a small JSON file containing ingredient verdict adjustments. This request contains no personal data. The feature is currently disabled by default.
6. App Permissions
HalalCheck may request the following permissions:
- Camera: To scan barcodes and photograph ingredient labels. Camera frames are processed on-device and never uploaded.
- Notifications: To deliver optional usage tips. You control this in iOS Settings and can decline it during onboarding.
- App Tracking Transparency (ATT): Required by Apple if we serve ads to free-tier users. Declining ATT means you may see less relevant ads; it does not affect any app functionality.
7. Advertising (Free Tier)
The free tier displays advertisements via Google AdMob. AdMob may use your device's advertising identifier (IDFA) to serve ads if you grant ATT permission. Ad SDK initialisation is deferred until after onboarding is complete and only for users who are not Premium subscribers. Google's data use is governed by Google's Privacy Policy. Premium subscribers see no ads and the ad SDK is never initialised for their sessions.
8. Firebase Analytics and Crashlytics
HalalCheck uses Firebase (by Google) for two purposes:
- Analytics: Anonymised, aggregated event data (e.g. which scan mode is used, app open counts). No ingredient lists, scan verdicts, product names, or barcodes are included in analytics events.
- Crashlytics: If the app crashes, a report is sent containing device model, iOS version, and a stack trace. No personal data or scan history is included.
Firebase data is governed by Google's Privacy Policy.
9. In-App Purchases
Premium subscriptions are processed entirely by Apple via StoreKit 2. LynxApps never sees or stores your payment details. Purchase receipt validation happens on-device.
10. Data Retention and Deletion
Your data exists only on your device. To delete it:
- Delete individual scan records from the History tab at any time
- Delete the app from your iPhone to permanently remove all HalalCheck data, including scan history and cached product data
11. Security
HalalCheck relies on iOS's built-in security model:
- SwiftData databases are stored in the app sandbox, encrypted at rest by iOS data protection
- No personal data is transmitted over the network except as described above (barcode numbers to third-party APIs, anonymised analytics to Firebase)
- Product cache and community corrections are stored in the caches directory and can be cleared by iOS at any time without data loss
12. Children's Privacy
HalalCheck is not directed to children under 13. We do not knowingly collect information from children under 13.
13. Your Rights (GDPR / CCPA)
Because HalalCheck stores all personal data locally on your device:
- Access: All your scan data is visible within the app at any time
- Deletion: Delete individual records in-app or delete the app entirely
- No data sale: We do not sell personal data
- Third-party opt-out: You may decline ATT to limit ad tracking; you may disable notifications at any time in iOS Settings
14. Changes to This Policy
We may update this policy from time to time. Material changes will be reflected in the "Last updated" date above. Continued use of the app constitutes acceptance of the revised policy.
15. Contact
Privacy questions? Reach us at:
- Email: support@lynxapps.com
- Response time: within 2-3 business days
Privacy by design. HalalCheck processes ingredient lists and verdicts entirely on your device. What you eat and what you check is your business -- not ours.