Device Insurance
Device Insurance keeps a record of every third-party device protection policy you sell alongside a phone or laptop — provider, premium collected, coverage amount, policy validity dates, and the commission the insurer owes your shop.
Overview
Each policy records the customer, the Provider (Syska/Acko/Bajaj/OneAssist/Other), Policy Number, Plan Name, the insured Device Name/Brand/Model/IMEI, Premium and Coverage amounts, and a Start/End (expiry) date.
Policy Status (Active/Expired/Claimed/Cancelled) tracks the policy's own lifecycle, while a separate Commission Status (Pending/Received/Rejected) tracks whether the insurer has paid your shop's referral commission for selling it.
Four summary tiles show Total Policies, Active count, Commission Earned (sum of RECEIVED commission across all policies) and Total Premium Sold (sum of every premium amount regardless of status).
The table's Commission column is color-coded by Commission Status so you can see at a glance which commissions are still pending versus already paid.
Before You Start
- No setup required — this is a standalone ledger, not linked to Products, Customers or Billing.
- Customer Name, Provider and Device Name are all required before a policy can be saved.
Step-by-Step Guide
1 Record a new insurance sale
- Click Record Policy.
- Enter Customer Name (required) and optional Customer Phone, then choose the Provider (required) — Syska, Acko, Bajaj, OneAssist or Other.
- Enter the Policy Number and Plan Name, then the Device Name (required) plus Brand, Model and IMEI of the insured device.
- Enter the Premium Amount collected and the Coverage Amount the policy provides, plus its Start Date and End Date / Expiry.
- Enter the Commission amount you expect from the provider and leave Commission Status as Pending until paid, then click Save — the policy starts as Active.
2 Update policy or commission status
- Click the edit (pencil) icon on a row — editing reveals a Policy Status dropdown (Active/Expired/Claimed/Cancelled) hidden on first creation.
- Set Policy Status to Claimed once the customer has made a successful claim, Expired once its validity period lapses, or Cancelled if it was voided.
- Update Commission Status to Received once the provider pays out the referral commission, or Rejected if they decline it.
3 Monitor commission and premium income
- Check the Commission Earned tile for total commission actually received across every provider, and Total Premium Sold for your gross insurance revenue.
- Use the Provider column badge (color-coded per insurer) to spot which provider a policy belongs to at a glance.
- Use the Expiry column to see how close a policy is to lapsing.
4 Search, filter and clean up
- Use the All / Active / Expired / Claimed / Cancelled filter pills to narrow the list; each shows a live count.
- Use the search box to filter by customer name, policy number, device name or IMEI.
- Click the trash icon to permanently delete a policy record after a confirmation prompt.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Record Policy | Opens the form to log a new insurance sale. |
Total Policies / Active / Commission Earned / Total Premium Sold tiles | Live counts and sums — Commission Earned only totals policies with Commission Status = Received; Total Premium Sold totals every policy's Premium Amount regardless of status. |
Status filter pills (All/Active/Expired/Claimed/Cancelled) | Filters the table by policy status with a live count per pill. |
Search box | Filters by customer name, policy number, device name or IMEI as you type. |
Customer Name * / Customer Phone | Name is required; phone is optional. |
Provider * | Syska / Acko / Bajaj / OneAssist / Other — shown as a color-coded badge. |
Policy Number | Free-text reference number for the insurer's policy, e.g. "INS-2024-XXXXX". |
Plan Name | Descriptive plan label, e.g. "Syska GuardPass 1 Year". |
Device Name * / Brand / Model / IMEI | Details of the insured device; Device Name is required. |
Premium Amount | What the customer paid for the policy. |
Coverage Amount | The maximum payout the policy provides on a valid claim. |
Start Date / End Date (Expiry) | The policy's validity window; End Date is shown as the Expiry column in the table. |
Commission Amount / Commission Status | The referral commission expected from the provider, and whether it is Pending, Received or Rejected. |
Policy Status (edit mode only) | Active / Expired / Claimed / Cancelled — only editable once a policy already exists; new policies start Active. |
Notes | Free-text notes field. |
Edit (pencil icon) / Delete (trash icon) | Edits any field, or permanently removes the record after confirmation. |
Tips & Best Practices
- Fill in the IMEI whenever you can — it makes it much easier to match a later claim or warranty dispute back to the exact device sold.
- Chase Commission Status to Received promptly after each provider payout cycle so the Commission Earned tile reflects real income, not just expected income.
- Watch the Expiry column proactively — reaching out to customers near expiry is a natural opportunity to sell a renewal policy.
Troubleshooting & FAQ
I can't save a new policy — it complains about a missing device name.
Where is the Policy Status field when creating a new record?
The Commission Earned total looks too low.
Does recording a policy here notify the insurance provider or file anything with them?
🧑💻 Developer Notes
Source component(s):
frontend-app/pos-app-electronics/src/pages/electronics/InsuranceSalesPage.jsxfrontend-app/packages/pos-react-lib/src/pages/electronics/InsuranceSalesPage.jsx (actual implementation)
Backend endpoints used:
GET /electronics/insurancePOST /electronics/insurancePUT /electronics/insurance/:idDELETE /electronics/insurance/:id
Related tables (db-core repositories):
ElectronicsInsurance
Feature flag key: billing
Thin re-export in pos-app-electronics; real component lives in shared pos-react-lib package. Note the DB table is named "ElectronicsInsurance" (not "ElectronicsInsurancePolicy") despite the API response key being `insurancePolicies`. Commission/premium summary tiles are computed client-side from the full in-memory list. Mounted at `/electronics/insurance` behind `