Mobile 4 min read ·

Building a privacy-first expense tracker with SMS parsing

How TrackSpend detects bank SMS without ever seeing bank data on a server — and why the on-device approach wins.

Building a privacy-first expense tracker with SMS parsing

Respect the inbox

TrackSpend automatically categorizes expenses from bank SMS. Getting the privacy model right was the hardest part of the project.

The architecture

A background BroadcastReceiver only reacts to messages from trusted bank senders, matching against a local allow-list of sender IDs. Parsing happens entirely on-device. Nothing leaves the phone until the user explicitly syncs.

Why not server-side parsing?

Server-side means your bank data is one breach from exposure. On-device parsing keeps the threat surface small: minimal permissions, zero network calls in the background path, encryption at rest via Android Keystore.

The lesson

Privacy is a feature you design in, not a checkbox you bolt on. Products that respect user data build trust that ads cannot buy.

Kotlin Android Privacy SMS