Dasar Privasi
1. Data yang kami kumpul
| Jenis | Contoh | Kenapa |
|---|---|---|
| Akaun | E-mel, nama paparan, kata laluan (disimpan sebagai cincangan) | Log masuk dan mengenal pasti anda dalam isi rumah |
| Resit & dokumen | Gambar resit, bil, penyata, borang EA, teks yang dibaca AI | Rekod perbelanjaan dan bukti pelepasan cukai |
| Kewangan | Pendapatan tahunan, PCB, zakat, komitmen bulanan, pendapatan sampingan | Anggaran cukai dan bajet — semuanya pilihan |
| Isi rumah | Nama keluarga, ahli, peranan dan kebenaran | Perkongsian yang terkawal antara ahli |
| Teknikal | Alamat IP (untuk had kadar sahaja, tidak disimpan kekal), jenis pelayar, cap masa | Keselamatan dan pencegahan penyalahgunaan |
Kami tidak meminta nombor kad pengenalan, nombor cukai (TIN) atau nombor akaun bank, dan menasihatkan anda tidak menaipnya ke dalam nota resit.
2. Bagaimana AI digunakan
Gambar resit dihantar kepada perkhidmatan model bahasa pihak ketiga (Google Gemini API) untuk dibaca. Bacaan itu dipulangkan kepada anda sebagai cadangan. Setiap bacaan dicatat sebagai satu unit kuota isi rumah; kandungan resit tidak disimpan oleh kami di luar akaun anda.
Peringkat perkhidmatan Google. Buat masa ini ListBelanja menggunakan peringkat percuma Gemini API. Di bawah terma Google untuk peringkat percuma, kandungan yang dihantar dan jawapan yang dijana boleh digunakan oleh Google untuk menyediakan, menambah baik dan membangunkan produk serta teknologi pembelajaran mesinnya, dan boleh dibaca oleh penilai manusia (selepas diputuskan daripada akaun kami). Pada peringkat berbayar, Google tidak menggunakan kandungan itu untuk menambah baik produknya. Jika kami beralih ke peringkat berbayar, perubahan itu diumumkan melalui kemas kini dasar ini. Jika anda tidak mahu sesuatu resit (contohnya resit perubatan) dihantar kepada AI, masukkan resit itu secara manual — kemasukan manual tidak menghantar apa-apa kepada AI.
Pembantu soalan cukai ("Tanya ListBelanja"): apabila anda bertanya, soalan anda dan ringkasan angka rekod isi rumah (pelepasan yang digunakan dan baki had, anggaran cukai — tanpa gambar resit, nama atau e-mel) dihantar kepada Google Gemini API di bawah peringkat perkhidmatan yang sama (lihat di atas). Kami menyimpan hanya bilangan soalan sebulan (untuk kuota) serta model dan token yang digunakan — bukan teks soalan atau jawapan.
Resit melalui e-mel. E-mel yang anda forward ke alamat resit keluarga diterima oleh Resend (Amerika Syarikat) bagi pihak kami. Kami menyimpan lampiran atau teks resit itu sehingga anda memprosesnya; yang belum diproses dipadam selepas 30 hari. E-mel daripada pengirim yang bukan ahli keluarga ditolak dan kandungannya tidak disimpan — hanya sebab penolakan. AI hanya membaca resit selepas anda menekan Proses.
3. Siapa boleh melihat data anda
- Anda: resit, belanja dan rekod yang anda masukkan.
- Admin isi rumah anda: semua resit dalam isi rumah, kerana dia memfail untuk keluarga. Ahli lain hanya melihat resitnya sendiri, kecuali admin memberi kebenaran "Lihat resit semua orang".
- Juruaudit yang dilantik admin: rekod yang sudah difail atau dikunci, baca sahaja.
- Pemilik platform: hanya statistik agregat (bilangan isi rumah, penggunaan). Dia tidak boleh membaca resit mana-mana keluarga; sekatan ini dikuatkuasakan oleh pangkalan data.
- Pembekal infrastruktur (di bawah) memproses data bagi pihak kami dan terikat dengan syarat pemprosesan data mereka.
Kami tidak berkongsi data dengan pengiklan, broker data, atau LHDN. Kami hanya mendedahkan data jika dikehendaki oleh undang-undang Malaysia, dan akan memaklumkan anda kecuali dilarang.
4. Di mana data disimpan
- Pangkalan data: Supabase (PostgreSQL), rantau Asia Tenggara.
- Gambar & dokumen: Cloudflare R2, dengan pautan paparan yang tamat sendiri.
- Aplikasi: Cloudflare Pages.
- Bacaan AI: Google (Gemini API).
Data boleh diproses di luar Malaysia oleh pembekal ini. Dengan menggunakan perkhidmatan, anda bersetuju dengan pemindahan ini, yang dilindungi oleh syarat kontrak pembekal berkenaan.
5. Keselamatan
- Sesi disimpan dalam kuki tersulit yang tidak boleh dibaca oleh skrip (HttpOnly, Secure).
- Setiap baris data ditanda dengan isi rumahnya, dan pangkalan data menolak sebarang capaian silang isi rumah (Row Level Security).
- Kata laluan minimum 12 aksara; pautan jemputan sekali guna dan luput dalam 7 hari.
- Sandaran pangkalan data bulanan disulitkan.
- Tiada data disimpan dalam peranti anda, kecuali senarai "cuba dahulu" untuk pelawat tanpa akaun, yang dipadam sebaik sahaja dipindahkan ke akaun.
- Pendaftaran dan pemulihan kata laluan boleh disemak oleh Cloudflare Turnstile (semakan anti-bot tanpa CAPTCHA): Cloudflare memproses isyarat teknikal pelayar untuk tujuan keselamatan sahaja, bukan untuk iklan.
- Kata laluan baharu disemak terhadap senarai kebocoran awam (HaveIBeenPwned) secara k-anonymity: hanya 5 aksara pertama cincangan kata laluan dihantar — kata laluan anda tidak pernah meninggalkan pelayan kami.
6. Berapa lama kami simpan
- Rekod cukai disimpan selagi akaun aktif — LHDN menghendaki rekod disimpan 7 tahun, jadi kami tidak memadam resit lama secara automatik.
- Resit yang anda padam disimpan dalam tong sampah 30 hari, kemudian dipadam kekal.
- Bila isi rumah ditutup, semua data dipadam kekal dalam 30 hari, termasuk gambar dan sandaran yang boleh dicapai. Tempoh 30 hari itu membolehkan anda mengubah fikiran atau mengeksport dahulu.
7. Hak anda di bawah PDPA (termasuk padam akaun)
- Akses & salinan: Lagi → Data & pemulihan → Muat turun sandaran (JSON), atau pek audit ZIP.
- Pembetulan: sunting mana-mana rekod dalam aplikasi bila-bila masa.
- Tarik balik persetujuan / pemadaman: mana-mana pengguna boleh memadam data dan akaunnya sendiri dalam Lagi → Data & pemulihan → Padam data saya. Ia berlaku serta-merta, dalam aplikasi, tanpa e-mel atau borang. Admin isi rumah pula boleh menutup seluruh isi rumah (Tutup isi rumah). Satu pengecualian: resit tahun yang sudah dikunci (difail kepada LHDN) dipindahkan kepada ketua keluarga anda dan bukan dipadam, kerana undang-undang menghendaki rekod cukai disimpan; anda dimaklumkan tentang ini sebelum mengesahkan.
- Had pemprosesan: anda boleh berhenti menggunakan ciri AI dan menambah resit secara manual.
- Aduan: hubungi kami dahulu; anda juga berhak membuat aduan kepada Pesuruhjaya Perlindungan Data Peribadi Malaysia.
- Hubungi kami: [email protected] — untuk permintaan data, aduan atau soalan privasi.
8. Kuki
Kami hanya menggunakan satu kuki yang perlu: sesi log masuk anda. Tiada kuki penjejakan atau analitik pihak ketiga.
9. Kanak-kanak
Akaun dibuka oleh orang dewasa. Ahli di bawah 18 tahun hanya boleh dijemput oleh admin isi rumah yang bertanggungjawab terhadap mereka, dan datanya dikawal oleh admin itu.
10. Perubahan
Kami akan memaklumkan perubahan penting kepada dasar ini dalam aplikasi — kad di skrin Utama bersama ringkasan perubahan — sekurang-kurangnya 14 hari sebelum berkuat kuasa. Setiap versi, termasuk perubahan kecil, direkod dalam Sejarah perubahan di bawah.
11. Hubungi kami
Soalan, aduan atau permintaan berkaitan data anda: Lagi → Bantuan & maklum balas dalam app — status dan balasan kami dipaparkan di situ. Pemadaman tidak memerlukan permintaan: Lagi → Data & pemulihan → Padam data saya berkuat kuasa serta-merta — butiran di Hak anda di bawah PDPA.
Pemprosesan pembayaran
Bayaran langganan diproses oleh Stripe, pemproses pembayaran berlesen. ListBelanja menerima daripada Stripe hanya maklumat yang diperlukan untuk mengurus langganan anda (pengenal pelanggan, status langganan, jumlah dan tarikh bayaran, serta empat digit terakhir kad jika dipaparkan oleh Stripe). Nombor kad penuh dan kod CVC tidak pernah dihantar kepada atau disimpan oleh ListBelanja. Rekod bayaran disimpan sekurang-kurangnya 7 tahun untuk keperluan perakaunan dan cukai.
Maklum balas
Apabila anda menghantar maklum balas dalam app, kami menyimpan mesej anda, jenisnya, dan maklumat teknikal (skrin semasa, bahasa, jenis peranti dan pelayar, sama ada app dipasang). Tiada kandungan resit dilampirkan. E-mel anda disimpan bersama laporan hanya jika anda menanda "benarkan pemilik menghubungi saya". Maklum balas digunakan untuk membaiki perkhidmatan, dipadam serta-merta jika anda memadam akaun, dan dipadam kekal 24 bulan selepas ia selesai atau ditutup.
Laporan ralat automatik
Jika app menghadapi ralat teknikal, ia menghantar laporan tanpa pengenalan kepada kami: mesej ralat, skrin yang dibuka, versi app, bahasa, jenis pelayar dan sistem, sama ada dalam talian dan sama ada app dipasang. Tiada akaun, e-mel, isi rumah, alamat IP atau kandungan resit dalam laporan itu — ia tidak boleh dikaitkan dengan anda. Laporan dipadam selepas 30 hari.
Sandaran
Untuk melindungi data anda daripada kehilangan, salinan sandaran pangkalan data dibuat setiap hari (disimpan 14 hari dalam storan peribadi kami) dan setiap bulan (disulitkan, disimpan 90 hari). Kata laluan tidak pernah disandarkan. Data yang anda padam kekal dalam salinan sandaran lama sehingga tempoh simpanan itu tamat, kemudian hilang sepenuhnya; ia hanya digunakan untuk memulihkan perkhidmatan selepas kerosakan, tidak untuk tujuan lain.
Sejarah perubahan
- Versi 1.8 · 27 September 2026 — Resit melalui e-mel: e-mel yang di-forward ke alamat resit keluarga diterima oleh Resend bagi pihak kami; lampiran atau teks resit disimpan sehingga diproses (dipadam selepas 30 hari); e-mel daripada bukan ahli keluarga ditolak tanpa kandungan disimpan.
- Versi 1.7 · 27 September 2026 — E-mel hubungan [email protected] untuk permintaan data dan aduan; kata laluan baharu disemak terhadap senarai kebocoran awam secara k-anonymity (kata laluan tidak pernah dihantar).
- Versi 1.6 · 27 September 2026 — Bahagian 5: pendaftaran dan pemulihan kata laluan boleh disemak oleh Cloudflare Turnstile (semakan anti-bot tanpa CAPTCHA; isyarat teknikal pelayar diproses untuk keselamatan sahaja).
- Versi 1.5 · 27 September 2026 — Bahagian 2 dibetulkan: ListBelanja kini menggunakan peringkat percuma Gemini API — di bawah terma Google, kandungan yang dihantar boleh digunakan untuk menambah baik produk Google dan dibaca oleh penilai manusia. Kenyataan terdahulu bahawa data tidak digunakan untuk melatih model telah ditarik balik. Kemasukan manual tidak menghantar apa-apa kepada AI.
- Versi 1.4 · 27 September 2026 — Bahagian 2 diperluas: pembantu soalan cukai 'Tanya ListBelanja' — soalan dan ringkasan angka rekod (tanpa gambar resit, nama atau e-mel) dihantar kepada Google Gemini; hanya bilangan soalan dan model/token disimpan, bukan teks soalan.
- Versi 1.3 · 25 September 2026 — Bahagian baharu 'Laporan ralat automatik': laporan teknikal tanpa pengenalan (tiada akaun, e-mel, IP atau resit), dipadam selepas 30 hari.
- Versi 1.2 · 24 September 2026 — Rujukan silang ditulis semula sebagai pautan yang jelas; bahagian 10 menerangkan cara perubahan diumumkan dalam app; sejarah perubahan ditambah. Tiada perubahan pada cara data anda digunakan.
- Versi 1.1 · 24 September 2026 — Permintaan data dan padam akaun kini terus dalam app (Bantuan & maklum balas, Padam data saya); terjemahan English dan 中文 ditambah.
- Versi 1.0 · 20 September 2026 — Versi pertama.
Perubahan penting diumumkan dalam app sekurang-kurangnya 14 hari sebelum berkuat kuasa. Perubahan kecil — ejaan, terjemahan, susunan atau penjelasan — direkod di sini sahaja.
Privacy Policy
1. Data we collect
| Type | Examples | Why |
|---|---|---|
| Account | Email, display name, password (stored as a hash) | Signing in and identifying you within the household |
| Receipts & documents | Receipt images, bills, statements, EA forms, text read by the AI | Expense records and evidence for tax reliefs |
| Financial | Yearly income, PCB, zakat, monthly commitments, side income | Tax estimates and budgeting — all optional |
| Household | Family name, members, roles and permissions | Controlled sharing between members |
| Technical | IP address (for rate limiting only, not stored permanently), browser type, timestamps | Security and abuse prevention |
We do not ask for your identity card number, tax number (TIN) or bank account number, and advise you not to type them into receipt notes.
2. How AI is used
Receipt images are sent to a third-party language-model service (Google Gemini API) to be read. The reading is returned to you as a suggestion. Each reading is counted as one unit of your household's quota; receipt content is not stored by us outside your account.
Google's service tier. ListBelanja currently uses the free tier of the Gemini API. Under Google's terms for the free tier, submitted content and generated responses may be used by Google to provide, improve and develop its products and machine-learning technologies, and may be read by human reviewers (after being disconnected from our account). On the paid tier, Google does not use that content to improve its products. If we move to the paid tier, the change will be announced through an update to this policy. If you do not want a particular receipt (for example a medical receipt) sent to the AI, enter it manually — manual entry sends nothing to the AI.
Tax question assistant ("Ask ListBelanja"): when you ask a question, your question and a numeric summary of your household's records (reliefs used and remaining caps, estimated tax — no receipt images, names or email) are sent to the Google Gemini API under the same service tier (see above). We store only the number of questions per month (for the quota) and the model and tokens used — never the question or answer text.
Receipts by email. Emails you forward to your family receipt address are received by Resend (United States) on our behalf. We keep the receipt attachment or text until you process it; unprocessed ones are deleted after 30 days. Mail from senders who are not family members is rejected and its content is not stored — only the reason for rejection. AI reads a receipt only after you tap Process.
3. Who can see your data
- You: the receipts, spending and records you enter.
- Your household admin: every receipt in the household, because they file for the family. Other members see only their own receipts, unless the admin grants the "See everyone's receipts" permission.
- An auditor appointed by the admin: records that are already filed or locked, read-only.
- The platform owner: aggregate statistics only (number of households, usage). They cannot read any family's receipts; this restriction is enforced by the database.
- Infrastructure providers (below) process data on our behalf and are bound by their data-processing terms.
We do not share data with advertisers, data brokers or LHDN. We disclose data only where required by Malaysian law, and will inform you unless prohibited.
4. Where data is stored
- Database: Supabase (PostgreSQL), Southeast Asia region.
- Images & documents: Cloudflare R2, with viewing links that expire on their own.
- Application: Cloudflare Pages.
- AI reading: Google (Gemini API).
Data may be processed outside Malaysia by these providers. By using the service you agree to this transfer, which is protected by the providers' contractual terms.
5. Security
- Sessions are kept in an encrypted cookie that scripts cannot read (HttpOnly, Secure).
- Every row of data is tagged with its household, and the database rejects any cross-household access (Row Level Security).
- Passwords are at least 12 characters; invitation links are single-use and expire in 7 days.
- Monthly database backups are encrypted.
- No data is stored on your device, except the "try first" list for visitors without an account, which is deleted as soon as it is moved into an account.
- Sign-up and password reset may be checked by Cloudflare Turnstile (an anti-bot check without CAPTCHAs): Cloudflare processes technical browser signals for security only, not for advertising.
- New passwords are checked against public breach lists (HaveIBeenPwned) using k-anonymity: only the first 5 characters of the password's hash are sent — your password never leaves our server.
6. How long we keep it
- Tax records are kept while the account is active — LHDN requires records to be kept for 7 years, so we do not delete old receipts automatically.
- Receipts you delete stay in the trash for 30 days, then are deleted permanently.
- When a household is closed, all data is permanently deleted within 30 days, including images and reachable backups. The 30 days let you change your mind or export first.
7. Your rights under the PDPA (including deleting your account)
- Access & copy: More → Data & recovery → Download backup (JSON), or the audit-pack ZIP.
- Correction: edit any record in the app at any time.
- Withdraw consent / deletion: any user can delete their own data and account under More → Data & recovery → Delete my data. It happens immediately, in the app, without email or forms. A household admin can also close the whole household (Close household). One exception: receipts from a year that is already locked (filed with LHDN) are transferred to your head of family rather than deleted, because the law requires tax records to be kept; you are told this before confirming.
- Limiting processing: you can stop using the AI features and add receipts manually.
- Complaints: contact us first; you also have the right to complain to the Personal Data Protection Commissioner of Malaysia.
- Contact us: [email protected] — for data requests, complaints or privacy questions.
8. Cookies
We use only one necessary cookie: your sign-in session. No tracking cookies or third-party analytics.
9. Children
Accounts are opened by adults. Members under 18 can only be invited by the household admin responsible for them, and their data is controlled by that admin.
10. Changes
We will announce material changes to this policy in the app — a card on the Home screen with a summary of what changes — at least 14 days before they take effect. Every version, including minor changes, is recorded in the Change history below.
11. Contact us
Questions, complaints or requests about your data: More → Help & feedback in the app — the status and our reply are shown there. Deletion needs no request: More → Data & recovery → Delete my data takes effect immediately — details under Your rights under the PDPA.
Payment processing
Subscription payments are processed by Stripe, a licensed payment processor. ListBelanja receives from Stripe only what is needed to manage your subscription (a customer identifier, subscription status, payment amounts and dates, and the last four digits of the card if Stripe shows them). Full card numbers and CVC codes are never sent to or stored by ListBelanja. Payment records are kept for at least 7 years for accounting and tax purposes.
Feedback
When you send feedback in the app, we keep your message, its type, and technical details (current screen, language, device and browser type, whether the app is installed). No receipt content is attached. Your email is stored with the report only if you tick "allow the owner to contact me". Feedback is used to improve the service, is deleted immediately if you delete your account, and is permanently deleted 24 months after it is resolved or closed.
Automatic error reports
If the app hits a technical error, it sends us an anonymous report: the error message, the screen that was open, app version, language, browser and system type, whether it was online and whether the app is installed. No account, email, household, IP address or receipt content is included — it cannot be linked to you. Reports are deleted after 30 days.
Backups
To protect your data from loss, database backups are made daily (kept 14 days in our private storage) and monthly (encrypted, kept 90 days). Passwords are never backed up. Data you delete remains in older backups until that retention period ends, then disappears completely; backups are used only to restore the service after a failure, for no other purpose.
Change history
- Version 1.8 · 27 September 2026 — Receipts by email: emails forwarded to the family receipt address are received by Resend on our behalf; the receipt attachment or text is kept until processed (deleted after 30 days); mail from non-family senders is rejected without storing its content.
- Version 1.7 · 27 September 2026 — Contact email [email protected] for data requests and complaints; new passwords are checked against public breach lists using k-anonymity (the password is never sent).
- Version 1.6 · 27 September 2026 — Section 5: sign-up and password reset may be checked by Cloudflare Turnstile (an anti-bot check without CAPTCHAs; technical browser signals are processed for security only).
- Version 1.5 · 27 September 2026 — Section 2 corrected: ListBelanja currently uses the free tier of the Gemini API — under Google's terms, submitted content may be used to improve Google's products and read by human reviewers. The earlier statement that data is not used to train models has been withdrawn. Manual entry sends nothing to the AI.
- Version 1.4 · 27 September 2026 — Section 2 expanded: the 'Ask ListBelanja' tax assistant — your question and a numeric summary of your records (no receipt images, names or email) are sent to Google Gemini; only the number of questions and model/tokens are stored, never the question text.
- Version 1.3 · 25 September 2026 — New section 'Automatic error reports': anonymous technical reports (no account, email, IP or receipts), deleted after 30 days.
- Version 1.2 · 24 September 2026 — Cross-references rewritten as clear links; section 10 explains how changes are announced in the app; change history added. No change to how your data is used.
- Version 1.1 · 24 September 2026 — Data requests and account deletion now happen directly in the app (Help & feedback, Delete my data); English and Chinese translations added.
- Version 1.0 · 20 September 2026 — First version.
Material changes are announced in the app at least 14 days before they take effect. Minor changes — spelling, translation, layout or clarification — are recorded here only.
隐私政策
1. 我们收集的数据
| 类型 | 例子 | 原因 |
|---|---|---|
| 账户 | 电邮、显示名称、密码(以哈希保存) | 登录并在家庭中识别您 |
| 收据与文件 | 收据图片、账单、结算单、EA表格、AI读取的文字 | 支出记录与税务减免凭证 |
| 财务 | 年收入、PCB、天课、每月固定支出、副业收入 | 税务估算与预算——均为可选 |
| 家庭 | 家庭名称、成员、角色与权限 | 成员之间受控的共享 |
| 技术 | IP地址(仅用于限流,不永久保存)、浏览器类型、时间戳 | 安全与防止滥用 |
我们不会索取您的身份证号、税务编号(TIN)或银行账号,并建议您不要将它们输入收据备注。
2. AI如何使用
收据图片会发送至第三方语言模型服务(Google Gemini API)读取,读取结果以建议形式返回给您。每次读取计为家庭配额的一个单位;收据内容不会由我们保存在您账户之外。
Google 服务层级。ListBelanja 目前使用 Gemini API 的免费层级。根据 Google 免费层级的条款,所提交的内容和生成的回答可能被 Google 用于提供、改进和开发其产品及机器学习技术,并可能由人工审核员阅读(在与我们的账户断开关联之后)。在付费层级,Google 不会使用这些内容改进其产品。若我们转用付费层级,将通过本政策的更新公布。若您不希望某张收据(例如医疗收据)发送给 AI,请以手动方式输入——手动输入不会向 AI 发送任何内容。
税务问题助手(“问 ListBelanja”):当您提问时,您的问题及家庭记录的数字摘要(已使用的减免与剩余额度、预计税额——不含收据图片、姓名或电邮)会在相同的服务层级下(见上文)发送至 Google Gemini API。我们仅保存每月提问次数(用于配额)以及所用的模型和令牌,不保存问题或回答文本。
通过电邮提交收据。您转发到家庭收据地址的电邮由 Resend(美国)代表我们接收。我们会保存收据附件或正文,直到您处理为止;未处理的会在 30 天后删除。来自非家庭成员的邮件会被拒绝,其内容不会被保存——只保存拒绝原因。只有在您点按“处理”之后,AI 才会读取收据。
3. 谁能看到您的数据
- 您:您输入的收据、支出和记录。
- 您的家庭管理员:家庭内所有收据,因为由其为家庭报税。其他成员只能看到自己的收据,除非管理员授予“查看所有人收据”的权限。
- 管理员任命的审计员:已申报或已锁定的记录,只读。
- 平台所有者:仅汇总统计(家庭数量、使用量)。其不能读取任何家庭的收据;此限制由数据库强制执行。
- 基础设施供应商(见下)代我们处理数据,并受其数据处理条款约束。
我们不与广告商、数据经纪商或LHDN共享数据。只有在马来西亚法律要求时才会披露数据,且除非被禁止,否则会通知您。
4. 数据存放地点
- 数据库:Supabase(PostgreSQL),东南亚区域。
- 图片与文件:Cloudflare R2,查看链接自动过期。
- 应用:Cloudflare Pages。
- AI读取:Google(Gemini API)。
这些供应商可能在马来西亚境外处理数据。使用本服务即表示您同意此传输,该传输受供应商合同条款保护。
5. 安全
- 会话保存在脚本无法读取的加密Cookie中(HttpOnly、Secure)。
- 每一行数据都标记所属家庭,数据库拒绝任何跨家庭访问(行级安全)。
- 密码至少12个字符;邀请链接一次性使用,7天后过期。
- 每月数据库备份均加密。
- 您的设备上不保存任何数据,只有无账户访客的“先试试”清单例外,且在转入账户后立即删除。
- 注册和重设密码可能会经过 Cloudflare Turnstile 检查(无需验证码的防机器人检查):Cloudflare 仅为安全目的处理浏览器技术信号,不用于广告。
- 新密码会以 k-匿名方式与公开泄露名单(HaveIBeenPwned)比对:仅发送密码哈希值的前 5 个字符——您的密码从不离开我们的服务器。
6. 保存多久
- 税务记录在账户有效期间保存——LHDN要求记录保存7年,因此我们不会自动删除旧收据。
- 您删除的收据在回收站保留30天,然后永久删除。
- 家庭关闭时,所有数据在30天内永久删除,包括图片和可访问的备份。这30天让您可以改变主意或先导出。
7. 您在PDPA下的权利(包括删除账户)
- 访问与副本:更多 → 数据与恢复 → 下载备份(JSON),或审计资料包ZIP。
- 更正:随时在应用内编辑任何记录。
- 撤回同意/删除:任何用户都可在“更多 → 数据与恢复 → 删除我的数据”删除自己的数据和账户。在应用内即时生效,无需电邮或表格。家庭管理员也可关闭整个家庭(关闭家庭)。一个例外:已锁定年份(已向LHDN申报)的收据会转移给您的家长而非删除,因为法律要求保存税务记录;确认前会告知您。
- 限制处理:您可停止使用AI功能,改为手动添加收据。
- 投诉:请先联系我们;您也有权向马来西亚个人数据保护专员投诉。
- 联系我们:[email protected]——用于数据请求、投诉或隐私问题。
8. Cookie
我们只使用一个必要的Cookie:您的登录会话。没有跟踪Cookie或第三方分析。
9. 儿童
账户由成年人开设。18岁以下成员只能由对其负责的家庭管理员邀请,其数据由该管理员控制。
10. 变更
本政策的重大变更将在生效前至少14天于应用内公布——主页上会出现附有变更摘要的卡片。每个版本(包括细微变更)都记录在下方的变更记录中。
11. 联系我们
有关您数据的问题、投诉或请求:应用内的更多 → 帮助与反馈——状态和我们的回复都显示在那里。删除无需申请:更多 → 数据与恢复 → 删除我的数据即时生效——详情见您在PDPA下的权利。
支付处理
订阅付款由持牌支付处理商Stripe处理。ListBelanja仅从Stripe获取管理您订阅所需的信息(客户标识、订阅状态、付款金额与日期,以及Stripe显示的卡号末四位)。完整卡号和CVC码从不发送给或保存于ListBelanja。付款记录为会计与税务目的保存至少7年。
反馈
当您在应用内提交反馈时,我们保存您的信息、类型及技术资料(当前页面、语言、设备与浏览器类型、是否已安装应用)。不附带任何收据内容。只有当您勾选“允许所有者联系我”时,您的电邮才会与报告一起保存。反馈用于改进服务,若您删除账户则立即删除,并在解决或关闭后24个月永久删除。
自动错误报告
当应用遇到技术错误时,会向我们发送匿名报告:错误信息、当时打开的页面、应用版本、语言、浏览器与系统类型、是否在线以及是否已安装应用。报告不包含账户、电邮、家庭、IP地址或收据内容,无法与您关联。报告在30天后删除。
备份
为防止数据丢失,数据库每日备份(在我们的私人存储中保留14天)并每月备份(加密,保留90天)。密码从不备份。您删除的数据在旧备份中保留至保留期结束,然后完全消失;备份仅用于故障后恢复服务,不作他用。
变更记录
- 版本 1.8 · 2026年9月27日 — 通过电邮提交收据:转发到家庭收据地址的电邮由 Resend 代表我们接收;收据附件或正文保存至处理为止(30 天后删除);来自非家庭成员的邮件会被拒绝,且不保存其内容。
- 版本 1.7 · 2026年9月27日 — 联系电邮 [email protected] 用于数据请求和投诉;新密码以 k-匿名方式与公开泄露名单比对(密码从不发送)。
- 版本 1.6 · 2026年9月27日 — 第5条:注册和重设密码可能会经过 Cloudflare Turnstile 检查(无需验证码的防机器人检查;仅为安全目的处理浏览器技术信号)。
- 版本 1.5 · 2026年9月27日 — 第2条更正:ListBelanja 目前使用 Gemini API 免费层级——根据 Google 条款,所提交的内容可能被用于改进 Google 的产品并由人工审核员阅读。先前关于数据不用于训练模型的说明已撤回。手动输入不会向 AI 发送任何内容。
- 版本 1.4 · 2026年9月27日 — 第2条扩充:税务助手“问 ListBelanja”——您的问题及记录的数字摘要(不含收据图片、姓名或电邮)会发送至 Google Gemini;仅保存提问次数和模型/令牌,不保存问题文本。
- 版本 1.3 · 2026年9月25日 — 新增“自动错误报告”:匿名技术报告(不含账户、电邮、IP或收据),30天后删除。
- 版本 1.2 · 2026年9月24日 — 交叉引用改写为清晰的链接;第10条说明如何在应用内公布变更;新增变更记录。您数据的使用方式没有变化。
- 版本 1.1 · 2026年9月24日 — 数据请求与删除账户现可直接在应用内完成(“帮助与反馈”、“删除我的数据”);新增英文与中文译本。
- 版本 1.0 · 2026年9月20日 — 首个版本。
重大变更将在生效前至少14天于应用内公布。细微变更(拼写、翻译、排版或说明)仅记录于此。