##Purpose: Expensify has a nice interface for managing receipts, auto-pulls from various banks, and can create eReciepts for some expenses under $75. Hugly useful. It does not, however, have any integrations with Harvest ( at least at the time of this writing ).
##Expensify Method:
- Manage expenses with Expensify as the system of record for your expenses.
- Add "Tags" to expenses that reference Harvest project IDs (i.e. "Acme Client - 1234567")
- Add a custom CSV Export format that include Expensify's ID
- Upload pdf/image attachments to Expensify as the system of record
- Export expenses to CSV
- Run
expensify.rb ./<location_of_csv>
- Profit
##Install
]$ brew install ruby (maybe optional)
]$ gem install bundler
]$ sudo xcode-select --install
]$ brew install phantomjs
]$ bundler
##Configure
- an example
harvest_cfg.json
(harvest_csv.json.example) is in the repo, fill it out with your info.
- Imports CSV file from Expensify to Harvest
- Lists available categories for your convenience
- Lists available projects for your convenience
- Deletes expenses in local transaction record, and Harvest, in case a change/update needs to be made to an Expensify expense.
##CSV Only Method
- Gets/Puts/Deletes expenses from/to Harvest using CSV files.
- NOTE: Doesn't currently upload/attach receipts.
- Use
./harvest.rb --get --file this_week_expenses.csv
to download expenses - Modify csv file in excel ( save as MS-DOS csv )
- Use
./harvest.rb --put --file this_week_expenses-fixed.csv
to update expenses
- Use
./harvest.rb --put --file new_expenses.csv
to upload new expenses
harvest.rb
uses--after
and--before
as date ranges if defined.- With a --date option,
harvest.rb
selects the expenses from the week that date is in. It uses the last monday as--after
, and the next sunday as--before
, from the perspective of the specified date. - With no options specified,
harvest.rb
uses "now" as--date
- Use
./harvest.rb --put --file updates_for_harvest.csv
to update expenses.
- Use
./harvest.rb --delete --file csv_with_ids.csv
to delete.
Usage: ./harvest.rb get|put|delete [options] --file <csv file>
-g, --get Get expenses from Harvest, by week (of given date), or date range (with after/before)
-p, --put Put expenses to Harvest from CSV File
-x, --delete Delete expenses from Harvest using CSV File
-u, --user Harvest Username
-w, --password Harvest Password
-s, --subdomain Harvest Subdomain
-f, --file CSV file to use (required)
-c, --config Config File (default: ./harvest_cfg.json)
-d, --date Get expenses from the week of this day (default: today)
-a, --after Get expenses after this day
-b, --before Get expenses before this day
-h, --help Display this help message.