Peppol implementation guide for the construction industry to Engineer-To-Order construction products

Target groupCompany
Document typeInstruction
Date of issue17.02.2026
OwnershipState Treasury of Finland (Peppol Authority of Finland) together with the Finnish construction industry

Introduction to Peppol

Peppol is a network and specification of electronic business transactions. It is used to exchange information between organisations in a structured way. The Peppol network is based on the so-called four corner model. It means that every end-user organisation is free to choose its own Peppol service provider without having to consider which service provider its business partners use. Everyone has to connect just once to a Peppol service provider in order to exchange electronic business documents with all other end users in the Peppol network. More information about Peppol can be found from the Peppol Authority website.

Peppol is not a procurement system, a portal or an ERP. It enables different organisations to connect their information systems and offers a shared digital language for organisations all over the world. This implementation guide is focused on the data needs of the Finnish construction industry in engineer-to-order precast concrete. Any rules that apply to the usage of Peppol in general are not changed by this document. This document does not cover all possible scenarios. Please refer to the general Peppol BIS guidelines if something is not stated here. For example, all currencies, dates, times, decimals and code lists are to be used as instructed in the general Peppol guidelines.

Change management

This implementation guide was created jointly by BETK project representatives and the Peppol Authority of Finland (State Treasury).

For questions or updates, contact State Treasury: peppol@valtiokonttori.fi. The State Treasury will gather relevant industry representatives for the update process.

Covered Business Interoperability Specifications

This implementation guide covers these Peppol Business Interoperability Specifications (BIS) used in the Peppol network:

  • BIS Catalogue with response
  • BIS Ordering

BIS Catalogue with response

BIS Catalogue with response covers Catalogue and Catalogue Response transactions. The catalogue receiver must respond to each catalogue with the catalogue response transaction. The catalogue response transaction is used to notify the catalogue sender that the receiver has received, accepted or rejected the catalogue.

The syntaxes of the Peppol Catalogue transaction (T19) and Peppol Catalogue Response transaction (T58) are covered later in this document.

BIS Ordering

BIS Ordering covers order and order response transactions. The supplier must respond to each order with an order response transaction. The order response transaction is used to tell the buyer that the order was received, accepted, declined or accepted partially. Information about delivery dates can be added to the order response.

The syntaxes of the Peppol Order transaction (T01) and Peppol Order Response transaction (T76) are covered later in this document.

Catalogue (T19) – implementation details

The whole syntax of the Peppol Catalogue transaction (T19) is covered on the Peppol website. This implementation guide does not add any additional elements to the syntax. All general Peppol rules must be followed. It is forbidden to use an element for a purpose other than what it is intended to be used for. Please refer to the general Peppol guidance if some element is not covered in this implementation guide.

Document header level

cbc:ID is the catalogue identifier, the main identifier for this document. It is a mandatory field.

cbc:ActionCode is used to tell if the catalogue is sent for the first time, it replaces a catalogue entirely, it updates some catalogue lines or if the catalogue is deleted. For clarity purpose, it is adviced to fully replace the previous catalogue instead of updating just parts of it. Use values from the Catalogue Action code, header level (OpenPeppol) codelist. If this field is not in the catalogue, it means that the catalogue fully replaces the source catalogue.

cbc:Name can be used to give the catalogue a name.

cbc:IssueDate is a mandatory element which is used to convey the issue date of the catalogue. The date must be formatted as YYYY-MM-DD.

cbc:VersionID is used to keep track of the up-to-date version of the catalogue as there might be updates to the catalogue.

cac:ValidityPeriod indicates the time period when the catalogue is valid and can be used for ordering. It is a mandatory element. The dates must be formatted as YYYY-MM-DD. It includes both the start and end date.

cac:ReferencedContract / cbc:ID is used to refer to a contract between the buyer and the seller. This is an important value as the terms of invoicing are agreed in the contract.

cac:SourceCatalogueReference / cbc:ID is used to refer to the previous version of the catalogue. This is important when making updates to the catalogue to track changes.

cac:TradingTerms / cbc:Information can be used to refer to the general payment conditions.

Parties

Provider Party (seller)

The cac:ProviderParty is the one who issues the catalogue and acts as a seller. The syntax also includes the Seller Supplier Party, but that does not apply to the concrete element use case, as the seller is always the one who issues the catalogue.

