Konto
Polski

PEPPOL-EN16931-R046: Cena netto pozycji nie równa się cenie brutto minus rabat od ceny

Reguła Peppol BIS Billing 3.0 · Błąd · UBL, CII

StandardPeppol BIS Billing 3.0 (OpenPeppol)WagaBłąd: faktura zostaje odrzuconaSkładniaUBL, CIIDotyczyFaktury i noty kredytowe przesyłane siecią Peppol (UBL) oraz, ponieważ XRechnung zawiera reguły Peppol, każda XRechnung.

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:AllowanceCharge

Test (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:GrossPriceProductTradePrice

Test (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.

Sprawdź swoją fakturę →

To samo sprawdzenie przez API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Powiązane reguły

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.