Codul regulii este BR-45.
Fiecare grup de detaliere a TVA (BG-23, adică fiecare cac:TaxSubtotal) trebuie să conțină baza de impozitare (BT-116, cbc:TaxableAmount) pe care se aplică cota respectivă. Fără ea, validatorul nu poate verifica aritmetica dintre baza, TVA și totaluri, așa că respinge factura chiar dacă suma finală de plată este corectă. Regula se aplică pentru fiecare cotă în parte: dacă factura are două cote de TVA, sunt două grupuri TaxSubtotal și fiecare are propriul TaxableAmount. Suma bazelor din toate grupurile trebuie să dea totalul fără TVA din LegalMonetaryTotal (BT-109).
În programul de facturare, la construirea fiecărui cac:TaxSubtotal, completează întotdeauna și baza netă a cotei, nu doar TVA-ul și procentul. În XML este elementul cbc:TaxableAmount, cu aceeași monedă ca factura, scris înaintea lui cbc:TaxAmount din același grup.
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
</ubl:Invoice><ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="RON">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
</ubl:Invoice>Greseala asta strica si alte verificari, deci in acelasi raspuns vei gasi si: BR-CO-17, BR-S-08, BR-S-09. Le repari pe toate odata cu asta.
ro16931-ubl-1.0.9. Factura cu fragmentul din stanga a fost respinsa cu exact mesajul de mai sus; cea cu fragmentul din dreapta a trecut fara nicio eroare. Verificarea s-a facut pe 14.09.2026.Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).
$VAT_breakdown
$BR-45
Nu am confirmat din datele primite dacă validatorul acceptă cbc:TaxableAmount fără atributul currencyID; în factura de referință atributul este prezent, așa că l-am păstrat.