What BR-IC-11 checks
BR-IC-11 requires that an invoice containing a VAT breakdown (BG-23) with category code K, Intra-community supply, also state when the supply happened: the actual delivery date (BT-72) or the invoicing period (BG-14) must be present. In UBL the date lives at cac:Delivery/cbc:ActualDeliveryDate and the period at cac:InvoicePeriod; in CII they are ram:ActualDeliverySupplyChainEvent and ram:BillingSpecifiedPeriod inside the header trade delivery and settlement.
Layer and formats
The rule fires in the en16931 core layer for every syntax and profile. It is one of two document-level conditions that category K adds on top of the usual VAT package: BR-IC-11 demands the timing, BR-IC-12 demands the destination country. Both trigger on the mere presence of a K breakdown group, so an invoice can fail them even though every amount is arithmetically perfect.
Why it fails in practice
- The ERP maps the category but not the delivery data. The export knows the transaction is intra-community and emits category K with 0%, but the delivery date field of the source order never makes it into the XML.
- Service invoices without a period. A consulting or license invoice has no physical delivery, and nobody thought to emit the billing period instead.
- The date is printed, not encoded. The visible PDF says "Lieferdatum 15.07.2026" while the embedded XML carries no
cbc:ActualDeliveryDate.
How to fix it
Emit the actual delivery date, or an invoicing period for services:
<cac:Delivery>
<cbc:ActualDeliveryDate>2026-07-15</cbc:ActualDeliveryDate>
</cac:Delivery>
<!-- or, for period-based supplies -->
<cac:InvoicePeriod>
<cbc:StartDate>2026-07-01</cbc:StartDate>
<cbc:EndDate>2026-07-31</cbc:EndDate>
</cac:InvoicePeriod>
In an InvoiceXML create request the fields are invoice.delivery.actualDeliveryDate and invoice.invoicingPeriod (with startDate and endDate). Set one of them whenever a line or breakdown uses VAT category K.
The raw rejection vs the InvoiceXML finding
The Schematron report quotes the rule prose:
<svrl:failed-assert id="BR-IC-11" flag="fatal"
location="/*:Invoice[namespace-uri()='...']/cac:TaxTotal[1]/cac:TaxSubtotal[1]">
<svrl:text>[BR-IC-11]-In an Invoice with a VAT breakdown (BG-23) where the
VAT category code (BT-118) is "Intra-community supply" the Actual
delivery date (BT-72) or the Invoicing period (BG-14) shall not be
blank.</svrl:text>
</svrl:failed-assert>
The InvoiceXML finding for the same failure:
{
"rule": "BR-IC-11",
"layer": "en16931",
"line": null,
"message": "An invoice with an Intra-community supply VAT breakdown must state when the supply took place. Add the actual delivery date or an invoicing period.",
"btCodes": ["BT-72", "BG-14"],
"fields": ["delivery.actualDeliveryDate", "invoicingPeriod"],
"raw": "[BR-IC-11] EN16931: In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is \"Intra-community supply\" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank."
}
The message states the either-or fix directly, and fields maps both options to their request paths so a form can highlight the two places one of which needs a value.
Check or generate intra-community invoices
Validate a document in the UBL validator or the XRechnung validator to see the whole category K package at once. Generating via POST /v1/create/ubl or POST /v1/create/facturx validates every document against the full rule set before delivery. The VAT category model is part of EN 16931 explained.
Related rules
- BR-IC-12, the deliver-to country requirement of the same K package
- BR-IC-02 and BR-IC-03, the seller and buyer VAT identifier requirements for intra-community supplies
- BR-IC-05, BR-IC-08 and BR-IC-10, the 0% rate, zero tax amount and exemption reason constraints
- BR-AE-10, the exemption reason requirement of the reverse charge category