cbc:EndpointID is used to convey the electronic Peppol address of the seller. The @schemeID is mandatory to be used with the EndpointID element. For Finnish organisations the EndpointID is always an OVT code with scheme ID 0216. Examples of cbc:EndpointID and @schemeID values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code). OVT Code structure is:
· ‘0037’ is a fixed value
· Company ID (Y-tunnus) without the dash mark ‘-’
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID can contain an internal ID understood by the buyer and/or seller. This can be for example a GLN of the factory. @schemeID is not mandatory for this field.

cac:PostalAddress and its child elements are used for the Address of the company. This is for example the address of the head quarters building, not the delivery address.

cac:PartyLegalEntity / cbc:RegistrationName is used to tell the official legal name of the company.

cac:PartyLegalEntity / cbc:CompanyID is used for the business identity code (Y-tunnus) of the company. The scheme ID of the Finnish business identity code is 0212.

cac:PartyLegalEntity / cac:RegistrationAddress with cbc:CityName / cac:Country / cbc:IdentificationCode structure is used to tell in which city and country the company is officially registered in. For the country use Country codes (ISO 3166-1:Alpha2) codelist. The value for Finland is FI and for Sweden SE.

Example – Provider Party segment

<cac:ProviderParty>
<cbc:EndpointID schemeID=”0216″>003712345678</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID=”0088″>5790000435944</cbc:ID>
</cac:PartyIdentification>
<cac:PostalAddress>
<cbc:StreetName>Katu 1</cbc:StreetName>
<cbc:CityName>Helsinki</cbc:CityName>
<cbc:PostalZone>000500</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FI</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Elementtitehdas Oy</cbc:RegistrationName>
<cbc:CompanyID schemeID=”0212″>1234567-8</cbc:CompanyID>
<cac:RegistrationAddress>
<cbc:CityName>Helsinki</cbc:CityName>
<cac:Country>
<cbc:IdentificationCode>FI</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
</cac:ProviderParty>

Receiver Party (buyer)

The cac:ReceiverParty is the one who the catalogue is sent to and acts as a buyer. The syntax also includes Buyer Supplier Party, but that does not apply to the concrete element use case as the buyer is always the one who the catalogue is sent to.

cbc:EndpointID is used to convey the electronic Peppol address of the buyer. The @schemeID is mandatory to be used with the EndpointID element. For Finnish organisations the EndpointID is always an OVT code with scheme ID 0216. Examples of cbc:EndpointID and @schemeID values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code). OVT Code structure is:
· ‘0037’ is a fixed value
· Company ID (Y-tunnus) without the dash mark ‘-’
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID can contain an internal ID understood by the buyer and/or seller. For example, this could be a GLN of the construction site. @schemeID is not mandatory for this field.

cac:PostalAddress and its child elements are used for the Address of the company. For example, this could be the address of the headquarters building, not the delivery address.

cac:PartyLegalEntity / cbc:RegistrationName is used to tell the official legal name of the company.

cac:PartyLegalEntity / cbc:CompanyID is used for the business identity code (Y-tunnus) of the company. The scheme ID of the Finnish business identity code is 0212

cac:PartyLegalEntity with cac:RegistrationAddress / cbc:CityName  and cac:Country / cbc:IdentificationCode structure is used to tell in which city and country the company is officially registered in. For the country use Country codes (ISO 3166-1:Alpha2) codelist. The value for Finland is FI and for Sweden SE.

Example – Receiver Party segment

<cac:ReceiverParty>
<cbc:EndpointID schemeID=”0216″>003787654321</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID=”0088″>5790000435944</cbc:ID>
</cac:PartyIdentification>
<cac:PostalAddress>
<cbc:StreetName>Tie 1</cbc:StreetName>
<cbc:CityName>Vantaa</cbc:CityName>
<cbc:PostalZone>00100</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FI</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Työmaa OY</cbc:RegistrationName>
<cbc:CompanyID schemeID=”0212″>8765432-1</cbc:CompanyID>
<cac:RegistrationAddress>
<cbc:CityName>Vantaa</cbc:CityName>
<cac:Country>
<cbc:IdentificationCode>FI</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
</cac:ReceiverParty>

Catalogue line level

cac:CatalogueLine / cbc:ID identifies each catalogue line.

cac:CatalogueLine / cbc:ActionCode is used to tell if the catalogue line is new, updated or deleted.

Possible values are: “Add”, “Update” or “Delete” As stated in the Catalogue Action code, line level (OpenPeppol) codelist. For clarity purposes it is adviced to replace the whole catalogue instead of updating it partially.

cac:CatalogueLine / cbc:OrderableIndicator indicates if the catalogue line can be used for ordering. It can for example be used to tell if the item is out of stock or otherwise not ready to be ordered. Values: True or False, as stated in the Boolean indicator (OpenPeppol) codelist. Default value: True (catalogue line is active).

