Peppol er et internationalt åbent B2B-netværk, der gør det muligt for organisationer at udveksle strukturerede forretningsdokumenter som ordrer og fakturaer på en effektiv måde.
Forståelse af Peppols tekniske specifikationer og implementeringsproces er afgørende for, at udviklere kan bygge robuste systemer, der forbedrer organisationens effektivitet. Denne vejledning beskriver nøglebegreber og teknisk vejledning til udviklere, så de kan komme i gang med elektroniske ordrer ved hjælp af Peppol.
Hvad er Peppol?
Peppol (Pan-European Public Procurement Online) er en ramme, der standardiserer elektronisk dokumentudveksling mellem virksomheder og offentlige organisationer. Det er ikke et ERP-system, en portal eller en indkøbsplatform, men en protokol, der muliggør interoperabilitet mellem forskellige systemer.
Peppol bruger firehjørnemodellen, hvilket betyder, at hver organisation opretter forbindelse til netværket via den valgte Peppol Access Point-udbyder, hvilket fjerner behovet for at afstemme tjenesteudbydere med forretningspartnere.
De vigtigste funktioner i Peppol er:
- Standardisering: Et fælles sprog for forretningsdokumenter på tværs af brancher.
- Interoperabilitet: Kompatibilitet mellem systemer i hele verden.
- Skalerbarhed: Opret nemt forbindelse til nye partnere uden yderligere udvikling.
Peppol tilbyder udviklere en ramme til at integrere struktureret elektronisk ordrebehandling i eksisterende forretningsprocesser.
Sådan kommer du i gang med Peppol-ordren
Implementering af elektroniske ordrer i Peppol kræver, at man forstår dens Business Interoperability Specifications (BIS), meddelelsessyntaks og krav til dataudveksling.
Her er en oversigt over de seks vigtigste trin og deres tekniske overvejelser.
1. Forståelse af de grundlæggende elementer
Udviklere, der implementerer Peppol-fakturaer, skal forstå, hvordan man udfylder cbc-elementer korrekt i henhold til Peppol BIS-retningslinjerne for at sikre dokumentoverensstemmelse og vellykket overførsel.
I forbindelse med Peppol og UBL-syntaksen (Universal Business Language) for fakturaer står cbc for Common Basic Components. Disse foruddefinerede dataelementer i UBL-skemaet repræsenterer grundlæggende, genanvendelige byggesten i forretningsdokumenter som fakturaer, ordrer og pakkemeddelelser.
Nøglefunktioner i cbc-elementer
- Simple datatyper: cbc-elementer er typisk atomare og repræsenterer simple data som tekst, numeriske værdier, datoer eller koder.
- Grundlæggende information: De registrerer vigtige, enkle datapunkter som identifikatorer, datoer, pengebeløb eller beskrivelser.
- Genanvendelighed: Disse komponenter er designet til at kunne genbruges på tværs af forskellige UBL-dokumenttyper.
2. Vælg Peppol BIS-profil til ordrer
Peppol understøtter tre primære specifikationer, også kaldet profiler, for ordreprocesser. Hver BIS er designet til specifikke brugsscenarier, og forretningspartnere skal blive enige om, hvilken der skal bruges.
BIS Order Only: Til simple ordreafgivelser uden leverandørrespons.
BIS Ordering: Inkluderer ordresvar for at bekræfte accept, afvisning eller delvis accept.
BIS Despatch Advice: Informerer køberen om forsendelsesdetaljer.
3. Forstå Peppol-ordenens syntaks
Peppol Order-transaktionen (T01) følger UBL (Universal Business Language) standard.
For at implementere Peppol effektivt skal udviklere have en grundig forståelse af, hvordan man udfylder cbc-elementer i overensstemmelse med Peppol BIS-retningslinjerne, hvilket sikrer både overholdelse og problemfri transmission. Det er vigtigt at overholde den krævede syntaks for alle dokumentelementer, da afvigelser fra Peppols valideringsregler kan føre til fejl, der forstyrrer ordreprocessen.
Her er et par eksempler på kerneelementer i ordredokumenter:
UBL-element | Beskrivelse |
cbc:ID | En unik ordreidentifikator. |
cbc:OrderTypeCode | Angiver ordretypen, f.eks. en indkøbsordre. |
cbc:DocumentCurrencyCode | Angiver valutaen (f.eks. "EUR"). |
cac:Gyldighedsperiode | Angiver ordrens udløbsdato. |
Karakteristik af cbc-elementer
Datarepræsentation: cbc-elementer repræsenterer typisk enkeltstående datafelter, hvilket gør dem enkle at bruge og validere.
Attributter: Nogle cbc-elementer indeholder attributter som currencyID (for beløb) eller unitCode (for mængder).
Obligatorisk/valgfri: Peppol BIS-retningslinjerne (Business Interoperability Specification) specificerer, hvilke cbc-elementer der er obligatoriske, valgfrie eller betinget påkrævede.
Sammenligning med cac (Common Aggregate Components)
Mens cbc repræsenterer basiskomponenter, bruges cac (Common Aggregate Components) til komplekse datastrukturer, der grupperer relaterede cbc- og andre cac-elementer. For eksempel grupperer cac:Party alle oplysninger om en forretningsenhed, såsom dens navn, adresse og identifikatorer.
For flere detaljer om specifikke cbc-elementer, der bruges i Peppol UBL-bestilling, se den officielle Peppol BIS Ordering -dokumentation.
3. Integrer med et Peppol Access Point
Peppol-transaktioner distribueres gennem certificerede Peppol Access Points, også kaldet Peppol Service Providers. Som udvikler skal din applikation oprette forbindelse til en udbyders API for at sende og modtage dokumenter. Access Points håndterer den tekniske kompleksitet i forbindelse med routing af meddelelser til og fra handelspartnere.
Læs mere om at få adgang til Peppol-ordrer via Order API.
4. Implementer validering og fejlhåndtering
Validering sikrer overholdelse af Peppols regler og BIS-krav. Implementer robuste valideringstjek for at identificere fejl før overførsel. Tjek f.eks. obligatoriske felter som cbc:ID
og cbc:DocumentCurrencyCode
. Valider dataformater, herunder datoer, valutaer og identifikatorer.
Formatvalidering er indbygget og automatiseret for brugere af Qvalias Peppol Access Point.
5. Test i et sandkassemiljø
Før du implementerer din løsning, skal du teste integrationen i et sandkassemiljø, som din Access Point-udbyder stiller til rådighed. Det giver dig mulighed for at simulere forskellige scenarier, f.eks. indsendelse af ordrer, modtagelse af svar og håndtering af forsendelsesmeddelelser.
Teknisk indsigt: Struktur af Peppol-ordrer
Peppol-ordrer er baseret på XML-baserede UBL-skemaer. Nedenfor er en kort oversigt over kritiske elementer i ordrestrukturen:
Dokumentets overskrift
Overskriften indeholder vigtige metadata om ordren.
UBL-element | Beskrivelse |
<cbc:ID> | En unik identifikator for ordredokumentet (f.eks. "1234567"). |
<cbc:IssueDate> | Datoen, hvor ordredokumentet blev udstedt (f.eks. "2024-08-14"). |
<cbc:OrderTypeCode> | Angiver ordretypen, hvor "220" typisk repræsenterer en indkøbsordre. |
<cbc:DocumentCurrencyCode> | Angiver den valuta, der bruges i ordredokumentet (f.eks. "EUR"). |
Oplysninger om køber og sælger
Køber og sælger defineres ved hjælp af segmenterne cac:BuyerCustomerParty og cac:SellerSupplierParty.
UBL-element | Beskrivelse |
<cac:BuyerCustomerParty> | Repræsenterer køberen i transaktionen og indeholder oplysninger om kundeparten. |
<cac:Party> | Giver oplysninger om købers parti, f.eks. identifikatorer og navne. |
<cbc:EndpointID schemeID=”0088″> | Købers elektroniske adresse, hvor "schemeID" angiver typen af identifikator (f.eks. "GLN" i dette tilfælde). |
<cac:PartyName> | Indeholder købers handelsnavn. |
<cbc:Name> | Angiver navnet på køberen (f.eks. "Købernavn"). |
Bestil linjer
Hver ordrelinje specificerer varer, mængder og priser.
UBL-element | Beskrivelse |
<cac:OrderLine> | Repræsenterer en individuel linje i ordren, der indeholder oplysninger om varen og dens antal. |
<cbc:ID> | En unik identifikator for ordrelinjen (f.eks. "1"). |
<cbc:Quantity unitCode=”EA”> | Angiver antallet af varer i ordrelinjen, hvor "unitCode" definerer måleenheden (f.eks. "50" enheder, målt i "Each"). |
<cac:Item> | Indeholder oplysninger om den bestilte vare. |
<cbc:Name> | Navnet på eller beskrivelsen af varen (f.eks. "Produktnavn"). |
<cac:SellersItemIdentification> | Indeholder sælgerens identifikation af varen. |
<cbc:ID> | Sælgerens unikke identifikation af produktet (f.eks. "87654321"). |
Avancerede funktioner: Dokumenter til forsendelsesadvisering
Specifikationen BIS Despatch Advice gør det muligt for leverandører at informere købere om forsendelsesdetaljer.
Beskeden kan indeholde:
UBL-element | Beskrivelse |
<cac:DespatchAdvice> | Rodelementet, der repræsenterer hele pakksedlen, og som bruges til at underrette modtageren om forsendelsesoplysningerne. |
<cbc:ID> | En unik identifikator for pakksedlen (f.eks. "654321"). |
<cbc:IssueDate> | Datoen, hvor Despatch Advice-dokumentet blev udstedt (f.eks. "2024-08-20"). |
<cac:Delivery> | Indeholder oplysninger om levering af forsendelsen. |
<cac:DeliveryLocation> | Angiver det sted, hvor forsendelsen skal leveres. |
<cbc:ID> (inde i DeliveryLocation) | Den unikke identifikator for leveringsstedet (f.eks. "Warehouse ID"). |
<cbc:Name> | Navnet på leveringsstedet (f.eks. "Lagernavn"). |
Bedste praksis for udviklere
Følg Peppol BIS' retningslinjer: Følg altid den officielle Peppol BIS-dokumentation for at sikre overensstemmelse.
Håndter lokale variationer: Selv om Peppol er en global standard, kan nogle sektorer eller regioner kræve specifikke tilpasninger.
Automatiser validering: Implementer automatiserede kontroller af syntaks og indholdsoverensstemmelse før transmission.
Sikre data: Sørg for, at alle overførte data overholder GDPR og andre regler for beskyttelse af personlige oplysninger.
Peppol giver en robust ramme for elektroniske ordrer, som gør det muligt for virksomheder at strømline driften og forbedre datanøjagtigheden. For udviklere er det vigtigt at forstå de tekniske specifikationer for Peppol BIS, UBL-skemaer og Access Point-integration for at kunne skabe skalerbare og effektive løsninger.