Guide to the TS-138 electronic order standard used in Iceland, based on CEN/BII Profile 3 and UBL 2.0.

TS-138 Icelandic Order Standard

TS-138 is the Icelandic technical specification for electronic purchase orders, published by Stadlarad Islands (Icelandic Standards). It defines how Icelandic companies and institutions send and receive electronic orders based on the CEN/BII Profile 3 (Order Only) framework using UBL 2.0 XML.

Background

The standard originates from the Business Interoperability Interfaces (BII) project run under the European Committee for Standardization (CEN). BII defines a set of profiles for electronic procurement. Profile 3 covers a simple ordering process where a buyer sends a purchase order to a seller — no electronic order response is expected.

TS-138 adapts Profile 3 for Iceland by adding:

  • Icelandic kennitala (national ID) as the legal entity identifier
  • ISK (Icelandic krona) as the default currency
  • Icelandic address conventions
  • Icelandic validation rules via Schematron

When to use TS-138

TS-138 is used when sending electronic orders between Icelandic trading partners. It is the standard expected by the Icelandic public sector procurement system and widely adopted in B2B commerce in Iceland.

Note: TS-138 is a one-way order (Order Only). The seller is not expected to send an electronic response. If you need order confirmation flows, combine with BII Profile 4 or use PEPPOL BIS Order 3.0.

Document structure overview

A TS-138 order consists of a header and one or more order lines:

flowchart TD
    A[Order Header] --> B[Identification & Dates]
    A --> C[Buyer Party]
    A --> D[Seller Party]
    A --> E[Delivery Information]
    A --> F[Tax Totals]
    A --> G[Monetary Totals]
    A --> H[Order Lines]
    H --> I[Line 1: Item, Qty, Price]
    H --> J[Line 2: Item, Qty, Price]
    H --> K[Line N: ...]

Header fields

FieldXML ElementRequiredDescription
UBL Versioncbc:UBLVersionIDYesAlways 2.0
Customization IDcbc:CustomizationIDYesurn:www.cenbii.eu:transaction:biicoretrdm001:ver1.0
Profile IDcbc:ProfileIDYesurn:www.cenbii.eu:profile:bii03:ver1.0
Order Numbercbc:IDYesUnique order identifier from the buyer
Issue Datecbc:IssueDateYesFormat: YYYY-MM-DD
Issue Timecbc:IssueTimeNoFormat: HH:MM:SS
Notecbc:NoteNoFree text description
Currencycbc:DocumentCurrencyCodeNoISO 4217 code (e.g. ISK, EUR)
Accounting Costcbc:AccountingCostNoBuyer’s internal cost reference

Party identification

Both buyer and seller must be identified. In Iceland, the kennitala is used as the legal entity ID.

FieldXML PathScheme
Party namecac:PartyName/cbc:NameFree text
Kennitalacac:PartyLegalEntity/cbc:CompanyIDschemeID="IS:KT" schemeAgencyID="378"
Customer numbercac:PartyIdentification/cbc:IDschemeID="ZZZ" (buyer-assigned)
VAT numbercac:PartyTaxScheme/cbc:CompanyIDschemeID="IS:VAT" schemeAgencyID="378"
GLNcac:PostalAddress/cbc:IDschemeID="GLN" schemeAgencyID="9"

Address fields

Icelandic addresses use these UBL fields:

FieldXML ElementRequired
Streetcbc:StreetNameYes
Citycbc:CityNameYes
Postal codecbc:PostalZoneYes
Country codecac:Country/cbc:IdentificationCodeYes
PO Boxcbc:PostboxNo
Additional linecbc:AdditionalStreetNameNo
Departmentcbc:DepartmentNo

Delivery

Delivery information applies to all lines in the order.

FieldXML PathRequired
Delivery addresscac:Delivery/cac:DeliveryLocation/cac:AddressNo
Requested periodcac:Delivery/cac:RequestedDeliveryPeriodNo
Delivery termscac:DeliveryTerms/cbc:IDNo (Incoterms 2000)
Delivery partycac:Delivery/cac:DeliveryPartyNo

