In een van mijn eerste blogposts over GnuCash heb ik wel eens iets geschreven over de import van banktransacties. Maar dat was destijds nog niet heel uitgebreid. In deze blogpost een uitgebreidere beschrijving, naar aanleiding van vragen van lezers. Ook deel ik de spreadsheet die ik gebouwd heb om de exportbestanden van mijn bank ‘voor te bewerken’.
Zoals ik op mijn blog wel eens beschreven heb, werk ik met de Rabobank en met ABN AMRO. Bij die eerste staat mijn persoonlijke rekening, bij die tweede de gezamenlijke huishoudrekening. Bij de Rabobank download ik regelmatig het standaard CSV-bestand met rekeningtransacties, bij de ABN AMRO download ik het TXT-bestand. Die worden daarbij automatisch in mijn standaard Windows downloads directory geplaatst.
GnuCash Converter
Ik voer daarna inderdaad wat bewerkingen uit om die bestanden om te zetten in versies die makkelijker te importeren zijn in GnuCash. Ik heb hiervoor uiteraard een spreadsheet met macro’s ontwikkeld, die deze handelingen met één druk op de knop voor mij doen. Want als ik ergens een bloedhekel aan heb, dan is het aan identieke handmatige acties die ik regelmatig uit moet voeren. We leven in 2023, daar is ICT voor…
En ik heb daarvan inmiddels zelfs twee versies. Eentje voor Microsoft Excel (die ik zelf niet meer gebruik) en eentje voor LibreOffice Calc. Beide zijn op mijn Downloads-pagina te vinden, onder het kopje ‘GnuCash’. Let op, die werkt dus alleen voor bestanden van Rabobank en ABN AMRO! Voor de Rabobank importeer ik niet alleen de reguliere banktransacties, maar ook mijn creditcardtransacties.
De opzet van de spreadsheets is simpel. Op het werkblad ‘Settings’ vul je eenmalig jouw Downloads-directory in, ook de directories waar je wilt dat jouw originele bankbestand gearchiveerd wordt, en de GnuCash Import directory waar je wilt dat het voorbewerkte importbestand door de spreadsheet wordt opgeslagen. Daarna ga je naar het werkblad ‘Dashboard’. Hier kies je in het keuzevenster voor Rabobank Boekingen, Rabobank Creditcard, of ABN AMRO.
Vervolgens druk je op de knop ‘Process File’. Die start de verwerking op. Het bestand dat je vooraf gedownload hebt van de bank wordt gekopieerd naar de archiefdirectory. Daar wordt het geopend en tijdelijk ingelezen in de Converter spreadsheet. Die voert vervolgens een aantal bewerkingen uit. Datum en cijfervelden worden in het juiste formaat gezet, overbodige velden worden verwijderd, een aantal velden worden gecombineerd tot één veld. Het bestand dat overblijft wordt vervolgens opgeslagen in jouw ingestelde GnuCash Import directory.
GnuCash Import
Vervolgens start ik GnuCash. In mijn administratie ga ik naar ‘File | Import | Import Transactions from CSV…’. Dit opent de importfunctie van GnuCash.
Wat belangrijk is om te weten: in de importfunctie van GnuCash kun je vaste importprofielen aanmaken en opslaan. Die heb ik uiteraard gemaakt voor mijn importbestanden. Ik selecteer dus het juiste importbestand, kies daarna voor het bijbehorende importprofiel, en dan weet ik zeker dat het importbestand (de output van mijn Converter spreadsheet) goed wordt ingelezen. Hieronder beschrijf ik die profielen.
Wat ook prettig is om te weten: GnuCash leert van jouw boekingen. Als jij een keer een bepaalde boeking op rekening X geboekt hebt (bijvoorbeeld ‘supermarkt X’), en GnuCash komt bij een volgende import een boeking tegen met dezelfde kenmerken, dan zal GnuCash zelf voorstellen om die ook op rekening X te boeken. Dat scheelt handmatig werk. Let wel op, het systeem is niet onfeilbaar. Ik controleer dus altijd zelf tijdens het importeren de rekeningen die GnuCash voorstelt. Maar in meer dan 90% van de gevallen heeft GnuCash het goed gezien.
Stappen in het importproces
Eerst krijg je een informatiescherm over de Transaction Import Assistant. Als je op ‘Next’ klikt krijg je een scherm waar je het in GnuCash te importeren bestand kunt kiezen. De output van de Converter spreadsheet. Daarvoor kies je de directory die je op het Settings werkblad van de Converter hebt ingevuld als GnuCash Import directory. Als je die kiest, zie je (als het goed is) een bestand staan met de datum van vandaag. Dat selecteer je, je klikt weer op ‘Next’.
Vervolgens krijg je het scherm met de importinstellingen. Die beschrijf ik hieronder apart.
Import Rabobank Transacties
In onderstaand scherm zie je de instellingen die ik gebruik om Rabo Transacties te importeren. Als je deze instellingen gedaan hebt, typ dan een naam in venster (1) en klik dan op knopje (2) om de instellingen op te slaan. Dan kun je ze bij een volgende import met één druk op de knop hergebruiken.
Bij (3) zie je dat ik mijn banktransacties standaard op de grootboekrekening ‘Activa:Huidige Activa:Lopend Rabo’ (mijn standaard Rabo betaalrekening) importeer. Van daaruit laat ik ze dan boeken op de juiste kostenrekening, de juiste tegenrekening in activa (bijvoorbeeld een overboeking naar mijn spaarrekening of beleggingsrekening), of op een andere rekening (bijvoorbeeld hypotheektransacties die ik rechtstreeks tegenboek op de rekening ‘Passiva:Hypotheek’).
Als ‘separators’ tussen de velden van het importbestand gebruik ik puntkomma’s. Dat stel je in bij (4).
Het datumformat stel je in bij (5). Encoding en Currency Format heb ik op de defaultwaarde laten staan.
Bij (6) zie je dat de import begint bij regel 2 van het importbestand, want in regel 1 heb ik de kolomnamen staan.
Op de onderste helft van het scherm kies je bij (1) tot en met (5) de GnuCash-velden waar de betreffende importvelden weggeschreven moeten worden.
Zo simpel is het, dit zijn de instellingen die je nodig hebt om de output van de GnuCash converter te importeren. Vergeet je niet om de instellingen op te slaan?
Import Rabobank Creditcard Transacties
In onderstaand scherm zie je de instellingen die ik gebruik om Rabo Creditcard Transacties te importeren. Als je deze instellingen gedaan hebt, typ dan een naam in venster (1) en klik dan op knopje (2) om de instellingen op te slaan. Dan kun je ze bij een volgende import met één druk op de knop hergebruiken.
Bij (3) zie je dat ik mijn banktransacties standaard op de grootboekrekening ‘Passiva:Creditcards:Mijn Creditcard’ importeer. Van daaruit laat ik ze dan boeken op de juiste kostenrekening.
Als ‘separators’ tussen de velden van het importbestand gebruik ik puntkomma’s. Dat stel je in bij (4).
Het datumformat stel je in bij (5). Encoding en Currency Format heb ik op de defaultwaarde laten staan.
Bij (6) zie je dat de import begint bij regel 2 van het importbestand, want in regel 1 heb ik de kolomnamen staan.
Op de onderste helft van het scherm kies je bij (1) tot en met (4) de GnuCash-velden waar de betreffende importvelden weggeschreven moeten worden. Je ziet dat de eerste regel van het importbestand is weggestreept, daar staan de veldnamen en die hebben we bij (6) op het instellingenscherm ingesteld.
Import ABN AMRO Transacties
In onderstaand scherm zie je de instellingen die ik gebruik om ABN AMRO Transacties te importeren. Als je deze instellingen gedaan hebt, typ dan een naam in venster (1) en klik dan op knopje (2) om de instellingen op te slaan. Dan kun je ze bij een volgende import met één druk op de knop hergebruiken.
Bij (3) zie je dat ik mijn banktransacties standaard op de grootboekrekening ‘Activa:Huisidige Activa:Gezamenlijke Rekening’ importeer. Van daaruit laat ik ze dan boeken op de juiste kostenrekening, de juiste tegenrekening in activa (bijvoorbeeld een overboeking naar mijn spaarrekening of beleggingsrekening), of op een andere rekening (bijvoorbeeld hypotheektransacties die ik rechtstreeks tegenboek op de rekening ‘Passiva:Hypotheek’).
Als ‘separators’ tussen de velden van het importbestand gebruik ik puntkomma’s. Dat stel je in bij (4).
Het datumformat stel je in bij (5). Encoding en Currency Format heb ik op de defaultwaarde laten staan.
Bij (6) zie je dat de import begint bij regel 2 van het importbestand, want in regel 1 heb ik de kolomnamen staan.
Op de onderste helft van het scherm kies je bij (1) tot en met (3) de GnuCash-velden waar de betreffende importvelden weggeschreven moeten worden.
Vervolg Importproces
Als je het bestand geselecteerd hebt, de juiste importinstellingen hebt gekozen, en weer op ‘Next’ hebt gedrukt, gaat GnuCash aan de slag. De transacties worden ingelezen, en GnuCash probeert er zelf de juiste tegenrekening bij te vinden. Dat wordt je gepresenteerd via onderstaand scherm. Zelf vind ik dat soms best onoverzichtelijk. Het motiveert me om regelmatig mijn transacties in te lezen zodat er geen grote aantallen regels het scherm vervuilen.
Bij groene regels (1) denkt GnuCash zelf een matchende tegenrekening (2) gevonden te hebben. Dat is fijn, maar zoals ik al zei: het systeem is niet onfeilbaar, dus controleer het goed!
Bij gele regels (3) kan GnuCash geen tegenrekening voorstellen. Het systeem stelt dan standaard voor om het op een aparte rekening ‘IMBALANCES’ te boeken. Meestal kijk ik even naar de boeking en pas dan handmatig de tegenrekening aan. Dat doe je door de gele regel te selecteren met de rechtermuisknop te klikken op het rekeningveld waar ‘IMBALANCES’ staat, en te kiezen voor de optie ‘Assign a transfer account to the selection’.
Rode regels (niet in bovenstaand scherm) wil GnuCash om een of andere reden niet importeren. Door aan de rechterkant het juist vinkje bij veld A (4) te zetten kun je het systeem op andere gedachten brengen. Je kunt dan ook een tegenrekening instellen en de regel wordt gewoon geïmporteerd.
Soms markeert GnuCash zelf al boekingen (5) waarvan het systeem denkt dat die al eerder geïmporteerd zijn. Dat kun je zelf even controleren, de importfunctie staat (in elk geval onder Windows) open in een apart venster naast het eigenlijke GnuCash scherm. Je kunt dus makkelijk even schakelen tussen de vensters.
En daarna klik je weer op ‘Next’. De boekingen worden dan geïmporteerd in jouw GnuCash administratie, met de door jou geselecteerde tegenrekeningen. Scheelt een hoop tijd ten opzichte van handmatig invoeren!
Werk jij jouw administratie nog handmatig bij? Of heb je dat geautomatiseerd?
Het logo van GnuCash aan het begin van dit artikel is eigendom van de GnuCash developers.
NB: Op mijn startpagina vind je een overzicht van al mijn blogposts over GnuCash.
Goede post om GNUCash efficiënter te gebruiken. Ikzelf heb enkele weken geleden iets vergelijkbaars gemaakt, maar dan met Python. Als je Python leukt vindt om te gebruiken, is het het proberen waard, het werkt voor de ING Bank, Rabobank, ANWB Visa Credit Card (zelfs met alleen PDF statement beschikbaar) en ASN Bank. Zie link.
Dank, ik ga er zeker naar kijken!
Ik heb verder niet de converter gedownload om te kijken wat deze precies doet, maar ik kan de TXT-files (TAB extensie als je ze download) van de ABN AMRO zonder problemen rechtstreeks importeren in GnuCash. Daar is geen conversie voor nodig, puur de volgende aanpassing van de genoemde instellingen: Tab als seperator, Y-m-d voor datumnotatie, geen leading lines.
Daarnaast kun je via Tools -> Import Map Editor zelf nog meer invloed hebben op automatisch toewijzen van tegenrekeningen, mocht je in het verleden verkeerde keuzes hebben gemaakt. Ook heb ik wel eens tegenrekeningen waarvan ik wil dat iets daar niet automatisch op terecht komt. Na het importeren van de transacties open ik dan de Import Map Editor en verwijder alle matches voor de betreffende tegenrekening. De volgende keer wordt er dan weer geen match gevonden voor een transactie. Kijk wel uit wat je doet in de Import Map Editor, je kunt er ook goed je automatische transactie imports mee verpest, maak dus eerst een backup van je administratie.
Ik heb een paar keer getest wat importeren voor mij kon doen, maar vond het achteraf gezien te veel “prutswerk” om het de moeite waard te maken (kan ook aan mijn bank liggen natuurlijk). Onze huishouding loopt ondertussen sinds 2015 in hetzelfde GnuCash-bestand (voordien startte ik elk jaar een nieuw bestand, god weet waarom) dus 90% van de transacties is gelijkaardig aan een boeking die eerder al gebeurde. Meestal typ ik 2-3 letters van de beschrijving en vult GnuCash verder aan op basis van een transactie uit het verleden (ook de tegenrekening), waardoor handmatig invoeren zeer snel gaat.
Daarnaast heb ik alle maandelijkse vaste kosten (hypotheek, lonen, nutsvoorzieningen etc.) als “herhaalde transactie” in GnuCash gestopt, waardoor die automatisch worden ingeboekt op ongeveer de juiste datum. Die voegt GnuCash ook telkens een 10-tal dagen eerder al toe, wat een handige projectie op korte termijn biedt voor je rekeningsaldo. Dit heeft mij soms al van een impulsieve aankoop doen afzien, omdat ik duidelijk kan zien dat ik op dit moment misschien wel geld “over” heb daarvoor, maar binnen 10 dagen eigenlijk niet meer.
Ik merk dat handmatig invoeren ook nog een extra voordeel oplevert: Aangezien ik alles zelf in GnuCash stop, ben ik nog eens herinnerd aan die inkomst/uitgave en ben ik me nog beter bewust van alles wat binnen- en buitengaat. Soms is data invoeren ook gewoon “leuk”, toch als het zo beperkt blijft als bij onze boekhouding. Ca. 1 uurtje per week (soms in één blokje, soms verspreid over de week) is zelfs in 2023 best nog te verantwoorden manueel werk. 🙂
Beste Maurits, Ik ben wel in de markt voor een alternatieve import met gebruik van Python maar zie geen link hier, vergeten?
Ik ben je dankbaar Geldnerd voor deze post over importeren in GNUCash want ik wil dit jaar overstappen naar dit systeem. Helaas heb ik behoefte aan data die uit zoveel verschillende systemen en formaten komt dat ik me afvraag of het een haalbare kaart is.
Mijn contributie aan de discussie; het is mogelijk (en wellicht zelfs te prefereren) om “gestandaardiseerde” MT940 bestanden van verschillende banken te downloaden en met “OFX Statement” te converteren naar het door GNUCash leesbare OFX formaat (lees o.a. https://github.com/kedder/ofxstatement, https://github.com/gpaulissen/ofxstatement-dutch). Ik ben in elk geval die route voor nu aan het verkennen.
Antoine, als je boven de reactie van Maurits op zijn naam klikt kom je op GitHub terecht bij het Python script van Maurits.
En inzake MT940: Rabobank ondersteunt voor particuliere klanten alleen CSV, MT940 is voor mij dus geen optie.
Wat jij met GNU doet heb ik zelf ook op vergelijkbare wijze geautomatiseerd met python. Ik lees diverse ING rekeningen in, inclusief Credit Card trx. Ik laat python de matching doen en help bij non-matches. Ik maak een nieuw CSV export bestand van alle trx (> 10 jr) en vernieuw daarmee mijn draaitabel in Excel. Daarmee heb ik een prachtig overzicht van alle transacties plus een mooie grafiek met Inkomsten, Uitgaven, Besparing en Spaarquote over 10 jaar. En alle gegevens in eigen hand en volledige controle.