thumb|Voorbeeld van grootboek en aankoopdagboek in boekhoudprogramma Winkin' 9 thumb|Voorbeeld van een boekhoudprogramma met enige gelieerde functies Een boekhoudprogramma is een softwarepakket waarmee de boekhouding is te automatiseren. Met een dergelijk programma zijn dus een inkoopfactuur, een bankafschrift of een memoriaalboeking vast te leggen. Tevens laat het min of meer automatisch een balans en een resultatenrekening vervaardigen en vervult zo alle basisfuncties van een boekhouding, namelijk die van de grootboekadministratie.

In de praktijk bieden de meeste pakketten meer functionaliteit doordat ook functies voor subadministraties (debiteuren, crediteuren en/of voorraad) aanwezig zijn. Verder kunnen gelieerde functies als telebankieren, consolidatie, budgettering, relatiebeheer, vaste activa, inkoop, verkoop, projecten of productie naar voren komen.

De functies van een boekhoudprogramma Algemene functies Algemene functies zijn functies die niet een specifiek boekhoudkundig karakter hebben, maar wel gewenst kunnen zijn. Verder zijn het functies die ook bij andere (administratieve) programma’s aanwezig kunnen zijn. Voorbeelden zijn toegangsbeveiliging, import en export.

Toegangsbeveiliging Toegangsbeveiliging is het beveiligen van de functies binnen het pakket tegen onbevoegd gebruik. Daartoe wordt voor elke gebruiker vastgelegd welke functies hij mag gebruiken. Daarnaast worden per gebruiker naam en wachtwoord vastgelegd. Bij de 'toegangspoort' van het pakket worden altijd de naam en het wachtwoord gevraagd, waarna wordt bepaald welke 'deuren' geopend mogen worden en welke deuren gesloten blijven voor de desbetreffende gebruiker. Bedenk dat het gebruikte besturingssysteem in de meeste gevallen ook de nodige faciliteiten biedt voor toegangsbeveiliging.

Import Gegevens kunnen binnen allerlei applicaties worden beheerd. Soms is het noodzakelijk dat de gegevens van de ene applicatie verhuizen of worden gekopieerd naar de andere applicatie. Een applicatie kan echter zelden de gegevens van een andere applicatie beheren of raadplegen. Wel is vaak import mogelijk van een bestand met gegevens. Zo zou een boekhoudpakket een bestand met naam- en adresgegevens kunnen importeren, waarna die gegevens worden toegevoegd aan het crediteurenbestand. De import is soms beperkt tot alleen de vaste gegevens (stamgegevens). Dat zijn de gegevens binnen het boekhoudpakket die min of meer een vast karakter hebben; bijvoorbeeld de gegevens van debiteuren, crediteuren en grootboekrekeningen.

Naast de import van vaste gegevens wordt ook de import van transacties onderscheiden. Daarbij is aan de ene kant sprake van een applicatie die bepaalde transacties beheert en deze meestal periodiek exporteert naar een bestand. Aan de andere kant is er een boekhoudpakket te vinden dat een bestand met transacties importeert en verwerkt. Deze situatie kan bijvoorbeeld spelen bij een filiaal dat via een bepaalde applicatie de kastransacties vastlegt, waarna dagelijks een bestand wordt vervaardigd met die kastransacties voor verwerking op het hoofdkantoor.

Export Export is het spiegelbeeld van import. Het betreft het vervaardigen van een bestand met gegevens die vervolgens kunnen worden verwerkt door een ander programma, zoals een spreadsheet en een tekstverwerker. Een sprekend voorbeeld is het vervaardigen van een saldi-lijst op maandbasis en deze vervolgens in een spreadsheet verwerken tot de maandelijkse rapportage. Bij veel pakketten is de export geïntegreerd in de overzichten. Elk overzicht is dan zowel te raadplegen op het beeldscherm en af te drukken via de printer als te exporteren naar een bestand.