cac:CatalogueLine / cbc:OrderableUnit describes the unit of measure for the orderable unit. Codelist Recommendation 20, including Recommendation 21 codes (prefixed with X, UN/ECE) must be used.

The unit of measure shortlist is defined in Attachment A.

cac:CatalogueLine / cbc:ContentUnitQuantity is used if the orderable unit is a package containing other units. It tellshow many units the package contains. @unitCode is mandatory. Use Recommendation 20, including Recommendation 21 codes – prefixed with X (UN/ECE) codes.

cac:CatalogueLine / cbc:OrderQuantityIncrementNumeric tells the increments which can be ordered. Example: Can half of a product be ordered? For precast concrete elements the default value is = 1.

cac:CatalogueLine / cbc:MinimumOrderQuantity and cac:CatalogueLine / cbc:MaximumOrderQuantity tell the minimum and maximum amount of items that can be ordered. @unitCode is mandatory. Use Recommendation 20, including Recommendation 21 codes – prefixed with X (UN/ECE) codes. For unique items, use value 1.

cac:CatalogueLine / cbc:WarrantyInformation can be used for any warranty-related information.

cac:CatalogueLine / cbc:PackLevelCode conveys packaging information. Possible values (GS1 7009 codelist):

  • “CU” = Base Unit level
  • “DU” = Pallet level
  • “TU” = Case level
  • “HN” = Handling Unit

cac:CatalogueLine / cac:LineValidityPeriod tree that includes cbc:StartDate and cbc:EndDate is used to tell when the catalogue line is valid. The use case can, for example, be a promotional price that expires at a certain point or a product that is discontinued. The dates must be formatted as YYYY-MM-DD.

cac:CatalogueLine / cac:ItemComparison tree is used to state the price per a quantity of unit of measure. For example, how much one kilogram or litre of the product costs. This is a non-mandatory element. In the precast concrete element case, this element is not necessary, as prices are not part of the typical use case.

cac:CatalogueLine / cac:RequiredItemLocationQuantity tree is used to convey information about the price of the product or if a price is depentant on the lead time when the delivery needs to be made. For precast concrete elements, this element tree is not necessary, as the prices of the products are not part of the typical scenario.

However, if the element is used, then the cac:CatalogueLine / cac:RequiredItemLocationQuantity / cbc:LeadTimeMeasure would indicate the time from when the order is placed until the item is available for delivery from the sellers’ premises or at the applicable address specified for the price. @unitCode is mandatory to be used with values from the Recommendation 20, including Recommendation 21 codes – prefixed with X (UN/ECE) codelist. “DAY” = day, “HUR” = hour.

cbc:MinimumQuantity and cbc:MaximumQuantity with mandatory @unitCodes from the same code list would indicate threshold and maximum quantities for the given price.

cac:ApplicableTerritoryAddress tree tells the address which the price is related to.

cac:Price tree then tells the actual price per base unit and cac:ValidityPeriod tree is used to indicate the validity period of the price.

All the price elements are non-mandatory and not in use in the typical precast concrete use care. The normal situation could be that the price is the same regardless of the location. In that case the example XML could look like this:

<cac:Price>
<cbc:PriceAmount currencyID=”EUR”>100</cbc:PriceAmount>
<cbc:BaseQuantity unitCode=”EA”>1</cbc:BaseQuantity>
</cac:Price>

cac:CatalogueLine / cac:Item tree holds the information about the item in question.

cac:CatalogueLine / cac:Item / cbc:Description is used to provide general description of the item. The field is not mandatory.

cac:CatalogueLine / cac:Item / cbc:PackQuantity is not used for precast concrete elements, but it is relevant for Make-to-Stock products. It is used to tell for example how many boxes are in a pallet. @unitCode is mandatory element with values from the Recommendation 20, including Recommendation 21 codes – prefixed with X (UN/ECE) codelist. Unit of measure shortlist related to this implementation guide is defined in attachment A.

cac:CatalogueLine / cac:Item / cbc:Name is used to tell the type of the precast concrete element. The possible values are for example VÄLISEINÄ (partition wall), MASSIIVILAATTA (solid precast slab).

cac:CatalogueLine / cac:Item / cac:ManufacturersItemIdentification / cbc:ID is used for the element code.

cac:CatalogueLine / cac:Item / cac:StandardItemIdentification / cbc:ID is used for GTIN or SGTIN of the precast concrete element. @schemeID is mandatory. Use value 0209 for SGTIN and 0160 for GTIN.

