BG-23VAT breakdownBT-116VAT category taxable amountBT-117VAT category tax amountBT-118VAT category codeBT-119VAT category rate
Oficjalna treść reguły
[BR-S-09] The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
Tekst normatywny jest w języku angielskim i cytowany bez zmian.
Dlaczego pojawia się ten błąd
W grupie podziału ze stawką podstawową (kategoria S) kwota VAT (BT-117) musi być równa podstawie opodatkowania (BT-116) pomnożonej przez stawkę (BT-119); schematron dopuszcza odchylenie mniejsze niż 1.00, aby uwzględnić zaokrąglenia na poziomie pozycji. Reguła odczytuje cac:TaxSubtotal/cbc:TaxAmount, cbc:TaxableAmount i cac:TaxCategory/cbc:Percent (UBL) lub ram:CalculatedAmount, ram:BasisAmount i ram:RateApplicablePercent (CII). Błąd występuje, gdy stawkę podano jako 0.19, gdy podatek obliczono od innej podstawy niż zapisana lub gdy kwotę skopiowano z PDF z innym zaokrągleniem.
Jak to naprawić
Wzór: BT-117 = round(BT-116 x BT-119 / 100, 2), ze stawką jako liczbą procentową (19, 7). Obliczaj podatek od dokładnie tej wartości cbc:TaxableAmount / ram:BasisAmount, która została zapisana w XML. Jeśli system oblicza VAT dla każdej pozycji i je sumuje, wynik mieści się w tolerancji, ale sumy nadal muszą być zgodne z BR-CO-14 i BR-CO-15. Zachowaj jedno podsumowanie cząstkowe na stawkę.
Przykład (poprawny)
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">19.00</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>
Co sprawdza walidator
Sprawdzany element (kontekst):
UBL
/*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']Test (XPath):
(abs(xs:decimal(../cbc:TaxAmount)) - 1 < round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)) * 10 * 10) div 100 ) and (abs(xs:decimal(../cbc:TaxAmount)) + 1 > round((abs(xs:decimal(../cbc:TaxableAmount)) * (xs:decimal(cbc:Percent) div 100)) * 10 * 10) div 100 )CII
//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.='S']Test (XPath):
(abs(xs:decimal(../ram:CalculatedAmount)) - 1 < round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 > round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )
Popraw automatycznie
Ten błąd można poprawić automatycznie: po potwierdzeniu walidator przeliczy sumy i VAT z kwot pozycji.
To samo sprawdzenie przez API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validatePowiązane reguły
BR-AF-09Kwota podatku w zestawieniu VAT z kategorią „IGIC”…BR-AG-09Kwota podatku w zestawieniu VAT z kategorią „IPSI”…BR-S-08Podstawa stawki podstawowej (BT-116) niezgodna z pozycjamiBR-AF-08Dla każdej odrębnej stawki VAT w kategorii „IGIC”,…BR-AG-08Dla każdej odrębnej stawki VAT w kategorii „IPSI”,…BR-AE-08W zestawieniu VAT z kategorią „Odwrotne obciążenie”…BR-AE-09Kwota podatku w zestawieniu VAT z kategorią „Odwrotne obciążenie”…BR-CO-17Kwota VAT kategorii (BT-117) nie równa się podstawie razy stawka
Najczęstsze pytania
Co oznacza BR-S-09?
BR-S-09 to reguła podstawowa en 16931: The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).
Czy moja faktura zostanie odrzucona z powodu BR-S-09?
Tak. BR-S-09 ma status „krytyczny”; walidatory (KSeF, punkty dostępowe Peppol, KoSIT) odrzucają fakturę do czasu poprawienia błędu.
Jakich formatów dotyczy BR-S-09?
Każda faktura EN 16931: XRechnung, ZUGFeRD 2.x / Factur-X (profile EN 16931, EXTENDED, XRECHNUNG), Peppol BIS Billing 3.0 oraz krajowe CIUS. Składnia: UBL i CII.
Źródło: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Katalog wygenerowany z oficjalnych zestawów reguł dnia 2026-10-15.