BR-DE-TMP-32Eine Rechnung sollte zur Angabe des Liefer-/Leistungsdatums entweder BT-72 "Actual delivery date", BG-14 "Invoicing period" oder in jeder Rechnungsposition BG-26 "Invoice line period" enthalten.

Official rule text

A notice, not an error: the invoice should state the delivery or service date in structured form — as the actual delivery date (BT-72), as the invoicing period (BG-14), or as a period on every single invoice line (BG-26). If all three are missing the invoice remains valid, and the validator still recommends accepting it. Only the presence of one of the elements is checked; in UBL, a cac:InvoicePeriod holding nothing but the VAT point date code (BT-8) is therefore enough, although it contains no date.

Severity
Notice
Applies to
CII, UBL
Rule set
v2026-08-31
Checked on

Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.

Why does BR-DE-TMP-32 happen?

All three are optional in EN 16931, and many invoices give the time of supply — a mandatory particular under § 14(4) sentence 1 no. 6 UStG — only in free text ("Leistungsdatum entspricht Rechnungsdatum", i.e. the service date is the invoice date) or as the VAT point date (BT-7), which does not count here. The line period, for its part, only helps if every line carries one: even test invoice 01.01a from KoSIT’s XRechnung test suite draws the notice, because its "Porto + Versandkosten" line has no period.

What the validator checks

The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.

UBL
cac:Delivery/cbc:ActualDeliveryDate or cac:InvoicePeriod or (every $line in (cac:InvoiceLine | cac:CreditNoteLine) satisfies $line/cac:InvoicePeriod)
CII
ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime or ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod or (every $line in ram:IncludedSupplyChainTradeLineItem satisfies $line/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod)

Source: rule set v2026-08-31

How do you fix BR-DE-TMP-32?

For a single delivery, set BT-72: cac:Delivery/cbc:ActualDeliveryDate in UBL, ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime with a udt:DateTimeString in format="102" in CII. For a service over a period, use BG-14 with start and end — cac:InvoicePeriod with cbc:StartDate and cbc:EndDate in UBL, ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod with ram:StartDateTime and ram:EndDateTime in CII. If lines already carry periods of their own, those must lie within BG-14, or PEPPOL-EN16931-R110 and PEPPOL-EN16931-R111 reject the invoice; an empty group does clear the notice, but fails BR-CO-19.

In the XML

A UBL fragment. The CII path is named above — same change, different element names.

Fails
<cbc:Note>Leistungszeitraum: September 2026</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>04011000-12345-03</cbc:BuyerReference>
Fixed
<cbc:Note>Leistungszeitraum: September 2026</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>04011000-12345-03</cbc:BuyerReference>
<cac:InvoicePeriod>
  <cbc:StartDate>2026-09-01</cbc:StartDate>
  <cbc:EndDate>2026-09-30</cbc:EndDate>
</cac:InvoicePeriod>

Related rules

NormAPI provides technical validation, not tax or legal advice.