Multi-user De noodzaak kan aanwezig zijn om met meer dan één gebruiker met het boekhoudpakket te werken. De ene gebruiker raadpleegt bijvoorbeeld de gegevens van relaties en voegt notities toe en de andere gebruiker boekt de ontvangen betalingen. In dergelijke gevallen mogen dezelfde gegevens niet gelijktijdig gewijzigd kunnen worden. Zo mag het niet zijn dat de ene gebruiker het adres van debiteur XYZ kan wijzigen, terwijl op hetzelfde moment de andere gebruiker het telefoonnummer wijzigt. In dat geval zou immers of het nieuwe adres of het nieuwe telefoonnummer niet worden bewaard. De faciliteiten om de gegevens te beschermen bij gelijktijdig gebruik staan bekend onder de naam Multi-user. Zijn die faciliteiten afwezig, dan wordt gesproken van single-user. De meeste pakketten zijn in de basisuitvoering single-user, maar zijn uit te breiden tot multi-user.

Grootboek Het grootboek (de grootboekadministratie) vormt altijd het hart van elke boekhouding. In het grootboek worden namelijk alle financiële gebeurtenissen vastgelegd. Dat gebeurt in de vorm van (financiële) transacties, ook wel mutaties/journaalposten genoemd. Een transactie is bijvoorbeeld het vastleggen van een ontvangen inkoopfactuur, het boeken van een ontvangen betaling of het verwerken van de afschrijvingen. Op basis van het grootboek kan zowel een balans als een verlies- en winstrekening worden vervaardigd. De balans laat voor een bepaalde datum alle bezittingen, alle schulden en het resulterende verschil, het kapitaal (eigen vermogen) zien. De verlies- en winstrekening geeft voor een bepaalde periode een overzicht van alle opbrengsten, alle kosten en het resulterende verschil (een winst of verlies).

Budgettering Het grootboek kan worden uitgebreid met budgettering: de systematiek waarbij de gerealiseerde cijfers worden vergeleken met de gebudgetteerde cijfers. Zo kan het budget voor de omzet van januari gelijk zijn aan 100.000 euro, terwijl in januari een omzet werd gerealiseerd van 110.000 euro. In dat geval laat vergelijking van beide cijfers zien dat in januari de gebudgetteerde omzet met 10% werd overschreden. De functie Budgettering binnen een boekhoudpakket betreft in principe alleen de mogelijkheid om budgetcijfers in te voeren en om nodige overzichten te vervaardigen die de gerealiseerde cijfers versus de gebudgetteerde cijfers laten zien. Dat betekent dat de gebruiker zelf de budgetcijfers moet samenstellen. Wel zijn er enkele uitzonderingen. Zo zijn er boekhoudpakketten die op basis van de budgetcijfers en/of de gerealiseerde cijfers van vorig jaar een serie budgetcijfers kunnen samenstellen.

Kostenplaatsen Tijdens het invoeren van de transacties wordt aan elk bedrag een grootboekrekening toegekend; bijvoorbeeld autokosten. In bepaalde gevallen kan het gewenst zijn om nog een verdere onderverdeling aan te brengen; bijvoorbeeld de brandstofkosten naar auto. Dat kan met de subfunctie Kostenplaatsen. Tijdens de transactie-invoer kan dan niet alleen de rubriek Rekening, maar ook de rubriek Kostenplaats worden ingevoerd. Bij de rubriek Kostenplaats kan dan in dit geval een auto worden gekozen.

Vervolgens laat de verlies- en winstrekening niet alleen het totaal van de brandstofkosten en het kostentotaal per auto zien, maar ook brandstofkosten voor alle individuele auto's.

Vreemde valuta Bij een bankrekening in dollars is het vastleggen van de transacties lastig. Elk dollarbedrag moet immers eerst worden geconverteerd naar euro's. Daarnaast kan niet worden nagaan of het saldo in de boekhouding wel spoort met het saldo van de bankrekening in dollars. De subfunctie Vreemde valuta lost dit probleem op. Men kan volstaan met het invoeren van de dollarbedragen en eventueel de koers van de dollar en de overzichten laten zowel de bedragen in euro's als in dollars zien.

