Skip to content

Calcolo dei valori e arrotondamento decimale

L’Agenzia delle Entrate richiede l’inserimento di unit.quantity, unit.price, vat.type/code/percentage e value.discount per calcolare gli altri valori. Per questi campi sono consentite solo 2 cifre decimali. 

**Livello di riga (entry) **

vat.amount e vat.inclusive vengono arrotondati all’ottava cifra decimale.  

value.base e vat.exclusive non sono mappati al portale AdE, ma si consiglia di calcolarli in modo coerente con la logica descritta sopra per garantire l’accuratezza del calcolo di vat.amount

Livello totali documento

total_vat.amount: il valore fornito tramite SIGN IT lite viene ricalcolato e sovrascritto dal portale dell’Agenzia delle Entrate come somma degli importi IVA a livello delle singole entries. Tale valore viene arrotondato dall’AdE (in background) all’ottava cifra decimale.  

payments[].amount, payments[].discount e total_vat.inclusive sono arrotondati a 2 cifre decimali.  Il valore fornito tramite SIGN IT lite per total_vat.inclusive viene ignorato dal portale AdE, in quanto calcolato direttamente dall’Agenzia delle Entrate sulla base delle singole entries.  

total_vat.exclusive: il valore fornito tramite SIGN IT lite viene ignorato dal portale AdE, in quanto calcolato direttamente dall’Agenzia delle Entrate sulla base delle singole entries.

| Campo API | Definizione | Formula |

| value.base | Importo totale della riga (IVA esclusa) **prima degli sconti ** |

(unit.price × unit.quantity) ÷ (1 + (vat.percentage ÷ 100))

Nota: unit.price è IVA inclusa 

|

| vat.inclusive | Importo totale della riga (IVA inclusa) dopo gli sconti, se applicabili  |

(unit.price x unit.quantity)  - value.discount

Nota: unit.price è IVA inclusa

|

|

vat.exclusive   | Importo totale della riga (IVA esclusa) dopo gli sconti, se applicabili  |

vat.inclusive ÷ (1 + (vat.percentage ÷ 100))    |

| vat.amount | Importo IVA  | vat.inclusive - vat.exclusive |

Seguendo queste linee guida si evitano: 

  • Avvisi di validazione - WARNING "Validation checks failed.. Reasons: Received total VAT amount XXX is not equal to Tax Agency computed total VAT amount XXX"  

  • Errori di trasmissione - ERROR "Validation checks failed.. Reasons: La somma delle tipologie di pagamento non risulta uguale al Totale complessivo"  

Esempio di payload

{
"content": {
"type": "TRANSACTION",
"record": {
"id": "{{recordIntentionIdA}}"
},
"operation": {
"type": "RECEIPT",
"document": {
"number": "INV-12346",
"total_vat": {
"amount": "1.15104322",
"exclusive": "9.19895678",
"inclusive": "10.35"
}
},
"entries": [
{
"type": "SALE",
"details": {
"concept": "GOOD"
},
"data": {
"type": "ITEM",
"text": "Prod A",
"unit": {
"quantity": "1.00",
"price": "9.00"
},
"value": {
"base": "8.18181818",
"discount": "1.00"
},
"vat": {
"type": "VAT_RATE",
"code": "REDUCED_1",
"percentage": "10.00",
"exclusive": "7.27272727",
"inclusive": "8.00",
"amount": "0.72727273"
}
}
},
{
"type": "SALE",
"details": {
"concept": "GOOD"
},
"data": {
"type": "ITEM",
"text": "Prod B",
"unit": {
"quantity": "2.00",
"price": "1.20"
},
"value": {
"base": "1.96721311",
"discount": "0.05"
},
"vat": {
"type": "VAT_RATE",
"code": "STANDARD",
"percentage": "22.00",
"exclusive": "1.92622951",
"inclusive": "2.35",
"amount": "0.42377049"
}
}
}
],
"customer": {
"type": "EXTERNAL"
},
"payments": [
{
"type": "CASH",
"details": {
"amount": "10.35"
}
}
]
}
}
}

Was this page helpful?