Draft — pending legal review. This text is a draft for review by a qualified lawyer and is not yet in force.

Data retention and deletion

How long data is kept, how to ask for a copy or deletion, and how requests are handled.

Data retention and deletion policy

Applies to: personal data processed in Upkiva, both as data processor for Businesses (e.g. TV Palace) and as data fiduciary for Upkiva's own account data. Version: 0.2 (draft, October 2026) · Owner: [Upkiva data protection contact] [CONFIRM]

1. Principles (DPDP Act s.8(7); DPDP Rules, Rule 8)

  1. Keep personal data only as long as needed for the purpose it was collected for, or as long as a law requires.
  2. Erase it when consent is withdrawn or the purpose is served, unless a law requires us to keep it. Then use it only for that legal purpose.
  3. Make sure processors and sub-processors erase it too.
  4. Keep logs of processing for at least one year (DPDP Rules, Rule 8(3), from 13 May 2027) and server logs for 180 days (CERT-In directions, April 2022).
  5. Erasure means removal from live systems. Backups age out on their normal rotation, are encrypted, and are never restored for normal use. If a backup is ever restored, erasures made after it are done again.

2. Retention schedule

"Enforced" says whether the product deletes automatically today (October 2026 build). Periods marked [CONFIRM] are defaults the Business or the lawyer may change.

#DataRetentionReason / legal basisEnforced today?
R1Technician GPS location points and derived journey segments, including imported Google Timeline data90 days (settings.location.historyDays)Purpose limited to attendance, travel reconciliation and disputes; proportionate monitoring of workersYes: purged nightly
R2Job photos (before / after / old part / door / leak test / survey), readings, checklists2 years from job close (Settings: 1–10 years)Warranty (parts, 90-day workmanship), disputes, auditBuilt, off by default: runs nightly once the Business switches it on (Settings → Data & privacy)
R3Invoices, credit notes, payment records, and the job lines behind them7 years from the end of the financial year of the invoice (default); 8 years if the Business is a company [CONFIRM per Business]. Longer while a GST appeal or proceeding is pendingCGST Act s.36 and CGST Rules r.56 (72 months from the due date of the annual return, i.e. about 6 years 9 months after the FY ends; 7 years covers it); Companies Act s.128(5) (8 years); income-tax lawBuilt, off by default: after the period, the stored PDF is deleted and the bill-to is de-personalised; amounts and GST stay
R4Customer master (name, phone, addresses, units)While the customer has an active AMC / open job, plus 3 years after the last service [CONFIRM]Service history, warranty, renewals; limitation period for claims (Limitation Act, 1963: 3 years)No (erasure on request is built)
R5AMC contracts and visit recordsContract end + 3 years [CONFIRM] (the invoice part follows R3)Disputes, renewals, limitation periodNo
R6Customer signatures, OTP verification records (hashed), approvals of parts / extras / quotationsSignature files: 7 years from upload (storage rule). Approvals: as the job (R2), or R3 where they support an invoiceProof of consent to chargesSignature files: yes (bucket expiry). Rest: no
R7Call logs and call recordings (masked calling)Recordings 1 year (365 days, storage rule) [CONFIRM: we recommend 90 days]; call logs as R2Disputes, QCRecordings: yes (bucket expiry). Logs: no
R8Ratings, complaints, disputes, QC call-back outcomes2 years after closure; dispute photos 7 years (storage rule) [CONFIRM]Quality, disputesDispute photos: yes (bucket expiry). Rest: no
R9Technician attendance selfies2 years from upload (storage rule) [CONFIRM: we recommend 1 year or less; the attendance record itself, with times, is kept as R10]Attendance proofYes (bucket expiry)
R10Technician HR records: attendance and wage records, documents (ID, police verification, licence; numbers encrypted), incentives, cash ledger, expensesAttendance, wage and overtime records: 5 years (rules under the Code on Wages, 2019) [CONFIRM]. ID documents: employment + 3 years [CONFIRM]; the storage rule deletes the files 7 years after upload. Financial ledgers and expense bills as R3Employment, labour and tax lawDocument / bill files: bucket expiry at 7 years. Rest: no
R11Device-audit data (clock offset, mock-location flag, app version) attached to job eventsAs the job (R2)Fraud preventionNo
R12Staff / user accountsActive, plus 12 months after deactivation [CONFIRM]Security, auditNo
R13Audit logs (who did what) and records of consent, data requests, exports and erasuresAt least 1 year; consent and request records for 3 years after they end [CONFIRM]DPDP Rules, Rule 8(3); proof of consent and of handling requestsNo (kept indefinitely today)
R14Server logs (API file log, nginx access / error logs)180 daysCERT-In directions (April 2022)Yes (deploy/logrotate/upkiva)
R15WhatsApp / SMS message logs and inbound messages1 year [CONFIRM]Delivery proof, supportNo
R16Import files (Excel uploads) and report exportsImports 30 days; exports 7 days (served by 1-hour links)TroubleshootingYes (bucket expiry); Timeline imports with R1
R17"Request access" / sign-up requests not approved6 months [CONFIRM]Follow-upNo
R18Backups (restic, encrypted, Cloudflare R2)Rolling: 7 daily, 4 weekly, 12 monthly, so erased data can remain in encrypted backups for up to about 12 months (deploy/backup.sh) [CONFIRM acceptable, or shorten to 3 months]Disaster recoveryYes (rotation)

