Voor vragen? Email: [email protected]

Digitale factuur standaard

Dit artikel laat een digitale factuur standaard zien waarvan wij hopen dat alle Nederlandse bedrijven het gaan gebruiken. Hiermee kan het werken rondom facturen volledig worden geautomatiseerd en dit neemt werk uit handen van ondernemers. Waardoor je tijd kan besteden aan leukere dingen.

Waarom is dit nodig?

Heel simpel, een computer kan een papieren factuur niet lezen. Je moet dus zelf handmatig gegevens overnemen. Daarnaast hebben alle bedrijven een eigen afwijkend design, waardoor je moet zoeken naar de gegevens. Zonder een standaard kan je dit niet automatiseren. Het voordeel is dus dat je zelf nooit meer een factuur hoeft uit te lezen. Ook voor boekhoudprogramma's is dit een voordeel. Die kunnen facturen ook niet uitlezen. Oftewel interessant voor meerdere partijen.

Simpel houden

Deze standaard heeft als doel om zo simpel mogelijk te zijn. Dit moet het duidelijker maken. Bestaande standaarden zijn te moeilijk gemaakt en worden dan ook nauwelijks gebruikt. Daarom gebruiken wij alleen de minimaal noodzakelijke gegevens die op een factuur moeten staan. Simpeler dan dit kan het niet worden. Bedrijven kunnen deze standaard uitbreiden door zelf hun eigen unieke gegevens toe te voegen. Onderop geven we daar een voorbeeld van voor een webshop.

Hoe werkt het?

Normaal gesproken zou je een pdf bestand geven. Nu geef je een bestand met alleen de tekst gegevens erin, genoteerd met onderstaande vorm. Oftewel geen design, alleen de data. Je gaat de gegevens van je factuur in de volgende vorm netjes noteren. "titel": "waarde" In programmeren noemen we dit een "key, value pair". Je krijgt bijv. het volgende: "name": "Bart", "street": "straatweg 1", "postcode": "1234 AB", "email": "[email protected]" Vervolgens kan je regels bij elkaar groeperen door er haakjes {} omheen te zetten. En er weer een titel voor te zetten, bijv: "buyer": { "name": "Bart", "street": "straatweg", "postcode": "1234 AB", "email": "[email protected]" } Op deze manier noteer je alle factuur gegevens netjes op een gestructureerde manier. Dit is te lezen door mensen maar ook door een computer. Het bestand moet je opslaan als een ".json" bestandstype. Deze vorm wordt namelijk een json format genoemd. Je zou dit zelf kunnen doen, maar dat is niet de bedoeling. We willen automatiseren. Jou software die facturen maakt moet deze standaard implementeren. Zo heb je er nul omkijken naar. De eerste paar jaren geef je echter nog wel het pdf bestand mee. Dit omdat het nieuw is. Het duurt even voordat het gemeengoed is.

De gegevens

Dit gedeelte is voor de software ontwikkelaars, je mag dit deel overslaan en doorscrollen naar het voorbeeld. Hier worden alle keys beschreven met hun bijbehorende type value. Klik op "toon" om alle keys te bekijken. Sommige bedrijven mogen een versimpelde factuur gebruiken. In dat geval mag je keys leeglaten door "" te schrijven of je mag ze ook helemaal weglaten.

Keys

