BR-DE-TMP-32
Informational: the invoice does not state when the goods or services were supplied.
Why it happens
Most accounting exports carry an invoice date but no separate delivery date, so converted invoices commonly trigger this.
How to fix it
Add BT-72 (cac:Delivery/cbc:ActualDeliveryDate in UBL) or an invoicing period. This is information-level only and does not make the invoice invalid, but German receivers expect a Leistungsdatum and some will query an invoice without one.
The official rule
XRechnung, official German wordingEine 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.
Our English rendering: An invoice should state the delivery or performance date using either BT-72 "Actual delivery date", BG-14 "Invoicing period", or BG-26 "Invoice line period" on every line.
Technical detail — where the rule is evaluated and the exact test
| Syntax | Context and assertion |
|---|---|
| UBL | /ubl:Invoice | /cn:CreditNote |
cac:Delivery/cbc:ActualDeliveryDate or cac:InvoicePeriod or (every $line in (cac:InvoiceLine | cac:CreditNoteLine) satisfies $line/cac:InvoicePeriod) | |
| CII | /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction |
ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime or ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod or (every $line in ram:IncludedSupplyChainTradeLineItem satisfies $line/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod) |
Check your own invoice
Paste or drop your UBL or CII file into the free validator. It runs the official EN 16931 ruleset plus the German XRechnung layer and lists every rule that fires, BR-DE-TMP-32 included — no signup, no limit.
Validate an e-invoice freeFixing the data at source instead? The CSV converter builds a compliant invoice from a spreadsheet export.