UBL Invoice — intra-Community supply (VAT category K)
A valid intra-Community supply (VAT category K): goods dispatched from Germany to a VAT-registered buyer in France, zero-rated under Article 138 of Council Directive 2006/112/EC. Category K asks for two things people forget — BR-IC-11: an actual delivery date (BT-72) or an invoicing period, and BR-IC-12: the deliver-to country (BT-80). Without them, the invoice cannot prove the goods left the country.
UBL 2.1 Invoice — Valid
A valid intra-Community supply (VAT category K): goods dispatched from Germany to a VAT-registered buyer in France, zero-rated under Article 138 of Council Directive 2006/112/EC. Category K asks for two things people forget — BR-IC-11: an actual delivery date (BT-72) or an invoicing period, and BR-IC-12: the deliver-to country (BT-80). Without them, the invoice cannot prove the goods left the country.
What this file shows
A valid intra-Community supply (VAT category K): goods dispatched from Germany to a VAT-registered buyer in France, zero-rated under Article 138 of Council Directive 2006/112/EC. Category K asks for two things people forget — BR-IC-11: an actual delivery date (BT-72) or an invoicing period, and BR-IC-12: the deliver-to country (BT-80). Without them, the invoice cannot prove the goods left the country.
| Transactions | 1 |
|---|---|
| Total | €3,000.00 |
Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.
File content
<?xml version="1.0" encoding="UTF-8"?>
<!--
ValidateFin sample file — UBL invoice, Peppol BIS Billing 3.0 (EN 16931).
INTRA-COMMUNITY SUPPLY (VAT category K): goods dispatched from Germany to a
VAT-registered buyer in France, zero-rated under Article 138 of Council Directive
2006/112/EC. The three rules people forget: BR-IC-11 (an actual delivery date or an
invoicing period), BR-IC-12 (the deliver-to country) and BR-IC-10 (the exemption
reason). Both VAT identifiers are mandatory (BR-IC-02, BR-IC-03).
Expected validation result: VALID — 1 line, 3 000.00 EUR, VAT 0.00 EUR.
All parties and account numbers are fictitious.
Reference page: https://validatefin.com/en/resources/samples/ubl-invoice-intracommunity
License: CC-BY-4.0
-->
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>NWL-2026-0455</cbc:ID>
<cbc:IssueDate>2026-03-09</cbc:IssueDate>
<cbc:DueDate>2026-04-08</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:Note>Intra-Community supply — exempt under Article 138 of Council Directive 2006/112/EC.</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>PO-2026-9002</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="9930">DE123456789</cbc:EndpointID>
<cac:PartyName>
<cbc:Name>Nordwind Logistik GmbH</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Speicherstrasse 12</cbc:StreetName>
<cbc:CityName>Hamburg</cbc:CityName>
<cbc:PostalZone>20457</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Nordwind Logistik GmbH</cbc:RegistrationName>
<cbc:CompanyID>HRB 98765</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Rechnungsstelle</cbc:Name>
<cbc:Telephone>+49 40 555 0100</cbc:Telephone>
<cbc:ElectronicMail>[email protected]</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="9957">FR40303265045</cbc:EndpointID>
<cac:PartyName>
<cbc:Name>Atlas Consulting SAS</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>18 rue de la Boetie</cbc:StreetName>
<cbc:CityName>Paris</cbc:CityName>
<cbc:PostalZone>75008</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>FR40303265045</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Atlas Consulting SAS</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<!-- BR-IC-11 (BT-72) and BR-IC-12 (BT-80): delivery date and deliver-to country -->
<cac:Delivery>
<cbc:ActualDeliveryDate>2026-03-07</cbc:ActualDeliveryDate>
<cac:DeliveryLocation>
<cac:Address>
<cbc:StreetName>Zone logistique Nord, quai 4</cbc:StreetName>
<cbc:CityName>Lille</cbc:CityName>
<cbc:PostalZone>59000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>FR</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cbc:PaymentID>NWL-2026-0455</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>DE89370400440532013000</cbc:ID>
<cbc:Name>Nordwind Logistik GmbH</cbc:Name>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentTerms>
<cbc:Note>Net 30 days.</cbc:Note>
</cac:PaymentTerms>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">3000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>K</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-EU-IC</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Intra-Community supply</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">3000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">3000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">3000.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">3000.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">4</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">3000.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Description>Insulated shipping container, 1 200 L</cbc:Description>
<cbc:Name>Shipping container</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>K</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">750.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>
How we know these results hold
Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.
UBL invoice (Peppol BIS 3.0)
- UBL Invoice — valid Peppol BIS 3.0
- UBL Credit Note — valid Peppol BIS 3.0
- UBL Invoice — BR-CO-10 violation
- UBL Invoice — malformed seller VAT identifier
- UBL Invoice — allowances and charges, line and document level
- UBL Invoice — reverse charge (VAT category AE)
- UBL Invoice — VAT exempt (category E) with exemption reason
- UBL Invoice — two VAT rates, one breakdown per rate
- UBL Invoice — BR-CO-10, line sum does not equal BT-106
- UBL Invoice — exempt VAT without an exemption reason (BR-E-10) and a wrong exempt base (BR-E-08)
- UBL Invoice — BR-CO-17, VAT amount does not equal base x rate