Monetary totals

FieldXML ElementRequired
Sum of lines (excl. VAT)cbc:LineExtensionAmountYes
Allowance totalcbc:AllowanceTotalAmountIf used
Charge totalcbc:ChargeTotalAmountIf used
Payable amountcbc:PayableAmountYes
Tax totalcac:TaxTotal/cbc:TaxAmountNo

Calculation:

PayableAmount = LineExtensionAmount + ChargeTotalAmount - AllowanceTotalAmount

Order line fields

Each order line is wrapped in cac:OrderLine/cac:LineItem:

FieldXML ElementRequired
Line numbercbc:IDYes
Quantitycbc:QuantityYes (with unitCode attribute)
Line amount (excl. VAT)cbc:LineExtensionAmountNo
Item namecac:Item/cbc:NameNo
Item descriptioncac:Item/cbc:DescriptionNo
Seller’s item IDcac:Item/cac:SellersItemIdentification/cbc:IDNo
Unit pricecac:Price/cbc:PriceAmountNo
Line tax amountcbc:TotalTaxAmountNo
Partial deliverycbc:PartialDeliveryIndicatorNo (true/false)
Notecac:OrderLine/cbc:NoteNo

Common unit codes

CodeUnitIcelandic
C62Piecestk
KGMKilogramkg
MTRMeterm
LTRLitrel
MTKSquare meter
MTQCubic meter
KTMKilometerkm
TNETonnet
KWHKilowatt-hourkWh
DAYDayd
HURHourh

Validation rules

TS-138 validation uses Schematron and checks three layers:

  1. Core BII — the order contains all required fields defined by the BII core schema
  2. Profile context — the order meets Profile 3 requirements (no additional rules for Profile 3)
  3. Icelandic rules — kennitala must be present for buyer and/or seller; quantity and unit must be specified on every line

Complete XML example

Below is a complete, valid TS-138 order with test data. This example shows a buyer (Prufuverslun ehf) ordering office supplies from a seller (Prufubirgir ehf).