cac:CatalogueLine / cac:Item / cac:ItemSpecificationDocumentReference tree is used to provide additional documents about the product. In the precast concrete element use case these can for example be links to pictures of the precast production drawings. In cbc:DocumentTypeCode use value 6 for Product specification report.

cac:CatalogueLine / cac:Item / cac:OriginCountry / cbc:IdentificationCode can be used to indicate the origin country of the product. Use value FI for Finland, SE for Sweden. The values must be according to Country codes (ISO 3166-1:Alpha2) codelist.

cac:CatalogueLine / cac:Item / cac:TransactionConditions / cbc:ActionCode with value CT to indicate that the item is contracted. Another possibility is to use NON_RETURNABLE value to indicate a non-returnable item.

cac:CatalogueLine / cac:Item / cac:ClassifiedTaxCategory is used for VAT category codes and percents. Not relevant for precast concrete element use case as prices are not part of the typical use case.

cac:CatalogueLine / cac:Item / cac:AdditionalItemProperty tree is used for multiple different types of information. A list of used terms is provided in the Attachment B AdditionalItemProperty usage. It is important to use the same names for the values to make sure that all parties know what is being referenced.

cac:CatalogueLine / cac:Item / cac:ItemInstance / cbc:BestBeforeDate can be used if there is a need to indicate a best before date.

cac:CatalogueLine / cac:Item / cac:ItemInstance / cbc:BestBeforeDate / cac:LotIdentification / cbc:LotNumberID is used for production lot identification.

cac:CatalogueLine / cac:Item / cac:Certificate tree can be used to provide information about a certificate related to the product, for example, an environmental certificate.

cac:CatalogueLine / cac:Item / cac:Dimension tree is used for the dimensions of the product. See Attachment C: Dimension descriptions for details of the typical dimensions.

cac:CatalogueLine / cac:Item / cac:Dimension / cbc:AttributeID is a mandatory element which indicates which dimension is being referenced. Codelist Measured attribute code (UNCL6313) must be used. For example LN indicates length and HT height dimension.

cac:CatalogueLine / cac:Item / cac:Dimension / cbc:Measure with mandatory @unitCode is used for units of measure for the dimension in question. For length, height and width, use millimeters MMT and for weight kilograms KGM.

cac:CatalogueLine / cac:Item / cac:Dimension / cbc:Description is used to give more detailed description if applicable. This can for example be a text value that indicates that the length in question is the Gross length, meaning the length in transport. Or it can say that it is about the Net length, which means that it is the length of the actual product without packaging.

Catalogue Response (T58)

The whole syntax of the Peppol Catalogue Response transaction (T58) is covered on the Peppol website.

This implementation guide does not add any additional elements to the syntax. All general Peppol rules must be followed. It is forbidden to use an element for some other purpose than what it was intended to be used for. Please refer to the general Peppol guidance if some element is not covered in this implementation guide.

The catalogue response is a simple transaction whose purpose is just to tell the sender of the catalogue if their catalogue has been accepted, rejected or acknowledged.

Document header level

cbc:ID identifies the catalogue response.

cbc:IssueDate and cbc:IssueTime are used to indicate the date and time of the issuance of the catalogue response. Only the issue date is mandatory. Dates must be formatted as YYYY-MM-DD and times as HH:MM:SS.

cbc:Note is a free text element that can be used to convey information relevant to the catalogue response that cannot be placed elsewhere.

Parties

Sender Party

cbc:EndpointID is used to convey the electronic Peppol address of the sender party. @schemeID is mandatory. For Finnish organisations the EndpointID is always an OVT code with scheme ID 0216

Examples of cbc:EndpointID and @schemeID values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code).
· 0037 is a fixed value
· Company ID (Y-tunnus) without the dash mark –
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID is used to identify the sender party. Identifier can be the Business Identity Code of the sender company. Code for Business Identity Code for Finnish companies: 0212. Or it can be an internal identifier known by the sender and the receiver @schemeID is not mandatory, but if the identifier is on the ISO 6523 ICD list, please use it.

cac:PartyLegalEntity / cbc:RegistrationName is used for the official legal name of the sender party.

Receiver Party

cbc:EndpointID is used to convey the electronic Peppol address of the receiver party. @schemeID is mandatory. For Finnish organisations the EndpointID is always an OVT code with scheme ID 0216

