Invoices made from your own data. Reminders follow.
Customers, orders and time reports from Fortnox or Visma become invoices: number, OCR, VAT, rotavdrag, due date. Then the bank file is matched, and every overdue invoice gets a reminder draft in Swedish or English. A person approves each draft. Nothing is sent by the machine.
How it works
1 · Make invoices
Every finished order: rows and reported hours, discount, VAT on the sum, rotavdrag or reverse charge, number, OCR, due date. Anything unsure goes to a person.
2 · Match
The bank file: OCR first, then invoice numbers in the message. Anything unclear goes to a person.
3 · Find late
What is left on each invoice, how many days late, which tone: friendly, firmer or last notice.
4 · Draft
One reminder per invoice. A check proves every number in it equals the books.
Swedish rules it follows
What an invoice must show
Date, a unique number in one series, both parties' names and addresses, our VAT number, what was done, net per rate, VAT rate and amount. No gaps: an order a person must check gets no number.
Mervärdesskattelag (2023:200) 17 kap. 24–25 §§VAT 25 %, on the sum
Moms is worked out once on the net sum, not per row, so the öre add up. Normal rate 25 %.
Mervärdesskattelag (2023:200) 9 kap. 2 §Rotavdrag: 30 % of the work
Only work, with moms; not material or travel. At most 50 000 kr per person and year. Needs personnummer and fastighetsbeteckning. Rounded down to whole kronor.
skatteverket.se: så fungerar rotavdragetReverse charge for builders
Building work sold to a builder: no VAT, the words "Omvänd betalningsskyldighet" and the buyer's VAT number. Goods only: normal VAT.
skatteverket.se: omvänd betalningsskyldighet inom byggsektornReminder fee: 60 kr, only if agreed
Only when the customer agreed to it, at the latest when the debt arose. Otherwise no fee.
Lag (1981:739) 2 § and 4 §Interest: referensränta + 8
Dröjsmålsränta runs from the due date, on what is left each day. Referensränta 2,00 % from 1 July 2026, so 10 % per year.
Räntelagen (1975:635) 3 §, 6 §, 9 § · riksbank.seWhat it does not do
- It does not decide if a job is building work or rot work. The order says so; the code checks the facts that order needs and stops if one is missing.
- The 50 000 kr rot limit is counted on our own invoices only. The customer may have used rot with another firm this year.
- If Skatteverket refuses the rotavdrag, the customer owes that part. A person sends that invoice; the demo does not.
- Credit invoices, sales of goods to other countries and VAT rates other than 25 % go to a person.
- The number check guards numbers, not grammar. A person reads every reminder before it goes out.
- It sends nothing. Invoices and reminders wait as drafts for a person.
Run it yourself
python3 -m unittest # 29 checks, no model needed python3 make_data.py # the sample export: customers, articles, orders, time reports, bank file python3 run.py # 77 orders -> invoices -> bank file -> reminders; score card, updates this page
The firm, customers, orders and payments are made up. Personnummer are Skatteverket's published test numbers; org and VAT numbers have a wrong check digit on purpose, so none is a real firm's. Results on this page come from one real run on a laptop. This is not legal or tax advice.