Consolidatie Menig bedrijf is formeel gescheiden in een management-BV en een of meer werkmaatschappijen. Voor al die vennootschappen moet de administratie worden gevoerd met het boekhoudprogramma. Dat gebeurt door voor elke vennootschap een aparte administratie aan te maken, waarna op de normale manier voor elke administratie de transacties zijn in te voeren. De overzichten als balans en verlies- en winstrekening laten voor de individuele bedrijven zien hoe het er financieel voorstaat. Om de gecombineerde cijfers te zien, is de subfunctie Consolidatie nodig. Die subfunctie laat de cijfers voor twee of meer administraties 'optellen' en geeft via een geconsolideerde balans en geconsolideerde resultatenrekening de financiële situatie van het geheel weer.

Telebankieren De boekhouding bijwerken betekent periodiek de mutaties van de ontvangen bankafschriften invoeren. Die werkzaamheden zijn met de subfunctie Telebankieren te automatiseren. Wel is het dan noodzakelijk dat het boekhoudprogramma toegang heeft tot de banktransacties. Dat kan bijvoorbeeld gebeuren door via Internet bij de bank de laatste banktransacties in de vorm van een bestand te downloaden. Vervolgens kan het boekhoudprogramma dat bestand verwerken. Regel voor regel wordt het bestand gelezen en bij elke regel wordt gevraagd op welke rekening het desbetreffende bedrag geboekt moet worden. Sommige pakketten zijn slimmer en boeken, als voldoende informatie aanwezig is, zelfstandig het bedrag op de juiste rekening.

Elektronische btw-aangifte Vanaf 1 januari 2005 is het wettelijk verplicht voor ondernemers hun omzetbelasting aangifte elektronisch te verrichten. De functie om die aangifte elektronisch te verrichten, kan zijn ingebouwd in het boekhoudpakket. Daarmee kan de aangifte dan snel en foutloos worden verricht. Ook is het mogelijk dat het een apart programma betreft. In beide gevallen vindt de beveiliging plaats door een certificaat of met een pincode. Aan de eerste zijn kosten verbonden en aan de tweede niet. In het boekhoudpakket kan een van beide of beide methodes zijn ingebouwd.

Vaste journaalposten Als het voorkomt dat bepaalde transacties periodiek terugkomen, kan de subfunctie Vaste journaalposten zinvol zijn. Deze functie laat de gegevens voor dergelijke transacties eenmalig invoeren, waarna periodiek die transacties automatisch zijn samen te stellen. Voorbeelden: de maandelijkse journaalpost van de loonkosten van een werknemer, de maandelijkse afschrijving van de productiemiddelen (als de functie Vaste activa niet wordt gebruikt) en de maandelijkse renteboeking van een lening.

Is de subfunctie uitgebreid, dan wordt het ook mogelijk om het saldo van een of meer grootboekrekeningen via een bepaalde verdeling naar andere rekeningen te boeken. Daardoor zijn bijvoorbeeld de kosten van een afdeling via een bepaalde verdeelsleutel automatisch door te belasten naar andere afdelingen.

Transitorische posten De subfunctie Transitorische posten is specifiek bedoeld om een bepaalde opbrengsten- of kostenpost niet in één periode te laten vallen, maar te spreiden over een serie perioden. Zo is de betaling van de huur voor één jaar via deze subfunctie automatisch naar voren te laten komen als een kostenpost in de resultatenrekening gedurende twaalf maanden. Een jaarovergang geeft in principe geen problemen. Het resterende saldo wordt berekend en komt vervolgens naar voren onder de overlopende activa of passiva.

Debiteuren De balans laat altijd de post Debiteuren zien. Worden alle transacties van de rekening geraadpleegd, dan zien wij een 'bij'-boeking als een factuur wordt verzonden en een 'af'-boeking als een factuur wordt betaald. Specifieke informatie over een debiteur of een factuur is echter niet aanwezig. Zijn er slechts enkele debiteuren en een gering aantal facturen, dan kan het informatieprobleem worden opgelost door voor elke debiteur een aparte rekening te openen, waarop exclusief de transacties voor de desbetreffende debiteur worden geboekt. Zijn er veel debiteuren en facturen, dan is de functie Debiteuren noodzakelijk.

De functie laat bij de invoer van een factuur expliciet een debiteur en een factuurnummer invoeren.

Aanmaningen