This document describes the EHF Catalogue format to be used for the exchange of Catalogue information between trading partners. The document is part of Norwegian "The Norwegian Agency for Public and Financial Management" (Difi) standardization work related to electronic commerce.

Reporting bugs
Please use Github Issues to report bugs and lack of content when discovered. Users currently not registered on Github may create an account for free.

Introduction

Background and Objective

The government white paper labeled “St.Meld. nr. 36 (2008-2009) Det gode innkjøp” (The good procurement), states among other things:

It’s the Government’s opinion that increased use of electronic solutions is important to improve and increase the efficiency of public procurement. The use of electronic solutions may reduce time spent on public procurement, increase the competition and arrange for purchases to be more transparent and easier to re-examine. By spending less time and money on procurement, resources will be available for both modernizing the public sector and more welfare. The goal for introducing electronic solutions is to contribute to a better, simpler and more secure procurement.

The previous «Ministry of Government Administration, Reform and Church Affairs» (FAD) considered use of open standards as a vital means to build a well-functioning public administration, with good internal collaboration and a high level of service for both inhabitants and businesses.

Definition of open standards:
An open standard is characterized by its reputation and will be maintained by a non-commercial organization, and the continuing development is based on decision processes open to every interested party. The standard is published and the documentation is available, either free of charge or for a small, insignificant fee. Anyone must be allowed to copy, distribute and use the standard free of charge or for a small, insignificant fee. The intellectual rights related to the standard (e.g. patents) are irrevocably available, without any royalties. There is no reservation regarding re-use of the standard.

The purpose of this document is to describe a common format for invoice messages in the Norwegian market, and to facilitate an efficient implementation and increased use of electronic collaboration regarding the invoicing process based on this format.

Target Audience

The target audience for this Implementation Guide (hereafter called IG) is both technical and non-technical personnel involved in the exchange of catalogue messages. The IG may also be used by system providers and message brokers. * Chapter 1 to 5 are directed to non-technical personnel * Chapter 6 to 8 (attachments) are directed to technical personnel

Document Structure

The document consists of the following parts: * Chapter 1 outlines the background and objective for the document. * Chapter 2 contains document history. * Chapter 3 describes the principles and conditions for EHF. * Chapter 4 contains definitions. * Chapter 5 describes the ordering process. * Chapter 6 describes selected parts of the formats. * Chapter 7 describes the validation of the messages. * Chapter 8 contains the references to separate documents.

Mandatory Use

This version is valid from 10. December 2019, and is mandatory from the same date.

1. Changelog

1.1. Consequences of Implementing this version

Version 1.0.15 is a revision of EHF Catalogue 1.0, and this version is backwards compatible to EHF Catalogue 1.0. This means that any instance documents valid towards EHF Catalogue 1.0 is also valid in version 1.0.15. Please note that valid here reflects the validity against the implementation guide of EHF Catalogue 1.0, as this is the normative reference.

1.1.1. Registration in ELMA

Invoice and creditnote receivers capable of receiving EHF Catalogue 1.0 instance documents is also capable of receiving EHF Catalogue 1.0.15, so no change is needed in the registration in ELMA.

1.2. Version 1.x

Version 1.0.15 (2019-12-10)

Issue Description Type

-

Updated links to Github.

Guide

Version 1.0.14 (2019-02-27)

Issue Description Type

-

Fixing syntax, resulting in updated basic validation rules.

Syntax

Validation rules expected to be updated to trigger error in next release: All basic validation rules (EHF-TXX-BXXXXXX).

Version 1.0.13 (2018-11-15)

Issue Description Type

#272

Fixing identifiers provided in "Profiles and messages" section.

Guide

-

Moving example files into a example file archive. Appendix is updated with the new link.

Guide

-

Replacing listing of validation rules with links to all relevant validation rules.

Guide

-

Adding "basic" validation rules automatically created from syntax. Rules are identified as 'EHF-T19-BXXXXX' for Catalogue and 'EHF-T58-BXXXXX' for Catalogue Response where 'XXXXX' is a running number.

Validator

Validation rules expected to be updated to trigger error in next release: All basic validation rules (EHF-TXX-BXXXXXX).

Version 1.0.12 (2018-09-12)

Issue Description Type

#267

Adding a missing word in "Profiler og meldinger" section (Norwegian edition only).

Guide

#268

Adding English translation in "Allergens" section.

Guide

Version 1.0.11 (2018-02-20)

Issue Description Type

#253

Fixing example of VAT.

Guide

Version 1.0.10 (2017-11-15)

Issue Description Type

#230

Updating rules NOGOV-T19-R024 (F), EHF-COMMON-R011 (F), EHF-COMMON-R012 (F) and EHF-COMMON-R013 (F) from warning to error.

Validator

#234

Supressing rule BII2-T19-R021 (W) in validator.

Validator

#229

For easier maintenance and better transparency use PEPPOL BIS Schematron source in favour of copying generated XSLTs into this project.

Validator

#233

Updated chapter on validation to reflect use of EHF Common.

Guide

#245

Adding information related to new tax categories valid as of next release.

Guide

Version 1.0.9 (2017-09-14)

Issue Description Type

#215

Fixing context for a lot of rules for higher quality.

Validator

#222

Replacing rules with rules in EHF Common.

Validator

#222

Adding rule NOGOV-T19-R024 (W) to support implisit functionality.

Validator

#223

Adding missing format recommandations for attachments.

Guide

Validation rules expected to be updated to trigger error in next release: NOGOV-T19-R024, EHF-COMMON-R011, EHF-COMMON-R012, EHF-COMMON-R013
Mapping of rules for EHF Common in EHF Catalogue
New rule Description Old rule

Document in general

EHF-COMMON-R001 (F)

Document MUST not contain empty elements.

NOGOV-T19-R018 (F)

EHF-COMMON-R002 (F)

Document MUST not contain empty elements.

NOGOV-T19-R018 (F)

EHF-COMMON-R003 (W)

Document SHOULD not contain schema location.

New rule

EHF-COMMON-R004 (F)

Document MUST have a syntax identifier.

NOGOV-T19-R007 (F)

Validation of Norwegian organization numbers

EHF-COMMON-R010 (F)

MUST be a valid Norwegian organization number. Only numerical value allowed

NOGOV-T19-R015 (F), NOGOV-T19-R017 (F)

EHF-COMMON-R011 (F)

When scheme is NO:ORGNR, a valid Norwegian organization number must be used. Only numerical value allowed

New rule

EHF-COMMON-R012 (F)

A VAT number MUST be valid Norwegian organization number (nine numbers) followed by the letters MVA.

New rule

EHF-COMMON-R013 (F)

When scheme is NO:ORGNR, a valid Norwegian organization number must be used. Only numerical value allowed

New rule

EHF-COMMON-R014 (F)

An endpoint identifier scheme MUST have the value 'NO:ORGNR'.

NOGOV-T19-R014 (F), NOGOV-T19-R016 (F)

Validation of tax

EHF-COMMON-R020 (F)

Tax categories MUST be one of the follwoing codes: AA E H K R S Z

NOGOV-T19-R019 (F)

Formating validation

EHF-COMMON-R030 (F)

A date must be formatted YYYY-MM-DD.

NOGOV-T19-R006 (F)

Validation of other identifiers

EHF-COMMON-R040 (W)

Invalid GLN number provided.

Ignored

Code lists

EHF-COMMON-R100 (W)

Attachment is not a recommended MIMEType.

