Code lists
Two kinds of value: codes that an EU or international instrument publishes are used verbatim; everything else is a registry-owned lower-case token.
Token policy
There are two kinds of value, with one rule each. (1) Where an EU or international instrument itself publishes the identifier as a code, the value is that code, verbatim and in its own form: the EN 16931 country code list (ISO 3166-1 alpha-2 plus XI and 1A), EU vehicle categories (M1, N1G, M1S, L3e-A1, T1b) and EU bodywork codes (AB, BA03). (2) Otherwise the registry owns the tokens: lower-case ASCII kebab-case (^[a-z0-9]+(-[a-z0-9]+)*$, at most 32 characters), in EU English and singular, taken from the legal wording where one exists (electricity, pure-electric, hybrid-electric, the ten CoC basic colours). Designations that follow a legislative sequence, such as Euro levels, are defined by a grammar over the instrument's own names (the 'Emission standard' names of Reg. (EU) 2017/1151 Annex I Appendix 6, e.g. euro-6d-isc-fcm), not by a closed enumeration. Official numeric or class codes are never written into BT-161; this covers IVI 2.0 EnergySource (10, 20, 95), CoC 23.1 classes (OVC-HEV, NOVC-HEV), the Appendix 6 character codes and KBA codes. The registry publishes versioned, machine-readable mappings to them instead, plus a mapping from national register colours (e.g. beige, cream) to the ten basic colours; the IVI mapping only after its licence is checked. Every open list has exactly one 'other'. VEHICLE-CONDITION partitions its test (new, used) and has none; a receiver treats an unknown token there as no statement. 'unknown' appears only in VEHICLE-ODOMETER-STATUS. Emitters write the exact form. Receivers match ASCII case-insensitively, keep an unknown token raw and treat it as 'other'. From 1.0, tokens are only added (in minor releases) and never removed, renamed or re-purposed. Booleans are 'true' or 'false' in lower case, 'false' is an active statement, and an absent row means no statement. Multi-valued facts repeat the key, one token per row; energySourceCode rows follow the order of the source document. List identifiers follow the root: VEHICLE-<NAME> <major.minor>. No list copies a vendor or marketplace enumeration: the draft colour, fuel, emission and condition lists were mapped 1:1 from such enumerations and have been rebuilt from the legal lists.
A minor release may add tokens; receivers treat a token they do not know like a missing value. Tokens are never removed or redefined. The naming of tokens follows the naming rules.
Lists owned by the registry
VEHICLE-ROLE 1.0
Used by vehicle.roleCode.
-
supply -
trade-in -
service -
rental -
lease -
agency -
transport -
other
Registry-owned; there is no EU list. The rental/lease boundary of 30 days follows Directive 2006/112/EC Art. 56(3) as a boundary only; the tokens state no VAT treatment. Informative alignment: schema.org businessFunction.
VEHICLE-CONDITION 1.0
Used by vehicle.conditionCode; partition without other.
-
new -
used
Registry-owned partition of all vehicles by observable facts (registration before the supply, use before the supply). Related legal notions, documented but not equal: Directive 1999/94/EC Art. 2(2) 'new passenger car', Directive 2006/112/EC Art. 2(2)(b) and Art. 311(1)(1). The draft tokens pre-registered and demonstrator are withdrawn; prior use is deferred under the reserved name vehicle.priorUseCode.
VEHICLE-ODOMETER-STATUS 1.0
Used by vehicle.odometerReadingStatusCode.
-
displayed -
replaced -
rolled-over -
inoperative -
unknown -
other
Registry-owned issuer statements. Related wording only: Directive 2014/45/EU Annex I item 7.11 (test-centre findings); informative parallels: ADF odometer status, RDW tellerstandoordeel. 'manipulated' is reserved for testing bodies and not issued in 1.0.
VEHICLE-ENERGY-SOURCE 1.0
Used by vehicle.energySourceCode.
-
petrol -
diesel -
lpg -
cng -
lng -
ethanol -
biodiesel -
hydrogen -
electricity -
other
Directive 1999/37/EC code P.3; CoC item 26 ('Diesel/petrol/LPG/NG - Biomethane/Ethanol/Biodiesel/Hydrogen') and item 23 (pure electric); Reg. (EU) 2023/1804 Art. 2(4) for electricity, CNG and LNG. cng and lng include biomethane. Published mapping to IVI 2.0 EnergySource (after the licence check): petrol 10 (11, 12), ethanol 15 (16), diesel 20, biodiesel 21, lpg 30, cng 40 and 44, hydrogen 50, lng 60, electricity 95, other 90 (19, 22, 55, 91).
VEHICLE-POWERTRAIN 1.0
Used by vehicle.powertrainTypeCode.
-
internal-combustion -
hybrid-electric -
plug-in-hybrid-electric -
pure-electric -
fuel-cell -
other
Reg. (EU) 2017/1151 Annex XXI points 3.3.15-3.3.20; CoC items 23 and 23.1. Published mapping: hybrid-electric = NOVC-HEV; plug-in-hybrid-electric = OVC-HEV, including range extenders; pure-electric = PEV (CoC 23 'pure electric: yes'); fuel-cell = FCV, NOVC-FCHV, OVC-FCHV.
VEHICLE-COLOUR 1.0
Used by vehicle.basicColourCode.
-
white -
yellow -
orange -
red -
violet -
blue -
green -
grey -
brown -
black -
other
Reg. (EU) 2020/683 Annex VIII CoC item 40 footnote 114 ('Indicate only the basic colour(s)'; DE 'Grundfarben'); Directive 1999/37/EC code R. National register colours outside the ten map through the registry's published mapping table.
VEHICLE-STATE-OF-HEALTH-METHOD 1.0
Used by vehicle.batteryStateOfHealthMethodCode.
-
on-board -
manufacturer-test -
independent-test -
other
Registry-owned. on-board refers to the battery management system data of Reg. (EU) 2023/1542 Art. 14 and Annex VII Part A (SOCE for electric vehicle batteries) and the on-board monitor of UN GTR No. 22.
VEHICLE-EMISSION-LEVEL 1.0
Used by vehicle.exhaustEmissionLevelCode; grammar not enumeration; examples.
-
euro-4 -
euro-5 -
euro-5-plus -
euro-6b -
euro-6c -
euro-6d-temp -
euro-6d-temp-evap-isc -
euro-6d -
euro-6d-isc-fcm -
euro-6e -
euro-6e-bis -
euro-6e-bis-fcm -
euro-7 -
euro-vi-e -
stage-v -
other
CoC item 47 and footnote 116; Reg. (EU) 2017/1151 Annex I Appendix 6 Table 1 'Emission standard' names; Reg. (EC) 715/2007; Reg. (EC) 595/2009 (heavy duty, Roman numerals); Reg. (EU) 168/2013 (L-category, Euro 5+); Reg. (EU) 2024/1257 (Euro 7); Reg. (EU) 2016/1628 (stages). Grammar in the key's valueFormat.
VEHICLE-CATALOGUE-SCHEME 1.0
Used by vehicle.catalogueId; open register.
-
manufacturer
Opened with one scheme: 'manufacturer', whose id is the make's own model or sales code for the vehicle. Third-party schemes are added only with the catalogue owner's written confirmation, each with a licence note; candidates are kept in the non-normative implementation notes (NR-16).
Indicator values
Used by vehicle.newMeansOfTransportIndicator, vehicle.marginSchemeIndicator.
-
true -
false
NR-08. Lower case only; 'false' is an active statement; an absent row means no statement.
External code lists
These values come from lists that VINvoice does not maintain. They are written exactly as the instrument publishes them; the key's grammar fixes the written form.
EU vehicle categories
Used by vehicle.categoryCode; external; base codes, plus suffixes and sub-categories per grammar.
-
M1 -
M2 -
M3 -
N1 -
N2 -
N3 -
O1 -
O2 -
O3 -
O4 -
L1e -
L2e -
L3e -
L4e -
L5e -
L6e -
L7e -
T1 -
T2 -
T3 -
T4 -
T5 -
C1 -
C2 -
C3 -
C4 -
R1 -
R2 -
R3 -
R4 -
S1 -
S2
Reg. (EU) 2018/858 Art. 4 and Annex I Part A 2.1-2.3 (G for M and N; S for incomplete special purpose vehicles); Reg. (EU) 168/2013 Art. 4 (L sub-categories); Reg. (EU) 167/2013 Art. 4 (T, C, R, S with a/b); T5 is the legacy category of Directive 2003/37/EC still printed on older documents.
EU bodywork codes
Used by vehicle.bodyworkCode; external; optional two supplementary digits per Appendix 2.
-
AA -
AB -
AC -
AD -
AE -
AF -
AG -
BA -
BB -
BC -
BD -
BE -
BX -
CA -
CB -
CC -
CD -
CE -
CF -
CG -
CH -
CI -
CJ -
CX -
DA -
DB -
DC -
DE -
SA -
SB -
SC -
SD -
SE -
SF -
SG -
SH -
SJ
Reg. (EU) 2018/858 Annex I Part C points 2-5 and Appendix 2 (digits), Part A point 5 (special purpose vehicles); the trailer codes are DA, DB, DC and DE.
EN 16931 country code list
Used by vehicle.registrationCountryCode; external.
-
DE -
AT -
FR -
NL -
IT -
ES -
PL -
GR -
XI -
1A -
...
The country code list EN 16931 uses for BT-40 and the other country codes (ISO 3166-1 alpha-2 plus XI for Northern Ireland and 1A for Kosovo). Greece is GR, not EL. Not the distinguishing signs of vehicles.
Units of measure
Each quantity has exactly one unit, fixed by its key and named with its UN/ECE Recommendation 20 code. The value is a bare number. When EN 16931-1:2026 adds a unit to item attributes (BT-212), the code below is the one to use.
| Rec. 20 code | Unit | Keys |
|---|---|---|
KMT |
kilometre |
vehicle.odometerReadingKm, vehicle.wltpElectricRangeKm
|
SMI |
statute mile |
vehicle.odometerReadingMi
|
KWT |
kilowatt |
vehicle.maximumNetPowerKw
|
CMQ |
cubic centimetre |
vehicle.engineCapacityCm3
|
KWH |
kilowatt hour |
vehicle.usableBatteryEnergyKwh
|
| none | g/km (no Rec 20 code, so never BT-212) |
vehicle.wltpCo2EmissionsGPerKm, vehicle.nedcCo2EmissionsGPerKm
|
P1 |
percent |
vehicle.batteryStateOfHealthPercent
|
KGM |
kilogram |
vehicle.maximumMassKg, vehicle.registeredMaximumMassKg
|
HUR |
hour |
vehicle.cumulativeOperatingHours
|