Examples of cbc:EndpointID and @schemeID values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code).
· 0037 is a fixed value
· Company ID (Y-tunnus) without the dash mark –
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID is used to identify the receiver party. Identifier can be the Business Identity Code of the receiver company. Code for Business Identity Code for Finnish companies: 0212. Or it can be an internal identifier known by the sender and the receiver @schemeID is not mandatory, but if the identifier is on the ISO 6523 ICD list, please use it.

cac:PartyLegalEntity / cbc:RegistrationName is used for the official legal name of the receiver party.

Document response

cac:Response / cbc:ResponseCode is used to tell if the catalogue has been accepted, rejected or acknowledged.

Application Response type code (UNCL4343 Subset) codelist must be used

  • AB = Message acknowledgement
  • AP = Accepted
  • RE = Rejected

Referencing the original catalogue is done in the cac:DocumentReference / cbc:ID. It is the original ID of the catalogue that the response refers to.

cbc:VersionID can be used if there have been prior updates to the catalogue.

Order (T01)

The whole syntax of the Peppol Order transaction (T01) is covered on the Peppol website.

This implementation guide does not add any additional elements to the syntax. All general Peppol rules must be followed. It is forbidden to use an element for some other purpose than what it is intended to be used for. Please refer to the general Peppol guidance if some element is not covered in this implementation guide.

Document header level

cbc:ID is the identifier of the order.

cbc:SalesOrderID can be used to reference a sales order issued by the seller.

cbc:IssueDate and cbc:IssueTime are the date and time when the order is made. Only the date is mandatory. Dates must be formatted as YYYY-MM-DD. Times as HH:MM:SS.

cbc:OrderTypeCode is used to tell what type of order is being made. Values from the Order type code (UNCL1001 subset) list must be used. Default value: 220 = Order. Other values can be used if agreed beforehand by the parties.

cbc:Note is used for information or notes that do not have any explicit place on the order message.

cbc:DocumentCurrencyCode tells the default currency of the order. Use EUR for Euros. Values from the ISO 4217 Currency codes must be used.

cbc:CustomerReference is used to reference the buyer of the products or services. Known also as Buyer Reference. This information is repeated on the invoice.

cbc:AccountingCost is used by the buyer to specify a reference that should be repeated in e.g. invoice to enable the buyer to automatically book to the right project or account.

cac:ValidityPeriod / cbc:EndDate is used to tell the end date when the order is valid. This is amandatory element as it will produce a schematron warning in Peppol. It is foreseen that in the future it will be an optional element.

The order header level includes multiple references to different document types:

cac:QuotationDocumentReference / cbc:ID is used to reference quotations that the order is based on.

cac:OrderDocumentReference / cbc:ID is used to reference a previous order that was rejected and a new order is issued.

cac:OriginatorDocumentReference / cbc:ID is used to give a reference to the internal requisition on the buyer site on which the order is based.

cac:CatalogueReference / cbc:ID is used to reference the catalogue which the order is based on. This is especially important in the concrete element case.

Any additional document references can be made using the cac:AdditionalDocumentReference tree. A document can be attached or it can be referenced via an URI.

cac:Contract / cbc:ID references the contract the order is based on.

cac:ProjectReference / cbc:ID is used to reference a project. In the concrete element case this is the identifier of the construction site.

Parties

Buyer Customer Party

cbc:EndpointID is used to convey the electronic address of the buyer. @schemeID is mandatory. For Finnish organisations the EndpointID is always an OVT code with scheme ID 0216.

Examples of cbc:EndpointID and values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code).
· 0037 is a fixed value
· Company ID (Y-tunnus) without the dash mark –
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID can contain the GLN of the buyer. @schameID is not mandatory for this field

If the code is on the ISO 6523 ICD list, please use it. The code for the GLNis 0088.

cac:PartyName / cbc:Name is the trading name of the party. It does not have to be an official name registered with the Company ID.

cac:PostalAddress tree contains the address of the buyer. This is for example the head quarters address, not the delivery address.

cac:PartyTaxScheme / cbc:CompanyID contains the buyer’s VAT identification code in international format. For Finnish companies: FI + Company ID (Y-tunnus) without the dash mark -.

cbc:TaxScheme / cbc:ID should be VAT.

cac:PartyLegalEntity / cbc:RegistrationName is the official legal name of the buyer.

cac:PartyLegalEntity / cbc:CompanyID for Finnish companies is the Business Identity Code. The schemeID for Business Identity Code on the ISO 6523 ICD list is 0212.

cac:PartyLegalEntity / cac:RegistrationAddress / cbc:CityName is the city where the company is registered.

cac:Country / cbc:IdentificationCode must also be used. For Finland the value is FI and for Sweden SE (ISO 3166-1 Alpha-2).