New rule

Mapping of rules for EHF Common in EHF Catalogue Response
New rule Description Old rule

Document in general

EHF-COMMON-R001 (F)

Document MUST not contain empty elements.

NOGOV-T58-R009 (F)

EHF-COMMON-R002 (F)

Document MUST not contain empty elements.

NOGOV-T58-R009 (F)

EHF-COMMON-R003 (W)

Document SHOULD not contain schema location.

New rule

EHF-COMMON-R004 (F)

Document MUST have a syntax identifier.

NOGOV-T58-R002 (F)

Validation of Norwegian organization numbers

EHF-COMMON-R010 (F)

MUST be a valid Norwegian organization number. Only numerical value allowed

NOGOV-T58-R006 (F), NOGOV-T58-R008 (F)

EHF-COMMON-R011 (F)

When scheme is NO:ORGNR, a valid Norwegian organization number must be used. Only numerical value allowed

New rule

EHF-COMMON-R012 (F)

A VAT number MUST be valid Norwegian organization number (nine numbers) followed by the letters MVA.

Ignored

EHF-COMMON-R013 (F)

When scheme is NO:ORGNR, a valid Norwegian organization number must be used. Only numerical value allowed

Ignored

EHF-COMMON-R014 (F)

An endpoint identifier scheme MUST have the value 'NO:ORGNR'.

NOGOV-T58-R005 (F), NOGOV-T58-R007 (F)

Validation of tax

EHF-COMMON-R020 (F)

Tax categories MUST be one of the follwoing codes: AA E H K R S Z

Ignored

Formating validation

EHF-COMMON-R030 (F)

A date must be formatted YYYY-MM-DD.

NOGOV-T58-R001 (F)

Validation of other identifiers

EHF-COMMON-R040 (W)

Invalid GLN number provided.

Ignored

Code lists

EHF-COMMON-R100 (W)

Attachment is not a recommended MIMEType.

Ignored

Version 1.0.8 (2017-05-15)

Issue Description Type

#207

Updated validation artifacts for PEPPOL BIS from OpenPEPPOL.

Validator

#196

Supressing CL-T19-R004 in favour of NOGOV-T19-R019 (F).

Validator

#202

Adding section 6.12.1 about use of code list in attachments, and adding NOGOV-T19-R020 (F) to validate use of the code list.

Validator and guide

#213

Adding section 6.20 regarding sterile products. Adding rules NOGOV-T19-R021 (W), NOGOV-T19-R022 (W) and NOGOV-T19-R023 (F)

Validator and guide

#206

Updating links in 3.6 and code lists.

Guide

#214

Removing message table and structure table in favour of format structure.

Guide

Version 1.0.7 (2017-02-15)

Issue Description Type

#198

Fix inconsistant use of business terms/element naming in the EHF guide, the message table and catalogue template

Changes are done to the following chapters:

  • Quantities and units

  • Logistics information

  • Prices

  • Product identification

  • Related products and accessories

Guide

Version 1.0.6 Hotfix (2016-12-13)

Issue Description Type

#192

Removing EHF Core for Catalogue and Catalogue Response.

Validator

Version 1.0.6 (2016-11-15)

Issue Description Type

#121

Rewritten description of allergens.

Guide

#155

Adding missing list of NOGOV rules for Catalogue.

Guide

#164

Aligning chapter 5.3 with EHF Invoice and Credit Note.

Guide

#162

Fix minor bug in Catalogue Response example file.

Attachment

#169

Fix minor bug in Catalogue and Catalogue Response example files.

Attachment

#159

Rewrite of rule NOGOV-T19-R001 (F).

Validator

#160

Fix rule NOGOV-T19-R001 (F) so it triggers as intended.

Validator

#171

Fix rule NOGOV-T19-R002 (F) so element EndDate is optional.

Validator

#162

Fix rules NOGOV-T58-R002 (F), NOGOV-T58-R003 (W), NOGOV-T58-R004 (W), NOGOV-T58-R005 (F), NOGOV-T58-R006 (F), NOGOV-T58-R007 (F) and NOGOV-T58-R008 (F).

Validator

#169

Updating NOGOV-T19-R015 (F) and NOGOV-T19-R017 (F) to also verify checksum of organization number.

Validator

#169

Updating NOGOV-T58-R006 (F) and NOGOV-T58-R008 (F) to also verify checksum of organization number.

Validator

#179

Updated validation artifacts for PEPPOL BIS from OpenPEPPOL.

Validator

#48

Adding EHF Core for Catalogue and Catalogue Response.

Validator

#162

Change authoritative source of validation artifacts from XSLT to Schematron for NOGOV-T58.

Validator

#163

Change authoritative source of validation artifacts from XSLT to Schematron for NOGOV-T19.

Validator

Version 1.0.5 (2016-09-15)

Issue Description Type

#147

Converting guide to Asciidoctor format.

  • Aligning chapter 1 to other guides.

  • Aligning chapter 3 to other guides.

  • Removing chapter 7 in favor of GEFEG presentation found on VEFA.

  • Moving chapter 8 to chapter 7.

  • Moving chapter 9 to chapter 8.

  • Presentations and illustrations are changed due to new format.

Guide

Version 1.0.4 (2016-05-23)

Editorial change:
  • Example in chapter 6.6, addition or chapter 6.6.1

Validator change:
  • Correct rule NOGOV-T19-R002 to allow for Z as timezone indicator

Author:
  • Siw Meckelborg, Edisys Consulting AS

Version 1.0.3 (2015-09-01)

Validation changes:
  • New validation artefacts from PEPPOL and BII, upgrade to XSLT/xPath2.0

  • Empty elements will generate error, not warning (Rules NOGOV-T19-R018 and NOGOV-T58-R009)

Author:
  • Siw Meckelborg, Edisys Consulting AS

Version 1.0.2 (2015-03-06)

Validation changes:
  • Validation of all mandatory and recommended elements.

  • Validation of datatypes (VAT number, date etc.)

  • Only organisational numbers are valid in EndpointID.

Editorial changes:
  • Added ruleID to message table

  • Adding Dependant to description of elements.

  • Clarification added to chapter 2.1

Author:
  • Siw Meckelborg, Edisys Consulting AS

Version 1.0.1 (2014-08-21)

  • Added codes for Recommended Article (Anbefalt artikkel) and Smartform ID, chapter 6.17 and 6.18

  • Updated description of Catalogue Response, chapter 5.5

  • Added chapter 3.3

  • Added rules for party identifikator, endpoint identifikator, landkoder, valutakoder and attributtvalue

  • Added rule for correct use of Profile ID

Author:
  • Edisys Consulting AS

Version 1.0.0 (2013-09-25)

Approved

Author:
  • Edisys Consulting AS

2. Electronic Commerce Format (EHF)

2.1. About EHF

EHF is an anagram of the Norwegian expression «Elektronisk handelsformat» (Electronic Commerce Format).

EHF is based on the work performed by CEN BII. This is further adjusted to comply with the Norwegian accounting regulations and current practices for the different business processes in the Norwegian market. Difi pursues the goal to cover the full trading process using EHF documents, both before and after awarding (signing of a contract).

Documents, from the tender catalogue to the credit note will be gathered under the EHF umbrella. During 2013 Difi will prepare for the use of EHF formats in what is known as the post award process, i.e. the part of the business process that starts when a supplier and a customer have signed a contract.

By using the EHF documents the collaboration between the supplier and the customer will be predictable. Elements from the tender Catalogue will be re-used in the Order, and elements from the Order will be re-used in the Invoice. This leads to a holistic use of all the documents under the EHF umbrella.

Difi has chosen to use CEN BII as a base for the EHF formats and the Universal Business Language (UBL) as a foundation for the implemented syntax. Both EHF and UBL are open standards and as such not liable to any licensing fees or royalties.

EHF is managed and maintained by Difi.

2.2. Information Consistency

The different EHF formats mentioned above contain a number of common information elements (supplier, customer, item etc.). It is important to preserve consistency in those common information elements, and that means that elements with identical content are declared in the same way and as far as possible given the same element tag name.

EHF invoicing formats will for instance re-use elements from the Catalogue and Order to ensure consistency between the messages and to make sure that the information from the business transactions are reflected in the invoicing documents. This makes it possible to implement an efficient and automated control of the invoice and the originating transactions.

2.3. Empty Elements

The use of empty elements is prohibited in UBL, which is the base for EHF. The reason for this, is that empty elements may be interpreted to have a certain meaning, it could mean that the information was not available at the time of sending as an example. In addition, numeric- and date elements have requirements that would generate validation errors if they were empty.

The use of empty elements is, for the above mentioned reasons, not allowed in EHF.

2.4. Message Transport

Open PEPPOL Transport Infrastructure will provide an efficient use and transport of the EHF formats. The objective is to make it easy for parties in different countries to do cross-border trade. Experience shows that it is easy to implement electronic messaging in Norway, because most of the service providers use standard processes.

It must be noted that every document scheduled for this infrastructure must be validated with no fatal errors by Difi’s own validation service. This is likely to be done by the document issuer or by the service provider on behalf of the document issuer.

According to circular P-10/2012 FAD recommends all central government agencies to use this transport infrastructure.

2.5. Profiles and Messages

In line with the underlying methodology for the EHF formats (cf. CEN BII) the electronic messages included in a specific format will be exchanged between the parties as a part of an electronic collaboration process – a profile.

CEN BII has defined a profile as “A specification of how one or more Business Processes are executed by specifying the business rules governing its business collaborations and the information content (data model) of the electronic business transactions exchanged.”

If possible, the EHF is using profiles prepared by BII or PEPPOL. Examples of relevant profiles are:

Profile Document types

Invoice only (bii04)

Invoice

Credit note only (biixx)

Credit note

Invoice and credit note (bii05)

Invoice, Credit note

Invoice, credit note and reminder (biixy)

Invoice, Credit note, Reminder

Order and invoice (bii06)

Order, Order response, Invoice, Credit note

The messages being exchanged within a profile are customized to comply with the requirements given for that particular business document.

A CustomizationID is used to identify the business rules that apply to the document in question, i.e. the whole set of business rules the document issuer founded the document on.

The example CustomizationID below indicates that the contents of the current message is based on business rules determined by BII (urn:www.cenbii.eu:transaction:biitrns010:ver2.0), extended, customized and clarified by PEPPOL (urn:www.peppol.eu:bis:peppol5a:ver2.0) and further extended, customized and clarified in this implementation guide regarding the Norwegian businesses (urn:www.difi.no:ehf:faktura:ver2.0).

<cbc:CustomizationID>urn:www.cenbii.eu:transaction:biitrns10:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0</cbc:CustomizationID>

2.6. Use of Collaboration Agreements

The combination of the ELMA registration and the implementation guides referred to in that context eliminates the need for any formal collaboration agreement between the sender and the receiver. The ELMA registration verifies that an actor has declared the ability and the commitment to receive business documents composed according to the specific implementation guide, and any party is free to send the business document to this actor.

Exchanging Catalogue and Order requires no registration in ELMA, and actors are advised to include the use of electronic messages in the purchase contract or to supply an collaboration agreement as an attachment, in order to link the electronic collaboration with the mercantile regulations and thus achieve a regularly revision of the electronic process.

2.7. Versioning

Difi claims the right to exchange the current format with a new one as and when needed. If so, Difi will inform the public via the web site and their registered users via e-mail.

Difi manages the formats in this way:

Main Version

A new main version will be announced at least 5 months prior to release. When a main version is released, there will be at least a 12 months implementation period before the new version is made mandatory.

Difi intends to relate every main version to the regulations concerning IT standards in the public sector.

Sub Version

A new sub version will be announced at least 3 months prior to release and is made mandatory 5 months after release.

All sub versions must be backwards compatible. 2 months after the new sub version has become mandatory, the support (validation service and implementation guide) is ceased for preceding versions.

Revision

A revision is in principle a result of bug fixing the latest sub version, and will be announced at release time and should be implemented without further delay.

3. Definitions

Catalogue

A document describing the properties of products and services.

Supplier

A person or company delivering products or services.

Buyer

A person or company buying a product or service at a set price.

Catalogue provider

A person or company collecting catalogue information and sending the catalogue.

Catalogue receiver

A person or company that is responsible for the reception of the catalogue.

UBL

UBL (Universal Business Language) is a collection of XML-formats (XML Schema) for the exchange of electronic documents such as Catalogue, Order and Invoice.

CEN BII

CEN BII (Business Interoperability Interfaces) is a subset of UBL containing documents and content that is required for electronic collaboration in the European public sector.
Does not include separate XML Schemas.

Schematron validation

Validation of a message towards business requirements. Additional to the syntax check against XML Schema.

4. Principles and Prerequisites

This chapter describes the catalogue process and functional requirements covered by EHF Catalogue. The description is based on the CEN BII profile BII01 Catalogue Only.

4.1. About the Catalogue Messages

The messages covered by this Implementation guide are EHF Catalogue and EHF Catalogue Response. Buyer and Seller must exchange both messages electronically to be in compliance with this guide.

An Electronic Catalogue is a listing of products and services to be used in a purchasing process. The EHF Catalogue can serve different purposes during the lifecycle of Catalogue information:

  • Establish a new Catalogue

  • Replace an existing Catalogue

  • Add or delete Catalogue lines

  • Update product properties or prizes on existing Catalogue lines

When doing changes to catalogue lines, it is recommended to replace the whole catalogue and not update separate lines.

A Catalogue containing sufficient information about articles and services will prevent faulty deliveries causing lost income for both suppliers and buyers.

Most often an Electronic Catalogue will be integrated with a Catalogue tool and a Search engine. The Search engines are set up differently providing possibility to search for different catalogue elements. The number of elements available will decide the preciseness of the search, and a well set up Search engine will in the end improve the quality of the purchase.

4.2. Functionality and Roles

This Implementation Guide covers exchange of catalogues in a post-award process, i.e. after the contract is signed between supplier and buyer. The content may also be used in a pre-award process (tendering), but with less mandatory elements.

The figure below shows the business functions and roles covered by EHF Catalogue.

Functionality and roles

4.3. Profiles and messages

All messages contains ProfileID and CustomizationID. ProfileID identifies what business process a given message is part of, and CustomizationID identifies the kind of message and the rules applied.

Profiles are connected to one business process, and may contain multiple document types. Valid document instances must contain corresponding ProfileID and CustomizationID.

The listing below are related document types connected to the role of receiver in the conversation. Registration in ELMA describes the receivers capabilities.

CustomizationID is a string without spaces. The list below contains spaces in CustomizationID to make them easier to read. Make sure to remove any spaces before use.

4.3.1. Profile 01 - Catalogue

ProfileID

