Konto
Polski

PEPPOL-EN16931-R051: currencyID różni się od waluty faktury

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

StandardPeppol BIS Billing 3.0 (OpenPeppol)WagaBłąd: faktura zostaje odrzuconaSkładniaUBLPojęcia biznesowe
  • BT-5 Invoice currency code
  • BT-111 Invoice total VAT amount in accounting currency
DotyczyFaktury i noty kredytowe przesyłane siecią Peppol (UBL) oraz, ponieważ XRechnung zawiera reguły Peppol, każda XRechnung.

Oficjalna treść reguły

[PEPPOL-EN16931-R051] All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).

Tekst normatywny jest w języku angielskim i cytowany bez zmian.

Dlaczego pojawia się ten błąd

W fakturze Peppol UBL każda kwota musi być wyrażona w walucie faktury (BT-5); jedynym wyjątkiem jest łączna kwota VAT w walucie rozliczenia (BT-111). Reguła sprawdza, czy atrybut currencyID każdego cbc:Amount, cbc:BaseAmount, cbc:PriceAmount, cbc:TaxAmount, cbc:TaxableAmount, cbc:LineExtensionAmount i wszystkich kwot w cac:LegalMonetaryTotal jest równy cbc:DocumentCurrencyCode. Uruchamia się, gdy szablon ma na sztywno zapisane currencyID="EUR", a waluta dokumentu jest inna, lub gdy na fakturze w walucie obcej ceny są eksportowane w walucie dostawcy.

Jak to naprawić

Generuj każde currencyID z wartości cbc:DocumentCurrencyCode zamiast wpisywać je na sztywno. W fakturze w walucie obcej przelicz wszystkie ceny i kwoty na tę walutę przed eksportem. Jeśli używasz BT-6, zachowaj dokładnie jeden cac:TaxTotal bez podsumowań cząstkowych w walucie rozliczenia; wszystkie pozostałe kwoty, w tym ceny pozycji, pozostają w walucie dokumentu. Reguła dotyczy wyłącznie UBL.

Przykład (poprawny)

<cbc:DocumentCurrencyCode>SEK</cbc:DocumentCurrencyCode>
...
<cbc:LineExtensionAmount currencyID="SEK">1000.00</cbc:LineExtensionAmount>
<cbc:PriceAmount currencyID="SEK">500.00</cbc:PriceAmount>

Co sprawdza walidator

Sprawdzany element (kontekst):

UBL

cbc:Amount | cbc:BaseAmount | cbc:PriceAmount | cac:TaxTotal[cac:TaxSubtotal]/cbc:TaxAmount | cac:TaxSubtotal/cbc:TaxAmount | cbc:TaxableAmount | cbc:LineExtensionAmount | cbc:TaxExclusiveAmount | cbc:TaxInclusiveAmount | cbc:AllowanceTotalAmount | cbc:ChargeTotalAmount | cbc:PrepaidAmount | cbc:PayableRoundingAmount | cbc:PayableAmount

Test (XPath):

@currencyID = $documentCurrencyCode

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-R051?

PEPPOL-EN16931-R051 to reguła peppol bis billing 3.0: All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).

Czy moja faktura zostanie odrzucona z powodu PEPPOL-EN16931-R051?

Tak. PEPPOL-EN16931-R051 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.

Jakich formatów dotyczy PEPPOL-EN16931-R051?

Faktury i noty kredytowe przesyłane siecią Peppol (UBL) oraz, ponieważ XRechnung zawiera reguły Peppol, każda XRechnung. Składnia: UBL.

Źródło: Peppol BIS Billing 3.0.20 (November 2025). Katalog wygenerowany z oficjalnych zestawów reguł dnia 2026-10-15.