Perché serve una matrice
In Business Central l’IVA non si calcola con un singolo campo “aliquota” sul documento, ma dall’incrocio di due dimensioni. Il VAT Business Posting Group rappresenta il chi (la controparte): lo assegni all’anagrafica Customer/Vendor e distingue clienti nazionali, UE, extra-UE, split payment, ecc. Il VAT Product Posting Group rappresenta il cosa (item, resource o G/L account): distingue aliquota ordinaria, ridotta, esente, non imponibile.
La combinazione dei due valori è una riga della tabella VAT Posting Setup, che è la vera “matrice”. Ogni riga definisce l’aliquota (VAT %), il VAT Calculation Type e soprattutto i conti di contabilizzazione (Sales VAT Account, Purchase VAT Account e, dove serve, Reverse Chg. VAT Acc.). Regola pratica: se in una transazione manca la riga corrispondente all’incrocio, il posting fallisce. Non è quindi opzionale popolare l’intera matrice degli incroci realmente usati.
VAT Calculation Type
Il campo determina come BC tratta l’IVA per quell’incrocio:
- Normal VAT — caso standard: l’IVA è calcolata sull’imponibile con l’aliquota indicata. È lo scenario da scegliere nella grande maggioranza delle righe.
- Full VAT — l’intero importo della riga è IVA, con imponibile zero. Serve per casi come una fattura del solo importo IVA (es. bolla doganale/import VAT). Va usato solo su appositi conti G/L a cui si assegna quel Product Posting Group, mai su articoli di magazzino.
- Reverse Charge VAT — inversione contabile (acquisti UE, subappalto, ecc.): l’IVA non è pagata al fornitore ma auto-liquidata dal compratore. BC registra contemporaneamente IVA a debito e a credito usando il
Reverse Chg. VAT Acc.. Effetto tipicamente neutro a livello di cassa ma tracciato ai fini della dichiarazione. - Sales Tax — logica US/tax jurisdiction, alternativa al modello VAT europeo. In uno scenario italiano/EU non si usa: è una trappola d’esame se compare tra le opzioni.
Unrealized VAT
L’Unrealized VAT (IVA per cassa / esigibilità differita) posticipa la competenza dell’IVA dal momento della fattura al momento dell’incasso o pagamento. Si abilita in General Ledger Setup e si configura sulla riga di VAT Posting Setup impostando Unrealized VAT Type (Percentage, First, Last, First (Fully Paid), Last (Fully Paid)) e i conti “unrealized” separati (Sales VAT Unreal. Account, Purch. VAT Unreal. Account). Finché la fattura non è saldata l’IVA resta su un conto transitorio; con il pagamento BC la “realizza” girandola sul conto IVA definitivo. È lo scenario corretto per regimi di IVA per cassa.
VAT Clauses
Una VAT Clause è il testo di legge (es. “operazione non imponibile art. 8”, “reverse charge art. 17”) che deve comparire sui documenti stampati per esenzioni e non imponibilità. Si definisce in una tabella dedicata e si aggancia alla riga di VAT Posting Setup, così ogni fattura con quell’incrocio riporta automaticamente la dicitura. È l’elemento che collega il setup contabile al VAT reporting e alla stampa conforme, senza dover scrivere note a mano.
L’allineamento dei posting group sui documenti
Su ogni riga di documento convivono due famiglie di posting group: la General Posting Setup (Gen. Bus. + Gen. Prod. Posting Group), che pilota conti ricavi/costi, COGS e inventory adjustment, e la VAT Posting Setup (VAT Bus. + VAT Prod. Posting Group), che pilota IVA e imponibile. Devono essere coerenti tra loro: se un cliente estero ha Gen. Bus. Posting Group “EU” ma per errore un VAT Bus. Posting Group “NAZIONALE”, oppure un item ha Gen. Prod. e VAT Prod. disallineati, ottieni aliquota errata, conti IVA sbagliati o l’errore bloccante “does not exist” perché l’incrocio non è mappato. Best practice: definire i default sulle anagrafiche e mantenere una corrispondenza 1:1 tra le due dimensioni.
Trappole tipiche d’esame
- Fattura del solo import VAT (dogana) → Full VAT su un conto G/L dedicato, mai Normal VAT su un articolo.
- Acquisto intracomunitario UE → Reverse Charge VAT, non Normal, con il
Reverse Chg. VAT Acc.valorizzato; senza quel conto la registrazione non chiude. - Regime IVA per cassa → Unrealized VAT (abilitato in General Ledger Setup + conti unrealized), non un semplice cambio di aliquota.
- Posting fallisce con “VAT Posting Setup does not exist” → manca la riga per quell’incrocio VAT Bus. × VAT Prod., oppure i posting group sul documento sono disallineati: correggi la matrice o i default sull’anagrafica.
- Dicitura di non imponibilità sulla stampa → VAT Clause agganciata alla riga di setup, non testo digitato manualmente sul documento.