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) untuk dibaca. Bacaan itu dipulangkan kepada anda sebagai cadangan. Kami menggunakan tetapan API yang tidak menggunakan data anda untuk melatih model awam. Setiap bacaan dicatat sebagai satu unit kuota isi rumah; kandungan resit tidak disimpan oleh kami di luar akaun anda.
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.
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.
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.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) to be read. The reading is returned to you as a suggestion. We use API settings that do not use your data to train public models. Each reading is counted as one unit of your household's quota; receipt content is not stored by us outside your account.
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.
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.
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.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设置不会用您的数据训练公开模型。每次读取计为家庭配额的一个单位;收据内容不会由我们保存在您账户之外。
3. 谁能看到您的数据
- 您:您输入的收据、支出和记录。
- 您的家庭管理员:家庭内所有收据,因为由其为家庭报税。其他成员只能看到自己的收据,除非管理员授予“查看所有人收据”的权限。
- 管理员任命的审计员:已申报或已锁定的记录,只读。
- 平台所有者:仅汇总统计(家庭数量、使用量)。其不能读取任何家庭的收据;此限制由数据库强制执行。
- 基础设施供应商(见下)代我们处理数据,并受其数据处理条款约束。
我们不与广告商、数据经纪商或LHDN共享数据。只有在马来西亚法律要求时才会披露数据,且除非被禁止,否则会通知您。
4. 数据存放地点
- 数据库:Supabase(PostgreSQL),东南亚区域。
- 图片与文件:Cloudflare R2,查看链接自动过期。
- 应用:Cloudflare Pages。
- AI读取:Google(Gemini API)。
这些供应商可能在马来西亚境外处理数据。使用本服务即表示您同意此传输,该传输受供应商合同条款保护。
5. 安全
- 会话保存在脚本无法读取的加密Cookie中(HttpOnly、Secure)。
- 每一行数据都标记所属家庭,数据库拒绝任何跨家庭访问(行级安全)。
- 密码至少12个字符;邀请链接一次性使用,7天后过期。
- 每月数据库备份均加密。
- 您的设备上不保存任何数据,只有无账户访客的“先试试”清单例外,且在转入账户后立即删除。
6. 保存多久
- 税务记录在账户有效期间保存——LHDN要求记录保存7年,因此我们不会自动删除旧收据。
- 您删除的收据在回收站保留30天,然后永久删除。
- 家庭关闭时,所有数据在30天内永久删除,包括图片和可访问的备份。这30天让您可以改变主意或先导出。
7. 您在PDPA下的权利(包括删除账户)
- 访问与副本:更多 → 数据与恢复 → 下载备份(JSON),或审计资料包ZIP。
- 更正:随时在应用内编辑任何记录。
- 撤回同意/删除:任何用户都可在“更多 → 数据与恢复 → 删除我的数据”删除自己的数据和账户。在应用内即时生效,无需电邮或表格。家庭管理员也可关闭整个家庭(关闭家庭)。一个例外:已锁定年份(已向LHDN申报)的收据会转移给您的家长而非删除,因为法律要求保存税务记录;确认前会告知您。
- 限制处理:您可停止使用AI功能,改为手动添加收据。
- 投诉:请先联系我们;您也有权向马来西亚个人数据保护专员投诉。
8. Cookie
我们只使用一个必要的Cookie:您的登录会话。没有跟踪Cookie或第三方分析。
9. 儿童
账户由成年人开设。18岁以下成员只能由对其负责的家庭管理员邀请,其数据由该管理员控制。
10. 变更
本政策的重大变更将在生效前至少14天于应用内公布——主页上会出现附有变更摘要的卡片。每个版本(包括细微变更)都记录在下方的变更记录中。
11. 联系我们
有关您数据的问题、投诉或请求:应用内的更多 → 帮助与反馈——状态和我们的回复都显示在那里。删除无需申请:更多 → 数据与恢复 → 删除我的数据即时生效——详情见您在PDPA下的权利。
支付处理
订阅付款由持牌支付处理商Stripe处理。ListBelanja仅从Stripe获取管理您订阅所需的信息(客户标识、订阅状态、付款金额与日期,以及Stripe显示的卡号末四位)。完整卡号和CVC码从不发送给或保存于ListBelanja。付款记录为会计与税务目的保存至少7年。
反馈
当您在应用内提交反馈时,我们保存您的信息、类型及技术资料(当前页面、语言、设备与浏览器类型、是否已安装应用)。不附带任何收据内容。只有当您勾选“允许所有者联系我”时,您的电邮才会与报告一起保存。反馈用于改进服务,若您删除账户则立即删除,并在解决或关闭后24个月永久删除。
自动错误报告
当应用遇到技术错误时,会向我们发送匿名报告:错误信息、当时打开的页面、应用版本、语言、浏览器与系统类型、是否在线以及是否已安装应用。报告不包含账户、电邮、家庭、IP地址或收据内容,无法与您关联。报告在30天后删除。
备份
为防止数据丢失,数据库每日备份(在我们的私人存储中保留14天)并每月备份(加密,保留90天)。密码从不备份。您删除的数据在旧备份中保留至保留期结束,然后完全消失;备份仅用于故障后恢复服务,不作他用。
变更记录
- 版本 1.3 · 2026年9月25日 — 新增“自动错误报告”:匿名技术报告(不含账户、电邮、IP或收据),30天后删除。
- 版本 1.2 · 2026年9月24日 — 交叉引用改写为清晰的链接;第10条说明如何在应用内公布变更;新增变更记录。您数据的使用方式没有变化。
- 版本 1.1 · 2026年9月24日 — 数据请求与删除账户现可直接在应用内完成(“帮助与反馈”、“删除我的数据”);新增英文与中文译本。
- 版本 1.0 · 2026年9月20日 — 首个版本。
重大变更将在生效前至少14天于应用内公布。细微变更(拼写、翻译、排版或说明)仅记录于此。