Anyone else building payment reconciliation tools? Here's my M-Pesa CSV matcher
I've been working on a small side project to help a friend who runs a retail shop in Nakuru. He gets M-Pesa payments from customers but keeps manual records in Excel, so reconciling at the end of the day is a mess. I built a simple tool that takes the M-Pesa statement CSV (the one you download from the business portal) and his own sales spreadsheet, then matches transactions by amount, phone number, and timestamp within a 5-minute window. It flags unmatched ones for manual review. Stack is Python with pandas and a little Flask for a local web UI, SQLite for storage. Nothing fancy, but it saves him about an hour a day. The hardest part was handling the timestamp format M-Pesa uses (it's like dd/mm/yyyy hh:mm:ss but only when the locale is set right), and also the fact that some customers send exact amounts but others round up, so I had to add a tolerance. Eventually I just normalized everything to UTC first and that killed most of the edge cases. If anyone's done similar, I'm curious how you handle partial payments or people who pay in two installments for one invoice. Happy to share the repo if there's interest, it's rough but it works.