Serial & IMEI Tracking

Tracking each unit of a phone, appliance or gadget by its serial number or IMEI, from the delivery it arrived on to the receipt or job order it left on, looking up warranty by serial (on the web and in the POS apps), and reviewing sales and job-order parts that came through without a serial.

10 min read · Updated 28 Sep 2026

On this page

Phone shops, appliance stores and electronics dealers sell things that carry their own serial number. When a customer comes back with a warranty claim, you need to know which unit they bought, when, on which receipt, and where it came from. Kassly can track every unit of a product by its serial number. An IMEI is treated as a serial number.

Serial tracking needs the Inventory Pro add-on (₱400 per branch each month), or any bundle that includes it. If your add-on lapses, products that already track serials keep recording them, so the history stays whole. You can see it again when you renew.

If none of your products track serials, nothing on this page affects you. Your sales work exactly as before and cost nothing extra.

Turning it on for a product

Serial tracking is switched on per product. Only turn it on for items where each unit really has its own number.

  1. Open the product and click Edit.
  2. Make sure Track Stock is on. A serial-tracked item always counts its own stock.
  3. Turn on Track serial numbers (IMEI).
  4. Optionally enter Warranty (months). Every sale starts that warranty on the serial it sells: a 12-month warranty on a phone sold on 5 March runs until 5 March next year.
  5. Save.

A serial-tracked item is sold in whole units, so it cannot be sold by measure.

How serials are entered

Wherever serials are asked for, you can:

  • Scan each one with a barcode scanner (each scan adds one),
  • Type them, or
  • Paste a list, one per line or separated by commas or spaces.

Kassly stores serials in capitals, so imei353801 and IMEI353801 are the same unit. Because a space separates serials in a pasted list, enter a serial that contains spaces without them. A serial can only be in stock once per product.

Receiving stock with serials

When serial-tracked stock comes in, enter one serial per unit.

Where What happens to the serials
Receiving a purchase order Recorded on the goods receipt (GRN) line, in stock at the branch or warehouse the PO delivers to
Stock Adjustment → Stock In (branch or warehouse) In stock at that location
Bulk Stock-In (the table) In stock at the branch, per row
Bulk Stock-In Excel template (branch or warehouse) In stock at that location, per row (see below)
Stock transfers Named on the transfer, moved with the goods

The rules:

  • The count must equal the quantity. Receiving 3 phones needs 3 serials. Kassly refuses the receipt if they don't match, before any stock moves.
  • Serials are optional. You can still receive without them (older POS app versions always do). Those units arrive without a serial, and you won't be able to pick them by serial later.
  • A serial already in stock or sold is refused. A unit that came back to you (returned to the supplier and replaced, or written off and found) can be received again.

Serials in the Bulk Stock-In Excel template

The Bulk Stock-In template, for a branch and for a warehouse, has a Serial Numbers (one per unit) column (after Bin Code on a warehouse that tracks bins). For a serial-tracked row, put all the row's serials in that one cell, separated by commas or line breaks (Alt+Enter in Excel). The cell is formatted as text, so a 15-digit IMEI stays exactly as typed.

  • The number of serials must equal Quantity to Add, as everywhere else.
  • A serial on a product that does not track serials, a quantity that isn't a whole number, or a serial repeated on another row is refused with its row number, and nothing is imported until the sheet is fixed.
  • A serial already in stock is refused too, and nothing is imported.
  • Leaving the cell blank is fine: those units arrive without a serial.
  • A sheet you downloaded before the column existed still imports as before.

Transfers

When you create a transfer, name the serials you're sending. They must be in stock at the source.

  • When the transfer is shipped, the units are in transit: they can't be sold at the source, and they're not yet at the destination.
  • When it's received, they're in stock at the destination.
  • If a shipped transfer is cancelled, they're back at the source.

Removing stock

A removal on the Stock Adjustment page (damaged, lost, and so on) can name the serials that went. Those units are marked written off. A count does not name units, so serials can't be entered on a count.

Selling a serial-tracked item

On the POS app, adding a serial-tracked item to the cart asks for its serial, one per unit. Online, the app lists the serials in stock at your branch so you can pick one, or you can scan the unit's barcode. Offline, you type or scan it.