<?xml version="1.0" encoding="UTF-8"?>
<Order xmlns="urn:oasis:names:specification:ubl:schema:xsd:Order-2"
       xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
       xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
       xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
       xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
       xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
       xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <!-- TS-138 Header -->
  <cbc:UBLVersionID>2.0</cbc:UBLVersionID>
  <cbc:CustomizationID>urn:www.cenbii.eu:transaction:biicoretrdm001:ver1.0</cbc:CustomizationID>
  <cbc:ProfileID schemeID="Profile" schemeAgencyID="BII">urn:www.cenbii.eu:profile:bii03:ver1.0</cbc:ProfileID>

  <cbc:ID>TEST-ORD-2025-001</cbc:ID>
  <cbc:IssueDate>2025-10-15</cbc:IssueDate>
  <cbc:Note>Test order for office supplies</cbc:Note>
  <cbc:DocumentCurrencyCode listID="ISO 4217 Alpha" listAgencyID="6">ISK</cbc:DocumentCurrencyCode>

  <!-- Buyer (the company placing the order) -->
  <cac:BuyerCustomerParty>
    <cac:Party>
      <cac:PartyIdentification>
        <cbc:ID schemeID="ZZZ">5501012520</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name>Prufuverslun ehf</cbc:Name>
      </cac:PartyName>
      <cac:PostalAddress>
        <cbc:ID schemeID="GLN" schemeAgencyID="9">5790000000001</cbc:ID>
        <cbc:StreetName>Laugavegur 11</cbc:StreetName>
        <cbc:CityName>Reykjavik</cbc:CityName>
        <cbc:PostalZone>101</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode listID="ISO3166-1" listAgencyID="6">IS</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyLegalEntity>
        <cbc:CompanyID schemeAgencyID="378" schemeID="IS:KT">5501012520</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:BuyerCustomerParty>

  <!-- Seller (the supplier receiving the order) -->
  <cac:SellerSupplierParty>
    <cac:Party>
      <cac:PartyIdentification>
        <cbc:ID schemeID="ZZZ">6601013080</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
        <cbc:Name>Prufubirgir ehf</cbc:Name>
      </cac:PartyName>
      <cac:PostalAddress>
        <cbc:StreetName>Skipholt 50</cbc:StreetName>
        <cbc:CityName>Reykjavik</cbc:CityName>
        <cbc:PostalZone>105</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode listID="ISO3166-1" listAgencyID="6">IS</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyLegalEntity>
        <cbc:CompanyID schemeAgencyID="378" schemeID="IS:KT">6601013080</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:SellerSupplierParty>

  <!-- Delivery information -->
  <cac:Delivery>
    <cac:RequestedDeliveryPeriod>
      <cbc:StartDate>2025-10-20</cbc:StartDate>
    </cac:RequestedDeliveryPeriod>
  </cac:Delivery>

  <!-- Tax total (estimated VAT) -->
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="ISK">2970.00</cbc:TaxAmount>
  </cac:TaxTotal>

  <!-- Monetary totals -->
  <cac:AnticipatedMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="ISK">12200.00</cbc:LineExtensionAmount>
    <cbc:AllowanceTotalAmount currencyID="ISK">0.00</cbc:AllowanceTotalAmount>
    <cbc:ChargeTotalAmount currencyID="ISK">0.00</cbc:ChargeTotalAmount>
    <cbc:PayableAmount currencyID="ISK">12200.00</cbc:PayableAmount>
  </cac:AnticipatedMonetaryTotal>

  <!-- Line 1: Printer paper (5 reams) -->
  <cac:OrderLine>
    <cac:LineItem>
      <cbc:ID>1</cbc:ID>
      <cbc:Quantity unitCode="C62">5</cbc:Quantity>
      <cbc:LineExtensionAmount currencyID="ISK">4500.00</cbc:LineExtensionAmount>
      <cac:Price>
        <cbc:PriceAmount currencyID="ISK">900.00</cbc:PriceAmount>
        <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
      </cac:Price>
      <cac:Item>
        <cbc:Description>A4 printer paper, 80g, 500 sheets per ream</cbc:Description>
        <cbc:Name>A4 prentpappir 80g</cbc:Name>
        <cac:SellersItemIdentification>
          <cbc:ID>PP-A4-80</cbc:ID>
        </cac:SellersItemIdentification>
      </cac:Item>
    </cac:LineItem>
  </cac:OrderLine>

  <!-- Line 2: Ballpoint pens (box of 10) -->
  <cac:OrderLine>
    <cac:LineItem>
      <cbc:ID>2</cbc:ID>
      <cbc:Quantity unitCode="C62">3</cbc:Quantity>
      <cbc:LineExtensionAmount currencyID="ISK">2700.00</cbc:LineExtensionAmount>
      <cac:Price>
        <cbc:PriceAmount currencyID="ISK">900.00</cbc:PriceAmount>
        <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
      </cac:Price>
      <cac:Item>
        <cbc:Description>Box of 10 blue ballpoint pens</cbc:Description>
        <cbc:Name>Kulupennar blar 10stk</cbc:Name>
        <cac:SellersItemIdentification>
          <cbc:ID>PEN-BLUE-10</cbc:ID>
        </cac:SellersItemIdentification>
      </cac:Item>
    </cac:LineItem>
  </cac:OrderLine>

  <!-- Line 3: Stapler -->
  <cac:OrderLine>
    <cac:LineItem>
      <cbc:ID>3</cbc:ID>
      <cbc:Quantity unitCode="C62">2</cbc:Quantity>
      <cbc:LineExtensionAmount currencyID="ISK">3000.00</cbc:LineExtensionAmount>
      <cac:Price>
        <cbc:PriceAmount currencyID="ISK">1500.00</cbc:PriceAmount>
        <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
      </cac:Price>
      <cac:Item>
        <cbc:Description>Desktop stapler, 25-sheet capacity</cbc:Description>
        <cbc:Name>Heflavél 25 blöð</cbc:Name>
        <cac:SellersItemIdentification>
          <cbc:ID>STAPLER-25</cbc:ID>
        </cac:SellersItemIdentification>
      </cac:Item>
    </cac:LineItem>
  </cac:OrderLine>

  <!-- Line 4: Notebooks -->
  <cac:OrderLine>
    <cac:LineItem>
      <cbc:ID>4</cbc:ID>
      <cbc:Quantity unitCode="C62">10</cbc:Quantity>
      <cbc:LineExtensionAmount currencyID="ISK">2000.00</cbc:LineExtensionAmount>
      <cac:Price>
        <cbc:PriceAmount currencyID="ISK">200.00</cbc:PriceAmount>
        <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
      </cac:Price>
      <cac:Item>
        <cbc:Description>A5 lined notebook, 80 pages</cbc:Description>
        <cbc:Name>A5 strikadur blokk</cbc:Name>
        <cac:SellersItemIdentification>
          <cbc:ID>NB-A5-LINED</cbc:ID>
        </cac:SellersItemIdentification>
      </cac:Item>
    </cac:LineItem>
  </cac:OrderLine>

