Effective date: 2026-09-23
Provided by: BC Class 5&7 — an individual developer based in British Columbia, Canada
Accountable for privacy / Contact: Privacy Officer, BC Class 5&7 · support@vozai.com
Write to that address and we will give you the developer's full registration details — legal name and mailing address.
BC Class 5&7 helps you study for the knowledge test for a British Columbia Class 5, 7 or 7L driver’s licence. This policy explains what leaves your device, why, where it goes, and how long it stays there. It describes the app as it ships, and also covers our website, bcclass.vozai.com (section 5c); if we change what we collect, we change this page.
We list these one by one rather than as a single sweeping claim, because a sweeping claim would be easier to write than to keep.
What we do receive is described in the sections that follow. Nothing the app sends is tied to a name, an account, or a device identifier. Buying a code on the website is different; see section 5c.
The app talks to our server to download question packs and to check whether a pack is unlocked. Two things travel with every one of those requests:
When the app checks for or downloads a content pack, it sends the name and version of the pack it wants, plus one proof that you are entitled to it: a signed token issued when you redeemed a code.
We do not store it.
Redeeming a code sends exactly two things: the code itself, and a one-time retry identifier so that tapping the button twice does not burn two codes. Nothing else — no device identifier, nothing about your device.
The app deletes the retry identifier as soon as the redemption finishes. This is deliberate: an identifier that survived one redemption and reappeared in the next would become a way to recognise your device, which is the thing this app is built not to do.
We keep a ledger of which codes were issued and when each was redeemed. The ledger records the code, not the person who used it.
If you think a question, answer, or translation is wrong, you can report it. Nothing is sent unless you tap submit.
A report contains only:
There is no free-text field anywhere in a report. You cannot type a message into it, which also means you cannot accidentally put your name, your email, or anything else about yourself into one. The server rejects any report containing a field it does not recognise.
Newer versions of the app also attach three things, to help us diagnose problems: the app version, your phone model (iPhone15,3 on iPhones, Pixel 7 on Android), and the OS version. This is the model, not the device name — the model is set by the manufacturer and shared by everyone with that handset, while the device name is the one you typed into Settings (it often carries its owner's name), and we do not read it. We say "newer versions" because these three were added later: builds already installed send none of them, and we take what arrives rather than filling in the gaps.
All three are low-cardinality — hundreds of thousands of people share a phone model — so they cannot be combined into an identifier that links two reports together. That is why they can be here while free text cannot.
No identifier is stored with a report — not the app key, not an IP address, not anything about your device. The server adds only its own clock reading and a random reference number of its own making. ("stored with" is doing real work here: section 2 says every request carries the app key, in a header. It is not kept alongside the report.)
To be exact about the IP, because "we don't collect it" would be too strong: submitting a report is an ordinary web request, so our server sees your IP while handling it, and it lands in the access log like every other request (section 2). It is kept there for the period in section 9 and then deleted. What does not happen is the two being stored together — nothing links a report to the request that delivered it.
A report can optionally carry a few technical details about content updates that failed recently, to help us work out why.
Where to see them, and where to clear them: the same place. They live in the report screen and nowhere else — expand the section to read them, and Clear these entries to delete them. There is no separate setting for this, because the only reason these entries exist is to be attached to a report.
Settings → Contact us contains a feedback form. This is the only place in the app where you can write freely and have those words reach our server. It is a separate path from the problem reports in section 5, and it collects different things.
Nothing is sent until you press send.
A piece of feedback contains:
0.1.0).Nothing that links two pieces of feedback together — no account, no device identifier, no reference number. Two pieces of feedback from the same person are two unrelated records here. Your IP does appear in the server access log (section 9), which is kept at most 14 days, stored separately from feedback content and never joined to it.
We do not know what you will write, so we cannot promise it contains nothing about you. If you type your name, phone number, or email address, those characters travel with it — the form asks you not to, but that is a reminder, not a guarantee.
So this text is kept for 365 days and then deleted, not kept indefinitely (see section 11 for why).
Feedback carries no way to contact you, so we cannot write back. We do read it; you will not hear from us. If you want a reply, email the address below instead — that is a channel you control and that works in both directions.
This section covers our website, bcclass.vozai.com, including its home page and these legal pages.
Visiting the website
Buying a code on the website
This one does not go to us at all, and we mention it because it is easy to miss.
Your study data is stored on your device in a file that is included in your device's normal backup (iCloud on iOS, your Google account on Android). If you back up your device and restore onto a new one, this comes with it:
install failed: signature), and they are never sent to us: they exist so that you, or someone helping you, can see what the app did. They are not the diagnostics in section 5a, which are a different and much narrower thing.These backups are held by Apple or Google under their privacy policies, not ours. We cannot read them.
You can see both logs in the app's settings and delete them there with Clear the local logs. Clearing them and hiding them are separate actions on purpose: hiding the diagnostics view does not delete anything — the data stays in the file and stays in your backups until you explicitly clear it. Deleting the app removes it along with everything else.
This is a different button from the one in section 5a. That one clears the entries a report would carry; this one clears the logs described here. Each says which one it means, and neither touches the other.
If the app crashes, it sends a crash report so we can fix it. We use Sentry for this.
The report describes what the software was doing when it failed. We have configured it to leave you out of it:
Two things we do keep: your device model (iPhone15,3 on iPhones, Pixel 7 on Android) and your OS version. Not the device name — that field routinely carries its owner's name. We keep these two because some defects appear only on certain screen sizes or on one OS version, and a crash report that cannot tell one phone from another is useless exactly when it is needed most.
Sentry stores these reports on our behalf in the United States.
We are based in British Columbia, Canada. Your data is not.
| What | Where it is held |
|---|---|
| Our server (content downloads, entitlement checks) | United States — Alibaba Cloud, us-west-1 |
| The website (section 5c) | United States — the pages sit on the server above; visits pass through Cloudflare first |
| The redemption ledger and problem reports | United States — Cloudflare D1, primary copy in Los Angeles |
| Crash reports | United States — Sentry |
So everything in the sections above that leaves your device is transferred to and processed in the United States, where it is subject to United States law — including the possibility of lawful access by authorities there. By using the app you understand this. The payment details you give PayPal and the email you send to support@vozai.com (section 5c) are handled by PayPal and by our email provider respectively, and are not covered by this paragraph.
Canada's Personal Information Protection and Electronic Documents Act (PIPEDA) requires us to tell you when personal information is processed outside the country. The paragraph above is that disclosure — it is a legal requirement, not boilerplate we added to be safe.
One note for anyone checking our work: our server's clock is set to Vancouver time. That says nothing about where the machine is. We confirmed the location from the instance's own region metadata, not from its timezone.
| What | How long |
|---|---|
| Web-server access logs, which contain IP addresses | No more than 14 days |
| Our own application logs, which also record the IP of each request, along with the method, path, status and how long it took | 14 days |
| The redemption ledger — which codes were issued, and when each was used | Kept indefinitely. A code is marked as used or withdrawn; the row is never deleted |
| Problem reports (section 5), and any diagnostics you chose to attach to one | Kept long-term, so that we can correct the question and investigate the fault later |
| The free text you write in feedback (section 5b) | Kept for 365 days, then deleted. Unlike the row above: that is a field you can type into, and section 11 says why that changes the answer |
We keep the list short on purpose. Each of these, except PayPal, holds data on our behalf under its own privacy policy; PayPal handles payment details under its own privacy policy:
There is no advertising network and no analytics provider on this list, because the app uses neither.
We would rather say this plainly than offer something we cannot deliver.
A stored problem report carries no identifier of any kind — not the app key, not your IP address, nothing about your device. So we have no way to find the reports a particular person sent, and you have no way to show us which ones are yours. This is a consequence of collecting no identifiers, not an exception to it.
We looked at giving each report a reference number that your copy of the app would remember, so that you could quote it back to us. We decided against it: a device only remembers what it still has, and reinstalling the app or moving to a new phone would lose those numbers while the reports stayed. That would have let us write a sentence that reads like a deletion right without being one.
Problem reports contain no free text and no identifiers (section 5), which is what makes keeping them acceptable to us.
Feedback (section 5b) is different, so its retention is different. There you can type, and anything you can type into may end up carrying something about you — we cannot promise on your behalf that it will not. So that text is kept for 365 days and then deleted, not kept indefinitely. The test is the same one either way: what can be kept indefinitely is what structurally cannot hold you.
BC Class 5&7 is not directed to children under 13, and we do not knowingly collect information from them. There is no account to create and no personal detail the app asks for, so there is nothing for a child to hand over in the app; sections 2 through 7 describe everything that leaves a device, whoever is holding it. Buying a code on the website goes through PayPal and hands over the email address used to pay; see section 5c.
The knowledge test this app prepares you for has a minimum age of 16 in British Columbia. The app itself does not verify anyone's age.
If you believe a child has sent us something through the problem-reporting feature, write to support@vozai.com. As explained in section 11, reports carry no identifier, so we would need enough detail to find the report itself.
If we change what leaves your device, we update this page and change the effective date at the top. Material changes will also be noted in the app's release notes.
Questions about this policy, or about anything above: support@vozai.com.