cac:Contact tree includes contact details of the buyer. Possible details: cbc:Name, cbc:Telephone and cbc:ElectronicMail.

Seller Supplier Party

cbc:EndpointID is used to convey the electronic address of the seller. @schemeID is mandatory. For Finnish organisations the EndpointID is always an OVT code with scheme ID 0216.

Examples of cbc:EndpointID and values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code).
· 0037 is a fixed value
· Company ID (Y-tunnus) without the dash mark –
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification cbc:ID can contain the GLN of the seller. @schemeID is not mandatory. If the code is on the ISO 6523 ICD list, please use it. Code for GLN is 0088.

cac:PartyName / cbc:Name is the trading name of the seller. It does not have to be an official name registered with the Company ID.

cac:PostalAddress tree contains the address of the seller. This is for example the head quarters of the company, not the delivery address.

cac:PartyLegalEntity / cbc:RegistrationName is the official legal name of the seller.

cac:PartyLegalEntity / cbc:CompanyID for Finnish companies is the Business Identity Code. The schemeID for Business Identity Code on the ISO 6523 ICD list is 0212.

cac:PartyLegalEntity / cac:RegistrationAddress / cbc:CityName is the city where the seller is registered.

cac:Country / cbc:IdentificationCode must also be used. Valus must be from the ISO 3166-1:Alpha2 codelist. For Finland the value is FI and for Sweden SE.

cac:Contact tree includes contact details of the seller. Possible details: cbc:Name, cbc:Telephone and cbc:ElectronicMail.

Other Parties

Originator Customer Party or Accounting Customer Party are not covered by this implementation guide.

Delivery

Delivery details are shared on the order line level in the precast concrete use case.

cac:DeliveryTerms structure is used for Incoterms.

Payment terms and monetary totals are not covered by this implementation guide as the typical precast concrete element use case does not include prices.

Order line level

cbc:Note is a free-text element that can be used for things that do not have an explicit place elsewhere in the order structure. This can, for example, be information about delivery time slots if there are multiple.

cbc:ID is the identifier of the order line.

cbc:Quantity marks the quantity of items on the order line. @unitCode must be used. Values from the Recommendation 20, including Recommendation 21 codes – prefixed with X (UN/ECE) must be used. The most used units of measure are listed in Attachment A.

cbc:PartialDeliveryIndicator is used to tell if the order can be delivered in multiple instances. Only values from the Boolean indicator (OpenPeppol) codelist are allowed. The default value is true, meaning that it would be allowed. In the concrete element case, use false.

cbc:AccountingCost is used for a reference that is wanted to be repeated on the invoice. This can be for example a reference to the instalment.

Use the cac:Delivery structure on the order line level for concrete elements. Not the Delivery information on the order header level.

cbc:ID is the identifier of the delivery location. This can for example be a GLN of the construction site or a place inside of the construction site. @schemeID is not mandatory. However, if the values can be found on ISO 6523 ICD list, please use it. The code for GLN is 0088.

The cac:RequestedDeliveryPeriod tree has: cbc:StartDate, cbc:StartTime, cbc:EndDate and cbc:EndTime. If the delivery period is not a range of days, but just one day, please add both the Start and End dates on the same day. The dates must be formatted as DD-MM-YYYY. The time must be formatted as HH:MM:SS.

For multiple delivery slots, use the cbc:Note since that functionality is not currently supported by Peppol.

Note: Price details are not covered by this implementation guide, as prices are not part of the typical precast concrete element use case.

Item information on the order line

cac:Item / cbc:Name is the type of the precast concrete element. The possible values are for example VÄLISEINÄ (partition wall), MASSIIVILAATTA (solid precast slab).

cac:ManufacturersItemIdentification / cbc:ID is the identifier including the type of the precast concrete element provided by the manufacturer.

cac:StandardItemIdentification / cbc:ID is the GTIN or SGTIN of the concrete element. @schemeID is mandatory. Values from the ISO 6523 ICD list must be used. Code for GTIN is 0160 and for SGTIN is 0209.

cac:ItemSpecificationDocumentReference / cbc:ID is used for referencing the identifier of the drawing number.

cac:AdditionalItemProperty structure is used for multiple different use cases.

The list of possible things to be stated here are listed on Attachment B. It is important to use the texts agreed on this implementation guide to make it possible for automating the handling of the information.

Order Response (T76)

The whole syntax of the Peppol Order Response transaction (T76) is covered on the Peppol website.

