Privacy Policy — Canada Licence Prep
Publisher: Bisai Technologies (Bisai Technologies, LLC, a Delaware limited liability company), 131 Continental Dr, Suite 305, Newark, DE 19713, United States Contact: contact@bisaitechnologies.com Effective date: 28 September 2026 · Version: 1.0 Hosted at: https://bisaitechnologies.com/legal/canada_licence_prep/privacy Also available in French: https://bisaitechnologies.com/legal/canada_licence_prep/privacy/fr
Canada Licence Prep ("the app") is an independent study aid for the written tests of the Canadian Firearms Safety Course (CFSC) and Canadian Restricted Firearms Safety Course (CRFSC), the Ontario security guard test, provincial security guard and hunter education exams, and the Pleasure Craft Operator Card (PCOC) exam. This policy explains what data the app processes, why, for how long, and what rights you have. It is written for the app as it is built: there is no account, no login and no email address anywhere in the app.
This policy follows the ten fair information principles of the Personal Information Protection and Electronic Documents Act (PIPEDA): accountability, identifying purposes, consent, limiting collection, limiting use, disclosure and retention, accuracy, safeguards, openness, individual access, and challenging compliance. Where you live in Quebec, Alberta or British Columbia, the provincial private-sector privacy laws (the Quebec Act respecting the protection of personal information in the private sector as amended by Law 25, Alberta PIPA, BC PIPA) apply in place of PIPEDA and this policy is written to satisfy them.
1. Who is responsible (accountability)
Bisai Technologies is responsible for the personal information described here. Our Privacy Officer (the person in charge of the protection of personal information under Quebec Law 25) is reachable at contact@bisaitechnologies.com. Put "Privacy" in the subject line.
2. The short version
- The app never asks for your name, email address, phone number, photo or location.
- Your only identifier is an anonymous app user ID created on your device by the RevenueCat SDK when you first open the app (it looks like
$RCAnonymousID:…). It is not linked to your identity. - Your study progress (answers, scores, flashcards, notes, exam date, streak, ACTS/PROVE drill results, storage-scenario results) is stored on your device only. You can erase it at any time in Settings > Data > Reset app data.
- Data leaves your device for exactly six purposes: subscriptions, usage analytics, crash reports, question problem reports, the "explain it differently" AI feature, and exam outcome logging for the pass guarantee. Each is described in section 4.
- We do not sell personal information, we do not show ads, and we do not use advertising trackers.
- Some personal information is stored or processed outside Canada (United States and European Union); see sections 5 and 6.
3. Your anonymous ID
When you first open the app, the RevenueCat SDK generates a random identifier and stores it on your device. This ID:
- is sent with every request to our server (header
X-User-Id) so that daily limits, rate limits and the pass guarantee can work without an account; - is the identifier under which your subscription is recorded by RevenueCat;
- is the identifier under which analytics events are recorded by PostHog.
If you delete the app and reinstall it, a new ID is generated. Use Restore purchases to re-attach an active subscription to the new ID. You can view and copy your current ID in Settings > About > Your anonymous ID; you will need it if you ask us to delete server-side data (section 8).
4. What we collect, why, and on what basis (identifying purposes, consent, limiting collection)
Consent for the processing that is necessary to deliver the features you use (sections 4.1, 4.2, 4.4 to 4.10) is implied when you install and use the app, and you may withdraw it by stopping use and resetting app data. Consent for usage analytics (section 4.3) can be withdrawn at any time with a toggle in the app.
4.1 Study data — on your device only
Answers given, per-topic scores, spaced-repetition schedule, mock exam sessions and results, diagnostic results, flagged questions, notes, chosen route (CFSC, CRFSC, Ontario security guard, BC or Alberta security guard, hunter education by province, PCOC), explanation language (English or French), exam date, reminder time, streak, exam-day checklist state, readiness status, practical-test coach (ACTS and PROVE drill) progress, storage and transport scenario trainer results, and settings.
- Where: a local SQLite database and local preferences on your device. Included in your device's normal OS backup if you have backups enabled (Apple iCloud backup / Google backup), under Apple's or Google's terms.
- Purpose and basis: providing the study features you asked for. This data is not transmitted to us except as described in 4.4 (aggregated answer statistics) and 4.8 (exam outcome).
- Retention: until you reset app data or uninstall the app.
4.2 Subscriptions and purchases
Payments are made through Apple's App Store or Google Play. We never see your card number, bank details or billing address. Subscription state is managed for us by RevenueCat.
- Data: anonymous app user ID; store receipt or purchase token; product identifier (
canada_licence_prep_weeklyorcanada_licence_prep_monthly); price, currency and store country; purchase, renewal, cancellation and refund dates; entitlement status; device platform, OS version and app version. - Recipients: Apple Inc. or Google LLC (as independent organisations responsible for the payment, under their own privacy policies); RevenueCat, Inc. (our service provider, United States); our server, which checks your entitlement when you use the AI feature and caches the result for ten minutes.
- Purpose and basis: delivering the subscription you bought (necessary for the contract).
- Retention: subscription records are kept by RevenueCat while your anonymous ID exists and are deleted on request (section 8). Our entitlement cache expires after ten minutes. Aggregated revenue reports contain no personal information and are kept for accounting purposes for 10 years.
4.3 Usage analytics (PostHog)
We measure how the app is used so we can fix confusing screens, balance question difficulty and decide what to build next.
- Data: event names (for example
app_started,diagnostic_completed,practice_answered,mock_completed,paywall_viewed,purchase_completed); event properties (route, topic, question ID, whether an answer was correct, time taken, screen name, paywall variant shown, plan selected); person properties (app ID, whether you are a subscriber, plan, route, exam date); device model, OS version, app version, app language, time zone and screen size; a session identifier; your anonymous app user ID. Your IP address is received by PostHog to deliver the request and to derive a country-level location; PostHog is configured to discard the IP address itself. - Feature flags: PostHog also decides at random which paywall layout you see (
paywall_variant) and records which variant was shown. - Recipient: PostHog, Inc. (our service provider), hosted on PostHog Cloud EU in Frankfurt, Germany.
- Purpose and basis: understanding and improving the app. Analytics is switched on by default. You can turn it off at any time in Settings > Privacy > Share usage analytics; from that moment no further events are sent.
- Retention: 12 months from collection, then deleted.
4.4 Aggregated answer statistics
To calibrate question difficulty, the app sends batches of {question ID, correct or not, time taken, mode} to our server.
- Data stored: per-question totals only (attempts, correct answers, average time). The batch is processed and not kept; your anonymous ID appears in the request header for rate limiting and remains only in server access logs (30 days).
- Purpose: maintaining accurate content.
4.5 Crash reports
If the app crashes or hits an unexpected error, a report is queued on the device and sent to our server when a connection is available.
- Data: error message, stack trace, app version, platform, OS version, the last screens and actions before the error (breadcrumbs), and your anonymous app user ID.
- Purpose: keeping the app working.
- Retention: 90 days.
4.6 Question problem reports
Every question has a Report a problem button.
- Data: question ID, content pack ID and version, the reason you select, any free text you type, app version and your anonymous app user ID. Please do not include personal information in the free-text field; if you do, we delete it when we process the report.
- Purpose: correcting content, based on a report you choose to send.
- Retention: until the report is resolved, then 12 months, and never longer than 24 months.
4.7 "Explain it differently" (AI explanations)
Subscribers can ask for an alternative explanation of a question. The request is served by our server, which uses Google Cloud Vertex AI (Gemini models) to generate the text.
- Data sent by the app to our server: question ID, content pack ID, requested mode (simpler, different, translate), language, and your anonymous app user ID (used to enforce the daily cap and check your subscription).
- Data sent by our server to Google: the question text, answer options and existing explanation, loaded from the content pack by question ID. No user identifier and no personal information is sent to Google. Google Cloud processes this as our service provider and does not use it to train its models.
- Data stored by us: a daily counter per anonymous ID (deleted after 30 days) and, optionally, the generated explanation cached against the question ID with no user link.
- Purpose and basis: a feature you request (necessary for the contract).
4.8 Exam outcome and the pass guarantee
After your exam you can log the result (pass or fail) in the app. This is optional.
- Data: route, exam date, pass or fail, the readiness status the app had assigned before the exam, and your anonymous app user ID.
- If you make a guarantee claim by email, you will send us your official result document (course report, test result notice). It contains your name and result. We use it only to verify the claim, store it in our support mailbox, and delete it 90 days after the claim is closed.
- Purpose and basis: the pass guarantee in our Refund Policy (necessary for the contract).
- Retention: 24 months.
4.9 Redeem codes
If you enter a promotional code, the code and your anonymous app user ID are recorded to prevent reuse. Retention: 36 months.
4.10 Remote configuration and content updates
The app periodically downloads its configuration and updated question packs from our server. Each request carries the app ID, your anonymous app user ID, app version, platform and preferred language. Our web server keeps standard access logs (IP address, time, requested path, user agent) for 30 days for security and troubleshooting.
4.11 On-device features that involve no data transfer
- Daily reminder: a local notification scheduled on your device. We do not use push notifications and hold no device token.
- Audio (text-to-speech): questions are read aloud by your device's own speech engine, subject to your device settings. We send nothing.
- Practical-test coach and storage scenario trainer: the ACTS/PROVE drills, action-type diagrams and "which of these is legal?" picture scenarios run entirely on the device.
- Offline use: every study feature works without a network connection.
4.12 Links to other websites and referral links
The app links to official pages (RCMP Canadian Firearms Program, ontario.ca, Transport Canada, provincial hunter education programmes, the Justice Laws Website) and to the sources of each question. It also links to accredited PCOC course providers, firearms course instructors and security training schools. Some of these outbound links carry a referral code, and we may earn a commission if you buy a course from the provider. We share no personal information with any provider; the link opens in your browser and the provider's own privacy policy applies from that point.
5. Who receives data (service providers) and where it is processed (openness)
| Provider | Purpose | Location |
|---|---|---|
| RevenueCat, Inc. | Subscription management | United States |
| PostHog, Inc. | Usage analytics, feature flags | EU cloud (Frankfurt, Germany); company in the United States |
| Google Cloud (Google Cloud EMEA Ltd / Google LLC) | AI explanation generation (Vertex AI) | Processed in an EU region |
| Hetzner Online GmbH | Hosting of our server and database | Germany (European Union) |
| Apple Inc. / Google LLC | App distribution and payment (independent organisations) | Per their policies |
We have a written agreement with each service provider that limits its use of the information to our purposes and requires comparable protection. We do not sell personal information and we do not share it with advertisers or data brokers.
6. Transfers outside Canada and outside Quebec
Personal information described in section 4 is communicated to and stored by service providers outside Quebec and outside Canada: RevenueCat in the United States, PostHog in the European Union (Germany), Google Cloud in the European Union, and our server in Germany (European Union). Before choosing each provider we assessed the privacy risks of the transfer (a privacy impact assessment under section 17 of the Quebec private-sector Act) and concluded that the information receives protection equivalent to that required in Canada, through contractual clauses, technical safeguards and the fact that the information is pseudonymous. While abroad, the information may be accessible to the authorities of those countries under their laws.
7. Retention summary (limiting retention)
| Data | Kept for |
|---|---|
| Study data on your device | Until you reset app data or uninstall |
| Subscription records (RevenueCat) | While your anonymous ID exists; deleted on request |
| Entitlement cache on our server | 10 minutes |
| Analytics events (PostHog) | 12 months |
| Crash reports | 90 days |
| Question problem reports | Until resolved + 12 months (max. 24 months) |
| AI daily counters | 30 days |
| Exam outcome records | 24 months |
| Guarantee claim documents (email) | 90 days after the claim is closed |
| Redeem code records | 36 months |
| Server access logs | 30 days |
| Support emails | 24 months |
8. Your rights (individual access, challenging compliance)
You have the right to access the personal information we hold about you, to have it corrected, to withdraw consent, and, under Quebec Law 25, to have it de-indexed or deleted and to receive it in a structured, commonly used technological format (portability). Because we hold no identity data, we handle requests using your anonymous app user ID:
- Erase data on your device: Settings > Data > Reset app data. This deletes the local database and preferences.
- Erase data on our systems and at our service providers: copy your ID from Settings > About > Your anonymous ID and email it to contact@bisaitechnologies.com with the subject "Delete my data". We delete the matching records at RevenueCat, PostHog and on our server within 30 days and confirm by reply. Deleting the RevenueCat record ends access to any active subscription on that ID; cancel the subscription in your store settings first if you do not want to be billed again.
- Access or portability: email your ID and we send you the data we hold against it in a machine-readable format within 30 days.
- Stop analytics: Settings > Privacy > Share usage analytics.
We do not verify identity beyond possession of the ID, because the ID is the only link between you and the data.
If you are not satisfied with our answer, you may complain to the Office of the Privacy Commissioner of Canada (30 Victoria Street, Gatineau, Quebec K1A 1H3, priv.gc.ca), to the Commission d'accès à l'information du Québec (cai.gouv.qc.ca), or to the Information and Privacy Commissioner of Alberta or of British Columbia, as applicable.
If you are in the European Economic Area or the United Kingdom, you also have the GDPR / UK GDPR rights of access, rectification, erasure, restriction, portability and objection, exercised in the same way, and you may complain to your national supervisory authority (in the UK, the Information Commissioner's Office, ico.org.uk). The legal bases we rely on are performance of the contract (sections 4.1, 4.2, 4.7, 4.8, 4.9) and legitimate interest (sections 4.3, 4.4, 4.5, 4.6, 4.10).
9. Users in California (CCPA/CPRA)
In the past 12 months we have collected these categories of personal information: identifiers (anonymous app user ID), commercial information (subscription purchase records), internet or other electronic network activity (in-app interactions, crash data). We collect them for the business purposes described in section 4. We do not sell personal information and we do not share it for cross-context behavioural advertising. We do not collect sensitive personal information. You have the right to know, delete and correct, and the right not to be discriminated against for exercising these rights. Exercise them by emailing contact@bisaitechnologies.com with your anonymous ID.
10. Children
The app is intended for adults preparing a firearms licence, security guard licence, hunting licence or boating card. It is not directed to anyone under 16, and we do not knowingly process information from children under 16. If you believe a child under 16 has used the app and data has been sent to us, email us with the anonymous ID and we will delete it.
11. Safeguards
All traffic between the app and our server, RevenueCat and PostHog uses TLS. Content packs are signed (Ed25519) and hash-verified before use. Our server is protected by rate limits per anonymous ID, and administrative access requires authentication. No system is perfectly secure; if a confidentiality incident presenting a risk of serious injury affects your information, we will notify the Privacy Commissioner of Canada and, where required, the Commission d'accès à l'information and affected users through the app, and record the incident in our incident register.
12. Changes to this policy
When we change this policy we update the version number and effective date at the top, publish the new text at the URL above, and, for material changes, show a notice in the app. Continued use after the effective date means the new version applies.
13. Contact
Bisai Technologies — Privacy Officer (person in charge of the protection of personal information) 131 Continental Dr, Suite 305, Newark, DE 19713, United States contact@bisaitechnologies.com