Note on R1 and the one-year log rule. DPDP Rule 8(3) (from 13 May 2027) asks fiduciaries to keep "personal data, associated traffic data and other logs" of processing for at least one year for the purposes in the Seventh Schedule. Whether this requires keeping the GPS points themselves for a year, or only a log that they were collected and purged, is unsettled. We treat 90 days as the default and will keep a durable log of each nightly purge (today only the last run's counts are kept; product item) [LAWYER: confirm before 13 May 2027].

Storage rules are the Cloudflare R2 lifecycle rules in deploy/r2/media-lifecycle.mjs; they count from the upload date. The large business classes (Third Schedule of the DPDP Rules: e-commerce, gaming and social-media platforms with 2 crore or more users) and their 48-hour warning before erasure do not apply to Upkiva or its Businesses.

3. Deletion triggers

TriggerWhat happens
Retention period ends (R1 nightly; R2 and R3 nightly once switched on; storage rules daily; others by a manual quarterly review until a job exists)Delete, or de-personalise where totals are kept
A customer asks for erasure (portal or office; data-principal-rights-procedure.md)The office erases in Settings → Data & privacy: profile, addresses, portal login, job notes, signatures, photos, dispute texts, message bodies and call recordings are erased; GST invoices are kept with a frozen bill-to until R3 ends
A technician asks for erasureManual, by Upkiva support on the Business's instruction (no tool yet; see §4)
Technician deletes an imported Google Timeline (Me → Import Google Timeline)Deleted immediately (built)
Business leaves UpkivaExport offered for 30 days → workspace deleted from live systems within 30 days → backups age out within about 12 months (R18)
Technician withdraws the location noticeTracking stops at the next check-out. Existing points age out under R1 (or are erased on request, unless needed for an open dispute)

4. How technician and staff erasure is performed (until a tool exists)

Customer erasure has a built tool (above). For technicians and staff, Upkiva support performs erasure on a ticket from the Business:

  1. Verify the request came from the Business's authorised admin (signed email / ticket).
  2. Identify the records (technician by mobile / code).
  3. Check legal holds: wage and attendance records (R10), cash ledgers and expense bills (R3), open disputes, police / court requests.
  4. Erase or de-personalise: replace the name, phones, email and address with "Erased [date]", delete selfies and location points, delete ID-document files once their hold ends, deactivate the login.
  5. Record the action in the audit log (who, when, what, which legal hold kept what).
  6. Confirm to the Business within 7 working days.

5. Review

This policy is reviewed every 12 months, and whenever a new data category or sub-processor is added.

Source: docs/launch/legal/data-retention-and-deletion.md

Data-principal rights procedure (DPDP Act, Chapter III)

How TV Palace (data fiduciary) and Upkiva (data processor) handle requests from customers, technicians and staff about their personal data. Upkiva follows the same procedure as data fiduciary for its own account data. Version: 0.2 (draft, October 2026). The rights apply in law from 13 May 2027 (DPDP Rules, Rule 1); we honour them now.

1. Rights covered

RightDPDP ActWhat the person gets
Access / informations.11A summary of their personal data and the processing, the identities of the fiduciaries / processors it was shared with, and a description of the data shared
Correction, completion, updatings.12(1)–(2)Inaccurate or incomplete data fixed
Erasures.12(1), s.12(3)Data erased unless keeping it is needed for the purpose or required by law (retention policy)
Withdrawal of consents.6(4)–(6)Processing based on consent stops within a reasonable time (not processing on another lawful basis), as easily as consent was given
Grievance redressals.13A response from the Grievance Officer; the person must use this first, then may approach the Data Protection Board (s.13(3))
Nominations.14A nominee who can exercise the rights on death or incapacity

The person also has duties (s.15): not to give false details or file frivolous complaints.

2. Channels (to publish in the privacy notice; DPDP Rules, Rule 14(1))

  • Customers: the customer portal (My TV Palace home page → Your personal data: copy or deletion), TV Palace office phone / WhatsApp [●], email [●], or at the showroom counter.
  • Technicians and staff: supervisor or HR / admin, or email [●]. The Upkiva Tech app shows each day's route under My Day; anything else on request.
  • Grievance Officer (TV Palace): [name, email, phone] [CONFIRM]. Upkiva contact: [●] [CONFIRM].
  • Requests in Gujarati, Hindi or English are accepted. The reply is in the same language.

3. Steps and time limits

StepWhoWhen
1. Log the request: portal requests are logged automatically (Settings → Data & privacy, with a due date); log office / phone requests there tooReceiving staff → adminSame day
2. Verify identity. Customer: portal sign-in (OTP to the registered mobile), or showroom ID check. Staff: in person. Do not act for an unverified personAdminWithin 2 working days
3. Acknowledge with the request ID and expected dateAdminWithin 2 working days
4. Collect data. Customer: Export in Settings → Data & privacy (JSON + readable PDF). Technician: profile, attendance and reports exports; ask Upkiva for anything not exportable (logs, call recordings, location points)Admin → Upkiva supportUpkiva replies within 7 working days
5. Apply legal holds: invoices (tax), wage and attendance records (labour law), open disputes, legal requestsAdmin + accounts—
6. Act: correct (admin edits the record), erase (customer: Erase in Settings → Data & privacy; technician: Upkiva support, see retention policy §4), or stop consent-based processing (e.g. remove from reminders)Admin / Upkiva—
7. Reply in writing with what was done, what was kept and why, and how to escalate (Grievance Officer → Data Protection Board)Grievance OfficerWithin 30 days of receipt (Settings default); never later than 90 days (DPDP Rules, Rule 14(3))
8. Close and keep the request log for 3 years [CONFIRM]Admin—

4. What an access response contains

Customer: profile and addresses, units, AMC contracts, job list with dates and technicians, invoices and payments, ratings and complaints, messages and calls (dates and purpose), and the list of recipients (Upkiva and its sub-processors, the payment gateway, WhatsApp / SMS providers, the brand manufacturer if a warranty claim was made). The built export contains these.

Technician: profile, documents held (type and expiry, not copies, unless asked), attendance, location data held (last 90 days), job proofs, cash ledger, incentives and penalties, expense claims.

WhoWithdrawsEffect
CustomerMarketing / renewal remindersRemoved from reminder campaigns on every channel. Messages about open jobs continue
CustomerWhatsApp (replies STOP)No WhatsApp except one-time codes; open-job messages come by SMS
CustomerAll processingAccount closed and erased after open jobs and payments finish. GST invoices kept (legal)
TechnicianLocation noticeTracking stops at check-out. The technician cannot use the field workflow (check-in, geofenced start) that depends on it. For employees, attendance and location during working hours can rest on the employment legitimate use (s.7(i)), so the Business will discuss other duties or the terms of employment; it must not punish a technician for asking [CONFIRM]

6. Nomination (s.14)

A person may nominate someone by writing to the Grievance Officer with the nominee's name and contact and their relationship. Record it on the customer / technician record (note) until the product has a field. A nominee acts only with proof of death or incapacity (certificate) and their own ID.

7. Children and persons with disability

If a request concerns a child (under 18) or a person with a disability who has a lawful guardian, act only on the request of the verified parent or lawful guardian (s.9; DPDP Rules, Rules 10 and 11).

8. Request log template

Portal and office requests are logged in Settings → Data & privacy. For requests outside the tool (technicians, nominations), use:

IDReceivedChannelPerson (masked phone)RightVerified onAcknowledgedUpkiva ticketOutcomeClosed
DPR-001

Source: docs/launch/legal/data-principal-rights-procedure.md