UN/CEFACT Recommendation 20 is the international standard for unit of measure codes in electronic data exchange. It defines over 2,100 three-character codes like C62 (piece), MTR (metre), KGM (kilogram), and MMT (millimetre). These codes appear in BMEcat ORDER_UNIT and CONTENT_UNIT fields, EDI messages, and electronic invoices.
What Rec 20 is
Recommendation 20 (Rec 20) is published by the United Nations Centre for Trade Facilitation and Electronic Business (UN/CEFACT). It provides a standardized list of codes for units of measure used in international trade. When a BMEcat file says <ORDER_UNIT>MTR</ORDER_UNIT>, it means the product is ordered by the metre, using the Rec 20 code for metre.
The standard covers length, weight, volume, area, electrical units, time, temperature, and dozens of other measurement categories. For electrical and industrial product data, you encounter a specific subset repeatedly.
To check whether a unit code is valid and find the correct alternative for common mistakes, validate your unit codes against Rec 20.
Most common codes for electrical products
These are the Rec 20 codes you will encounter most often in electrical and industrial product catalogs:
Quantity and packaging
| Code | Name | Use in product data |
|---|---|---|
| C62 | One (dimensionless unit) | Individual pieces. The "each" equivalent. |
| SET | Set | Product sold as a set or kit |
| PR | Pair | Items sold in pairs (e.g., connectors) |
| BX | Box | Box packaging level |
| PK | Package | General packaging unit |
| RL | Reel | Cable sold on reels |
| CT | Carton | Carton packaging level |
Length
| Code | Name | Use in product data |
|---|---|---|
| MTR | Metre | Standard length unit |
| MMT | Millimetre | Dimensions, conductor size |
| CMT | Centimetre | Dimensions |
| KMT | Kilometre | Cable drums, long runs |
| FOT | Foot | Imperial length (US market) |
| INH | Inch | Imperial dimensions |
Weight and mass
| Code | Name | Use in product data |
|---|---|---|
| KGM | Kilogram | Product weight, shipping weight |
| GRM | Gram | Small component weight |
| TNE | Tonne (metric ton) | Bulk materials |
| LBR | Pound | Imperial weight (US market) |
Electrical
| Code | Name | Use in product data |
|---|---|---|
| AMP | Ampere | Current rating |
| VLT | Volt | Voltage rating |
| WTT | Watt | Power rating |
| KWT | Kilowatt | Higher power ratings |
| OHM | Ohm | Resistance |
| HTZ | Hertz | Frequency |
| LUM | Lumen | Luminous flux |
| LUX | Lux | Illuminance |
| CDL | Candela | Luminous intensity |
Area and volume
| Code | Name | Use in product data |
|---|---|---|
| MTK | Square metre | Surface coverage |
| MMK | Square millimetre | Conductor cross-section |
| LTR | Litre | Volume |
| MTQ | Cubic metre | Volume (large) |
How Rec 20 codes work in BMEcat
In a BMEcat file, Rec 20 codes appear in several fields:
ORDER_UNIT defines the unit used for ordering. If a customer orders cable by the metre, ORDER_UNIT is MTR. If they order circuit breakers individually, ORDER_UNIT is C62.
CONTENT_UNIT defines the unit of the content inside the order unit. A box of 100 cable ties has ORDER_UNIT BX and CONTENT_UNIT C62 with NO_CU_PER_OU of 100.
PRICE_UNIT defines the unit for which the price applies. A cable priced per metre has PRICE_UNIT MTR.
FUNIT in ETIM and ECLASS features uses Rec 20 codes (or ECLASS unit IRDIs for ECLASS). A rated current feature has FUNIT AMP.
<PRODUCT_ORDER_DETAILS>
<ORDER_UNIT>MTR</ORDER_UNIT>
<CONTENT_UNIT>MTR</CONTENT_UNIT>
<NO_CU_PER_OU>1</NO_CU_PER_OU>
<PRICE_QUANTITY>1</PRICE_QUANTITY>
<QUANTITY_MIN>1</QUANTITY_MIN>
<QUANTITY_INTERVAL>1</QUANTITY_INTERVAL>
</PRODUCT_ORDER_DETAILS>
The piece problem: C62 vs EA vs PCE
The most common unit code confusion in product data is how to encode "each" or "piece". Three codes compete for this role, and only one is correct in most contexts.
C62 is the Rec 20 code for "one" (a dimensionless unit). This is the standard code for individual items. Use this for products sold as individual pieces: a single circuit breaker, one switch, one luminaire.
EA is commonly used in North American EDI but is not a standard Rec 20 code in many contexts. Some systems accept it, others reject it. If your trading partner's system rejects EA, switch to C62.
PCE stands for "piece" and appears in some older systems. It is in the Rec 20 list but C62 is preferred for interoperability.
The safe choice: use C62. It is universally recognized in BMEcat, ETIM, and EDI systems. For a deeper dive into this and other common mistakes, see common Rec 20 mistakes in BMEcat and EDI.
After choosing your codes, validate your unit codes against Rec 20 to confirm they are recognized and correctly formatted.
Codes that look right but are wrong
Some unit abbreviations that seem logical are not valid Rec 20 codes:
| You might type | Why it's wrong | Correct code |
|---|---|---|
M | Not a Rec 20 code | MTR (metre) |
MM | Not a Rec 20 code | MMT (millimetre) |
KG | Not a Rec 20 code | KGM (kilogram) |
G | Not a Rec 20 code | GRM (gram) |
PC | Not standard | C62 (one) |
EA | Not universally accepted | C62 (one) |
PCS | Not a Rec 20 code | C62 (one) |
M2 | Not a Rec 20 code | MTK (square metre) |
M3 | Not a Rec 20 code | MTQ (cubic metre) |
L | Not a Rec 20 code | LTR (litre) |
These errors are easy to make because the wrong codes are human-readable abbreviations that make sense to people. But automated systems need the exact Rec 20 three-character code. A BMEcat file with KG instead of KGM will fail validation.
Finding the right code
When you need a unit code that is not in the common list above, search the full Rec 20 code list. The list contains over 2,100 codes covering highly specific units like:
H87for "piece" (yes, another piece code, used in some EN 16931 e-invoicing contexts)4Lfor megabyteSECfor secondMINfor minuteHURfor hourDAYfor dayMONfor monthANNfor year
The unit code validator includes the full Rec 20 code list with search. Enter a code to check if it is valid, or search by description to find the right code.
Rec 20 in electronic invoicing
Rec 20 codes are not just for product catalogs. They appear in electronic invoices (EN 16931, Peppol BIS, ZUGFeRD/Factur-X) and EDI messages (EDIFACT, ANSI X12). Using the wrong unit code in an invoice can delay payment processing.
The European e-invoicing standard EN 16931 references Rec 20 directly. If your product data uses the correct Rec 20 codes in BMEcat, those same codes carry over to invoices without translation.
This is one of the practical benefits of getting unit codes right at the catalog level: the data flows downstream into orders, invoices, and logistics without manual correction at each stage.