Peppol är ett internationellt öppet B2B-nätverk som gör det möjligt för organisationer att utbyta strukturerade affärsdokument, såsom ordrar och fakturor, på ett effektivt sätt.
Att förstå Peppols tekniska specifikationer och implementationsprocess är avgörande för utvecklare som vill bygga robusta system som förbättrar organisatorisk effektivitet. Den här guiden beskriver nyckelkoncept och teknisk vägledning för att hjälpa utvecklare att komma igång med elektroniska ordrar via Peppol.
Vad är Peppol?
Peppol (Pan-European Public Procurement Online) är ett ramverk som standardiserar elektroniskt dokumentutbyte mellan företag och offentliga organisationer. Det är inte ett affärssystem, en portal eller en inköpsplattform, utan ett protokoll som möjliggör interoperabilitet mellan olika system.
Peppol använder en fyrhörnsmodell, vilket innebär att varje organisation ansluter till nätverket via sin valda Peppol accesspunkt-leverantör, vilket eliminerar behovet av att anpassa tjänsteleverantörer med affärspartners.
De viktigaste funktionerna i Peppol är:
- Standardisering: Ett gemensamt språk för affärsdokument över olika branscher.
- Interoperabilitet: Kompatibilitet mellan system världen över.
- Skalbarhet: Enkel anslutning till nya partners utan ytterligare utveckling. Peppol ger utvecklare ett ramverk för att integrera strukturerad elektronisk orderhantering i befintliga affärsprocesser.
Komma igång med Peppol-order
Att implementera elektroniska ordrar i Peppol innebär att förstå dess Business Interoperability Specifications (BIS), meddelandesyntax och krav på datautbyte.
Här är en översikt över de sex grundläggande stegen och deras tekniska överväganden.
1. Förstå grundelementen
Developers implementing Peppol invoices must understand how to properly populate cbc elements according to the Peppol BIS guidelines to ensure document compliance and successful transmission.
I kontexten av Peppol och UBL (Universal Business Language) syntax för fakturor står cbc för Common Basic Components. Dessa fördefinierade dataelement inom UBL-schemat representerar grundläggande, återanvändbara byggstenar för affärsdokument såsom fakturor, ordrar och leveransaviseringar.
Nyckelfunktioner för cbc-element
- Enkla datatyper: cbc-element är atomära och representerar enkla data som text, siffror eller datum.
- Grundläggande information: De fångar upp viktig, enkel data som identifierare, datum och belopp.
- Återanvändbarhet: Dessa komponenter är utformade för att kunna användas i olika UBL-dokumenttyper.
2. Välj Peppol BIS-profil för ordrar
Peppol stödjer tre huvudsakliga specifikationer, eller profiler, för orderprocesser. Varje BIS är utformad för specifika användningsfall, och affärspartners måste komma överens om vilken som ska användas.
BIS Order Only: För enkla orderinlämningar utan leverantörssvar.
BIS Ordering: Inkluderar ordersvar för att bekräfta godkännande, avslag eller delvis godkännande.
BIS Despatch Advice: Informerar köparen om leveransdetaljer.
3. Förstå Peppols ordersyntax
Peppol-ordertransaktionen/Peppol Order transaction (T01) följer UBL-standard (Universal Business Language).
För att implementera Peppol på ett effektivt sätt behöver utvecklare ha en grundlig förståelse för hur cbc-element ska fyllas i enligt Peppol BIS-riktlinjerna, vilket säkerställer både överensstämmelse och smidig överföring. Det är avgörande att följa den föreskrivna syntaxen för alla dokumentelement, eftersom avvikelser från Peppols valideringsregler kan leda till fel som stör orderprocessen.
Here are a few examples of core elements for order documents:
UBL element | Description |
cbc:ID | Ett unikt order-ID. |
cbc:OrderTypeCode | Anger ordertypen, t.ex. inköpsorder. |
cbc:DocumentCurrencyCode | Valutan för ordern (t.ex. “EUR”). |
cac:ValidityPeriod | Anger giltighetsperioden för ordern. |
Data Representation: cbc elements typically represent single data fields, making them straightforward to use and validate.
Attributes: Some cbc elements include attributes like currencyID (for amounts) or unitCode (for quantities).
Mandatory/optional: The Peppol BIS (Business Interoperability Specification) guidelines specify which cbc elements are mandatory, optional, or conditionally required.
While cbc represents basic components, cac (Common Aggregate Components) is used for complex data structures that group related cbc and other cac elements. For example, cac:Party groups all information about a business entity, such as its name, address, and identifiers.
For more details on specific cbc elements used in Peppol UBL ordering, go to the Peppol BIS Billing 3.0 syntax guide.
Egenskaper hos cbc-element
- Datarepresentation: cbc-element representerar vanligtvis enskilda datafält, vilket gör dem enkla att använda och validera.
- Attribut: Vissa cbc-element inkluderar attribut som currencyID (för belopp) eller unitCode (för mängder).
- Obligatoriska/valfria: Peppol BIS (Business Interoperability Specification) anger vilka cbc-element som är obligatoriska, valfria eller villkorligt nödvändiga.
Jämförelse med cac (Common Aggregate Components)
Medan cbc representerar grundläggande komponenter används cac (Common Aggregate Components) för komplexa datastrukturer som grupperar relaterade cbc- och andra cac-element. Till exempel grupperar cac:Party all information om en affärsenhet, såsom namn, adress och identifierare.
För mer information om specifika cbc-element som används i Peppol UBL-order, see den officiella Peppol BIS Ordering-dokumentationen.
4. Integrera med en accesspunkt
Peppol-transaktioner distribueras via certifierade Peppol accesspunkter, även kallade Peppol-tjänsteleverantörer. Som utvecklare måste din applikation ansluta till en leverantörs API för att skicka och ta emot dokument. Accesspunkter hanterar oftast de tekniska komplexiteterna med att dirigera meddelanden till och från affärspartners.
Läs mer om hur du får åtkomst till Peppol-ordrar via Order-API.
5. Implementera validering och felhantering
Validering säkerställer efterlevnad av Peppols regler och BIS-krav. Implementera robusta valideringskontroller för att identifiera fel innan överföring. Kontrollera till exempel obligatoriska fält som cbc:ID och cbc:DocumentCurrencyCode. Validera även dataformat, inklusive datum, valutor och identifierare.
Formatvalideringar är inbyggda och automatiserade för användare av Qvalias Peppol accesspunkt.
5. Testa i en sandbox-miljö
Innan du distribuerar din lösning bör du testa integrationen i en sandlådemiljö som tillhandahålls av din accesspunkt-leverantör. Detta gör det möjligt att simulera olika scenarier, såsom att skicka ordrar, ta emot svar och hantera leveransaviseringar.
Struktur för Peppol-ordrar
Peppol-ordrar bygger på XML-baserade UBL-scheman. Här är en kort översikt av viktiga element:
Dokumenthuvud
Huvudet innehåller viktig metadata om ordern.
UBL element | Description |
<cbc:ID> | Ett unikt order-ID (t.ex. “1234567”). |
<cbc:IssueDate> | Datum då ordern utfärdades (t.ex. “2024-08-14”). |
<cbc:OrderTypeCode> | Typ av order, där “220” ofta representerar en inköpsorder. |
<cbc:DocumentCurrencyCode> | Anger valutan (t.ex. “EUR”). |
Information om köparen och säljaren
Köparen och säljaren definieras med hjälp av segmenten cac:BuyerCustomerParty och cac:SellerSupplierParty.
UBL element | Description |
<cac:BuyerCustomerParty> | Representerar köparen i transaktionen och innehåller information om kundparten. |
<cac:Party> | Tillhandahåller information om köparens part, såsom identifierare och namn. |
<cbc:EndpointID schemeID=”0088″> | Köparens elektroniska adress, där “schemeID” specificerar typen av identifierare (t.ex. “GLN” i detta fall). |
<cac:PartyName> | Innehåller köparens handelsnamn. |
<cbc:Name> | Anger köparens namn (t.ex. “Köparens namn”). |
Orderrader
Varje orderrad specificerar artiklar, kvantiteter och priser.
UBL element | Description |
<cac:OrderLine> | Representerar en enskild rad i ordern och innehåller detaljer om artikeln och dess kvantitet. |
<cbc:ID> | Ett unikt identifierare för orderraden (t.ex. “1”). |
<cbc:Quantity unitCode=”EA”> | Anger antalet artiklar i orderraden, där “unitCode” definierar måttenheten (t.ex. “50” enheter, mätt i “Each”). |
<cac:Item> | Innehåller detaljer om den beställda artikeln. |
<cbc:Name> | Namnet eller beskrivningen av artikeln (t.ex. “Produktnamn”). |
<cac:SellersItemIdentification> | Tillhandahåller säljarens identifierare för artikeln. |
<cbc:ID> | Säljarens unika identifierare för produkten (t.ex. “87654321”). |
Avancerade funktioner: Leveransaviseringar (Despatch Advice)
Specifikationen för BIS Despatch Advice gör det möjligt för leverantörer att informera köpare om leveransdetaljer.
Meddelandet kan inkluderas:
UBL element | Description |
<cac:DespatchAdvice> | Rotelementet som representerar hela leveransaviseringen och används för att meddela mottagaren om leveransdetaljer. |
<cbc:ID> | Ett unikt identifierare för leveransaviseringen (t.ex. “654321”). |
<cbc:IssueDate> | Datum då leveransaviseringen utfärdades (t.ex. “2024-08-20”). |
<cac:Delivery> | Innehåller detaljer om leveransen av försändelsen. |
<cac:DeliveryLocation> | Anger platsen där försändelsen ska levereras. |
<cbc:ID> (inside DeliveryLocation) | Ett unikt identifierare för leveransplatsen (t.ex. “Lager-ID”). |
<cbc:Name> | Namnet på leveransplatsen (t.ex. “Lagernamn”). |
Bästa praxis för utvecklare
- Följ Peppol BIS-riktlinjer för att säkerställa efterlevnad.
- Anpassa till lokala variationer vid behov.
- Implementera automatiserad validering.
- Säkerställ att all data följer GDPR och andra integritetslagar.
Peppol ger en robust ram för elektroniska ordrar och hjälper företag att effektivisera sina processer. Utvecklare behöver förstå de tekniska specifikationerna för Peppol BIS, UBL-scheman och Access Point-integration för att skapa skalbara och effektiva lösningar.