Skip to content

cappe987/sie-maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIE-maker

Table of Contents

Overview

A simple TUI that takes exported CSV from a bank account and lets you easily create vouchers and export to SIE. Does not handle connecting receipts to a voucher. This has to be done in your bookkeeping software after importing the vouchers. Only vouchers are exported. No other SIE data is handled.

I'm the bookkeeper for a sports club of ~100 members (and by no means a professional accountant). Our bookkeeping requirements are pretty low, but we do use Fortnox, and so all Nordea transactions must be transferred and accounted for. Instead of manually transferring every transaction I'm able to export CSV from Nordea and run it through this program to do it much faster and less chance of errors (assuming the code is correct of course). Yes, we could pay for their system integration but why bother.

  • Support basic Vim motions.
  • Shortcuts (0-9) for commonly used accounts.
  • Fuzzy searching for accounts.
  • Space to group transactions into the same voucher.
  • Split transaction into multiple accounts. E.g. one payment may be split into three different bookkeeping accounts.
  • Config with shortcuts and accounts defined in config.json

Main screen Overview of all bank transactions with all entries belonging to a voucher as indicated by the Voucher ID (VID).


Voucher with error Editing a voucher. An error is displayed when attempting to save an incomplete voucher.


Fuzzy find account Fuzzy finding for accounts.


Overview Overview of all created vouchers.


Dependencies

textual

textual-dev can be useful during development.

Setup

python3 -m venv .fvenv
source .fvenv/bin/activate
pip install -r requirements.txt
python3 src/sie_maker.py --config example/config.json
  • -i: Input file from bank.
  • -o: Output file.
  • -w: Temporary file containing all information until it's explicitly exported. Allows closing the program and reloading it later. Default: work.json
  • -c: Configuration file. Default: config.json
  • -X: Skip any y/n prompts. Not recommended when doing actual work.

Configuration

If -c/--config isn't specified it looks for config.json in the root directory of this project. If config file doesn't exist it falls back to defaults.

  • default_account is assigned as the "source" for all transactions. Then the destination just needs to be assigned.
  • block_edit_primary prevents you from accidentally editing the main transaction. Default: true.
  • account_shortcuts are keys 0-9 and can be pressed to insert that account to a transaction.
  • accounts list is just for the account description string and allows fuzzy searching. Other accounts can be written manually.

See example/config.json

Debugging

Start textual console in a separate terminal and start program with textual run --dev src/sie_maker.py (and with correct CLI args).

SIE format

SIE stands for Standard Import Export and is a Swedish standardized format for transferring bookkeeping data between applications.

Full information available here:

Voucher description

The tag name VER comes from the Swedish "Verifikation".

#VER serie voucher_nr voucher_date voucher_text reg_date signature
  • serie: A-Z (for now, just use A)
  • voucher_nr: Incremental number for each voucher, starts at 1.
  • voucher_date: Date for voucher.
  • voucher_text: Name of voucher
  • reg_date: Date the voucher was created.
  • signature: Optional signature
#TRANS account_nr {objectlist} amount transaction_date transaction_text quantity signature
  • account_nr: The account number
  • objectlist: Not sure what this is for. Unused in my examples.
  • amount: The amount of money. Positive if added to account. Negative if removed.
  • transaction_date: Optional. Date of transaction. If left empty it inherits from the voucher.
  • transaction_text: Freetext comment for the transaction
  • quantity: Optional. Not sure what this is for. Fortnox doesn't expose this when creating vouchers and all my examples show 0 here.
  • signature. Optional signature.
#VER A 1 20251228 "Test Rent" 20251229
{
   #TRANS 1920 {} -9999 "" "Money taken from bank account" 0
   #TRANS 5010 {} 9999 "" "Money assigned to rent account" 0
}

Above is an example voucher done on 2025-12-29, concerning a rent payment done on 2025-12-28. 9999 SEK is moved from bank account to the rent account.

TODO

  • Make Yorn prettier

About

A simple bookkeeping program that can take a CSV file with transactions and allow you to easily create vouchers and export to SIE.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages