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.
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.
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.2. Version 1.x
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 |
---|---|---|
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 |
---|---|---|
Adding a missing word in "Profiler og meldinger" section (Norwegian edition only). |
Guide |
|
Adding English translation in "Allergens" section. |
Guide |
Version 1.0.10 (2017-11-15)
Issue | Description | Type |
---|---|---|
Updating rules NOGOV-T19-R024 (F), EHF-COMMON-R011 (F), EHF-COMMON-R012 (F) and EHF-COMMON-R013 (F) from warning to error. |
Validator |
|
Supressing rule BII2-T19-R021 (W) in validator. |
Validator |
|
For easier maintenance and better transparency use PEPPOL BIS Schematron source in favour of copying generated XSLTs into this project. |
Validator |
|
Updated chapter on validation to reflect use of EHF Common. |
Guide |
|
Adding information related to new tax categories valid as of next release. |
Guide |
Version 1.0.9 (2017-09-14)
Issue | Description | Type |
---|---|---|
Fixing context for a lot of rules for higher quality. |
Validator |
|
Replacing rules with rules in EHF Common. |
Validator |
|
Adding rule NOGOV-T19-R024 (W) to support implisit functionality. |
Validator |
|
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 |
---|---|---|
Updated validation artifacts for PEPPOL BIS from OpenPEPPOL. |
Validator |
|
Supressing CL-T19-R004 in favour of NOGOV-T19-R019 (F). |
Validator |
|
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 |
|
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 |
|
Updating links in 3.6 and code lists. |
Guide |
|
Removing message table and structure table in favour of format structure. |
Guide |
Version 1.0.7 (2017-02-15)
Issue | Description | Type |
---|---|---|
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:
|
Guide |
Version 1.0.6 Hotfix (2016-12-13)
Issue | Description | Type |
---|---|---|
Removing EHF Core for Catalogue and Catalogue Response. |
Validator |
Version 1.0.6 (2016-11-15)
Issue | Description | Type |
---|---|---|
Rewritten description of allergens. |
Guide |
|
Adding missing list of NOGOV rules for Catalogue. |
Guide |
|
Aligning chapter 5.3 with EHF Invoice and Credit Note. |
Guide |
|
Fix minor bug in Catalogue Response example file. |
Attachment |
|
Fix minor bug in Catalogue and Catalogue Response example files. |
Attachment |
|
Rewrite of rule NOGOV-T19-R001 (F). |
Validator |
|
Fix rule NOGOV-T19-R001 (F) so it triggers as intended. |
Validator |
|
Fix rule NOGOV-T19-R002 (F) so element EndDate is optional. |
Validator |
|
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 |
|
Updating NOGOV-T19-R015 (F) and NOGOV-T19-R017 (F) to also verify checksum of organization number. |
Validator |
|
Updating NOGOV-T58-R006 (F) and NOGOV-T58-R008 (F) to also verify checksum of organization number. |
Validator |
|
Updated validation artifacts for PEPPOL BIS from OpenPEPPOL. |
Validator |
|
Adding EHF Core for Catalogue and Catalogue Response. |
Validator |
|
Change authoritative source of validation artifacts from XSLT to Schematron for NOGOV-T58. |
Validator |
|
Change authoritative source of validation artifacts from XSLT to Schematron for NOGOV-T19. |
Validator |
Version 1.0.5 (2016-09-15)
Issue | Description | Type |
---|---|---|
Converting guide to Asciidoctor format.
|
Guide |
Version 1.0.4 (2016-05-23)
-
Example in chapter 6.6, addition or chapter 6.6.1
-
Correct rule NOGOV-T19-R002 to allow for Z as timezone indicator
-
Siw Meckelborg, Edisys Consulting AS
Version 1.0.3 (2015-09-01)
-
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)
-
Siw Meckelborg, Edisys Consulting AS
Version 1.0.2 (2015-03-06)
-
Validation of all mandatory and recommended elements.
-
Validation of datatypes (VAT number, date etc.)
-
Only organisational numbers are valid in EndpointID.
-
Added ruleID to message table
-
Adding Dependant to description of elements.
-
Clarification added to chapter 2.1
-
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
-
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.
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:
-
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.
-
The Catalogue is sent to the Catalogue receiver (Buyer) either directly or via a third party.
-
The Catalogue receiver controls if the Catalogue is syntactically correct and contains sufficient information.
-
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.
-
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.
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.
<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>
<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.
-
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.
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. |
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.
<cac:Catalogue>
...
<cbc:ActionCode listID="ACTIONCODE:PEPPOL">Add</cbc:ActionCode>
<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.
<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.
<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.
<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>
<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.
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 |
<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>
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 |
<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.
<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:
<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>
<cac:ItemComparision>
<cbc:PriceAmount currencyID="NOK">100.00</cbc:PriceAmount>
<cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:Quantity>
</cac:ItemComparision>
<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>
5.9. Related Products and Accessories
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:
<cac:RequiredRelatedItem>
<cbc:ID>987654</cbc:ID>
<cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">1</cbc:Quantity>
</cac:RequiredRelatedItem>
<cac:ComponentRelatedItem>
<cbc:ID>2</cbc:ID>
<cbc:Quantity unitCode="EA" unitCodeListID="UNECERec20">12</cbc:Quantity>
</cac:ComponentRelatedItem>
<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.
<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).
<cac:HazardousItem>
<cbc:HazardClassID>H332</cbc:HazardClassID>
</cac:HazardousItem>
<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:
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% |
<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.
<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..
<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.
<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>
<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>
<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.
The following are used: http://www.anskaffelser.no/verktoy/codes-use-ehf-catalogue-labels-environmental-and-social-responsibility
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.
Logo | Information |
---|---|
|
Svanemerket |
|
Fairtrade |
|
EU organic products label |
<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)
<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.
<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.
<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.
<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.
-
Color
-
Nutrition
Stated with amount per 100 g/ml. -
Genetically modified
Legal values: True, False
<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.
<cac:AdditionalItemProperty>
<cbc:Name>STERILE</cbc:Name>
<cbc:Value>ETHANOL</cbc:Value>
<cbc:ValueQualifier>gs1:SterilisationTypeCode</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
<cac:AdditionalItemProperty>
<cbc:Name>STERILE</cbc:Name>
<cbc:Value>ETHANOL</cbc:Value>
</cac:AdditionalItemProperty>
<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.
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.
<cac:AdditionalItemProperty>
<cbc:Name>HAZELNUTS</cbc:Name>
<cbc:Value>YES</cbc:Value>
<cbc:ValueQualifier>gs1:AllergenTypeCode</cbc:ValueQualifier>
</cac:AdditionalItemProperty>
<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.
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.4. Validation Rules
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 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.