urn:www.cenbii.eu:profile:bii01:ver2.0

Type CustomizationID Role

Catalogue

urn:www.cenbii.eu:transaction:biitrns019:ver2.0 :extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 :extended:urn:www.difi.no:ehf:katalog:ver1.0

Contracting Authority

Catalogue Response

urn:www.cenbii.eu:transaction:biitrns058:ver2.0 :extended:urn:www.peppol.eu:bis:peppol1a:ver2.0 :extended:urn:www.difi.no:ehf:katalogbekreftelse:ver1.0

Economic Operator

4.4. Catalogue Process

The Catalogue exchange is the first part of the post-award process and can be described as follows:

  1. The Catalogue provider (Supplier) collects information about products or services and transforms these into a Catalogue format. This can either be a complete Catalogue or a Catalogue containing selected articles with changes.

  2. The Catalogue is sent to the Catalogue receiver (Buyer) either directly or via a third party.

  3. The Catalogue receiver controls if the Catalogue is syntactically correct and contains sufficient information.

  4. If the Catalogue is accepted, the Catalogue receiver sends a positive Catalogue Response to the Catalogue provider. The Catalogue is now approved for ordering purposes.

  5. If the Catalogue is rejected, the Catalogue receiver sends a negative Catalogue Response to the Catalogue provider with an explanation to the rejection. The Catalogue provider will make corrections to the Catalogue and resend it.

Figure 2 shows the Catalogue process including the exchange of the EHF Catalogue messages.

Process model for Catalogue exchange.

4.5. Catalogue Response

The Catalogue Response message is part of the Catalogue process described in chapter 5.4. The Catalogue Response is sent from the Catalogue Receiver/Buyer to the Catalogue Provider/Supplier as a business receipt stating that the Catalogue is accepted or rejected.

In other words, this is not a technical receipt only stating that the catalogue message is received.

The Catalogue itself will not be returned from buyer to supplier. If a Catalogue message is rejected, a new corrected Catalogue must be sent.

If the exchange involves the use of a Catalogue tool, this may include a more advanced dialogue between buyer and supplier than described here.

5. Description of Selected Parts

There are no formal requirements to catalogue content according to Norwegian regulations. The content requirements are therefore based on the following:

  • Information content in the existing Procurement Platform (EPP)

  • UBL 2.1

  • CEN BII2

  • Peppol BIS 1A catalogue

The format will also be verified against requirements in certain areas of the Norwegian private sector.

The following chapters describe selected areas of the format and specifically information elements being important for use in the Norwegian market.

5.1. Roles and Actors

The following roles are defined in the EHF Catalogue. These roles can either be hold by the same physical actor of by different actors depending on how the catalogue administration is organized.

Catalogue Provider (ProviderParty)

Responsible for the preparation and transfer of the Catalogue to the Catalogue receiver. Can be the Supplier itself or a third party providing this service.

Catalogue Receiver (ReceiverParty)

Responsible for the reception and control of the Catalogue. Can be the Buyer itself or a third party providing this service to the Buyer.

Supplier (SellerSupplierParty)

Responsible for the delivery of products or services specified in the Catalogue.

Buyer (ContractorCustomerParty)

The party buying products or services from the Catalogue.

Manufacturer (ManufacturerParty)

The name of the Manufacturer.

Example of Supplier information on header level in an EHF Catalogue message
<cac:SellerSupplierParty>
  <cac:Party>
    <cbc:EndpointID schemeID="NO:ORGNR">987654321</cbc:EndpointID>
    <cac:PartyIdentification>
      <cbc:ID schemeID="NO:ORGNR">984297793</cbc:ID>
    </cac:PartyIdentification>
    <cac:PartyName>
      <cbc:Name>Supplier</cbc:Name>
    </cac:PartyName>
    <cac:PostalAddress>
      <cbc:StreetName>Per Krohgs vei 1,Karihaugen</cbc:StreetName>
      <cbc:CityName>OSLO</cbc:CityName>
      <cbc:CountrySubentity>Norway</cbc:CountrySubentity>
      <cac:Country>
        <cbc:IdentificationCode listID="ISO3166-1:Alpha2">NO</cbc:IdentificationCode>
      </cac:Country>
    </cac:PostalAddress>
    <cac:Contact>
      <cbc:Name>Ole Olsen</cbc:Name>
      <cbc:Telephone>+46123123123</cbc:Telephone>
      <cbc:ElectronicMail>test@ibxeurope.com</cbc:ElectronicMail>
    </cac:Contact>
  </cac:Party>
</cac:SellerSupplierParty>
Example of Manufacturer information on line level.
<cac:CatalogueLine>
...
  <cac:Item>
  ...
    <cac:ManufacturerParty>
      <cac:PartyName>
        <cbc:Name>Manufacturers name</cbc:Name>
      </cac:PartyName>
    </cac:ManufacturerParty>
  ...
  </cac:Item>
...
</cac:CatalogueLine>

5.2. Action Code

The Action code holds instructions about the treatment of the Catalogue by the recipients system. The Action code can be stated either on header or line level.

It is strongly recommended only to use Action code on header level.

Use of Action codes on line level must be explicitly agreed between sender and receiver.

Guidelines for use
  • Action code must be sent on either header or line level. If Action code is not sent the Catalogue message will be rejected.

  • Action code sent on header level will overrule possible Action codes sent on line level.

  • If Action code is not sent on header level it is mandatory to send Action codes on all catalogue lines.

  • Legal values for Action Code are Add, Replace, Update or Delete.

Table 1. Action Code on header level.
Action code Treatment

Add

A new Catalogue with belonging product lines shall be created. If the Catalogue already exists, it must be rejected by receiver.

Replace

An existing Catalogue shall be completely replaced by a new version. The current version should be archived by the receiver. If the Catalogue does not exist, it must be rejected by receiver.

Update

Catalogue lines that are sent shall update existing Catalogue lines. The current version should be archived by the receiver. If the Catalogue does not exist, it must be rejected by receiver.

Delete

The whole Catalogue shall be deleted. If the Catalogue does not exist, the complete Catalogue message must be rejected.

Table 2. Action Code on line level.
Action code Treatment

Add

A new Catalogue line shall be created. If the Catalogue line already exists, the complete Catalogue message must be rejected.

Update

An existing Catalogue line shall be completely replaced by a new version of the line. If the Catalogue line does not exist, the complete Catalogue message must be rejected.

Delete

The Catalogue line shall be deleted. If the Catalogue line does not exist, the complete Catalogue message must be rejected.

Message response from receiver to sender shall be done according to description in chapter 3.3.

Example of Action code on header level.
<cac:Catalogue>
  ...
  <cbc:ActionCode listID="ACTIONCODE:PEPPOL">Add</cbc:ActionCode>
Example of Action code on line level.
<cac:CatalogueLine>
  <cbc:ID>12345</cbc:ID>
  <cbc:ActionCode listID="ACTIONCODE:BII2">Update</cbc:ActionCode>

5.3. Product Identification

Product identification must be done using the identifiers described below.

  • Sellers item identifier

  • Items standard identifier, e.g. GTIN

  • Manufacturers item identifier which is necessary when the same product is bought from several suppliers.

Either Sellers item identifier or Items standard identifier must be sent. Manufacturers item identifier shall be sent if available.

Example of Sellers ID
<cac:SellersItemIdentification>
  <cbc:ID>222222</cbc:ID>
</cac: SellersItemIdentification>

5.4. Product Name and Description

The Product name shall be sent in tag <Item/Name> on line level. Long Description of a product shall be sent in <Item/Description> on line level.

The Product name is often sent in the order from buyer to seller. The field length should not exceed 160 characters being the maximum length sent from most existing public purchasing systems. This element is also included in the shopping basket when OCI punch-out (round trip) is used.

Description should not exceed 2000 characters since this is stated as maximum field length from most existing public purchasing systems. This element is not included in the shopping basket when OCI punch-out (round trip) and is not sent in the order. The Description is only shown to the Buyer when searching for the product in the Catalogue.

Example in an EHF Catalogue message.
<cbc:Description>GUDBRANDSDALOST G35 1KG. En enhet består av: 10STK à 1KG</cbc:Description>
...
<cbc:Name>GUDBRAND.OST G35 1KG</cbc:Name>

5.5. Keyword

Keywords are sent to let the Buyer search for a product without knowing the Product ID or name. Keywords can be repeated, but the number should be limited to ensure correct handling in the receiving system. If more than one Keyword is sent, they should be put in the same tag separated by the %-sign since this is already being used by several actors (but a different sign can be agreed by the trading partners).

Keywords may also be put in separate tags.

Example of several Keywords in the same tag.
<cac:Item>
  <cbc:Description> Pallet of water </cbc:Description>
  <cbc:Name languageID="no">Water</cbc:Name>
  <cbc:Keyword>sparkling%natural%water</cbc:Keyword>
  <cac:SellersItemIdentification>
    <cbc:ID>111111</cbc:ID>
  </cac:SellersItemIdentification>
</cac:Item>
Example of Keywords in separate tags.
<cac:Item>
  <cbc:Description>Pallet of water</cbc:Description>
  <cbc:Name languageID="no">Water</cbc:Name>
  <cbc:Keyword>sparkling</cbc:Keyword>
  <cbc:Keyword>natural</cbc:Keyword>
  <cbc:Keyword>water</cbc:Keyword>
  <cac:SellersItemIdentification>
    <cbc:ID>111111</cbc:ID>
  </cac:SellersItemIdentification>
</cac:Item>

5.6. Quantities and Units

Various quantities and units can be stated in the EHF Catalogue. These are both related to the ordering process and the logistics process.

The table below lists quantities and units in the format. To all quantities there must be a legal Unit according to the Code list.

Orderable unit (OrderableUnit)

The unit in which the item described in this catalogue line can be ordered. Mandatory if the item is orderable.

Item net quantity (ContentUnitQuantity)

The net quantity of the item that is contained in each consumable unit (excluding packaging material), e.g. ml in bottles of Shampoo.

Order quantity increment (OrderQuantityIncrementNumeric)

Possible limitation to the number of articles that can be ordered. If the Quantity increment is 6 the article must be ordered in a quantity of 6, 12, 18 etc.

Minimum order quantity (MinimumOrderQuantity)

The smallest number of items that can be ordered (most often 1).

Maximum order quantity (MaximumOrderQuantity)

The largest number of items that can be ordered (most often unlimited).

Packed quantity (Item/PackQuantity)

Number of items on next lower level, e.g. number of Consumer units in a Trading unit.

Consumable unit quantity (Item/PackSizeNumeric)

Number of Consumer items in the orderable unit. E.g. number of bottles on a Pallet.

Example 1. Example 1
Description Element (from CatalogueLine level) 1 bottle Case of 6 bottles Pallet of 18 cases

Line identifier

ID

4

5

6

Sellers item identifier

SellersItemIdentification/ID

1111

111

11

Item name

Item/Name

Shampoo 250 ml

6x250 ml Shampoo

Shampoo

Orderable unit

OrderableUnit

EA

CS

PF

Packaging level

PackLevelCode

CU

TU

DU

Packed quantity

Item/PackQuantity

6

18

Packed quantity unit

Item/PackQuantity/@unitCode

EA

CS

Consumable unit quantity

Item/PackSizeNumeric

1

6

108

Item net quantity

ContentUnitQuantity

250

1500

27000

Item net quantity unit

ContentUnitQuantity/@unitCode

MLT

MLT

MLT

Minimum order quantity

MinimumOrderQuantity

1

1

1

Minimum order quantity unit

MinimumOrderQuantity/@unitCode

EA

EA

EA

Component related item identifier

ComponentRelatedItem/ID

1111

111

Item quantity for component related item

ComponentRelatedItem/Quantity

6

18

Example of catalogue line with line identifier = 4 in the above table
<cac:CatalogueLine>
  <cbc:ID>4</cbc:ID>
  <cbc:OrderableUnit>EA</cbc:OrderableUnit>
  <cbc:ContentUnitQuantity unitCode="MLT" unitCodeListID="UNECERec20">250</cbc:ContentUnitQuantity>
  <cbc:OrderQuantityIncrementNumeric>1</cbc:OrderQuantityIncrementNumeric>
  <cbc:MinimumOrderQuantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:MinimumOrderQuantity>
  <cbc:PackLevelCode listID="GS17009:PEPPOL">CU</cbc:PackLevelCode>
  ...
  <cac:Item>
    <cbc:Name languageID="en">Shampoo 250 ml</cbc:Name>
    <cbc:PackSizeNumeric>1</cbc:PackSizeNumeric>
    <cac:SellersItemIdentification>
      <cbc:ID>1111</cbc:ID>
    </cac:SellersItemIdentification>
  ...
  </cac:Item>
  ...
</cac:CatalogueLine>
Example 2. Example 2
Description Element (from CatalogueLine level) Pack of 500 sheets paper Case of 5 packs paper Pallet with 18 cases paper

Line identifier

ID

7

8

9

Sellers item identifier

SellersItemIdentification/ID

A

AA

AAA

Item name

Item/Name

500 copy paper

5*500 Copy paper

Pallet of paper

Orderable unit

OrderableUnit

EA

CS

PX

Packaging level

PackLevelCode

CU

TU

DU

Packed quantity

Item/PackQuantity

5

18

Packed quantity unit

Item/PackQuantity/@unitCode

EA

CS

Consumable unit quantity

Item/PackSizeNumeric

1

5

90

Item net quantity

ContentUnitQuantity

500

2500

45000

Item net quantity unit

ContentUnitQuantity/@unitCode

EA

EA

EA

Minimum order quantity

MinimumOrderQuantity

1

1

1

Minimum order quantity unit

MinimumOrderQuantity/@unitCode

EA

EA

EA

Component related item identifier

ComponentRelatedItem/ID

A

AA

Item quantity for component related item

ComponentRelatedItem/Quantity

5

18

Example of catalogue line with line identifier = 8 in the above table
<cac:CatalogueLine>
  cbc:ID>8</cbc:ID>
  <cbc:OrderableUnit>CS</cbc:OrderableUnit>
  <cbc:ContentUnitQuantity unitCode="EA" unitCodeListID="UNECERec20">2500</cbc:ContentUnitQuantity>
  <cbc:OrderQuantityIncrementNumeric>1</cbc:OrderQuantityIncrementNumeric>
  <cbc:MinimumOrderQuantity unitCode="CS" unitCodeListID="UNECERec20">1</cbc:MinimumOrderQuantity>
  <cbc:PackLevelCode listID="GS17009:PEPPOL">TU</cbc:PackLevelCode>
  <cac:ComponentRelatedItem>
    <cbc:ID>A</cbc:ID>
    <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">5</cbc:Quantity>
  </cac:ComponentRelatedItem>
  ...
  <cac:Item>
    <cbc:Description languageID="en">5*500 Copy paper</cbc:Description>
    <cbc:PackQuantity unitCode="CS" unitCodeListID="UNECERec20">5</cbc:PackQuantity>
    <cbc:PackSizeNumeric>5</cbc:PackSizeNumeric>
    <cac:SellersItemIdentification>
      <cbc:ID>AA</cbc:ID>
    </cac:SellersItemIdentification>
    ...
  </cac:Item>
  ...
</cac:CatalogueLine>

5.7. Catch Weight

To inform that an item is catch weight (ex. Orderable quantity is pcs, but invoiced quantity is kilo, and where one pcs can be of variable weight), set unit code for content unit to 31 (catch weight) according to UN Recommondations 20.

Example
<cac:CatalogueLine>
  <cbc:ID>8</cbc:ID>
  <cbc:OrderableUnit>EA</cbc:OrderableUnit>
  <cbc:ContentUnitQuantity unitCode="31" unitCodeListID="UNECERec20">10
</cbc:ContentUnitQuantity>

5.8. Prices

All prices in the format are related to the article or service within this Catalogue. The following prices can be stated:

  • Item price is net price including all discounts and charges but excluded Vat.

  • Item comparison unit price defining price for a certain quantity. Used for comparing prices for different articles with various quantities.

  • Conditional price related to a specific location or a certain order quantity.

  • Campaign price.

Be aware that no Gross prices can be sent in the format (price before discount and charges). All prices must have Currency as an attribute. Currency shall be according to Code list.

Example of Prices in EHF Catalogue:

Item Price
<cac:RequiredItemLocationQuantity>
  <cac:Price>
    <cbc:PriceAmount currencyID="NOK">100.00</cbc:PriceAmount>
    <cac:ValidityPeriod>
      <cbc:StartDate>2012-04-26</cbc:StartDate>
      <cbc:EndDate>2012-05-26</cbc:EndDate>
    </cac:ValidityPeriod>
  </cac:Price>
<cac:RequiredItemLocationQuantity>
Comparison Price
<cac:ItemComparision>
  <cbc:PriceAmount currencyID="NOK">100.00</cbc:PriceAmount>
  <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:Quantity>
</cac:ItemComparision>
Conditional Price
<cac:RequiredItemLocationQuantity>
  <cac:Price>
    <cbc:PriceAmount currencyID="NOK">75.00</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="EA" unitCodeListID="UNECERec20">100</cbc:BaseQuantity>
    <cac:ValidityPeriod>
      <cbc:StartDate>2012-04-26</cbc:StartDate>
      <cbc:EndDate>2012-05-26</cbc:EndDate>
    </cac:ValidityPeriod>
  </cac:Price>
<cac:RequiredItemLocationQuantity>

Products can be related to each other for ordering or logistic purposes. All related products must also be sent as separate Catalogue lines.

Types of relations:

  • Required related items are products that are bundled and ordered/invoiced together, e.g. bottles and desposits.

  • Component related items are products that are connected in a product line or a logistics structure, e.g. consumer units and trading units of the same article.

  • Assessory related item is used for accessories that might be sold together with a product, e.g. disk station to a laptop.

Example of related products in an EHF Catalogue message:

Bundled products
<cac:RequiredRelatedItem>
  <cbc:ID>987654</cbc:ID>
  <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:Quantity>
</cac:RequiredRelatedItem>
Logistics structure (also described in chapter 4.11)
<cac:ComponentRelatedItem>
  <cbc:ID>2</cbc:ID>
  <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">12</cbc:Quantity>
</cac:ComponentRelatedItem>
Accessories
<cac:AccessoryRelatedItem>
  <cbc:ID>123456</cbc:ID>
  <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:Quantity>
</cac:AccessoryRelatedItem>

5.10. Product Classification

A product must be classified according to UNSPSC being the mandatory public classification schemes. Products can also be classified according to regulatory schemes or classification schemes used in certain business sectors. The type of classification shall be stated in the attribute listID.

Classification must be according to a relevant product classification scheme. UNSPSC is mandatory for all public purchases and must be stated for all products.

Example of Product classification
<cac:CommodityClassification>
  <cbc:ItemClassificationCode listID="UNSPSC">43212105</cbc:ItemClassificationCode>
</cac:CommodityClassification>

5.11. Hazardous Item

If a product is classified as Hazardous item, a reference to the relevant UNDG-code must be stated and further specification must be provided in an attached document or on a web-site (URI).

Example
<cac:HazardousItem>
  <cbc:HazardClassID>H332</cbc:HazardClassID>
</cac:HazardousItem>
If Hazardous
<cac:ItemSpecificationDocumentReference>
  <cbc:ID>1</cbc:ID>
  <cbc:DocumentDescription languageID="en">HMS Safety sheet</cbc:DocumentDescription>
  <cac:Attachment>
    <cac:ExternalReference>
      <cbc:URI>http://www.klif.no/no/Tema/Kjemikalier/Klassifisering-og-merking-av-kjemikalier-CLP/Klassifisering-CLP-avsnitt-I-II-og-V/</cbc:URI>
    </cac:ExternalReference>
  </cac:Attachment>
</cac:ItemSpecificationDocumentReference>

5.12. VAT

VAT-information is optional in EHF Catalogue and should be sent as a Category defining the VAT-percent. Catalogue receivers may require VAT-information in the Catalogues based on user or system requirements. If so this must be stated in the Purchasing contract or the Collaboration agreement.

The following VAT-codes are available:

Table 3. Valid VAT categories and rates
VAT category Description Rate as of January 1, 2016

S

Output VAT, regular rate

25%

H

Output VAT, reduced rate, middle

15%

R

Output VAT, reduced rate, raw fish

11,11%

AA

Output VAT, reduced rate, low

10%

E

VAT excempt

0%

Z

VAT excempt (Goods and services not included in the VAT regulations)

0%

K

Emission allowances for private or public businesses – buyer calculates VAT

0%

AE

Reversed VAT

0%

G

Export of goods and services

0%

Example
<cac:ClassifiedTaxCategory>
  <cbc:ID schemeID="UNCL5305">S</cbc:ID>
  <cac:TaxScheme>
    <cbc:ID>VAT</cbc:ID>
  </cac:TaxScheme>
</cac:ClassifiedTaxCategory>

5.13. Attachments

Attachments can be sent on line level in the Catalogue. This can be images or additional descriptions of a product. It is strongly recommended to use external references in the form of URI’s for attachments.

Example
<cac:Item>
  ...
  <cac:ItemSpecificationDocumentReference>
    <cbc:ID>LK8788</cbc:ID>
    <cbc:DocumentDescription>Product image</cbc:DocumentDescription>
    <cac:Attachment>
      <cac:ExternalReference>
        <cbc:URI>http://img.trioving.net/Låskasser/LK8788_PRD_FPM_000.JPG</cbc:URI>
      </cac:ExternalReference>
    </cac:Attachment>
  </cac:ItemSpecificationDocumentReference>
  ...
</cac:Item>

5.13.1. Use of code list for attachements

In ordering system may additional information about attachements needed to increase quality. We recommend using the GS1 code list ReferencedFileTypeCode version 5 for such use..

