BR-S-05: Categoria S are o cotă TVA nulă
Categoria S are o cotă TVA nulă — cauză, câmp XML, corecție și probe complete.
Ce înseamnă și cum corectezi
Categoria S indică taxarea standard în modelul facturii. Pentru o linie astfel clasificată, procentul de TVA din BT-152 trebuie să fie mai mare decât zero. Testul păstrează categoria S și modifică numai Percent din ClassifiedTaxCategory, de la 21 la 0. Acesta nu este un exemplu de scutire validă: clasificarea și procentul au fost lăsate intenționat în contradicție. În varianta bună, procentul 21 este coerent cu scenariul fictiv și cu sumarul de TVA. Pentru operațiunea reală, stabilește întâi categoria fiscală și cota aplicabilă, apoi completează ambele câmpuri împreună cu defalcarea corespunzătoare. Nu înlocui automat orice zero prin valoarea din exemplu. Unele operațiuni folosesc categorii diferite și pot cere motive de scutire ori identificatori suplimentari. Nici existența unei cote pozitive nu dovedește că aceasta este permisă pentru articolul facturat. Verifică dacă programul sursă a confundat un câmp necompletat cu o valoare numerică zero. Compară și categoria S din TaxSubtotal, deoarece schimbarea procentului unei linii poate produce erori suplimentare de bază impozabilă. Raportul oferă calea către linia afectată, nu o recomandare de tratament fiscal. După corectarea mapării, regenerează XML și verifică din nou întregul document, inclusiv totalurile de TVA.
Câmpul și condiția din sursă
Mutația pentru BR-S-05 vizează calea /*/cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent.
[
{
"file": "expanded.sch (generated from original ANAF includes)",
"kind": "assert",
"context": "cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] | cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']",
"test": "(cbc:Percent) > 0",
"message": "[BR-S-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Standard rated\" the Invoiced item VAT rate (BT-152) shall be greater than zero."
}
]Fragment greșit
<cbc:Percent xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">0</cbc:Percent>Fragment corectat
<cbc:Percent xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">21</cbc:Percent>Reproducere cu motorul fixat
Fișierul br-s-05-bad.xml nu trece verificarea și produce 2 diagnostice de eroare în această probă. Perechea corectată trece etapele XSD și regulile de afaceri din pachetul ANAF. Câmpul modificat este cel indicat mai sus; restul datelor fictive sunt păstrate.
XML greșit complet · XML corectat complet
[
{
"code": "BR-S-05",
"message": "[BR-S-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is \"Standard rated\" the Invoiced item VAT rate (BT-152) shall be greater than zero.",
"path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]/*:InvoiceLine[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'][1]/*:Item[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'][1]/*:ClassifiedTaxCategory[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2'][1]",
"svrl_kind": "failed-assert"
}
]Alte mesaje în aceeași probă
În acest test BR-S-05 apare împreună cu BR-S-08.
Aceste rezultate descriu facturile sintetice publicate, nu frecvența erorilor din facturile vizitatorilor.
Verifică propriul XML · Înapoi la index · Surse, metodă și limite