DraftDraft for review, not yet a published standard. Registry vehicle/1.0-draft of 2026-10-24, marker vehicle/1.0. How changes are made.

Examples and downloads

The registry in machine-readable form, and the test invoices that every example on this site is taken from.

Registry files

File Content Licence Size
registry.json The key registry: every key with tier, labels, definition, value format, grammar, unit, code list, conditions, binding and anchors. The normative source. CC0 1.0 108 KB
registry.csv The same registry as a flat table: key, tier, status, labels, grammar, code list. CC0 1.0 9.5 KB
context.jsonld JSON-LD context that maps each local key name to an IRI. CC0 1.0 2.6 KB
vehicle-facts.schema.json JSON Schema for the facts of one vehicle line as a JSON object, for systems that store or exchange VINvoice data outside the invoice. CC0 1.0 26 KB
vinvoice.sch ISO Schematron rules (XSLT 2 binding) for CII and UBL invoices, the same checks as the reference checker, to run next to the EN 16931 validation. Apache-2.0 31 KB
crosswalk.csv Informative mapping of each key to related vocabularies and message standards, such as schema.org and VDA 4938, with sources. CC BY 4.0 4.3 KB

One vehicle line in both syntaxes

The first line of the margin-scheme sale, cut unchanged from the test invoices. The rows and the line object identifier carry the same facts in CII and in UBL.

Rows of line 1 in sale-25a.fx.cii.xml
Name (BT-160) Value (BT-161)
VINvoice-Spezifikation [vehicle.specificationId] vehicle/1.0
Fahrzeugrolle [vehicle.roleCode] supply
Fahrzeug-Identifizierungsnummer (FIN) [vehicle.vin] TSTVEH016N0000001
Marke [vehicle.make] Volkswagen
Modell [vehicle.model] Golf
Modellausführung [vehicle.configuration] 2.0 TDI Life
Fahrzeugzustand [vehicle.conditionCode] used
Datum der Erstzulassung [vehicle.firstRegistrationDate] 2022-03-18
Kilometerstand (km) [vehicle.odometerReadingKm] 48200
Höchste Nutzleistung (kW) [vehicle.maximumNetPowerKw] 110
Hubraum (cm3) [vehicle.engineCapacityCm3] 1968
Kraftstoffart oder Energiequelle [vehicle.energySourceCode] diesel
Grundfarbe [vehicle.basicColourCode] grey
Nächste technische Prüfung [vehicle.nextRoadworthinessTestDate] 2027-03
Differenzbesteuerung [vehicle.marginSchemeIndicator] true
Lagernummer [com.example.stockNumber] STK-26-0042
Line object identifier (BT-128), scheme AKG TSTVEH016N0000001

CII: sale-25a.fx.cii.xml

