awareness-before-action

Automatic SMS tracking

PesaTrack detects M-PESA and NCBA bank SMS the moment they arrive and turns them into itemised expenses — no typing, no exports.

What it does

  • Read incoming and outgoing M-PESA transaction SMS (sender "MPESA")
  • Read NCBA bank SMS for card, funds-transfer, and receive transactions
  • Extract amount, recipient, till/paybill, date, and M-PESA transaction code
  • Save each transaction to the local Room database with a unique transaction ID (no duplicates)
  • Detect transaction costs and save them as a separate line item in category 606
  • Auto-categorise using keyword rules, learned recipient mappings, and payment-type heuristics

What it doesn't do

  • Read personal SMS from contacts, marketing SMS, or unrelated senders
  • Send SMS content, amounts, or recipient names off the device — ever
  • Modify or delete the original SMS
  • Work without SMS permission — you can still enter expenses manually

What “automatic” actually means

When an M-PESA or NCBA SMS arrives, the SmsReceiver runs the correct parser against the body, extracts the fields, and inserts a row into the local database. There is no round-trip to a server — parsing happens on-device in milliseconds. Duplicate detection uses the transaction ID (transactionId), so re-parsing the same SMS never creates two rows.

Supported senders today

More banks land as they’re requested and their SMS formats are stable — see Roadmap.

← All features