Skip to content

nipuna-perera/cardless-to-simplifi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cardless to Quicken Simplifi CSV Converter

A simple CLI tool written in Go that converts CSV files from Cardless format to Quicken Simplifi format.

Overview

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)

Installation

From Source

# 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

Usage

# 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 -help

Input CSV Format

The input CSV file should have the following columns (case-insensitive):

  • settled date (required) - Used as the Date field in output
  • type
  • status
  • payee (required)
  • amount (required) - Signs will be flipped in output
  • category

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,

Output CSV Format

The output CSV will have exactly these columns:

  • Date
  • Payee
  • Amount
  • Tags (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).

Development

Prerequisites

  • Go 1.21 or later
  • Make (optional, for using Makefile targets)

Building

# Install dependencies
make install-deps

# Build the binary
make build

# Run tests
make test

# Run with sample data
make run

Testing

The project includes comprehensive unit tests:

# Run all tests with coverage
go test -cover ./...

# Run tests with race detection
go test -race ./...

Project Structure

├── 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

Error Handling

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

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure tests pass (make test)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Convert cardless transactions to a format ingestible by simplifi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors