Vai al contenuto principale

Riferimento

Esporta Markdown

BR-CO-23 Lo sconto di riga richiede un motivo o un codice motivo

Ogni sconto di riga di fattura (BG-27) deve contenere un motivo dello sconto di riga (BT-139) o un codice del motivo (BT-140), o entrambi.

Descrizione del problema

ERRORE

Regola di calcolo e coerenza EN 16931 (BR-CO)

Pipeline interattiva

Fai clic su una fase per vedere cosa controlla, oppure digita l’ID di una regola per trovare la fase che la segnala.

Prova:

BR-CO-23 regola di calcolo EN 16931

Segnalata nella fase 2: Regole EN 16931.

Livello errore: il report raccomanda di rifiutare la fattura.

Fase 2 · Cosa controlla

  • I termini di business essenziali sono presenti (da BR-01 a BR-65).
  • I totali tornano e i campi collegati sono coerenti (BR-CO); codici e decimali sono validi (BR-CL, BR-DEC).
  • Ogni categoria IVA è coerente: S, Z, E, AE, K, G, O, L, M (BR-S, BR-Z, BR-AE, BR-IC …).

Codici di esempio

Correzione tipica

Ricalcola totali e IVA dalle righe e correggi la categoria IVA nei dati di origine.

Un validatore controlla una fattura elettronica per fasi. Prima il file deve essere XML ben formato e conforme allo schema UBL o CII (XSD). Poi si applicano le regole di business della EN 16931: regole di base BR, calcoli BR-CO, liste di codici BR-CL, decimali BR-DEC e regole per categoria IVA come BR-S. Seguono le regole nazionali o di rete selezionate da BT-24: BR-DE per XRechnung, PEPPOL-EN16931 per Peppol BIS Billing. Il report elenca ogni regola violata: un errore significa rifiuto, i soli avvisi significano comunque accettazione. BR-CO-23: regola di calcolo EN 16931, fase «Regole EN 16931». Set di regole: validatore KoSIT 1.6.3 con la configurazione XRechnung del 31 ago 2026 (artefatti EN 16931 1.3.16), Peppol BIS Billing 3.0.21.

Contesto e significato

Questa regola è la controparte a livello di riga di BR-CO-21: ogni sconto di riga (UBL: cac:InvoiceLine/cac:AllowanceCharge con cbc:ChargeIndicator = false) richiede un motivo o un codice motivo. Non si applica allo sconto sul prezzo dell’articolo (cac:Price/cac:AllowanceCharge, BT-147), che non richiede motivo. L’errore nasce spesso quando uno sconto di riga in percentuale viene esportato senza descrizione.

Soluzione

Per ogni sconto di riga, aggiungi un motivo (BT-139) e/o un codice motivo (BT-140): cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode in cac:InvoiceLine/cac:AllowanceCharge in UBL, ram:Reason / ram:ReasonCode in ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge in CII.

Azioni rapide

Esempi validi

  • Sconto di riga con BT-140 = 95 e BT-139 = "Sconto campione"

Esempi non validi

  • Importo di sconto di riga 2,00 senza BT-139 né BT-140

Esempi di codice

XML valido
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Sample discount</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
XML non valido
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">2.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>

Campi interessati

Strumenti di validazione