A simple CLI tool written in Go that converts CSV files from Cardless format to Quicken Simplifi format.
This tool processes CSV files with transaction data, extracting only the essential fields needed for Simplifi import:
- Uses "settled date" as the "Date" field
- Keeps "payee" field unchanged
- Flips the sign of "amount" values (positive becomes negative, negative becomes positive)
- Cleans up amount formatting (removes commas)
- Adds an empty "tags" column
- Removes all other fields (transaction date, type, status, category)
# Clone the repository
git clone https://github.com/nipuna-perera/cardless-to-simplifi.git
cd cardless-to-simplifi
# Build the binary
make build
# The binary will be created at ./bin/cardless-to-simplifi# Basic usage (long form)
./bin/cardless-to-simplifi -input input.csv -output output.csv
# Basic usage (shorthand)
./bin/cardless-to-simplifi -i input.csv -o output.csv
# Show help
./bin/cardless-to-simplifi -helpThe input CSV file should have the following columns (case-insensitive):
settled date(required) - Used as the Date field in outputtypestatuspayee(required)amount(required) - Signs will be flipped in outputcategory
Example input:
Transaction date,Settled date,Type,Status,Payee,Amount,Category
05/26/2025,05/28/2025,Purchase,Settled,Fiverr,10.91,Business Services
05/24/2025,05/27/2025,Payment,Settled,Payment,-1374.81,The output CSV will have exactly these columns:
DatePayeeAmountTags(always empty)
Example output:
Date,Payee,Amount,Tags
05/28/2025,Fiverr,-10.91,
05/27/2025,Payment,1374.81,Note: Amount signs are flipped from the input (positive becomes negative, negative becomes positive) and formatting is cleaned up (commas removed).
- Go 1.21 or later
- Make (optional, for using Makefile targets)
# Install dependencies
make install-deps
# Build the binary
make build
# Run tests
make test
# Run with sample data
make runThe project includes comprehensive unit tests:
# Run all tests with coverage
go test -cover ./...
# Run tests with race detection
go test -race ./...├── cmd/
│ └── cardless-to-simplifi/ # Main application
│ ├── main.go
│ └── main_test.go
├── test/ # Test data files
│ └── sample_input.csv
├── bin/ # Built binaries
├── go.mod # Go module definition
├── Makefile # Build automation
└── README.md
The tool provides clear error messages for common issues:
- Missing required columns in input CSV
- Empty required fields (date, payee, amount)
- File I/O errors
- Malformed CSV data
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Ensure tests pass (
make test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.