<ram:IncludedSupplyChainTradeLineItem>
  <ram:AssociatedDocumentLineDocument>
    <ram:LineID>1</ram:LineID>
  </ram:AssociatedDocumentLineDocument>
  <ram:SpecifiedTradeProduct>
    <ram:SellerAssignedID>STK-26-0042</ram:SellerAssignedID>
    <ram:Name>Volkswagen Golf 2.0 TDI Life</ram:Name>
    <ram:Description>FIN TSTVEH016N0000001 · Erstzulassung: 18.03.2022 · Kilometerstand: 48.200 km · Leistung: 110 kW (150 PS) · Farbe: Grau</ram:Description>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>VINvoice-Spezifikation [vehicle.specificationId]</ram:Description>
      <ram:Value>vehicle/1.0</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Fahrzeugrolle [vehicle.roleCode]</ram:Description>
      <ram:Value>supply</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Fahrzeug-Identifizierungsnummer (FIN) [vehicle.vin]</ram:Description>
      <ram:Value>TSTVEH016N0000001</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Marke [vehicle.make]</ram:Description>
      <ram:Value>Volkswagen</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Modell [vehicle.model]</ram:Description>
      <ram:Value>Golf</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Modellausführung [vehicle.configuration]</ram:Description>
      <ram:Value>2.0 TDI Life</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Fahrzeugzustand [vehicle.conditionCode]</ram:Description>
      <ram:Value>used</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Datum der Erstzulassung [vehicle.firstRegistrationDate]</ram:Description>
      <ram:Value>2022-03-18</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Kilometerstand (km) [vehicle.odometerReadingKm]</ram:Description>
      <ram:Value>48200</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Höchste Nutzleistung (kW) [vehicle.maximumNetPowerKw]</ram:Description>
      <ram:Value>110</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Hubraum (cm3) [vehicle.engineCapacityCm3]</ram:Description>
      <ram:Value>1968</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Kraftstoffart oder Energiequelle [vehicle.energySourceCode]</ram:Description>
      <ram:Value>diesel</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Grundfarbe [vehicle.basicColourCode]</ram:Description>
      <ram:Value>grey</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Nächste technische Prüfung [vehicle.nextRoadworthinessTestDate]</ram:Description>
      <ram:Value>2027-03</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Differenzbesteuerung [vehicle.marginSchemeIndicator]</ram:Description>
      <ram:Value>true</ram:Value>
    </ram:ApplicableProductCharacteristic>
    <ram:ApplicableProductCharacteristic>
      <ram:Description>Lagernummer [com.example.stockNumber]</ram:Description>
      <ram:Value>STK-26-0042</ram:Value>
    </ram:ApplicableProductCharacteristic>
  </ram:SpecifiedTradeProduct>
  <ram:SpecifiedLineTradeAgreement>
    <ram:NetPriceProductTradePrice>
      <ram:ChargeAmount>15900.00</ram:ChargeAmount>
    </ram:NetPriceProductTradePrice>
  </ram:SpecifiedLineTradeAgreement>
  <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="C62">1</ram:BilledQuantity>
  </ram:SpecifiedLineTradeDelivery>
  <ram:SpecifiedLineTradeSettlement>
    <ram:ApplicableTradeTax>
      <ram:TypeCode>VAT</ram:TypeCode>
      <ram:CategoryCode>E</ram:CategoryCode>
      <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
    </ram:ApplicableTradeTax>
    <ram:SpecifiedTradeSettlementLineMonetarySummation>
      <ram:LineTotalAmount>15900.00</ram:LineTotalAmount>
    </ram:SpecifiedTradeSettlementLineMonetarySummation>
    <ram:AdditionalReferencedDocument>
      <ram:IssuerAssignedID>TSTVEH016N0000001</ram:IssuerAssignedID>
      <ram:TypeCode>130</ram:TypeCode>
      <ram:ReferenceTypeCode>AKG</ram:ReferenceTypeCode>
    </ram:AdditionalReferencedDocument>
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>

UBL: sale-25a.peppol.ubl.xml

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">15900.00</cbc:LineExtensionAmount>
  <cac:DocumentReference>
    <cbc:ID schemeID="AKG">TSTVEH016N0000001</cbc:ID>
    <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
  </cac:DocumentReference>
  <cac:Item>
    <cbc:Description>FIN TSTVEH016N0000001 · Erstzulassung: 18.03.2022 · Kilometerstand: 48.200 km · Leistung: 110 kW (150 PS) · Farbe: Grau</cbc:Description>
    <cbc:Name>Volkswagen Golf 2.0 TDI Life</cbc:Name>
    <cac:SellersItemIdentification>
      <cbc:ID>STK-26-0042</cbc:ID>
    </cac:SellersItemIdentification>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
    <cac:AdditionalItemProperty>
      <cbc:Name>VINvoice-Spezifikation [vehicle.specificationId]</cbc:Name>
      <cbc:Value>vehicle/1.0</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Fahrzeugrolle [vehicle.roleCode]</cbc:Name>
      <cbc:Value>supply</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Fahrzeug-Identifizierungsnummer (FIN) [vehicle.vin]</cbc:Name>
      <cbc:Value>TSTVEH016N0000001</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Marke [vehicle.make]</cbc:Name>
      <cbc:Value>Volkswagen</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Modell [vehicle.model]</cbc:Name>
      <cbc:Value>Golf</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Modellausführung [vehicle.configuration]</cbc:Name>
      <cbc:Value>2.0 TDI Life</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Fahrzeugzustand [vehicle.conditionCode]</cbc:Name>
      <cbc:Value>used</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Datum der Erstzulassung [vehicle.firstRegistrationDate]</cbc:Name>
      <cbc:Value>2022-03-18</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Kilometerstand (km) [vehicle.odometerReadingKm]</cbc:Name>
      <cbc:Value>48200</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Höchste Nutzleistung (kW) [vehicle.maximumNetPowerKw]</cbc:Name>
      <cbc:Value>110</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Hubraum (cm3) [vehicle.engineCapacityCm3]</cbc:Name>
      <cbc:Value>1968</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Kraftstoffart oder Energiequelle [vehicle.energySourceCode]</cbc:Name>
      <cbc:Value>diesel</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Grundfarbe [vehicle.basicColourCode]</cbc:Name>
      <cbc:Value>grey</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Nächste technische Prüfung [vehicle.nextRoadworthinessTestDate]</cbc:Name>
      <cbc:Value>2027-03</cbc:Value>
    </cac:AdditionalItemProperty>
    <cac:AdditionalItemProperty>
      <cbc:Name>Differenzbesteuerung [vehicle.marginSchemeIndicator]</cbc:Name>
      <cbc:Value>true</cbc:Value>
    </cac:AdditionalItemProperty>
  </cac:Item>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">15900.00</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>

Test invoices

19 complete invoices. File names read scenario.carrier.syntax.xml. All parties, VINs and plates are fictional; VINs use the test prefix TST with a valid check digit. The validation results for every file are on the validation page.

Conforming invoices
File Scenario Carrier Level Size
credit-25a.fx.cii.xml Credit note cancelling the margin-scheme sale. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 11 KB
credit-25a.peppol.ubl.xml Credit note cancelling the margin-scheme sale. Peppol BIS Billing 3.0 (UBL) 2 8.9 KB
export-25a.fx.cii.xml Margin-scheme export of a used car to a buyer outside the EU (VAT category G). Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 8.5 KB
level0.fx.cii.xml Conformance level 0: the vehicle is identified by BT-128 only, without any rows. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 0 5.8 KB
new-intra-eu-unregistered.fx.cii.xml New means of transport supplied VAT-exempt to a business buyer in another member state; unregistered vehicle. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 9.4 KB
new-intra-eu.fx.cii.xml New means of transport supplied VAT-exempt to a business buyer in another member state; vehicle already registered, so the date of first entry into service is given. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 9.8 KB
sale-25a-level1.fx.cii.xml The same margin-scheme sale at level 1: vehicle rows only, no line object identifier (BT-128). Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 1 11 KB
sale-25a-xborder.peppol.ubl.xml Margin-scheme sale of a used car to a dealer in another EU member state. Peppol BIS Billing 3.0 (UBL) 2 8.9 KB
sale-25a.ext.cii.xml Used car sold between two dealers under the margin scheme (second-hand goods), conformance level 2. Factur-X 1.09.2 / ZUGFeRD, EXTENDED profile (CII) 2 11 KB
sale-25a.fx.cii.xml Used car sold between two dealers under the margin scheme (second-hand goods), conformance level 2. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 11 KB
sale-25a.peppol.ubl.xml Used car sold between two dealers under the margin scheme (second-hand goods), conformance level 2. Peppol BIS Billing 3.0 (UBL) 2 8.9 KB
sale-25a.xr.cii.xml Used car sold between two dealers under the margin scheme (second-hand goods), conformance level 2. XRechnung 3.0.2 (CII) 2 12 KB
sale-25a.xr.ubl.xml Used car sold between two dealers under the margin scheme (second-hand goods), conformance level 2. XRechnung 3.0.2 (UBL) 2 8.9 KB
sale-regular-odometer-inoperative.fx.cii.xml Used car sold under normal VAT with an inoperative odometer: the status is stated and no reading is given. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 9.0 KB
workshop.fx.cii.xml Workshop invoice: a zero-value vehicle reference line with the rows, labour and parts lines linked to the vehicle by BT-128, and the VIN in BT-18. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 11 KB
workshop.peppol.ubl.xml Workshop invoice: a zero-value vehicle reference line with the rows, labour and parts lines linked to the vehicle by BT-128, and the VIN in BT-18. Peppol BIS Billing 3.0 (UBL) 2 8.4 KB
Negative controls: valid EN 16931 invoices that the VINvoice checker must flag
File Scenario Carrier Level Size
neg-margin-k.fx.cii.xml Negative control for the checker: margin-scheme flag on an intra-EU exempt line (category K) and further faults. Valid EN 16931, not a valid VINvoice line. Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 8.3 KB
neg-profile.fx.cii.xml Negative control for the checker: malformed rows (statutory key without its label, duplicates, grammar violations). Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 2 11 KB
neg-profile2.fx.cii.xml Negative control for the checker: reader edge cases (unknown major version, unknown key, both odometer units, unmarked rows, a vendor row). Factur-X 1.09.2 / ZUGFeRD, EN 16931 profile (CII) 1, 2 15 KB