This implementation guide does not add any additional elements to the syntax. All general Peppol rules must be followed. It is forbidden to use an element for some other purpose than what it is intended to be used for. Please refer to the general Peppol guidance if some element is not covered in this implementation guide.

Document header level

cbc:ID is used to identify the order response.

cbc:SalesOrderID is used to reference a sales order that is issued by the seller.

cbc:IssueDate and cbc:IssueTime are used to indicate the time and date when the order response is issued. Only the issue date is mandatory. The date must be formatted as YYYY-MM-DD and the time as HH:MM:SS.

cbc:OrderResponseCode indicates if the order has been Accepted, Conditionally accepted, Rejected or Acknowledged.

The Order Response type code (UNCL4343 Subset) must be used.

  • AP = Accepted
  • RE = Rejected
  • CA = Conditionally accepted
  • AB = Message acknowledgement

If codes AP or RE are used, no order response line level information is sent as the order has been accepted or rejected as a whole. If code CA or AB is used, all order response lines are sent.

cbc:Note is a free text field that can be used to convey information that can not be stated elsewhere. This can for example be a reason for the rejection of the order.

cbc:DocumentCurrencyCode tells the default currency of the order response. Values from the ISO 4217 Currency codes must be used. For Euros, use EUR.

cbc:CustomerReference is used for routing the transaction correctly in the purchasing system. The customer reference is defined by the buyer, but provided by the seller in the order response.

cac:OrderReference / cbc:ID is used to reference the order that is being responded to.

Parties

Seller Supplier Party

cbc:EndpointID is used to convey the electronic Peppol address of the Seller Party. The @schemeID is mandatory to be used with values from the Electronic Address Scheme (EAS) codelist. For Finnish organisations the EndpointID is always an OVT code with schemeID 0216.

Examples of cbc:EndpointID and values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code). OVT Code structure is:
· 0037 is a fixed value
· Company ID (Y-tunnus) without the dash mark –
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID can contain an internal ID understood by the buyer and/or seller. This can be for example a GLN of the factory. The ID for GLN is 0088. @schemeID is not mandatory for this field. If the value is found on the ISO 6523 ICD codelist, please use it.

cac:PartyLegalEntity / cbc:RegistrationName is the official legal name of the seller.

Buyer Customer Party

cbc:EndpointID is used to convey the electronic Peppol address of the Buyer Party. The @schemeID is mandatory to be used with the EndpointID element. For Finnish organisations the EndpointID is always an OVT code with schemeID 0216.

Examples of cbc:EndpointID and values:

cbc:EndpointIDschemeIDNotes

003712345678 0216 SchemeID 0216 stands for Finnish EDI identifier (OVT code). OVT Code structure is:
· 0037 is a fixed value
· Company ID (Y-tunnus) without the dash mark –
· Optional (up to 5) internal numbers or capital letters (A-Z) within the company
6412345678901 0088 Scheme ID 0088 stands for GLN (Global Location Number) administered by GS1.

cac:PartyIdentification / cbc:ID can contain an internal ID understood by the buyer and/or seller. This can be for example a GLN of the factory. The ID for GLN is 0088. @schemeID is not mandatory for this field. If the value is found on the ISO 6523 ICD codelist, please use it.

cac:PartyLegalEntity / cbc:RegistrationName is the official legal name of the buyer.

Delivery

In the precast concrete element use case the delivery details are shared on the order line level. So please do not use the delivery detail on the document header level.

Order response lines

The lines are only part of the order response if the cbc:OrderResponseCode is AB = Message acknowledgement or CA = Conditionally accepted.
On AP = Accepted or RE = Rejected codes no order response lines are sent as part of the order response.

cbc:ID is the ID of the order response line.

cbc:Note can be used to convey information that does not have explicit place in the order response transaction such as clarifications for the suppliers decision on the line or multiple delivery time slots as that functionality is not currently supported by Peppol.

cbc:LineStatusCode is used to tell if the order line has been accepted or changed in any way. A code list Action code (UNCL1229) must be used. The possible values are:

  • 1 Order line is added
  • 3 Changed
  • 5 Accepted without amendment
  • 7 Not accepted
  • 42 Already delivered

cbc:Quantity describes the quantity of items that the supplier promises to deliver. For Quantity, unit of measure must be provided in @unitCode element. See Attachment A for the most used values.

cbc:MaximumBackorderQuantity must be agreed by the business parties if backorder is allowed. If it is allowed, this element is used to tell the quantity of the goods that will be delivered at a later date.

