-
Notifications
You must be signed in to change notification settings - Fork 92
Peppol Reporting
Peppol Business Message Envelope specification SBDH v2.0.1 is basic building block or supporting specification of Peppol Reporting. This is used to pass C1 Country code from C2 to C3 via SBDH header (StandardBusinessDocumentHeader/BusinessScope/Scope[Type=”COUNTRY_C1”]). Oxalis is supporting this specification since version Oxalis 6.1.1/Oxalis-AS4 6.1.1
Peppol “Transaction Statistics Reporting” and Peppol “End User Statistics Reporting” is mandatory from 1st January 2024 (2024-01-01). Current Transaction Statistics Reporting(TSR) specification version is 1.0.2 and End User Statistics Reporting(EUSR) specification version is 1.1.1.
To support Peppol Reporting, Peppol AP/SP need to perform following activities:
- Data Gathering or Collection
- Data Preparation or Aggregation
- Report Validation
- Data Transmission
Input required to implement peppol reporting i.e., “data gathering/collection” is available either in SBDH header or AS4 transmission message except C4 country code. AP service provider must store all relevant information of Peppol incoming and outgoing messages. Historically AP service providers developed their own way to store transaction data which they used to report transactions to Peppol Authority. Originally Oxalis did provided support for storing Transaction statistics, but it was later moved to legacy component and no longer maintained.
For data collection, AP service provider need data storage so that this data can be used for data aggregation during report generation process. Best way to store data is to store it in some relational or NoSQL database. There are plenty of options here: Oracle, MS SQL Server, MySQL, H2 database, MongoDB etc…
AP service provider can capture data from SBDH & AS4 message transmission by creating Oxalis plugin and store required information in the database of choice.
- “ExchangeTime”: Message exchange time in UTC, precision up to second – Available in AS4 Transmission message “eb:UserMessage/eb:MessageInfo/eb:Timestamp” – Column/Field used in both TSR, EUSR
- “Direction”: Direction of exchange (incoming or outgoing) – Column/Field used in both TSR, EUSR
- “C2SeatID”: Peppol Seat ID of C2 – “For outgoing (sending), C2SeatID can be extracted from the CN of the Peppol Service Provider certificate used for signing the AS4 message and for incoming (receiving), C2SeatID can be deduced from the Peppol signing certificate that is part of the received AS4 message (X.509 Certificate Subject CN value)” – Column/Field used in TSR only
- “C3SeatID”: Peppol Seat ID of C3 – “For outgoing (sending), C3SeatID can be deduced from the Peppol certificate extracted from the SMP query, used for the encryption of the AS4 message” and incoming (receiving), C3SeatID is a constant value, typically extracted from the CN of the Peppol Service Provider certificate used for decrypting the received AS4 Message (X.509 Certificate Subject CN value) and for – Column/Field used in TSR only
- “DocType ID”: Document Type ID of exchanged message – ”Available in AS4 User Message (eb:UserMessage/eb:CollaborationInfo/eb:Action) and in the SBDH :StandardBusinessDocumentHeader/BusinessScope/Scope[Type=”DOCUMENTID”]” – Column/Field used in both TSR, EUSR
- “Process ID”: Process ID of exchanged message – ”Available in AS4 User Message: eb:UserMessage/eb:CollaborationInfo/eb:Service(incl. @type) and in the SBDH: StandardBusinessDocumentHeader/BusinessScope/Scope[Type=“PROCESSID”]”– Column/Field used in both TSR, EUSR
- “TransportProtocol”: Transport Protocol used during exchange – ”Default value peppol-transport-as4-v2_0” – Column/Field used in TSR only
- “C1Country”: The Country code of Sender End User – ”Available in SBDH header _StandardBusinessDocumentHeader/BusinessScope/Scope[Type=”COUNTRY_C1”] _” – Column/Field used in both TSR, EUSR
- “C4Country”: The Country code of Receiver End User – ”There is no “field” in the transmitted data to hold the C4 country code, C3 must retrieved it from SP based on its KYC. If the specific Receiver has a Business Card for the Peppol Directory, then the Country Code required for reporting should match the Country Code of the Business Card” – Column/Field used in both TSR, EUSR
- “End User ID”: This is implementation specific to each Service Provider and used to aggregate data - Column/Field used in EUSR only
For specific reporting period(i.e., from 1st till last day of month), SP need to prepare data by aggregating it. Data aggregation feature is solely dependent on database that SP is/will be using.
Validation of any document was never ever part of Oxalis codebase. Oxalis Community/Maintainer took strategic decision in the past that Oxalis will Not provide validation support and SP must rely on their own way of validating outgoing documents. So, it is out of scope at this moment, unless OMT decide to support this in near future.
Oxalis 6.3.0 & above and Oxalis-AS4 6.3.0 Release & above can be used to transmit both EUSR and TSR reports to OpenPeppol Operating Office (OO) AP.
Transaction Statistics Report The steps to transmit a TSR are:
- Create the TSR XML representation, based on the Peppol TSR specification
- Validate the TSR against the TSR Schematron
- Send the message to the OpenPeppol Access Point via the Peppol eDelivery network
- Ensure you receive a positive transport level acknowledgement
End User Statistics Report The steps to transmit an EUSR are:
- Create the EUSR XML representation based on the Peppol EUSR specification
- Validate the EUSR against the EUSR Schematron
- Send the message to the OpenPeppol Access Point via the Peppol eDelivery network
- Ensure you receive a positive transport level acknowledgement
The Reporting Period is set as 1 month. Every report of a month MUST be reported within 15 calendar days of the next month.
On the 11th day the SP will receive a reminder by mail if the EUSR and/or the TSR is not yet received. On the 16th day the SP will receive a mail regarding non-compliance if the EUSR and/or the TSR was not received. The sending email address is [email protected] – please make sure your email service can receive emails from that email address and neither blocks them nor marks them as spam or junk.
- The receiving Peppol ID of OpenPeppol is 9925:be0848934496
- Both TSR and EUSR needs to be wrapped in an SBDH envelope.
- The Sender Country Code in the SBDH needs to be Country Code of the country where the SP is domiciled that is reporting the data.
- Handling missing country codes: If the country code is missing or an invalid code is used, the incoming message will be non-compliant, because it does not respect the mandatory SBDH specification. Receiving Service Providers at Corner 3 may reject non-compliant messages or choose to process them and forward the included business documents to their customers for reasons of business continuity. If not rejected, messages with a missing C1 country code MUST be counted for TSR using the special country code “ZZ”. This only applies to the TSR. For EUSR all country codes must be known to the SP based on the End User Identification.
- Invalid reports will not be processed by OpenPeppol. The SP is informed by mail what the errors are in the received invalid reports. The sending email address is [email protected] – please make sure your email service can receive emails from that email address and neither blocks them nor marks them as spam or junk.
- Peppol Reporting – Guideline for Service Providers: https://docs.peppol.eu/edelivery/guidelines/reporting/2024-01-15%20Peppol%20Reporting%20-%20SP%20Operational%20Guideline%20v1.0.2.pdf
- TSR BIS Specification: https://docs.peppol.eu/edelivery/specs/reporting/tsr/bis/
- EUSR BIS Specification: https://docs.peppol.eu/edelivery/specs/reporting/eusr/bis/
- Peppol Business Message Envelope specification: https://docs.peppol.eu/edelivery/envelope/Peppol-EDN-Business-Message-Envelope-2.0.1-2023-08-17.pdf
- eDelivery Specification: https://docs.peppol.eu/edelivery/
- eDEC Code Lists: https://docs.peppol.eu/edelivery/codelists/index.html
For more information, contact: https://www.oxalis.network/ or Email: [email protected]
People associated with Oxalis: https://github.com/orgs/OxalisCommunity/people
Oxalis Documentation Space