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
| Field | XML Element | Required | Description |
|---|---|---|---|
| UBL Version | cbc:UBLVersionID | Yes | Always 2.0 |
| Customization ID | cbc:CustomizationID | Yes | urn:www.cenbii.eu:transaction:biicoretrdm001:ver1.0 |
| Profile ID | cbc:ProfileID | Yes | urn:www.cenbii.eu:profile:bii03:ver1.0 |
| Order Number | cbc:ID | Yes | Unique order identifier from the buyer |
| Issue Date | cbc:IssueDate | Yes | Format: YYYY-MM-DD |
| Issue Time | cbc:IssueTime | No | Format: HH:MM:SS |
| Note | cbc:Note | No | Free text description |
| Currency | cbc:DocumentCurrencyCode | No | ISO 4217 code (e.g. ISK, EUR) |
| Accounting Cost | cbc:AccountingCost | No | Buyer’s internal cost reference |
Party identification
Both buyer and seller must be identified. In Iceland, the kennitala is used as the legal entity ID.
| Field | XML Path | Scheme |
|---|---|---|
| Party name | cac:PartyName/cbc:Name | Free text |
| Kennitala | cac:PartyLegalEntity/cbc:CompanyID | schemeID="IS:KT" schemeAgencyID="378" |
| Customer number | cac:PartyIdentification/cbc:ID | schemeID="ZZZ" (buyer-assigned) |
| VAT number | cac:PartyTaxScheme/cbc:CompanyID | schemeID="IS:VAT" schemeAgencyID="378" |
| GLN | cac:PostalAddress/cbc:ID | schemeID="GLN" schemeAgencyID="9" |
Address fields
Icelandic addresses use these UBL fields:
| Field | XML Element | Required |
|---|---|---|
| Street | cbc:StreetName | Yes |
| City | cbc:CityName | Yes |
| Postal code | cbc:PostalZone | Yes |
| Country code | cac:Country/cbc:IdentificationCode | Yes |
| PO Box | cbc:Postbox | No |
| Additional line | cbc:AdditionalStreetName | No |
| Department | cbc:Department | No |
Delivery
Delivery information applies to all lines in the order.
| Field | XML Path | Required |
|---|---|---|
| Delivery address | cac:Delivery/cac:DeliveryLocation/cac:Address | No |
| Requested period | cac:Delivery/cac:RequestedDeliveryPeriod | No |
| Delivery terms | cac:DeliveryTerms/cbc:ID | No (Incoterms 2000) |
| Delivery party | cac:Delivery/cac:DeliveryParty | No |
Monetary totals
| Field | XML Element | Required |
|---|---|---|
| Sum of lines (excl. VAT) | cbc:LineExtensionAmount | Yes |
| Allowance total | cbc:AllowanceTotalAmount | If used |
| Charge total | cbc:ChargeTotalAmount | If used |
| Payable amount | cbc:PayableAmount | Yes |
| Tax total | cac:TaxTotal/cbc:TaxAmount | No |
Calculation:
PayableAmount = LineExtensionAmount + ChargeTotalAmount - AllowanceTotalAmount
Order line fields
Each order line is wrapped in cac:OrderLine/cac:LineItem:
| Field | XML Element | Required |
|---|---|---|
| Line number | cbc:ID | Yes |
| Quantity | cbc:Quantity | Yes (with unitCode attribute) |
| Line amount (excl. VAT) | cbc:LineExtensionAmount | No |
| Item name | cac:Item/cbc:Name | No |
| Item description | cac:Item/cbc:Description | No |
| Seller’s item ID | cac:Item/cac:SellersItemIdentification/cbc:ID | No |
| Unit price | cac:Price/cbc:PriceAmount | No |
| Line tax amount | cbc:TotalTaxAmount | No |
| Partial delivery | cbc:PartialDeliveryIndicator | No (true/false) |
| Note | cac:OrderLine/cbc:Note | No |
Common unit codes
| Code | Unit | Icelandic |
|---|---|---|
| C62 | Piece | stk |
| KGM | Kilogram | kg |
| MTR | Meter | m |
| LTR | Litre | l |
| MTK | Square meter | m² |
| MTQ | Cubic meter | m³ |
| KTM | Kilometer | km |
| TNE | Tonne | t |
| KWH | Kilowatt-hour | kWh |
| DAY | Day | d |
| HUR | Hour | h |
Validation rules
TS-138 validation uses Schematron and checks three layers:
- Core BII — the order contains all required fields defined by the BII core schema
- Profile context — the order meets Profile 3 requirements (no additional rules for Profile 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
CompanyIDwithschemeID="IS:KT"andschemeAgencyID="378"for both buyer and seller - Currency is ISK throughout — every amount element includes
currencyID="ISK" - Unit code
C62represents pieces (stk) per UN/ECE Recommendation 20 - LineExtensionAmount on each line equals
Quantity x PriceAmount - PayableAmount equals the sum of all
LineExtensionAmountvalues (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:
| Feature | XML Element | Use case |
|---|---|---|
| Validity period | cac:ValidityPeriod/cbc:EndDate | Order expiry date |
| Quotation reference | cac:QuotationDocumentReference/cbc:ID | Link to a supplier quote |
| Previous order | cac:OrderDocumentReference/cbc:ID | Replacement for a rejected order |
| Internal requisition | cac:OriginatorDocumentReference/cbc:ID | Link to internal purchase request |
| Contract reference | cac:Contract/cbc:ID | Link to framework agreement |
| Delivery address | cac:Delivery/cac:DeliveryLocation/cac:Address | Ship-to address if different from buyer |
| Delivery terms | cac:DeliveryTerms/cbc:ID | Incoterms 2000 (e.g. FOB, CIF) |
| Delivery contact | cac:Delivery/cac:DeliveryParty/cac:Contact | Contact person at delivery location |
| Buyer contact | cac:BuyerCustomerParty/.../cac:Contact | Purchaser contact details |
| Seller contact | cac:SellerSupplierParty/.../cac:Contact | Seller contact details |
| Originator party | cac:OriginatorCustomerParty | End user if different from buyer |
| Buyer VAT number | cac:PartyTaxScheme/cbc:CompanyID | With schemeID="IS:VAT" |
| Header allowance | cac:AllowanceCharge | Discounts or surcharges at order level |
| Attachments | cac:AdditionalDocumentReference | URLs or embedded documents (e.g. PDF) |
| Line delivery period | cac:LineItem/cac:Delivery | Per-line delivery dates |
| Partial delivery | cbc:PartialDeliveryIndicator | Allow split shipments (true/false) |
| Item properties | cac:AdditionalItemProperty | Color, size, or other attributes |
| Standard item ID | cac:StandardItemIdentification/cbc:ID | GTIN / EAN-13 barcode number |
| Line note | cac:OrderLine/cbc:Note | Special instructions per line |
Identifier schemes
| Identifier | schemeID | schemeAgencyID | Description |
|---|---|---|---|
| Icelandic kennitala | IS:KT | 378 | National ID for companies and individuals |
| Icelandic VAT number | IS:VAT | 378 | VAT registration number |
| GLN | GLN | 9 | GS1 Global Location Number |
| GTIN | GTIN | 9 | GS1 product barcode |
| Custom / internal | ZZZ | — | Buyer or seller assigned identifiers |
Further reading
- Supported Formats — full list of formats eMessaging supports
- Purchase Documents Overview — how inbound documents are processed
- CEN/BII specifications — the European framework TS-138 is based on