Peppol er et internasjonalt, åpent B2B-nettverk som gjør det mulig for organisasjoner å utveksle strukturerte forretningsdokumenter som ordrer og fakturaer på en effektiv måte.
For utviklere er det avgjørende å forstå Peppols tekniske spesifikasjoner og implementeringsprosess for å kunne bygge robuste systemer som forbedrer organisasjonens effektivitet. Denne veiledningen beskriver nøkkelbegreper og teknisk veiledning for utviklere som ønsker å komme i gang med elektroniske bestillinger ved hjelp av Peppol.
Hva er Peppol?
Peppol (Pan-European Public Procurement Online) er et rammeverk som standardiserer elektronisk dokumentutveksling mellom bedrifter og offentlige organisasjoner. Det er ikke et ERP-system, en portal eller en innkjøpsplattform, men en protokoll som muliggjør interoperabilitet mellom ulike systemer.
Peppol bruker en firehjørnemodell, noe som betyr at hver organisasjon kobler seg til nettverket gjennom den valgte Peppol Access Point-leverandøren, slik at det ikke er nødvendig å samkjøre tjenesteleverandører med forretningspartnere.
De viktigste funksjonene i Peppol er:
- Standardisering: Et felles språk for forretningsdokumenter på tvers av bransjer.
- Interoperabilitet: Kompatibilitet mellom systemer over hele verden.
- Skalerbarhet: Det er enkelt å koble til nye partnere uten ytterligere utvikling.
Peppol tilbyr utviklere et rammeverk for å integrere strukturert elektronisk ordrebehandling i eksisterende forretningsprosesser.
Kom i gang med Peppol-ordre
Implementering av elektroniske bestillinger i Peppol innebærer å forstå Business Interoperability Specifications (BIS), meldingssyntaks og krav til datautveksling.
Her er en oversikt over de seks hovedtrinnene og de tekniske aspektene ved dem.
1. Forståelse av de grunnleggende elementene
Utviklere som implementerer Peppol-fakturaer, må forstå hvordan de skal fylle ut cbc-elementer i henhold til Peppol BIS-retningslinjene for å sikre samsvar med dokumentet og vellykket overføring.
I forbindelse med Peppol og UBL (Universal Business Language)-syntaksen for fakturaer står cbc for Common Basic Components. Disse forhåndsdefinerte dataelementene i UBL-skjemaet representerer grunnleggende, gjenbrukbare byggesteiner i forretningsdokumenter som fakturaer, ordrer og pakkseddelmeldinger.
Viktige egenskaper ved cbc-elementer
- Enkle datatyper: cbc-elementer er vanligvis atomiske og representerer enkle data som tekst, numeriske verdier, datoer eller koder.
- Grunnleggende informasjon: De fanger opp viktige, enkle datapunkter som identifikatorer, datoer, pengebeløp eller beskrivelser.
- Gjenbrukbarhet: Disse komponentene er utformet for å kunne gjenbrukes på tvers av ulike UBL-dokumenttyper.
2. Velg Peppol BIS-profil for bestillinger
Peppol støtter tre primære spesifikasjoner, også kalt profiler, for ordreprosesser. Hver BIS er utviklet for spesifikke bruksområder, og forretningspartnerne må bli enige om hvilken som skal brukes.
BIS Order Only: For enkle bestillinger uten svar fra leverandøren.
BIS Ordering: Inkluderer ordresvar for å bekrefte aksept, avvisning eller delvis aksept.
BIS Despatch Advice: Informerer kjøperen om forsendelsesdetaljer.
3. Forstå syntaksen i Peppol-ordenen
Peppol Order-transaksjonen (T01) følger UBL (Universal Business Language) standard.
For å kunne implementere Peppol på en effektiv måte må utviklerne ha en grundig forståelse av hvordan cbc-elementene skal fylles ut i tråd med Peppol BIS-retningslinjene, slik at både samsvar og smidig overføring sikres. Det er viktig å følge den påkrevde syntaksen for alle dokumentelementer, ettersom avvik fra Peppols valideringsregler kan føre til feil som forstyrrer ordreprosessen.
Her er noen eksempler på kjerneelementer i bestillingsdokumenter:
UBL-element | Beskrivelse |
cbc:ID | En unik ordreidentifikator. |
cbc:OrderTypeCode | Angir ordretypen, for eksempel en innkjøpsordre. |
cbc:DocumentCurrencyCode | Angir valutaen (f.eks. "EUR"). |
cac:ValidityPeriod | Angir bestillingens utløpsdato. |
Kjennetegn ved cbc-elementer
Datarepresentasjon: cbc-elementer representerer vanligvis enkeltstående datafelter, noe som gjør dem enkle å bruke og validere.
Attributter: Noen cbc-elementer inkluderer attributter som currencyID (for beløp) eller unitCode (for mengder).
Obligatorisk/valgfritt: Peppol BIS-retningslinjene (Business Interoperability Specification) spesifiserer hvilke cbc-elementer som er obligatoriske, valgfrie eller betinget påkrevde.
Sammenligning med cac (Common Aggregate Components)
Mens cbc representerer grunnleggende komponenter, brukes cac (Common Aggregate Components) for komplekse datastrukturer som grupperer beslektede cbc- og andre cac-elementer. For eksempel grupperer cac:Party all informasjon om en forretningsenhet, som navn, adresse og identifikatorer.
For mer informasjon om spesifikke cbc-elementer som brukes i Peppol UBL-bestillinger, se den offisielle dokumentasjonen for Peppol BIS Ordering .
3. Integrer med et Peppol Access Point
Peppol-transaksjoner distribueres gjennom sertifiserte Peppol Access Points, også kalt Peppol Service Providers. Som utvikler må applikasjonen din koble seg til en leverandørs API for å sende og motta dokumenter. Tilgangspunktene håndterer den tekniske kompleksiteten ved ruting av meldinger til og fra handelspartnere.
Finn ut mer om hvordan du får tilgang til Peppol-ordrer via Order API.
4. Implementere validering og feilhåndtering
Validering sikrer samsvar med Peppols regler og BIS-krav. Implementer robuste valideringskontroller for å identifisere feil før overføring. Kontroller for eksempel obligatoriske felt som cbc:ID
og cbc:DocumentCurrencyCode
. Valider dataformater, inkludert datoer, valutaer og identifikatorer.
Formatvalidering er innebygd og automatisert for brukere av Qvalias Peppol Access Point.
5. Test i et sandkassemiljø
Før du distribuerer løsningen, bør du teste integrasjonen i et sandkassemiljø som leveres av Access Point-leverandøren. På denne måten kan du simulere ulike scenarier, for eksempel å sende inn bestillinger, motta svar og håndtere meldinger om pakkseddel.
Teknisk innsikt: Strukturen til Peppol-ordrer
Peppol-ordrer baserer seg på XML-baserte UBL-skjemaer. Nedenfor følger en kort oversikt over kritiske elementer i ordrestrukturen:
Dokumentets overskrift
Toppteksten inneholder viktige metadata om bestillingen.
UBL-element | Beskrivelse |
<cbc:ID> | En unik identifikator for bestillingsdokumentet (f.eks. "1234567"). |
<cbc:IssueDate> | Datoen bestillingsdokumentet ble utstedt (f.eks. "2024-08-14"). |
<cbc:OrderTypeCode> | Angir type ordre, der "220" vanligvis representerer en innkjøpsordre. |
<cbc:DocumentCurrencyCode> | Angir valutaen som brukes i bestillingsdokumentet (f.eks. "EUR"). |
Informasjon om kjøper og selger
Kjøper og selger defineres ved hjelp av segmentene cac:BuyerCustomerParty og cac:SellerSupplierParty.
UBL-element | Beskrivelse |
<cac:BuyerCustomerParty> | Representerer kjøperen i transaksjonen, og inneholder opplysninger om kundeparten. |
<cac:Party> | Gir informasjon om kjøperens part, for eksempel identifikatorer og navn. |
<cbc:EndpointID schemeID=”0088″> | Kjøperens elektroniske adresse, der "schemeID" angir typen identifikator (f.eks. "GLN" i dette tilfellet). |
<cac:PartyName> | Inneholder kjøperens firmanavn. |
<cbc:Name> | Angir navnet på kjøperen (f.eks. "Buyer Name"). |
Bestillingslinjer
Hver ordrelinje spesifiserer varer, antall og priser.
UBL-element | Beskrivelse |
<cac:OrderLine> | Representerer en individuell linje i bestillingen, som inneholder informasjon om varen og antallet. |
<cbc:ID> | En unik identifikator for ordrelinjen (f.eks. "1"). |
<cbc:Quantity unitCode=”EA”> | Angir antall varer i ordrelinjen, der "unitCode" definerer måleenheten (f.eks. "50" enheter, målt i "Each"). |
<cac:Item> | Inneholder informasjon om den bestilte varen. |
<cbc:Name> | Navnet på eller beskrivelsen av varen (f.eks. "Produktnavn"). |
<cac:SellersItemIdentification> | Angir selgerens identifikator for varen. |
<cbc:ID> | Selgerens unike identifikator for produktet (f.eks. "87654321"). |
Avanserte funksjoner: Dokumenter for pakkseddel
Spesifikasjonen BIS Despatch Advice gjør det mulig for leverandørene å informere kjøperne om forsendelsesdetaljer.
Meldingen kan inneholde:
UBL-element | Beskrivelse |
<cac:DespatchAdvice> | Rotelementet som representerer hele pakkseddelen, og som brukes til å varsle mottakeren om forsendelsesopplysningene. |
<cbc:ID> | En unik identifikator for pakkseddelen (f.eks. "654321") |
<cbc:IssueDate> | Datoen for utstedelsen av pakkseddelen (f.eks. "2024-08-20") |
<cac:Delivery> | Inneholder detaljer om leveringen av forsendelsen. |
<cac:DeliveryLocation> | Angir stedet der forsendelsen skal leveres. |
<cbc:ID> (inne i DeliveryLocation) | Den unike identifikatoren for leveringsstedet (f.eks. "Warehouse ID"). |
<cbc:Name> | Navnet på leveringsstedet (f.eks. "Warehouse Name"). |
Beste praksis for utviklere
Følg Peppol BIS-retningslinjene: Følg alltid den offisielle Peppol BIS-dokumentasjonen for å sikre samsvar.
Håndter lokale variasjoner: Selv om Peppol er en global standard, kan enkelte sektorer eller regioner kreve spesifikke tilpasninger.
Automatiser valideringen: Implementer automatiserte kontroller av syntaks og innhold før overføring.
Sikre data: Sørg for at alle data som overføres, er i samsvar med GDPR og andre personvernforskrifter.
Peppol gir et robust rammeverk for elektroniske bestillinger, noe som gjør det mulig for bedrifter å effektivisere driften og forbedre datanøyaktigheten. For utviklere er det viktig å forstå de tekniske spesifikasjonene for Peppol BIS, UBL-skjemaer og Access Point-integrasjon for å kunne skape skalerbare og effektive løsninger.