Example of using ReferencedFileTypeCode on catalogue line.
<cac:Item>
  ...
  <cac:ItemSpecificationDocumentReference>
    <cbc:ID>LK8788</cbc:ID>
    <cbc:DocumentTypeCode listID="urn:gs1:gdd:cl:ReferencedFileTypeCode">PRODUCT_IMAGE</cbc:DocumentTypeCode> (1)
    <cbc:DocumentDescription>Product image</cbc:DocumentDescription>
    <cac:Attachment>
      <cac:ExternalReference>
        <cbc:URI>http://img.trioving.net/Låskasser/LK8788_PRD_FPM_000.JPG</cbc:URI>
      </cac:ExternalReference>
    </cac:Attachment>
  </cac:ItemSpecificationDocumentReference>
  ...
</cac:Item>
1 Code defining type of content.

5.13.2. Formats

Non-XML documents can be sent as attachments to the EHF Order. This could be drawings or timesheets or other documents relevant for the order. The attachment can either be sent as a binary objetc embedded in the message or as a URI to an external address as a link. It is recommended to send attachments as embedded, binary objects and not as external references.

Additional recommendations:

Coding

Base64

Document format

MIME types:

  • Pdf – application / pdf

  • TXT – text / txt

  • GIF – image / gif

  • TIFF – image / tiff

  • JPEG, JPG – image / jpeg

  • PNG – image / png

Size

5MB

5.14. Logistics Information

EHF Catalogue includes elements to support the need for logistics information which is a requirement in many industries in the Norwegian market. These elements are not mandatory, but trading partners can agree upon the use in the commercial agreements.

The Logistics elements can be used to specify different pack levels for the same article. This must be done as follows:

  • Each pack level is regarded as a unique product and must be sent as a separate Catalogue line and identified with a unique ID such as GTIN.

  • Information about pack level is done in the element PackLevelCode on line level. The Pack level codes are based on the Edifact/Eancom-standard and the following codes are available (codes in brackets are used in some business sectors in Norway):

    • DU = Dispatch Unit (T-Pak or Pall)

    • HN = Handling Unit (level between TU and DU). Not commonly used.

    • TU = Traded Unit (D-Pak or L-Pak)

    • CU = Consumer Unit (F-Pak)

  • It must be stated if the pack level is orderable.

  • The relation between pack levels must be specified, e.g. that a Dispatch unit contains Traded units.

Below is an example of Logistics information in an EHF Catalogue message.

Example 3. The example shows a Dispatch unit (DU) containing a Traded unit containing a Consumer unit.
Catalogue line for Dispatch unit, highest pack level.
<cac:CatalogueLine>
  <cbc:ID>1</cbc:ID>
  <cbc:ActionCode listID="ACTIONCODE:BII2">Add</cbc:ActionCode>
  <cbc:OrderableIndicator>false</cbc:OrderableIndicator>
  <cbc:PackLevelCode listID="GS17009:PEPPOL">DU</cbc:PackLevelCode>
  <cac:ComponentRelatedItem>
    <cbc:ID>2</cbc:ID>
    <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">12</cbc:Quantity>
  </cac:ComponentRelatedItem>
  <cac:Item>
    <cbc:Description>Soft drink, pallet</cbc:Description>
    <cbc:PackQuantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:PackQuantity>
    <cbc:Name languageID="en">Soft drink</cbc:Name>
    <cac:SellersItemIdentification>
      <cbc:ID>111111</cbc:ID>
    </cac:SellersItemIdentification>
  </cac:Item>
</cac:CatalogueLine>
Catalogue line for Traded unit.
<cac:CatalogueLine>
  <cbc:ID>2</cbc:ID>
  <cbc:ActionCode listID="ACTIONCODE:BII2">Add</cbc:ActionCode>
  <cbc:OrderableIndicator>true</cbc:OrderableIndicator>
  <cbc:PackLevelCode listID="GS17009:PEPPOL">TU</cbc:PackLevelCode>
  <cac:ComponentRelatedItem>
    <cbc:ID>3</cbc:ID>
    <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">6</cbc:Quantity>
  </cac:ComponentRelatedItem>
  <cac:Item>
    <cbc:Description>Soft drink, trading unit</cbc:Description>
    <cbc:PackQuantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:PackQuantity>
      <cbc:Name languageID="en">Soft drink</cbc:Name>
    <cac:SellersItemIdentification>
      <cbc:ID>222222</cbc:ID>
    </cac:SellersItemIdentification>
  </cac:Item>
</cac:CatalogueLine>
Catalogue line for Consumer unit, lowest pack level.
<cac:CatalogueLine>
  <cbc:ID>3</cbc:ID>
  <cbc:ActionCode listID="ACTIONCODE:BII2">Add</cbc:ActionCode>
  <cbc:OrderableIndicator>false</cbc:OrderableIndicator>
  <cbc:PackLevelCode listID="GS17009:PEPPOL">CU</cbc:PackLevelCode>
  <cac:Item>
    <cbc:Description>Soft drink 4-pack</cbc:Description>
    <cbc:PackQuantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:PackQuantity>
      <cbc:Name languageID="en">Soft drink</cbc:Name>
    <cac:SellersItemIdentification>
      <cbc:ID>333333</cbc:ID>
    </cac:SellersItemIdentification>
  </cac:Item>
</cac:CatalogueLine>

5.15. Environment, Social Responsibility and Ecological

Public actors will have requirements related to the environment, ecologically produced food and fair trade. They will also demand that basic human rights are respected in the product production and trade. To be able to highlight products that meet some of these criteria, the EHF Catalogue contains elements to document Environmental labeling and Social certificates. The labels are connected to the relevant product or service on line level enabling the Search engines to make them visible for the buyer during the purchasing process. Detailed information about the different labels can be found on the issuing party’s web-site which is referred to via an URI.

Several labels can be connected to each product.

Introducing these classification codes in the electronic messages will support the aim for correct purchases. The Procurement systems must collect the order lines with environmental and social labels and report them to the statistics tools available for the buyers. This will make it possible to measure the purchasing behavior and monitor that the requirements from the tendering process are fulfilled.

Table 4. Example of Classification codes
Logo Information

Svanemerket

Svanemerket
Classification Code (ID): NEO
Certificate TypeCode: EcoLabel (Environment)

Fairtrade

Fairtrade
Classification Code (ID): FBL
Certificate TypeCode: SosialLabel (Social responsibility)

EU organic products label

EU organic products label
Classification Code (ID): EOP
Certificate TypeCode: OrganicLabel (Ecological)

Example of labeling in an EHF Catalogue message
<cac:Certificate>
  <cbc:ID>NEO</cbc:ID>
  <cbc:CertificateTypeCode>EcoLabel</cbc:CertificateTypeCode>
  <cbc:CertificateType>EcoLabel</cbc:CertificateType>
  <cac:IssuerParty>
    <cac:PartyName>
      <cbc:Name>Svanemerket</cbc:Name>
    </cac:PartyName>
  </cac:IssuerParty>
  <cac:DocumentReference>
    <cbc:ID>http://www.svanemerket.no/</cbc:ID>
  </cac:DocumentReference>
</cac:Certificate>

CertificateTypeCode is not in use today, but can be used by the Purchasing systems to group the different labels.

5.16. Dimension (Height, Width ETC.)

Physical properties are important for logistics. The following values can be stated:

  • Height (HT)

  • Width (WD)

  • Length (LN)

  • Gross weight (AAE)

  • Temperature (TC)