schema String
Zet deze naar "digitalefactuurstandaard.nl".
version String
Zet deze naar "v2023-11-1".
invoiceNumber String
Het factuur nummer.
date String
De datum in de vorm YYYY-MM-DD.
deliveryDate String
De datum waarop de producten/diensten zijn geleverd, of zijn vooruitbetaald. In de vorm YYYY-MM-DD.
seller Seller object
Een object met onderstaande keys om de verkoper te omschrijven.
name String
De bedrijfsnaam.
street String
De straat.
postcode String
De postcode.
city String
De stad.
countryCode String
Een twee letterige landcode (alpha-2) volgens de ISO 3166-1 standaard. Zie landcodes.
country String
Het land.
cOfCNumber String
Het kvk nummer.
vatId String
Het btw-id nummer.
Buyer Buyer object
Een object met onderstaande keys om de koper te omschrijven.
name String
Een bedrijfsnaam of een consumenten naam.
street String
De straat.
postcode String
De postcode.
city String
De stad.
countryCode String
Een twee letterige landcode (alpha-2) volgens de ISO 3166-1 standaard. Zie landcodes.
country String
Het land.
cOfCNumber String
Het kvk nummer.
vatId String
Het btw-id nummer.
products/Services Array with products/Services objects
Een lijst met objecten met onderstaande keys om de producten/diensten te omschrijven.
title String
Naam van het product/dienst.
description String
Eventueel aanvullende gegevens over het product/dienst.
priceExcludingTax Float
De prijs zonder btw.
taxTarif String
Het btw tarief zoals 21% of 9%.
taxAmount Float
Het btw bedrag.
priceIncludingTax Float
De prijs inclusief de btw.
quantity Integer
Het verkochte aantal.
totalExcludingTax Float
Het totaal van dit item zonder btw. Oftewel prijs maal aantal.
totalTaxAmount Float
Het totaal van dit item aan btw.
totalIncludingTax Float
Het totaal van dit item inclusief de btw.
totals Totals object
Een object met onderstaande keys om de totalen te omschrijven.
excludingTax Float
Totaal zonder de btw.
taxAmountPerTarif Object
Totalen aan btw per btw tarief. Voorbeeld: {"21%": 10.00, "9%": 5.00}
taxAmount Float
Het totaal aan btw.
includingTax Float
Het totaal inclusief btw. Dit bedrag moet je betalen.
Toon

Voorbeeld

Dit voorbeeld toont het minimale aantal gegevens dat in het bestand moet staan. Download voorbeeld

{
"schema": "digitalefactuurstandaard.nl",
"version": "v2023-11-1",
"invoiceNumber": "Factuur-0000000001",
"date": "2023-01-01",
"deliveryDate": "2023-01-01",
"seller": {
"name": "Bedrijf 1",
"street": "Dijkweg 1",
"postcode": "6789 KL",
"city": "",
"countryCode": "NL",
"country": "Nederland",
"cOfCNumber": "Kvk-1234567890",
"vatId": "NL-1234567890"
},
"buyer": {
"name": "Bart",
"street": "Straatweg 1",
"postcode": "1234 AB",
"city": "",
"countryCode": "NL",
"country": "Nederland",
"cOfCNumber": "", // optioneel
"vatId": "" // optioneel
},
"products/Services": [
{
"title": "T-shirt",
"description": "Maat medium",
"priceExcludingTax": 10.00,
"taxTarif": "21%",
"taxAmount": 2.10,
"priceIncludingTax": 12.10,
"quantity": 2,
"totalExcludingTax": 20.00,
"totalTaxAmount": 4.20,
"totalIncludingTax": 24.20,
},
{
"title": "Verzendkosten",
"description": "",
"priceExcludingTax": 5.00,
"taxTarif": "21%",
"taxAmount": 1.05,
"priceIncludingTax": 6.05,
"quantity": 1,
"totalExcludingTax": 5.00,
"totalTaxAmount": 1.05,
"totalIncludingTax": 6.05,
},
],
"totals": {
"excludingTax": 25.00,
"taxAmountPerTarif": {
"21%": 5.25
},
"taxAmount": 5.25,
"includingTax": 30.25
}
}

Uitbreiden van de standaard

Ieder bedrijf heeft zijn eigen unieke gegevens die op een factuur worden getoond. Zo zal een webshop verzendadres gegevens toevoegen en een energie factuur meterstanden. Hieronder zie je een voorbeeld hoe een webshop deze standaard kan uitbreiden met zijn eigen unieke gegevens.

{
Begin met dezelfde minimale gegevens als hierboven.
"shippingAddress": {
"name": "Bart",
"street": "Straatweg 1",
"postcode": "1234 AB",
"country": "Nederland"
}
}

Je mag ook de "products/Services" items uitbreiden met unieke gegevens.

Opdracht voor jullie

De volgende stap moeten jullie doen. Jullie moeten deze standaard implementeren. Oftewel jullie hebben in de hand of dit project gaat lukken. Want jullie bepalen namelijk of je dit bestand meestuurt naar je klanten. Kleine moeite groot plezier. Steun dit project door het te delen met iedereen die je kent. Vraag ook jou boekhoudprogramma om dit te gaan gebruiken. Zo zorgen we samen voor minder werk. 🥳 🎉