Tuesday, 10 September 2024

PEPPOL - Document Structure

PEPPOL (Pan-European Public Procurement Online) is a network and framework designed to facilitate standardized e-invoicing, procurement, and electronic document exchange across borders, particularly for the public sector in Europe. It ensures that documents like invoices, orders, and dispatch advice can be exchanged seamlessly between businesses and public entities using a common format and framework. PEPPOL is based on the Universal Business Language (UBL) and uses a four-corner model to ensure interoperability between different service providers.

PEPPOL’s document structure follows a modular approach, and each type of document (such as an invoice or order) has its specific structure built on the UBL format. It relies heavily on XML to structure the documents, making them machine-readable and adaptable to various industries.

1. Basic PEPPOL Document Structure

PEPPOL documents are primarily XML-based and follow the UBL (Universal Business Language) structure. A typical document includes three main parts:

  • Header: Contains metadata about the document, such as sender, recipient, and document type.
  • Body: Contains the actual transaction data, such as line items, prices, and delivery details.
  • Footer: May include closing details or signatures.

The document is enclosed in a standard XML format that follows the UBL schema, ensuring that it is structured uniformly for all parties.

2. PEPPOL Document Types

PEPPOL supports several types of business documents for cross-border e-procurement and e-invoicing. Some of the common PEPPOL document types include:

  • Invoice: An e-invoice issued from a supplier to a buyer.
  • Order: A purchase order sent by a buyer to a supplier.
  • Despatch Advice: A shipping notification detailing what is being shipped.
  • Order Response: A confirmation or rejection of a purchase order.
  • Catalogue: A structured product or service listing.

3. Structure of a PEPPOL Invoice (Example)

3.1 Header Section

The header section of a PEPPOL document includes basic information about the document itself, such as the invoice number, the date of issue, the parties involved, and relevant references.

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"> <cbc:ID>INV001</cbc:ID> <!-- Invoice number --> <cbc:IssueDate>2024-08-14</cbc:IssueDate> <!-- Invoice date --> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <!-- Invoice type code --> <!-- Parties involved --> <cac:AccountingSupplierParty> <cac:Party> <cbc:Name>Supplier Name</cbc:Name> <cac:PostalAddress> <cbc:StreetName>Main Street</cbc:StreetName> <cbc:CityName>Berlin</cbc:CityName> <cbc:PostalZone>10001</cbc:PostalZone> <cbc:Country> <cbc:IdentificationCode>DE</cbc:IdentificationCode> <!-- Country code --> </cbc:Country> </cac:PostalAddress> </cac:Party> </cac:AccountingSupplierParty> <cac:AccountingCustomerParty> <cac:Party> <cbc:Name>Buyer Name</cbc:Name> <cac:PostalAddress> <cbc:StreetName>Buyer Street</cbc:StreetName> <cbc:CityName>Paris</cbc:CityName> <cbc:PostalZone>75001</cbc:PostalZone> <cbc:Country> <cbc:IdentificationCode>FR</cbc:IdentificationCode> <!-- Country code --> </cbc:Country> </cac:PostalAddress> </cac:Party> </cac:AccountingCustomerParty> </Invoice>
  • <cbc:ID>: Invoice identification number (unique).
  • <cbc:IssueDate>: The date when the invoice was issued.
  • <cbc:InvoiceTypeCode>: A code that identifies the type of document (380 for invoices).

3.2 Body Section

The body contains the actual transaction data, including line items, quantities, prices, taxes, and payment details.

<cac:InvoiceLine>
<cbc:ID>1</cbc:ID> <!-- Line item number --> <cbc:InvoicedQuantity>10</cbc:InvoicedQuantity> <!-- Quantity invoiced --> <cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount> <!-- Line total --> <!-- Item details --> <cac:Item> <cbc:Name>Product A</cbc:Name> <!-- Product name --> <cbc:Description>Description of Product A</cbc:Description> <!-- Product description --> </cac:Item> <!-- Pricing --> <cac:Price> <cbc:PriceAmount currencyID="EUR">20.00</cbc:PriceAmount> <!-- Unit price --> </cac:Price> </cac:InvoiceLine> <cac:TaxTotal> <cbc:TaxAmount currencyID="EUR">40.00</cbc:TaxAmount> <!-- Total tax amount --> <cac:TaxSubtotal> <cbc:TaxableAmount currencyID="EUR">200.00</cbc:TaxableAmount> <!-- Taxable amount --> <cbc:TaxAmount currencyID="EUR">40.00</cbc:TaxAmount> <!-- Tax amount --> <cac:TaxCategory> <cbc:ID>VAT</cbc:ID> <!-- Tax category (e.g., VAT) --> <cbc:Percent>20</cbc:Percent> <!-- Tax percentage --> </cac:TaxCategory> </cac:TaxSubtotal> </cac:TaxTotal>
  • <cbc:InvoicedQuantity>: The quantity being invoiced.
  • <cbc:LineExtensionAmount>: The total amount for the line item (quantity x unit price).
  • <cbc:PriceAmount>: The unit price for the item.
  • <cbc:TaxAmount>: The total tax amount for the invoice.

3.3 Footer Section

The footer may contain summary information, such as totals for the invoice, the currency used, and payment terms.

<cbc:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount> <!-- Subtotal excluding taxes --> <cbc:TaxExclusiveAmount currencyID="EUR">200.00</cbc:TaxExclusiveAmount> <!-- Total before tax --> <cbc:TaxInclusiveAmount currencyID="EUR">240.00</cbc:TaxInclusiveAmount> <!-- Total including tax --> <cbc:PayableAmount currencyID="EUR">240.00</cbc:PayableAmount> <!-- Total amount payable --> </cbc:LegalMonetaryTotal> <!-- Payment terms --> <cac:PaymentMeans> <cbc:PaymentDueDate>2024-09-14</cbc:PaymentDueDate> <!-- Due date for payment --> <cbc:PaymentMeansCode>30</cbc:PaymentMeansCode> <!-- Payment method code --> </cac:PaymentMeans>
  • <cbc:PayableAmount>: The total amount that is payable, including taxes.
  • <cbc:PaymentDueDate>: The date by which payment is due.

4. PEPPOL and UBL Compliance

PEPPOL documents are built on UBL 2.1, which is a globally accepted XML format for electronic documents. This ensures compatibility across various systems, regardless of the software used by either party. PEPPOL’s specifications for each document type provide detailed rules on how to implement UBL for e-procurement processes, ensuring that the structure is followed consistently.

5. Four-Corner Model

The PEPPOL network uses a four-corner model to facilitate interoperability. This model involves:

  1. Sender: The company or public entity sending the document.
  2. Sender's Access Point: The service provider or system that sends the document on behalf of the sender.
  3. Receiver's Access Point: The service provider or system that receives the document on behalf of the receiver.
  4. Receiver: The recipient of the document.

This model ensures that documents can be sent and received across different systems and countries without compatibility issues, as long as both parties are connected to the PEPPOL network through their access points.

No comments:

Post a Comment

Comparison Between EDI and API

Comparison between  EDI (Electronic Data Interchange) and API (Application Programming Interface) in the context of B2B data exchange: ...