Example
<cac:Item>
  ...
  <cac:Dimension>
    <cbc:AttributeID schemeID="UNCL6313">HT</cbc:AttributeID>
    <cbc:Measure unitCode="CMT">12.5</cbc:Measure>
  </cac:Dimension>
  ...
</cac:Item>

5.17. Replacement Product

Replacement product is used to identify a product replacing an existing product in the Catalogue. The existing product is stated as replaced on the Catalogue line for the new product.

Example
<cac:CatalogueLine>
  ...
  <cac:ReplacedRelatedItem>
    <cbc:ID>12345</cbc:ID>
    <cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">5</cbc:Quantity>
    <cbc:Description languageID="no">Toner B (erstattes av Toner C)</cbc:Description>
  </cac:ReplacedRelatedItem>
  ...
</cac:CatalogueLine>

5.18. Recommended Article

Recommended article is stated in AdditionalItemProperties with Name=ABF.

Example in EHF Catalogue message
<cac:AdditionalItemProperty>
  <cbc:Name>ABF</cbc:Name>
  <cbc:Value>true</cbc:Value>
</cac:AdditionalItemProperty>

5.19. Smartform ID

Smartform ID is stated in AdditionalItemProperties with Name=SmartFormID.

Example in EHF Catalogue message
<cac:AdditionalItemProperty>
  <cbc:Name>SmartFormID</cbc:Name>
  <cbc:Value>12345</cbc:Value>
</cac:AdditionalItemProperty>

5.20. Additional Item Properties

Additional properties are meant for product properties that cannot be sent in any of the defined elements in EHF Catalogue. Additional properties consist of the Name of the property and the actual Value.

Example of additional properties:
  • Color

  • Nutrition
    Stated with amount per 100 g/ml.

  • Genetically modified
    Legal values: True, False

Example 4. Example in EHF Catalogue message
<cac:AdditionalItemProperty>
  <cbc:Name languageID="no">Farge</cbc:Name>
  <cbc:Value languageID="no">Rød</cbc:Value>
  <cbc:ValueQualifier>Color</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
<cac:AdditionalItemProperty>
  <cbc:Name>Farge</cbc:Name>
  <cbc:Value>Rød</cbc:Value>
  <cbc:ValueQualifier>Color</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
<cac:AdditionalItemProperty>
  <cbc:Name>NutritionProtein</cbc:Name>
  <cbc:ValueQuantity unitCode="GRM" unitCodeListID="UNECERec20">2.5</cbc:ValueQuantity>
  <cbc:ValueQualifier>Nutrition</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
<cac:AdditionalItemProperty>
  <cbc:Name>GeneticallyModified</cbc:Name>
  <cbc:Value>True</cbc:Value>
</cac:AdditionalItemProperty>

5.21. Sterile products

To indicate if a product is sterile, we recommend the use of the code list SterilisationTypeCode: http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gdd:cl:SterilisationTypeCode&release=2

This is indicated in cac:AdditionalItemProperty in the EHF Catalogue, with value "STERILE" in element cbc:Name, and the correct code in cbc:Value To indicate that a product is not sterile, use the code "NO", see example below.

If cbc:ValueQualifier contains the value gs1:SterilisationTypeCode, the code will be validated against the legal values in the codelist, and return an error if an invalid code is used. If element cbc:Name= STERILE but ´cbc:ValueQualifier` is not present, or does not contain the value gs1:SterilisationTypeCode, a warning will be raised if code is invalid according to the codelist.

Example of sterile products with explicit codelist (recommended)
<cac:AdditionalItemProperty>
 <cbc:Name>STERILE</cbc:Name>
 <cbc:Value>ETHANOL</cbc:Value>
 <cbc:ValueQualifier>gs1:SterilisationTypeCode</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
Example of sterile products without explicit codelist
<cac:AdditionalItemProperty>
  <cbc:Name>STERILE</cbc:Name>
  <cbc:Value>ETHANOL</cbc:Value>
</cac:AdditionalItemProperty>
Example of not sterile products
<cac:AdditionalItemProperty>
  <cbc:Name>STERILE</cbc:Name>
  <cbc:Value>NO</cbc:Value>
</cac:AdditionalItemProperty>

5.22. Allergens

Correct indication of allergens is a matter about life and health, it is therefore important that all participants read allergen information equally.

Table 5. Legel values for allergens
Value Description

YES

The item contains the specific type of allergen.

MAY

The item may contain the specific type of allergen.

UNKNOWN

Do not know if the item contains the specific type of allergen.

FREE

The item does not contain the specific type of allergen.

The value "NO" was a legal value prior to version 1.0.6. The value "NO" was removed and the value "MAY" was added.

To ensure common understanding of the indication of allergens, it is recommended to use code list "Allergen Type Code" provided by GS1.

Example of use with code list (recommended)
<cac:AdditionalItemProperty>
  <cbc:Name>HAZELNUTS</cbc:Name>
  <cbc:Value>YES</cbc:Value>
  <cbc:ValueQualifier>gs1:AllergenTypeCode</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
Example of use without code list
<cac:AdditionalItemProperty>
  <cbc:Name>ContainNuts</cbc:Name>
  <cbc:Value>YES</cbc:Value>
  <cbc:ValueQualifier>Allergen</cbc:ValueQualifier>
</cac:AdditionalItemProperty>

6. Validation

To optimize the flexibility in the validation process, each EHF document is validated in different stages with shifting focus in every stage. The pyramid below illustrates the different stages.

Pyramid of Validation

6.1. Validation Principles

Stages in the validation process:

  • Validation of syntax against UBL 2.1 Schema, for example:

    • Tag names and attributes must be correctly written and follow the UBL 2.1 sequence

    • All UBL 2.1 mandatory tag names must be present.

    • The element’s contents must be according to the element’s type definition.

  • Validation against CEN BII Core to verify that the message is according to international requirements, like:

    • Valid codes for currencies, countries, tax etc.

    • Mandatory tag names according to CEN BII Core.

    • Logical correlations between information element, i.e. that start date is at least lower than end date, sub totals must be totaled, multiplications give the correct result etc.

  • Validation against PEPPOL (EU) rules and regulations

  • Validation against EHF Common rules containing rules common to all EHF document types.

  • Validation against EHF rules and Norwegian legislation, like:

    • Organisation number must be specified for the seller/supplier.

    • «Your ref» must be specified.

    • Addresses, postal zone number and post office/city must be specified for the buyer/customer.

6.2. Dynamic Validation

The combination of ProfileID and CustomizationID in an XML document defines the validation rules applied to the document.

CustomizationID may be extended with more elements for specific trade or business validation rules.

6.3. Validation Rules per ProfileID and CustomizationID

6.5. Validation Service

Difi’s Validator is an application program used to validate EHF XML-files.

Further information can be found here: https://vefa.difi.no/ehf/knowledge-base/validation/

7. Appendix

Appendix A: Format structure

Attached is format structure providing a structured overview of the document types.

Appendix B: Code Lists

Current code lists for EHF:

Appendix C: UBL 2.1

This implementation guide builds upon UBL 2.1 Schemas available from OASIS.

These schemas are used when performing syntax validation.

Please see the UBL 2.1 homepage for information about the standard or further resources available.

Appendix D: Schematron

Validation files based on Schematron may be found in our Github repoistory. Release "2021-02-15" is used for the current version of resources and branch "master" is for development and review.

Difi provides validation artifacts as Schematron and not as XSLT as of release 2016-11-15.

Appendix E: Example files

Example files are provided to help implementers. Example files for this implementation guideline is included in the example file archive.