
Peppol is een internationaal, open B2B-netwerk waarmee organisaties gestructureerde zakelijke documenten, zoals bestellingen en facturen, efficiënt kunnen uitwisselen.
Inzicht in de technische specificaties en het implementatieproces van Peppol is van cruciaal belang voor ontwikkelaars om robuuste systemen te bouwen die de efficiëntie van organisaties vergroten. Deze handleiding geeft een overzicht van de belangrijkste concepten en technische richtlijnen waarmee ontwikkelaars aan de slag kunnen met elektronische bestellingen via Peppol.
Wat is Peppol?
Peppol (Pan-European Public Procurement Online) is een raamwerk dat de elektronische uitwisseling van documenten tussen bedrijven en overheidsinstanties standaardiseert. Het is geen ERP-systeem, portaal of inkoopplatform, maar een protocol dat interoperabiliteit tussen verschillende systemen mogelijk maakt.
Peppol maakt gebruik van het vierhoeksmodel, wat inhoudt dat elke organisatie via de door haar gekozen Peppol Access Point-provider verbinding maakt met het netwerk, waardoor het niet meer nodig is om dienstverleners op elkaar af te stemmen met zakelijke partners.

De belangrijkste kenmerken van Peppol zijn:
- Standaardisatie: een gemeenschappelijke taal voor zakelijke documenten in alle sectoren.
- Interoperabiliteit: compatibiliteit tussen systemen wereldwijd.
- Schaalbaarheid: Sluit eenvoudig nieuwe partners aan zonder extra ontwikkelingswerk.
Peppol biedt ontwikkelaars een raamwerk om gestructureerde elektronische orderverwerking in bestaande bedrijfsprocessen te integreren.
Aan de slag met Peppol-bestellingen
Om elektronische bestellingen via Peppol te kunnen implementeren, is het noodzakelijk om inzicht te hebben in de Business Interoperability Specifications (BIS), de syntaxis van de berichten en de vereisten voor gegevensuitwisseling.
Hieronder volgt een overzicht van de zes belangrijkste stappen en de bijbehorende technische overwegingen.
1. Inzicht in de basiselementen
Ontwikkelaars die Peppol-facturen implementeren, moeten weten hoe ze cbc-elementen correct moeten invullen volgens de Peppol BIS-richtlijnen, om ervoor te zorgen dat de documenten aan de voorschriften voldoen en de verzending succesvol verloopt.
In de context van Peppol en de UBL-syntaxis (Universal Business Language) voor facturen staat cbc voor Common Basic . Deze vooraf gedefinieerde gegevenselementen binnen het UBL-schema vormen de basisbouwstenen van bedrijfsdocumenten zoals facturen, bestellingen en verzendberichten.
Belangrijkste kenmerken van CBC-elementen
- Eenvoudige gegevenstypen: cbc-elementen zijn doorgaans atomair en vertegenwoordigen eenvoudige gegevens zoals tekst, getallen, datums of codes.
- Basic : Ze leggen essentiële, eenvoudige gegevens vast, zoals identificatiegegevens, datums, geldbedragen of beschrijvingen.
- Herbruikbaarheid: Deze componenten zijn zo ontworpen dat ze in verschillende soorten UBL-documenten kunnen worden hergebruikt.
2. Kies het Peppol BIS-profiel voor bestellingen
Peppol ondersteunt drie hoofdspecificaties, ook wel profielen genoemd, voor bestelprocessen. Elk BIS is ontworpen voor specifieke toepassingen, en zakenpartners moeten overeenkomen welke ze gaan gebruiken.
BIS Order Only: Voor eenvoudige bestellingen zonder reactie van de leverancier.
BIS Ordering: Inclusief reacties op bestellingen ter bevestiging van acceptatie, afwijzing of gedeeltelijke acceptatie.
BIS Despatch Advice: Informeert de koper over de verzendgegevens.
3. De syntaxis van Peppol-bestellingen begrijpen
De Peppol-ordertransactie (T01) volgt de UBL-standaard (Universal Business Language) standaard.
Om Peppol effectief te implementeren, moeten ontwikkelaars grondig begrijpen hoe ze cbc-elementen moeten invullen volgens de Peppol BIS-richtlijnen, zodat zowel naleving als een soepele verzending gewaarborgd zijn. Het is essentieel dat de vereiste syntaxis voor alle documentelementen wordt nageleefd, aangezien afwijkingen van de validatieregels van Peppol kunnen leiden tot fouten die het bestelproces verstoren.
Hier volgen enkele voorbeelden van essentiële onderdelen van besteldocumenten:
| UBL-element | Beschrijving |
| cbc:ID | Een unieke ordercode. |
| cbc:Bestelsoortcode | Geeft het type order aan, zoals een inkooporder. |
| cbc:DocumentValutacode | Geeft de valuta aan (bijv. „EUR”). |
| cac:geldigheidsduur | Geeft de vervaldatum van de bestelling aan. |
Kenmerken van CBC-elementen
Weergave van gegevens: cbc-elementen vertegenwoordigen doorgaans afzonderlijke gegevensvelden, waardoor ze eenvoudig te gebruiken en te valideren zijn.
Attributen: Sommige cbc-elementen bevatten attributen zoals currencyID (voor bedragen) of unitCode (voor hoeveelheden).
Verplicht/optioneel: De Peppol BIS-richtlijnen (Business Interoperability Specification) geven aan welke cbc-elementen verplicht, optioneel of voorwaardelijk verplicht zijn.
Vergelijking met CAC (Common Aggregate Components)
Terwijl cbc basiscomponenten vertegenwoordigt, wordt cac (Common Aggregate Components) gebruikt voor complexe gegevensstructuren waarin verwante cbc- en andere cac-elementen worden gegroepeerd. Zo groepeert cac:Party bijvoorbeeld alle informatie over een bedrijfsentiteit, zoals de naam, het adres en de identificatiegegevens.
Raadpleeg de officiële Peppol BIS Ordering voor meer informatie over specifieke CBC-elementen die bij Peppol UBL-bestellingen worden gebruikt.
3. Integratie met een Peppol-toegangspunt
Peppol-transacties worden verzonden via gecertificeerde Peppol-toegangspunten, ook wel Peppol-serviceproviders genoemd. Als ontwikkelaar moet je applicatie verbinding maken met de API van een provider om documenten te verzenden en te ontvangen. Toegangspunten zorgen voor de technische afhandeling van het doorsturen van berichten van en naar handelspartners.
Lees meer over het opvragen van Peppol-bestellingen via de Order API.
4. Validatie en foutafhandeling implementeren
Validatie garandeert dat aan de regels van Peppol en de BIS-vereisten wordt voldaan. Voer grondige validatiecontroles uit om fouten vóór de verzending op te sporen. Controleer bijvoorbeeld verplichte velden zoals cbc:ID en cbc:DocumentCurrencyCode. Controleer de geldigheid van gegevensformaten, waaronder datums, valuta’s en identificatiecodes.
Voor gebruikers van het Peppol Access Point van Qvalia zijn formaatcontroles standaard ingebouwd en geautomatiseerd.
5. Test in een sandbox-omgeving
Test de integratie in een door uw Access Point-provider aangeboden testomgeving voordat u uw oplossing implementeert. Zo kunt u verschillende scenario’s simuleren, zoals het plaatsen van bestellingen, het ontvangen van reacties en het beheren van verzendbevestigingen.
Technische inzichten: De structuur van Peppol-orders
Peppol-bestellingen zijn gebaseerd op XML-gebaseerde UBL-schema’s. Hieronder volgt een kort overzicht van de belangrijkste elementen in de bestelstructuur:
Koptekst
De koptekst bevat essentiële metagegevens over de bestelling.
| UBL-element | Beschrijving |
| <cbc:ID> | Een unieke identificatiecode voor het besteldocument (bijvoorbeeld „1234567”). |
| <cbc:IssueDate> | De datum waarop het besteldocument is opgesteld (bijv. „14-08-2024“). |
| <cbc:OrderTypeCode> | Geeft het type order aan, waarbij „220“ doorgaans staat voor een inkooporder. |
| <cbc:DocumentCurrencyCode> | Geeft de valuta aan die in het besteldocument wordt gebruikt (bijv. „EUR”). |
Gegevens van koper en verkoper
De koper en verkoper worden gedefinieerd met behulp van de segmenten `cac:BuyerCustomerParty` en `cac:SellerSupplierParty`.
| UBL-element | Beschrijving |
| <cac:BuyerCustomerParty> | Vertegenwoordigt de koper bij de transactie en bevat gegevens over de klant. |
| <cac:Party> | Bevat informatie over de koper, zoals identificatiegegevens en namen. |
| <cbc:EndpointID schemeID=”0088″> | Het e-mailadres van de koper, waarbij „schemeID“ het type identificatiecode aangeeft (bijvoorbeeld „GLN“ in dit geval). |
| <cac:PartyName> | Bevat de handelsnaam van de koper. |
| <cbc:Name> | Geeft de naam van de koper aan (bijv. „Naam koper“). |
Bestelregels
Op elke orderregel staan de artikelen, hoeveelheden en prijzen vermeld.
| UBL-element | Beschrijving |
| <cac:OrderLine> | Geeft een afzonderlijke regel in de bestelling weer, met gegevens over het artikel en de hoeveelheid ervan. |
| <cbc:ID> | Een unieke identificatiecode voor de orderregel (bijvoorbeeld „1”). |
| <cbc:Quantity unitCode=”EA”> | Geeft het aantal artikelen in de orderregel aan, waarbij „unitCode“ de maateenheid aangeeft (bijv. „50“ stuks, gemeten in „Stuks“). |
| <cac:Item> | Bevat informatie over het bestelde artikel. |
| <cbc:Name> | De naam of omschrijving van het artikel (bijv. „Productnaam“). |
| <cac:SellersItemIdentification> | Geeft de identificatiecode van de verkoper voor het artikel weer. |
| <cbc:ID> | Het unieke identificatienummer van de verkoper voor het product (bijv. „87654321“). |
Geavanceerde functies: Verzendadviesdocumenten
Met de BIS Despatch Advice kunnen leveranciers afnemers op de hoogte brengen van de verzendgegevens.
Het bericht kan het volgende bevatten:
| UBL-element | Beschrijving |
| <cac:DespatchAdvice> | Het hoofdelement dat het volledige verzendadviesdocument vertegenwoordigt, dat wordt gebruikt om de ontvanger op de hoogte te stellen van de verzendgegevens. |
| <cbc:ID> | Een unieke identificatiecode voor het verzendingsbericht (bijv. „654321”) |
| <cbc:IssueDate> | De datum waarop het verzendbericht is afgegeven (bijv. „20-08-2024“) |
| <cac:Delivery> | Bevat informatie over de levering van de zending. |
| <cac:DeliveryLocation> | Hiermee wordt de locatie aangegeven waar de zending moet worden afgeleverd. |
<cbc:ID> (binnen DeliveryLocation) | De unieke identificatiecode voor de afleverlocatie (bijv. „Magazijn-ID”). |
| <cbc:Name> | De naam van de afleverlocatie (bijv. „Naam magazijn“). |
Beste praktijken voor ontwikkelaars
Volg de Peppol BIS-richtlijnen: Houd u altijd aan de officiële Peppol BIS-documentatie om naleving te garanderen.
Ga om met lokale variaties: Hoewel Peppol een wereldwijde standaard is, kunnen bepaalde sectoren of regio’s specifieke aanpassingen vereisen.
Automatiseer de validatie: Implementeer geautomatiseerde controles op de naleving van syntaxis en inhoud vóór verzending.
Beveilig gegevens: Zorg ervoor dat alle verzonden gegevens voldoen aan de AVG en andere privacyregelgeving.
Peppol biedt een robuust raamwerk voor elektronische bestellingen, waardoor bedrijven hun processen kunnen stroomlijnen en de nauwkeurigheid van gegevens kunnen verbeteren. Voor ontwikkelaars is het van cruciaal belang om de technische specificaties van Peppol BIS, UBL-schema's en Access Point-integratie te begrijpen om schaalbare en efficiënte oplossingen te kunnen creëren.
