UBL Invoice — intra-Community supply (VAT category K)
Uma transmissão intracomunitária válida (categoria de IVA K): bens expedidos da Alemanha para um adquirente registado em IVA em França, isentos ao abrigo do artigo 138.º da Diretiva 2006/112/CE. A categoria K exige dois dados que se esquecem: BR-IC-11, uma data de entrega efetiva (BT-72) ou um período de faturação, e BR-IC-12, o país de entrega (BT-80). Sem eles, a fatura não prova que os bens saíram do país.
UBL 2.1 Invoice — Válido
Uma transmissão intracomunitária válida (categoria de IVA K): bens expedidos da Alemanha para um adquirente registado em IVA em França, isentos ao abrigo do artigo 138.º da Diretiva 2006/112/CE. A categoria K exige dois dados que se esquecem: BR-IC-11, uma data de entrega efetiva (BT-72) ou um período de faturação, e BR-IC-12, o país de entrega (BT-80). Sem eles, a fatura não prova que os bens saíram do país.
O que este ficheiro mostra
Uma transmissão intracomunitária válida (categoria de IVA K): bens expedidos da Alemanha para um adquirente registado em IVA em França, isentos ao abrigo do artigo 138.º da Diretiva 2006/112/CE. A categoria K exige dois dados que se esquecem: BR-IC-11, uma data de entrega efetiva (BT-72) ou um período de faturação, e BR-IC-12, o país de entrega (BT-80). Sem eles, a fatura não prova que os bens saíram do país.
| Transações | 1 |
|---|---|
| Total | € 3.000,00 |
Todas as partes, IBAN e montantes abaixo são fictícios. Os IBAN são estruturalmente válidos — passam no mod-97 — mas não correspondem a nenhuma conta real.
Conteúdo do ficheiro
<?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>
Como sabemos que estes resultados se mantêm
Cada ficheiro desta biblioteca passa pelo próprio validador do site em cada build. O resultado esperado indicado acima é verificado por um teste automatizado: se um ficheiro deixasse de corresponder ao que esta página afirma, o build falharia. Duas fixtures herdadas foram reparadas assim antes da publicação: três IBAN falhavam o mod-97 e vários nomes usavam caracteres fora do conjunto SEPA básico.
Fatura UBL (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