Skip to content

Rule family BR-DE-CVD

BR-DE-CVD-01: contract reference (BT-12) missing in a CVD invoice

ErrorXRechnung business rule (KoSIT)

The rule's own wording

[BR-DE-CVD-01] Das Element "Contract reference" (BT-12) muss übermittelt werden.

Source: KoSIT XRechnung, version 3.0.2 (Schematron 2.6.0)

Meaning of the rule

Your invoice uses the XRechnung extension CVD, which applies to vehicles that public bodies procure under the German clean vehicles procurement act. In this extension the contract reference becomes mandatory, because the public bodies must assign every vehicle delivery to the procurement procedure and report it to the federal level and the EU. Without the contract reference the invoice is incomplete in the CVD extension and is rejected; without the extension the field would be optional.

The fix in the XML

Enter the public body's contract reference: in UBL cac:ContractDocumentReference/cbc:ID, in CII ram:ContractReferencedDocument/ram:IssuerAssignedID in the ApplicableHeaderTradeAgreement. If the invoice is not a CVD case, remove the CVD identifier from BT-24 instead.

Before – invalid
<ubl:Invoice>
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0#compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_3.0</cbc:CustomizationID>
  <cbc:ID>RE-2026-0301</cbc:ID>
</ubl:Invoice>
After – corrected
<ubl:Invoice>
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0#compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_3.0</cbc:CustomizationID>
  <cbc:ID>RE-2026-0301</cbc:ID>
  <cac:ContractDocumentReference>
    <cbc:ID>CONTRACT-2025-0815</cbc:ID>
  </cac:ContractDocumentReference>
</ubl:Invoice>

Questions and answers

How do I know that the CVD extension is active?

By the specification identifier in BT-24: it ends with urn:xeinkauf.de:kosit:xrechnung:cvd_3.0. Only then do the rules BR-DE-CVD-01 to 06 apply.

Which number is meant when there are several contracts?

The number of the contract the vehicle delivery stems from; the public body communicates it with the order.

Other typical causes

  • The invoice was produced with the CVD identifier, but the contract reference was not taken over from the order.
  • The contract reference stands in the free text of the invoice instead of the field BT-12.
  • The extension was chosen by mistake for an invoice without any vehicle.

EN 16931 fields

  • BT-12
  • BT-24

See also

Check your invoice

The XRechnung validator reports this rule with the line number and location – right in your browser, without upload.

Open the XRechnung validator

The rule in detail
UBL · Context (XPath)
(/ubl:Invoice | /cn:CreditNote)[$isCVD]
UBL · Schematron test
cac:ContractDocumentReference/cbc:ID[boolean(normalize-space(.))]
CII · Context (XPath)
/rsm:CrossIndustryInvoice[$isCVD]/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement
CII · Schematron test
ram:ContractReferencedDocument/ram:IssuerAssignedID[boolean(normalize-space(.))]

Explanation written on 14 September 2026