Oficjalna treść reguły
[PEPPOL-EN16931-R046] Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.
Tekst normatywny jest w języku angielskim i cytowany bez zmian.
Dlaczego pojawia się ten błąd
Gdy podano cenę brutto (BT-148), cena netto (BT-146) musi być dokładnie równa cenie brutto pomniejszonej o rabat od ceny pozycji (BT-147); nie ma tolerancji. W UBL reguła porównuje cac:Price/cbc:PriceAmount z cac:Price/cac:AllowanceCharge/cbc:BaseAmount minus cbc:Amount; w CII ram:NetPriceProductTradePrice/ram:ChargeAmount z ram:GrossPriceProductTradePrice/ram:ChargeAmount minus ram:AppliedTradeAllowanceCharge/ram:ActualAmount. Błąd pojawia się, gdy rabat jest wyliczany z procentu i zaokrąglany osobno lub gdy ceny netto i brutto mają różną liczbę miejsc po przecinku.
Jak to naprawić
Wzór: PriceAmount = BaseAmount - Amount (UBL) / NetPrice ChargeAmount = GrossPrice ChargeAmount - ActualAmount (CII), porównywane jako dokładne liczby dziesiętne. Najpierw oblicz kwotę rabatu, a następnie wyprowadź z niej cenę netto, stosując tę samą liczbę miejsc po przecinku dla wszystkich trzech wartości (dla cen typowo do czterech). Jeśli nie możesz dokładnie odtworzyć pary cena brutto/rabat, usuń rabat na poziomie ceny i cenę brutto i podaj tylko cenę netto, co zawsze wystarcza.
Przykład (poprawny)
<cac:Price>
<cbc:PriceAmount currencyID="EUR">85.50</cbc:PriceAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:Amount currencyID="EUR">4.50</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">90.00</cbc:BaseAmount>
</cac:AllowanceCharge>
</cac:Price>
Co sprawdza walidator
Sprawdzany element (kontekst):
UBL
cac:Price/cac:AllowanceChargeTest (XPath):
not(cbc:BaseAmount) or xs:decimal(../cbc:PriceAmount) = xs:decimal(cbc:BaseAmount) - xs:decimal(cbc:Amount)CII
rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePriceTest (XPath):
not(ram:ChargeAmount) or xs:decimal(../ram:NetPriceProductTradePrice/ram:ChargeAmount) = xs:decimal(ram:ChargeAmount) - u:decimalOrZero(ram:AppliedTradeAllowanceCharge/ram:ActualAmount[1])
Sprawdź swoją fakturę
Upuść plik XML lub PDF w walidatorze; każda naruszona reguła ma link do swojej strony tutaj. Bezpłatnie, bez konta, plik nie jest zapisywany.
To samo sprawdzenie przez API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validatePowiązane reguły
PEPPOL-EN16931-R001Brak identyfikatora procesu biznesowego (BT-23)PEPPOL-EN16931-R002Najwyżej jedna uwaga na poziomie dokumentu, chyba że nabywca i sprzedawca…PEPPOL-EN16931-R003Brak referencji nabywcy i numeru zamówieniaPEPPOL-EN16931-R004Identyfikator specyfikacji nie jest identyfikatorem Peppol BIS 3.0PEPPOL-EN16931-R005Waluta rozliczenia VAT jest taka sama jak waluta fakturyPEPPOL-EN16931-R006Dozwolony tylko jeden fakturowany obiekt na poziomie dokumentuPEPPOL-EN16931-R007Identyfikator procesu biznesowego ma nieprawidłowy formatPEPPOL-EN16931-R008Dokument zawiera puste elementy
Najczęstsze pytania
Co oznacza PEPPOL-EN16931-R046?
PEPPOL-EN16931-R046 to reguła peppol bis billing 3.0: Item net price MUST equal (Gross price - Allowance amount) when gross price is provided.
Czy moja faktura zostanie odrzucona z powodu PEPPOL-EN16931-R046?
Tak. PEPPOL-EN16931-R046 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.
Jakich formatów dotyczy PEPPOL-EN16931-R046?
Faktury i noty kredytowe przesyłane siecią Peppol (UBL) oraz, ponieważ XRechnung zawiera reguły Peppol, każda XRechnung. Składnia: UBL i CII.
Źródło: Peppol BIS Billing 3.0.20 (November 2025). Katalog wygenerowany z oficjalnych zestawów reguł dnia 2026-10-15.