On the order response line level the seller can confirm the delivery period for the order on the cac:Delivery / cac:PromisedDeliveryPeriod tree.
The promised delivery period has: cbc:StartDate, cbc:StartTimecbc:EndDate and cbc:EndTime. If the delivery period is not a range of days, but just one day, please add both Start and End date on the same day. The dates must be formatted as DD-MM-YYYY and the time as HH:MM:SS.

If there are multiple delivery time slots, use cbc:Note element for those as multiple delivery slots are not currently supported by Peppol.

The price information is not used in the concrete element case, but for other products it can be used in the cac:Price structure by using: cbc:PriceAmount and cbc:BaseQuantity.

Compared to the order transaction, the item details are more restricted in the order response.

cac:Item / cbc:Name contains the item name is used for the name of the precast concrete element. The possible values are for example VÄLISEINÄ (partition wall), MASSIIVILAATTA (solid precast slab).

cac:Item / cac:StandardItemIdentification / cbc:ID is used for GTIN or SGTIN of the precast concrete element. @schemeID is mandatory. Use values from the ISO 6523 ICD list. Use value 0209 for SGTIN. Use value 0160 for GTIN

Usage of cac:SellerSubstitutedLineItem is not covered by this implementation guide.

cac:OrderLineReference / cbc:LineID is mandatory to be used. It links the order response line to the order line.

Attachment A: Quantity/@unitCode usage

Use UN/ECE Recommendation 20 (including Rec 21 codes, prefixed with X) for unit codes. The following shortlist is recommended for the concrete element supply chain. For possible expansion, consider the Swedish shortlist first.

cbc:Quantity/@unitCode Description in English Description in Finnish Description in Swedish Notes
C62 one kappale styck Use code value EA instead of C62 when writing messages.

C62 should be understood when receiving messages.

H87 piece kappale styck Use EA when writing messages; H87 should be understood when receiving.
EA each kappale styck Preferred code for messages.
KGM kilogram kilogramma kilogram
MTK square metre neliömetri kvadratmeter
MTQ cubic metre kuutiometri kubikmeter
MTR metre metri meter

Attachment B: AdditionalItemProperty usage

Use the following cac:AdditionalItemProperty names and values consistently to enable automated processing. (Examples shown where available.) Fill in exact descriptions and controlled values as agreed by the parties. Keep naming identical across documents.

cbc:Name (Finnish) cbc:Name (English) cbc:Name (Swedish) cbc:Value (Example) cbc:ValueQuantity @UntiCode Remarks
Rakennus Building Byggnad A https://sanastot.suomi.fi/terminology/rakymp/concept/c6
Kerros Floor Våning 1 https://sanastot.suomi.fi/terminology/rakymp/concept/c604
Asennuslohko Assembly block Monteringsblock 1
Suunnittelijan lohko Designers building block Konstruktörens block 1
Porras Staircase Trappa A1 https://sanastot.suomi.fi/terminology/rakymp/concept/c606
Purkupaikka Unloading location Lossningsplats
Suunniteltu tehtaan valupäivä Planned factory casting date Planerat gjutningsdatum (i fabrik) 2025-01-15
Suunniteltu toimituspäivä Planned delivery date Planerat leveransdatum 2025-01-16
MTO – Variation Number MTO – Variation Number MTO – Variation Number https://ref.gs1.org/ai/
GUID GUID GUID GUID/UUID obtained from design software
GUID, IFC GUID, IFC GUID, IFC GUID/UUID assigned to element at ifc-export
CO2 ekvivalentti CO2 equivalent CO2‑ekvivalent 22.8 1 TNE
Kokoonpanon tyyppi Assembly type Sammansättningstyp BETONIELEMENTTI, PAIKALLAVALU, TERÄSKOKOONPANO, PUUKOKOONPANO, MUU KOKOONPANO
Kääntökivi Flip required Vändning krävs True / False

Attachment C: Dimension descriptions

AttributeID Explanation Unit of Measure Description (Finnish) Description (Swedish) Description (English)
HT Height dimension MMT Maksimikorkeus Maxhöjd Maximum height
HT Height dimension MMT Betoniosan korkeus Betongdelens höjd Height of concrete element
WD Width dimension MMT Betoniosan paksuus Betongdelens tjocklek Thickness of concrete element
LN Length MMT Maksimipituus Maxlängd Maximum length
LN Length MMT Betoniosan pituus Betongdelens längd Length of concrete element
GW Gross Weight KGM Bruttopaino Bruttovikt Gross weight

Example files

Example XML files will be provided in a future update.

PeppolPeppol authorityPeppol-viranomainen