</Order>

Key points about this example

  • Kennitala is used as CompanyID with schemeID="IS:KT" and schemeAgencyID="378" for both buyer and seller
  • Currency is ISK throughout — every amount element includes currencyID="ISK"
  • Unit code C62 represents pieces (stk) per UN/ECE Recommendation 20
  • LineExtensionAmount on each line equals Quantity x PriceAmount
  • PayableAmount equals the sum of all LineExtensionAmount values (12,200 ISK)
  • Delivery specifies a requested start date; no end date means “as soon as possible”

Optional elements not shown above

TS-138 supports many optional elements that you can add depending on your business needs:

FeatureXML ElementUse case
Validity periodcac:ValidityPeriod/cbc:EndDateOrder expiry date
Quotation referencecac:QuotationDocumentReference/cbc:IDLink to a supplier quote
Previous ordercac:OrderDocumentReference/cbc:IDReplacement for a rejected order
Internal requisitioncac:OriginatorDocumentReference/cbc:IDLink to internal purchase request
Contract referencecac:Contract/cbc:IDLink to framework agreement
Delivery addresscac:Delivery/cac:DeliveryLocation/cac:AddressShip-to address if different from buyer
Delivery termscac:DeliveryTerms/cbc:IDIncoterms 2000 (e.g. FOB, CIF)
Delivery contactcac:Delivery/cac:DeliveryParty/cac:ContactContact person at delivery location
Buyer contactcac:BuyerCustomerParty/.../cac:ContactPurchaser contact details
Seller contactcac:SellerSupplierParty/.../cac:ContactSeller contact details
Originator partycac:OriginatorCustomerPartyEnd user if different from buyer
Buyer VAT numbercac:PartyTaxScheme/cbc:CompanyIDWith schemeID="IS:VAT"
Header allowancecac:AllowanceChargeDiscounts or surcharges at order level
Attachmentscac:AdditionalDocumentReferenceURLs or embedded documents (e.g. PDF)
Line delivery periodcac:LineItem/cac:DeliveryPer-line delivery dates
Partial deliverycbc:PartialDeliveryIndicatorAllow split shipments (true/false)
Item propertiescac:AdditionalItemPropertyColor, size, or other attributes
Standard item IDcac:StandardItemIdentification/cbc:IDGTIN / EAN-13 barcode number
Line notecac:OrderLine/cbc:NoteSpecial instructions per line

Identifier schemes

IdentifierschemeIDschemeAgencyIDDescription
Icelandic kennitalaIS:KT378National ID for companies and individuals
Icelandic VAT numberIS:VAT378VAT registration number
GLNGLN9GS1 Global Location Number
GTINGTIN9GS1 product barcode
Custom / internalZZZBuyer or seller assigned identifiers

Further reading