mpesa tools
# M-Pesa Tools
A command-line toolkit for processing M-Pesa transactions. Extract data from PDF statements and convert to accounting formats with smart categorization.
## Features
- **PDF Extraction:** Convert M-Pesa PDF statements to CSV or JSON.
- **Ledger Conversion:** Convert transaction data to Ledger-cli format.
- **Smart Categorization:** Configurable rules with AND/OR logic and conditions.
- **Date Filtering:** Process specific date ranges.
- **Balance Tracking:** Include daily ending balances in ledger output.
## Installation
### From PyPI
```bash
pip install mpesa-tools
```
### From Source
```bash
git clone
github.com
cd mpesa-tools
pip install -e .
```
## Quick Start
```bash
# Extract transactions from PDF
mpesa-tools xtract statement.pdf -f csv
# Convert to ledger format
mpesa-tools ledgerfy transactions.csv
# View help
mpesa-tools --help
```
## Commands
### `xtract`: Extract from PDF
Extract transaction data from M-Pesa PDF statements.
```bash
mpesa-tools xtract INPUT_PDF [OPTIONS]
```
**Options:**
- `-f, --format`: Output format (csv or json, default: csv)
- `-o, --output`: Output file path
- `-s, --summary`: Show conversion summary
**Examples:**
```bash
mpesa-tools xtract statement.pdf
mpesa-tools xtract statement.pdf -f json -o data.json --summary
```
### `ledgerfy`: Convert to Ledger Format
Convert CSV/JSON transaction data to Ledger-cli format with categorization.
```bash
mpesa-tools ledgerfy INPUT_FILE [OPTIONS]
```
**Options:**
- `--config`: Path to configuration file (default: `mpesa_categories.json`)
- `--output`: Output file path (default: `input_file.dat`)
- `-s, --start-date`: Start date (YYYY-MM-DD, default: current year-01-01)
- `-e, --end-date`: End date (YYYY-MM-DD)
**Examples:**
```bash
mpesa-tools ledgerfy transactions.csv
mpesa-tools ledgerfy data.json --config my_rules.json -s 2024-01-01
mpesa-tools ledgerfy transactions.csv --start-date 2024-01-01 -- …