Create your invoice based on Harvest timesheets and calculate the exchange rate to your currency using Transferwise.
Optional: generate invoice using Sevdesk
Generate your personal access token in Harvest using this page.
cp .envrc.local-template .envrc.local
Save your Account ID and your token in .envrc.local
- Generate for the current month
harvest-exporter
- Generate for march:
harvest-exporter --month 3
- Filter by user
harvest-exporter --user "Hans Maier"
- Generate using json output
harvest-exporter --format json
- Generate using other currency
harvest-exporter --currency CHF
- Override hourly rate:
harvest-exporter --hourly-rate 100
This will override the hourly rate reported by harvest prior to applying the nutmide rate.
- Filter by client:
harvest-exporter --client "Some client"
This can be also used to export hours for clients that are external to numtide (client name starting with "External -")
- Generate an invoice with sevdesk
Generate a bill from the harvest exprt for the customer with the ID 1000
$ sevdesk-invoicer --customer "1000" harvest.json
For income tax in Germany one can claim money back for each day. The time report can be obtained from here for each user. Than run this script:
$ working-days-calculator report.csv
Working days: 171 from 2022-01-12 00:00:00 to 2022-12-29 00:00:00
Exports the last month timesheets of user Jon for client Bob
./bin/kimai-exporter --client Bob --user Jon
Calculates how much money still needs to be paid for the current year, given the current revenu, expenses and already payed pre-tax.
$ nix shell $HOME/git/freelancer-toolbox#sevdesk-invoicer -c sevdesk-tax-estimator --tax-office-name 'Finanzamt Berlin Finanzkasse' --harvest-folder 2024 --wise-folder statements/2024
...
Taxes left to pay: XXXXX.XX
- Get for each currency the account number / IBAN.
- Download the bank transactions as CSV from the Transactions tab in Wise
- Run the importer command:
nix shell $HOME/git/freelancer-toolbox#sevdesk-invoicer -c sevdesk-wise-importer -add-account "BE00 0000 0000 0000" "EUR" --add-account 8000000000 USD --import-state wise-import-state.json transaction-history.csv