<?xml version="1.0" encoding="UTF-8"?>
<!--
  ValidateFin sample file — UBL invoice, Peppol BIS Billing 3.0 (EN 16931).
  Allowances and charges at BOTH levels: a line discount (BG-27), a line charge
  (BG-28), a document-level discount (BG-20) and a document-level charge (BG-21).
  Expected validation result: VALID — 2 lines, 1 820.70 EUR including VAT.

  Line net amounts: 1 200.00 - 100.00 = 1 100.00 and 400.00 + 20.00 = 420.00.
  BT-106 = 1 520.00; BT-107 = 20.00; BT-108 = 30.00; BT-109 = 1 530.00;
  VAT 19 % = 290.70; BT-112 = BT-115 = 1 820.70.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/ubl-invoice-allowance-charge
  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-0412</cbc:ID>
  <cbc:IssueDate>2026-03-02</cbc:IssueDate>
  <cbc:DueDate>2026-04-01</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:Note>Discount and freight charge applied at document level.</cbc:Note>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cbc:BuyerReference>PO-2026-8841</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>rechnung@nordwind-logistik.example</cbc:ElectronicMail>
      </cac:Contact>
    </cac:Party>
  </cac:AccountingSupplierParty>

  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="9930">DE987654321</cbc:EndpointID>
      <cac:PartyName>
        <cbc:Name>Kessler Handel GmbH</cbc:Name>
      </cac:PartyName>
      <cac:PostalAddress>
        <cbc:StreetName>Marktplatz 3</cbc:StreetName>
        <cbc:CityName>Leipzig</cbc:CityName>
        <cbc:PostalZone>04109</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>DE</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>DE987654321</cbc:CompanyID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Kessler Handel GmbH</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>

  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
    <cbc:PaymentID>NWL-2026-0412</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>

  <!-- Document level allowance (BG-20) -->
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Volume discount</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:AllowanceCharge>

  <!-- Document level charge (BG-21) -->
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">30.00</cbc:Amount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:AllowanceCharge>

  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">290.70</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">1530.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">290.70</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>

  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">1520.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">1530.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1820.70</cbc:TaxInclusiveAmount>
    <cbc:AllowanceTotalAmount currencyID="EUR">20.00</cbc:AllowanceTotalAmount>
    <cbc:ChargeTotalAmount currencyID="EUR">30.00</cbc:ChargeTotalAmount>
    <cbc:PayableAmount currencyID="EUR">1820.70</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>

  <!-- Line 1: quantity x price = 1 200.00, minus a 100.00 line discount -->
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">1100.00</cbc:LineExtensionAmount>
    <cac:AllowanceCharge>
      <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
      <cbc:AllowanceChargeReason>Loyalty discount</cbc:AllowanceChargeReason>
      <cbc:Amount currencyID="EUR">100.00</cbc:Amount>
    </cac:AllowanceCharge>
    <cac:Item>
      <cbc:Description>Euro pallet, heat treated (ISPM 15)</cbc:Description>
      <cbc:Name>Euro pallet</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">120.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>

  <!-- Line 2: quantity x price = 400.00, plus a 20.00 line charge -->
  <cac:InvoiceLine>
    <cbc:ID>2</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">5</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">420.00</cbc:LineExtensionAmount>
    <cac:AllowanceCharge>
      <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
      <cbc:AllowanceChargeReason>Packaging</cbc:AllowanceChargeReason>
      <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
    </cac:AllowanceCharge>
    <cac:Item>
      <cbc:Description>Stackable transport crate, 600 x 400 mm</cbc:Description>
      <cbc:Name>Transport crate</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">80.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</Invoice>
