SBDH envelope for files to and from Peppol

When you send files using Tickstar to other Peppol Access Points you will need to wrap the payload (invoice, order, etc.) in a Peppol Envelope (SBDH – Standard Business Document Header). The same envelope is used when you receive files from Peppol.


The payload must be put between the tags </StandardBusinessDocumentHeader> and </StandardBusinesDocument> in the Peppol Envelope (SBDH).

Please find the Peppol envelope specification and schema on https://docs.peppol.eu/edelivery.

More information about the SBDH can be found at https://www.gs1.org/standards/edi/standard-business-document-header-sbdh.


UUID

We suggest the use of a UUID as InstanceIdentifier to enable end-to-end Track & Trace across multiple Peppol Access Point hops. If you use a UUID it will be respected and used in the AS2/AS4 transaction to the receiving Peppol Access Point (corner 3).

Here’s a regular expression that matches common UUID patterns:

\b(uuid:){0,1}\s*([a-f0-9\\-]*){1}\s*

Use of Peppol identifiers

The document “Peppol Policy for use of Identifiers” explains the use of various identifiers in Peppol, such as the syntax for identifiers used for documentssenders and receivers.

For BIS 3 you should use “Peppol Policy for use of identifiers v.4.x“. Visit https://docs.peppol.eu/edelivery to find the latest version.


Peppol Envelope (SBDH) to wrap a business document

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<StandardBusinessDocument xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader">
    <StandardBusinessDocumentHeader>
        <HeaderVersion>1.0</HeaderVersion>
        <Sender>
            <Identifier Authority="iso6523-actorid-upis">peppol_sender_id_here_(Corner_1)</Identifier>
        </Sender>
        <Receiver>
            <Identifier Authority="iso6523-actorid-upis">peppol_receiver_id_here_(Corner_4)</Identifier>
        </Receiver>
        <DocumentIdentification>
            <Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard>
            <TypeVersion>2.1</TypeVersion>
            <InstanceIdentifier>use_uuid_here</InstanceIdentifier>
            <Type>Invoice</Type>
            <CreationDateAndTime>2023-12-19T11:00:55.110+02:00</CreationDateAndTime>
        </DocumentIdentification>
        <BusinessScope>
            <Scope>
                <Type>DOCUMENTID</Type>
                <InstanceIdentifier>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1</InstanceIdentifier>
                <Identifier>busdox-docid-qns</Identifier>
            </Scope>
            <Scope>
                <Type>PROCESSID</Type>
                <InstanceIdentifier>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</InstanceIdentifier>
                <Identifier>cenbii-procid-ubl</Identifier>
            </Scope>
            <Scope>
                <Type>COUNTRY_C1</Type>
                <InstanceIdentifier>GB</InstanceIdentifier>
            </Scope>
        </BusinessScope>
    </StandardBusinessDocumentHeader>
<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:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID><cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
          <cbc:ID>invoice_id_here</cbc:ID>
        <!-- imagine a Peppol invoice here -->
    </Invoice>
</StandardBusinessDocument>

Integration test

The best way to test the communication setup is to send a test file to yourself; just follow these steps to do that.

Learn more about Peppol in the Frequently Asked Questions section.