What Is UNECE Recommendation 20?
UNECE Recommendation 20 (commonly written as UNECE Rec 20 or UN/ECE Rec 20) is a standard published by the United Nations Economic Commission for Europe that defines codes for units of measure used in international trade. It covers physical units — weight, volume, length, time, area — as well as commercial units such as pieces, sets, and containers. The Recommendation is maintained by the UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business).
In PINT-AE electronic invoicing, UNECE Rec 20 unit codes are the mandatory format for the invoiced quantity unit (cbc:InvoicedQuantity/@unitCode) on every invoice line. An invoice line that omits the unit code or uses a value not in the UNECE Rec 20 code list will fail ASP schematron validation.
Scope of the Code List
The PINT-AE schematron code list file (UNECERec20.gc) contains 2,162 unit codes. This is a comprehensive set covering everything from standard commercial units (pieces, kilograms, litres, hours) to highly technical engineering and scientific units. In practice, the vast majority of UAE B2B invoices will use a small subset of these codes.
Most Commonly Used Units in UAE Commercial Invoicing
| Unit | UNECE Rec 20 Code |
|---|---|
| Piece / each (unit) | EA |
| Hour | HUR |
| Day | DAY |
| Month | MON |
| Kilogram | KGM |
| Gram | GRM |
| Tonne (metric ton) | TNE |
| Litre | LTR |
| Cubic metre | MTQ |
| Square metre | MTK |
| Metre | MTR |
| Set | SET |
| Lump sum (flat fee) | LS |
| Pack | PK |
| Box | BX |
The Most Common Error: Services Billed Without a Unit Code
Professional services firms — consultants, law firms, accounting practices, IT service providers — commonly issue invoices with no unit of measure because the billing software does not require one for fee-based engagements. In PINT-AE, the unit code on every invoice line is mandatory. Service invoices billed as a lump sum should use LS (lump sum). Time-based billing should use HUR (hour), DAY (day), or MON (month) as appropriate. Leaving the field blank is a fatal validation error.
Where the Code Appears in PINT-AE XML
The unit code is an XML attribute on the invoiced quantity element at line level: <cbc:InvoicedQuantity unitCode="EA">5</cbc:InvoicedQuantity>. Both the attribute and the quantity value are required. The unit code must exactly match a value in the UNECE Rec 20 code list — it is case-sensitive.
Goods Type and HS Code Relationship
For goods-based invoice lines, the unit code should be consistent with the HS code declared for the item. A line describing a liquid product with an HS code in Chapter 22 (beverages) should not carry a unit code of EA (each) if the transaction is measured by volume — it should carry LTR (litre) or MTQ (cubic metre). Inconsistency between unit codes and commodity classifications can create audit risk even if it does not cause a schematron failure.
ERP Configuration Steps
- Audit the unit of measure codes currently used in the ERP item master and map each to its UNECE Rec 20 equivalent
- Ensure service items carry a unit code — typically LS for fixed fees, HUR for hourly rates
- Confirm the PINT-AE XML output writes the unit code as an attribute of
cbc:InvoicedQuantity, not as a separate element - Validate the full list of unit codes in use against the
UNECERec20.gccode list file before go-live - Establish a governance process so new item types added after go-live are assigned a UNECE Rec 20 unit code at creation