The receipt prints the serial under the line (S/N: ...), and the sale detail in the back office shows it too.

Kassly never refuses a sale over a serial. The customer has already paid, so the sale always goes through, and anything that doesn't add up is put in the Needs review list instead:

What happened What Kassly does
The serial was never received (common when selling offline) Creates it as sold and flags it for review
The serial was already sold on another receipt Leaves the first sale alone and flags the new one
The serial was in stock, but at another branch, a warehouse or on a transfer Sells it from this branch and flags it
The serial was returned, sent back to the supplier or written off Sells it and flags it
The cashier skipped the serial, or the app is older Records the units as unassigned and flags them
More serials than units Uses one per unit and flags the rest

Older POS apps

POS app versions before serial tracking (the mobile app up to v1.29.0 and the desktop app up to v1.10.0) don't ask for a serial. They keep selling serial-tracked items normally. Each such sale shows up in Needs review as units sold without a serial, so you can say which serials were sold. Update your tills to get serial capture at checkout.

Job-order parts

A serial-tracked part added to a job order asks for its serial, one per unit, the same way a sale does. On the web, the Add line item dialog shows a serial field when you pick a serial-tracked product; in the POS app's job-order mode, the cart asks for the serial as usual and it goes onto the job order with the part.

The part leaves stock when it is added, and so does its serial:

  • The unit is marked sold at the job's branch, on that job order, and its warranty starts the day the part was fitted.
  • Nothing is refused. A serial Kassly never received, one already sold, one at another location, extra serials or units added without one all go to Needs review, with the job number instead of a receipt, exactly like a sale.
  • Removing the part from the job puts the serial back in stock at the job's branch, and closes the part's review items.
  • Send to POS carries the serials to the sale line, so they print on the receipt. The checkout does not flag them a second time.

On the job's line items, each part shows the serials it used.

Voids and returns

What What happens to the serial
Voiding a sale Back in stock at the sale's branch; the sale's review items close
A return marked resellable Back in stock at the sale's branch
A return marked damaged Marked returned, not sellable
A return to supplier, when completed Marked returned to supplier

On a return you can choose which serials came back. If you don't, Kassly takes the sale's serials in order.

A return to supplier checks its serials again when it's completed. If one was sold while the return waited for approval, the return is refused until you change it.

Warranty lookup

Go to Inventory → Serial Lookup and scan or type a serial. You see:

  • the product (and variant),
  • its status and where it is now,
  • when it was received, on which goods receipt, PO and from which supplier,
  • when it was sold, the receipt number and the customer (or, for a part fitted on a job order, the job number and its customer),
  • the warranty end date and whether it's still active or expired,
  • its full history: received, transferred, sold, voided, returned.

Supplier costs are never shown on the lookup.

The same page lists every serial, with filters by status and location. A product's page also has a Serial numbers card with that product's units.

On the POS apps

The mobile app (Inventory → Warranty) and the desktop app (Inventory → Warranty Lookup) have a read-only version for the counter: scan or type a serial to see the product, when it was sold, the receipt, the customer and whether the warranty is still active. It needs a connection (it reads the same lookup as the web; nothing is stored on the device), Inventory Pro and the inventory.view permission.

Needs review

The Needs review tab on Serial Lookup lists every sale and job-order part that didn't add up (see the table above). A job-order item shows its job number in place of the receipt. For each one:

  • Units sold without a serial: enter the serial(s) that were actually sold (or fitted). They must be in stock. They're marked sold on that receipt (or that job order), and the sale detail and reprints show them from then on. If you only know some, enter those; the rest stays open.
  • Anything else: check the stock, then Resolve it with a note, or Dismiss it.

Resolving and dismissing need the stock.manage permission. Viewing the lookup needs inventory.view; cashiers can pick serials at the till but can't open the lookup.

Splitting a variant into its own product

When you split a variant off into a standalone product, its serials move with its stock: each unit keeps its whole history (received, sold, returned...) and its open review items, and the new product tracks serials with the same warranty. If the split leaves the parent with a single variant, that variant's serials fold back onto the parent product the same way.

Limits

  • Serial capture at checkout is on the POS apps. The web POS doesn't sell.
  • The warranty lookup on the POS apps is read-only and online only. Reviewing and resolving is on the web.