Vai al contenuto principale

Riferimento

Esporta Markdown

PEPPOL-EN16931-R046 Il prezzo netto dell’articolo deve essere pari al prezzo lordo meno lo sconto sul prezzo

In base alla regola Peppol PEPPOL-EN16931-R046, quando una riga di fattura indica un prezzo lordo in BT-148 (cbc:BaseAmount) e uno sconto sul prezzo in BT-147 (cbc:Amount), il prezzo netto in BT-146 (cbc:PriceAmount) deve rispettare l’uguaglianza esatta: prezzo netto = prezzo lordo − sconto sul prezzo. La regola si applica solo se il prezzo lordo è presente e confronta valori decimali esatti senza tolleranza di arrotondamento.

Descrizione del problema

ERRORE

Regola Peppol BIS Billing 3.0 (OpenPeppol)

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:

PEPPOL-EN16931-R046 regola Peppol BIS Billing

Segnalata nella fase 3: Regole nazionali (CIUS).

Livello errore: il report raccomanda di rifiutare la fattura.

Fase 3 · Cosa controlla

  • L’identificativo della specifica in BT-24 seleziona il set di regole, ad esempio XRechnung 3.0 o Peppol BIS Billing 3.0.
  • XRechnung aggiunge le regole tedesche BR-DE: riferimento dell’acquirente (BT-10), contatto del venditore, istruzioni di pagamento.
  • Peppol aggiunge regole PEPPOL-EN16931 e regole per paese. Anche XRechnung applica alcune regole PEPPOL-EN16931.

Codici di esempio

Correzione tipica

Compila nei dati anagrafici i campi richiesti dal set di regole, come la Leitweg-ID in BT-10 o il contatto del venditore.

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. PEPPOL-EN16931-R046: regola Peppol BIS Billing, fase «Regole nazionali (CIUS)». 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

Discrepanze tra prezzo lordo, sconto unitario e prezzo netto attivano PEPPOL-EN16931-R046. Poiché il controllo non ha tolleranza di arrotondamento, fallisce già un prezzo netto arrotondato a 2 decimali quando prezzo lordo e sconto ne hanno 4. L’errore compare anche quando uno sconto viene esportato in cbc:Amount ma il prezzo netto resta uguale al prezzo lordo.

Soluzione

Nel calcolo prezzi dell’ERP calcola il prezzo unitario netto come prezzo unitario lordo meno lo sconto unitario prima dell’esportazione, con la stessa precisione decimale per i tre valori. In UBL 2.1, dentro <cac:Price>, <cbc:PriceAmount> deve essere esattamente uguale a <cac:AllowanceCharge><cbc:BaseAmount> meno <cbc:Amount>. Se non indichi un prezzo lordo, ometti cbc:BaseAmount: in tal caso R046 non viene valutata.

Azioni rapide

Esempi validi

  • Prezzo lordo BT-148 = 100.00 EUR, Sconto prezzo BT-147 = 20.00 EUR, Prezzo netto BT-146 = 80.00 EUR
  • Prezzo lordo BT-148 = 50.00 EUR, Sconto prezzo BT-147 = 5.00 EUR, Prezzo netto BT-146 = 45.00 EUR

Esempi non validi

  • Prezzo lordo 100.00 EUR meno sconto 20.00 EUR esportato con Prezzo netto = 85.00 EUR (Discrepanza di calcolo)
  • Sconto dichiarato di 10.00 EUR ma Prezzo netto uguale al Prezzo lordo senza deduzione

Esempi di codice

XML valido
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">80.00</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>
XML non valido
<cac:Price>
  <cbc:PriceAmount currencyID="EUR">85.00</cbc:PriceAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">20.00</cbc:Amount>
    <cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Campi interessati

Strumenti di validazione