Heartbeat Kids privacy notice
This notice covers your Heartbeat Kids account at accounts.heartbeat.kids: signing up, logging in, the grown-up PIN, your children list and paying for a plan. Each app, such as Numbula, has its own notice for the learning data it keeps. The heartbeat.kids website and its email list have their own notice too.
Who is responsible
- Heartbeat Kids is made by Freedom! Family Limited, a company registered in Hong Kong. It decides what the account service keeps and why.
- It handles personal data under Hong Kong's Personal Data (Privacy) Ordinance (Cap. 486).
- For families in the United States, the Children's Online Privacy Protection Act (COPPA) applies too.
- Registered office: Room 1501, Prosperity Tower, 39 Queen's Road Central, Hong Kong. Phone +852 2110 0990.
- Write to [email protected] about anything on this page. A person reads it.
One account, many apps
- One account works in every Heartbeat Kids app. We keep the account and the children list. Every app you use sees the same list.
- Each app keeps its own learning data, such as answers and progress, under the same child. That data stays in the app, under the app's own data terms and notice.
- When you accept an app's data terms, the app tells us, and we record which version you accepted and when.
- An app learns from us your name, your email, your plan, your children and whether you gave consent. It never gets your password or your PIN.
What we hold about you
- Your email address, and when you verified it. Older accounts moved from Numbula may have a username and no email.
- Your name, if you gave one, and your time zone.
- Your password and grown-up PIN, stored only as scrambled hashes. We can't read them.
- If you sign in with Google: the ID Google gives you, your name and email as Google has them, and when you connected and last used it.
- When you ticked the box at sign-up to say you are 18 or over and the child's parent or guardian, or have their permission. When you typed the consent code we emailed you, and which version of these terms you saw.
- Your plan, and which version of each app's data terms you accepted.
- Each device signed in to your account: the browser and system it reports, such as Chrome on Android, when it signed in and when it was last used.
- A code we email you, while it works: what it is for, the address, a scrambled hash of the code and its wrong tries.
- Wrong passwords, PINs and codes, counted to slow down anyone guessing.
- If mail to your address bounced or was marked as spam, when.
- If you pay: your Stripe customer ID, your subscription (plan, price, renewal date and whether it stops), and your agreement to the renewal terms. Never your card or billing address.
- If you close the account, when. If it goes unused for nearly 24 months, when we warned you.
What we hold about a child
- The name you typed, and the age band you picked.
- Whether the child is active or paused.
- That is all. No email, no photo, no location. Each app keeps its own learning data, and its own notice says what that is.
Why we hold it
- To sign you in to every app with one account.
- To keep a child out of the grown-up screens, with the PIN.
- To get your consent as a parent before any app holds anything about your child.
- To take payment for a plan, and to tell each app what your plan opens.
- To email you: codes, notices about your account, payment confirmations, renewal reminders, and at least 30 days' notice of a price change.
- To count, as daily totals, how many accounts and payments came from each page and campaign on heartbeat.kids. When you sign up or start a payment, we check which page the same browser opened that day, as the heartbeat.kids privacy notice explains, and add one to that day's total. The total holds nothing about you or your account.
- Not to advertise, not to profile, and not to train a model.
Parent consent
- Before you can add a child, we email you a code. Typing the code is your consent.
- An account that never gives consent is deleted, with its email, after 14 days. It holds no child, because a child can only be added after consent.
Who can see it
- You, on your account page.
- Our team, to help when you write to us.
- The Heartbeat Kids apps you use, as "One account, many apps" says above.
- Fly.io (United States) runs our server, in Singapore. Requests reach it through Fly.io's network, with your IP address in them. Fly.io keeps our server's log for 7 days. The log holds no IP address.
- Neon (United States) stores the database.
- Amazon Web Services (United States) sends our email through Amazon SES, from US East (N. Virginia). It gets your email address and each email. If an email to you bounces for good, Amazon SES keeps the address so we stop writing to it.
- Stripe (United States) takes payments. When you go to Stripe's checkout, Stripe gets your email and your account ID. You type your name, billing address and card on Stripe's own page. Stripe gets nothing about your child. Stripe keeps the payment records the law makes it keep.
- Google (United States), only if you sign in with Google. It learns that you signed in to Heartbeat Kids, and gets nothing about your child.
- Cloudflare (United States) carries every request between your device and our server, so it sees your IP address and which pages you open.
- Better Stack (United States) checks every few minutes that the account service answers. It only loads a public page, and sees nobody's data.
- Nobody else, except where the law requires it. We don't sell or share data for advertising.
Where your data lives
- The server runs in Singapore.
- Email goes through the United States. Stripe, Google and Cloudflare handle data in their own places, under their own notices.
What we keep on your device
- One cookie,
__Host-hk_session, keeps you signed in on accounts.heartbeat.kids. Scripts on the page can't read it. Logging out removes it. - No ads, no tracking cookies and no scripts from other companies.
How long we keep it
- We keep your account while you use it.
- Close the account on your account page, and every app signs you out. We wait 30 days, so you can change your mind. Then we delete the account and every child on it, and tell every app to delete its data. We keep asking until each app has.
- An account that no app has used for 24 months is deleted the same way. We email a warning 30 days before, if your email is verified. An account that pays for a plan isn't deleted this way.
- An account that never gives consent is deleted after 14 days.
- Deleting a child removes them from the list and from every app.
- If you paid, deleting the account cancels the subscription and deletes your customer record at Stripe.
- Backups of the database can hold deleted data for up to 30 days more.
Your child's data: see, correct, delete
COPPA gives a parent these rights. You can use them for any child on your account.
- See it: your account page shows each child's name, age band and whether they are active. Each app shows its own learning data.
- Correct it: change a child's name or age band on your account page.
- Delete it: delete the child on your account page. They go from the list and from every app.
- Stop it: delete the child, or close the account. No app collects anything more about them.
- Or write to [email protected], and we help you do any of these.
Your own data
- A copy: write to us, and we send you what we hold about you.
- A correction: change your name, email, password and PIN on your account page, or write to us.
- Deletion: close the account, or write to us.
- A complaint: write to us first. If we don't put it right, you can complain to the Privacy Commissioner for Personal Data in Hong Kong, or to the data protection authority where you live.
Changes
- If we change something that matters, we put a new date on this page and email you before the change takes effect.