🏡 Compravendita Immobiliare & Fiscalità

Calcolatore Costi Notarili & Imposte Prima Casa

Scopri quanta liquidità reale serve sul conto corrente prima del rogito: calcola imposte erariali (prezzo-valore vs IVA 4%), doppio onorario notarile per acquisto e mutuo, provvigione agenzia e spese accessorie a fondo perduto.

⚙️ Dati dell'Operazione D.P.R. 131/1986
€
€

Reperibile nella visura catastale storica. Coefficiente Prima Casa: Rendita × 1,05 × 110 = Rendita × 115,5.

Doppio Atto Notarile
€
Anticipo da versare: 36.000 € Imposta Sostitutiva (0,25%): 360 €
3% + IVA 22%
%
6.588 €

Per gli under 36 con ISEE ≤ 40k è prevista l'esenzione dalle imposte di registro, ipotecaria e catastale.

📊 Verdetto Spese Rogito LIQUIDITÀ MINIMA
Liquidità Minima da Avere sul Conto
47.238 €
Anticipo immobile: 36.000 € + Spese accessorie: 11.238 €
Totale Spese a Fondo Perduto 11.238 € Tasse + Notai + Agenzia
Incidenza sul Prezzo Casa 6,24 % del capitale immobiliare
🏛️ Imposte Erariali allo Stato 1.730 €
Imposta di Registro (2% cat.): 1.270 €
Imposte Ipotecaria e Catastale: 100 € (50+50)
Imposta Sostitutiva Mutuo (0,25%): 360 €
⚖️ Parcella Notarile Stimata (con IVA) 2.920 €
Atto di Compravendita: 1.750 €
Atto di Mutuo Ipotecario: 1.170 €
🏢 Intermediazione Agenzia Immobiliare 6.588 €
Compenso Netto Agenzia (senza IVA): 5.400 €
💡
Calcolo in corso...

Dettaglio e Prospetto Analitico delle Voci di Spesa

Voce di Spesa Base Imponibile Aliquota / Formula Importo Stimato
Imposta di Registro (Prezzo-Valore) Rendita 550 € × 115,5 = 63.525 € 2% (min. 1.000 €) 1.270,50 €
Imposta Ipotecaria Fissa per legge 50,00 € fissa 50,00 €
Imposta Catastale Fissa per legge 50,00 € fissa 50,00 €
Imposta Sostitutiva Mutuo Capitale: 144.000 € 0,25% (trattenuta erogazione) 360,00 €
Onorario Notaio Compravendita Valore immobile scaglione Tariffario medio di mercato + IVA 1.750,00 €
Onorario Notaio Atto Mutuo Importo ipoteca iscritta Tariffario medio di mercato + IVA 1.170,00 €
Provvigione Agenzia Immobiliare Prezzo: 180.000 € 3,00% + IVA 22% 6.588,00 €
TOTALE SPESE ACCESSORIE Liquidità a Fondo Perduto Tutte le voci sopra indicate 11.238,50 €

Domande Frequenti sui Costi d'Acquisto Casa

Introdotto dalla Legge 266/2005 (Finanziaria 2006), il prezzo-valore consente all'acquirente persona fisica di pagare l'imposta di registro del 2% non sul prezzo effettivamente pattuito, bensì sul valore catastale dell'immobile (Rendita catastale rivalutata del 5% e moltiplicata per 110, cioè Rendita × 115,5). Si applica agli acquisti ad uso abitativo tra privati o da imprese non soggette ad IVA.
L'acquisto tramite finanziamento bancario richiede inderogabilmente due contratti pubblici separati: l'atto di compravendita (che trasferisce la proprietà dell'immobile) e l'atto di mutuo ipotecario (con cui la banca eroga la somma e iscrive contestualmente ipoteca di primo grado a garanzia). Ciascun atto comporta visure ipotecarie e catastali, adempimenti erariali e repertoriazione autonoma.
Sì, nel Modello 730 / Redditi Persone Fisiche è possibile detrarre il 19% dei compensi corrisposti agli intermediari immobiliari per l'acquisto dell'unità immobiliare da adibire ad abitazione principale, fino a un limite massimo di spesa di 1.000 € (recupero massimo di 190 €).
Avvertenza Legale e Metodologica: I calcoli forniti hanno scopo puramente informativo e simulativo basato sui parametri fiscali italiani vigenti (D.P.R. 131/1986, D.P.R. 633/1972, D.P.R. 601/1973 e tariffari medi notarili indicativi). Le tariffe notarili possono variare in base alla complessità dell'atto, alle visure ventennali e alle convenzioni territoriali. Prima di assumere impegni contrattuali (proposte d'acquisto o preliminari), richiedere sempre un preventivo analitico scritto al notaio rogante incaricato.
function setHousePrice(val) { document.getElementById('house_price').value = val; document.getElementById('house_price_slider').value = val; if (document.getElementById('has_mutuo').checked) { document.getElementById('mutuo_amount').value = Math.round(val * 0.8); } updatePriceChips(val); const event = new Event('input', { bubbles: true }); document.getElementById('house_price').dispatchEvent(event); } function updatePriceChips(val) { const target = parseFloat(val) || 0; const chips = document.querySelectorAll('.quick-chips-row .chip-btn'); chips.forEach(c => { const raw = parseInt(c.textContent.replace(/\D/g, ''), 10); c.classList.toggle('active', raw === target || raw === Math.round(target / 1000)); }); } document.addEventListener('DOMContentLoaded', () => { // Elementi Input const housePriceInput = document.getElementById('house_price'); const housePriceSlider = document.getElementById('house_price_slider'); const housePriceDisplay = document.getElementById('house_price_display'); const sellerTypeRadios = document.querySelectorAll('input[name="seller_type"]'); const cardSellerPrivato = document.getElementById('card_seller_privato'); const cardSellerCostruttore = document.getElementById('card_seller_costruttore'); const boxRendita = document.getElementById('box_rendita'); const renditaInput = document.getElementById('rendita_catastale'); const valoreCatastalePreview = document.getElementById('valore_catastale_preview'); const hasMutuoCheckbox = document.getElementById('has_mutuo'); const mutuoDetails = document.getElementById('mutuo_details'); const mutuoBadge = document.getElementById('mutuo_badge'); const mutuoAmountInput = document.getElementById('mutuo_amount'); const mutuoAmountDisplay = document.getElementById('mutuo_amount_display'); const anticipoPreview = document.getElementById('anticipo_preview'); const sostitutivaPreview = document.getElementById('sostitutiva_preview'); const hasAgenziaCheckbox = document.getElementById('has_agenzia'); const agenziaDetails = document.getElementById('agenzia_details'); const agenziaBadge = document.getElementById('agenzia_badge'); const agenziaPctInput = document.getElementById('agenzia_pct'); const agenziaTotalPreview = document.getElementById('agenzia_total_preview'); const regimeSelect = document.getElementById('regime_agevolazione'); const under36Note = document.getElementById('under36_note'); // Elementi Output const resCashTotale = document.getElementById('res_cash_totale'); const resCashAnticipo = document.getElementById('res_cash_anticipo'); const resCashSpese = document.getElementById('res_cash_spese'); const resFondoPerduto = document.getElementById('res_fondo_perduto'); const resIncidenzaPct = document.getElementById('res_incidenza_pct'); const resTotTasse = document.getElementById('res_tot_tasse'); const labelImpostaPrincipale = document.getElementById('label_imposta_principale'); const resImpostaPrincipale = document.getElementById('res_imposta_principale'); const resImposteIpoCat = document.getElementById('res_imposte_ipo_cat'); const resSostitutiva = document.getElementById('res_sostitutiva'); const resTotNotaio = document.getElementById('res_tot_notaio'); const resNotaioVendita = document.getElementById('res_notaio_vendita'); const resNotaioMutuo = document.getElementById('res_notaio_mutuo'); const resTotAgenzia = document.getElementById('res_tot_agenzia'); const resAgenziaNetta = document.getElementById('res_agenzia_netta'); const comparisonBox = document.getElementById('comparison_box'); const comparisonText = document.getElementById('comparison_text'); // Tabella const tabTassaNome = document.getElementById('tab_tassa_nome'); const tabTassaBase = document.getElementById('tab_tassa_base'); const tabTassaAliquota = document.getElementById('tab_tassa_aliquota'); const tabTassaValore = document.getElementById('tab_tassa_valore'); const tabIpoRate = document.getElementById('tab_ipo_rate'); const tabIpoVal = document.getElementById('tab_ipo_val'); const tabCatRate = document.getElementById('tab_cat_rate'); const tabCatVal = document.getElementById('tab_cat_val'); const tabSostBase = document.getElementById('tab_sost_base'); const tabSostVal = document.getElementById('tab_sost_val'); const tabNotComp = document.getElementById('tab_not_comp'); const tabNotMut = document.getElementById('tab_not_mut'); const tabAgeBase = document.getElementById('tab_age_base'); const tabAgeRate = document.getElementById('tab_age_rate'); const tabAgeVal = document.getElementById('tab_age_val'); const tabTotaleAccessori = document.getElementById('tab_totale_accessori'); function fmtEur(val) { return Math.round(val).toLocaleString('it-IT') + ' €'; } function fmtEurDec(val) { return val.toLocaleString('it-IT', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ' €'; } function fmtPct(val) { return val.toLocaleString('it-IT', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + ' %'; } // Algoritmo stima notaio compravendita function estimateNotaioVendita(val) { if (val <= 80000) return 1350; if (val <= 140000) return 1550; if (val <= 200000) return 1750; if (val <= 300000) return 2100; if (val <= 450000) return 2500; return 2900; } // Algoritmo stima notaio mutuo function estimateNotaioMutuo(val) { if (val <= 0) return 0; if (val <= 80000) return 950; if (val <= 140000) return 1100; if (val <= 200000) return 1250; if (val <= 300000) return 1450; return 1700; } function updateCalculation() { const price = parseFloat(housePriceInput.value) || 0; housePriceDisplay.textContent = fmtEur(price); const isPrivato = document.querySelector('input[name="seller_type"]:checked').value === 'privato'; // Aggiorna classi grafiche cards venditore if (isPrivato) { cardSellerPrivato.classList.add('active'); cardSellerCostruttore.classList.remove('active'); } else { cardSellerPrivato.classList.remove('active'); cardSellerCostruttore.classList.add('active'); } boxRendita.style.display = isPrivato ? 'block' : 'none'; const rendita = parseFloat(renditaInput.value) || 0; const valoreCatastale = rendita * 1.05 * 110; // rendita * 115.5 valoreCatastalePreview.textContent = 'Base imponibile: ' + fmtEur(Math.round(valoreCatastale)); const hasMutuo = hasMutuoCheckbox.checked; mutuoDetails.style.display = hasMutuo ? 'block' : 'none'; mutuoBadge.textContent = hasMutuo ? 'Doppio Atto Notarile' : 'Atto Unico'; let mutuoAmount = parseFloat(mutuoAmountInput.value) || 0; if (!hasMutuo) mutuoAmount = 0; const ltv = price > 0 ? (mutuoAmount / price) * 100 : 0; mutuoAmountDisplay.textContent = `${fmtEur(mutuoAmount)} (${Math.round(ltv)}% LTV)`; const anticipo = Math.max(0, price - mutuoAmount); anticipoPreview.textContent = fmtEur(anticipo); // Imposta Sostitutiva Prima Casa 0,25% const impostaSostitutiva = hasMutuo ? (mutuoAmount * 0.0025) : 0; sostitutivaPreview.textContent = `0,25% (${fmtEur(Math.round(impostaSostitutiva))})`; // Agenzia const hasAgenzia = hasAgenziaCheckbox.checked; agenziaDetails.style.display = hasAgenzia ? 'grid' : 'none'; const agenziaPct = hasAgenzia ? (parseFloat(agenziaPctInput.value) || 0) : 0; agenziaBadge.textContent = hasAgenzia ? `${fmtPct(agenziaPct)} + IVA` : 'Nessuna agenzia'; const agenziaNetta = hasAgenzia ? (price * (agenziaPct / 100)) : 0; const agenziaIva = agenziaNetta * 0.22; const agenziaTotale = agenziaNetta + agenziaIva; agenziaTotalPreview.textContent = fmtEur(Math.round(agenziaTotale)); // Regime Under 36 const isUnder36 = regimeSelect.value === 'under36'; under36Note.style.color = isUnder36 ? 'var(--contrast-forest)' : 'var(--text-muted)'; // Calcolo Imposte Statali let impostaPrincipale = 0; let impostaIpotecaria = 0; let impostaCatastale = 0; if (isPrivato) { labelImpostaPrincipale.textContent = 'Imposta di Registro (2% cat.):'; // 2% con minimo 1.000 € per legge impostaPrincipale = Math.max(1000, valoreCatastale * 0.02); impostaIpotecaria = 50; impostaCatastale = 50; if (isUnder36) { impostaPrincipale = 0; impostaIpotecaria = 0; impostaCatastale = 0; } } else { labelImpostaPrincipale.textContent = 'IVA Costruttore Prima Casa (4%):'; impostaPrincipale = price * 0.04; impostaIpotecaria = 200; impostaCatastale = 200; if (isUnder36) { impostaIpotecaria = 0; impostaCatastale = 0; } } const totaleImposteStatali = impostaPrincipale + impostaIpotecaria + impostaCatastale + (isPrivato ? 0 : 200) + impostaSostitutiva; // Calcolo Parcelle Notarili const notaioVendita = estimateNotaioVendita(price); const notaioMutuo = hasMutuo ? estimateNotaioMutuo(mutuoAmount) : 0; const totaleNotaio = notaioVendita + notaioMutuo; // Spese Accessorie Totali const totaleSpeseAccessorie = totaleImposteStatali + totaleNotaio + agenziaTotale; const incidenzaSpese = price > 0 ? (totaleSpeseAccessorie / price) * 100 : 0; // Liquidità Minima Necessaria (Anticipo Immobile + Tutte le Spese) const liquiditaMinima = anticipo + totaleSpeseAccessorie; // Aggiorna Output UI resCashTotale.textContent = fmtEur(Math.round(liquiditaMinima)); resCashAnticipo.textContent = fmtEur(anticipo); resCashSpese.textContent = fmtEur(Math.round(totaleSpeseAccessorie)); resFondoPerduto.textContent = fmtEur(Math.round(totaleSpeseAccessorie)); resIncidenzaPct.textContent = fmtPct(incidenzaSpese); resTotTasse.textContent = fmtEur(Math.round(totaleImposteStatali)); resImpostaPrincipale.textContent = fmtEur(Math.round(impostaPrincipale)); resImposteIpoCat.textContent = isPrivato ? `${impostaIpotecaria + impostaCatastale} € (50+50)` : `${impostaIpotecaria + impostaCatastale + 200} € (fisse 200)`; resSostitutiva.textContent = fmtEur(Math.round(impostaSostitutiva)); resTotNotaio.textContent = fmtEur(Math.round(totaleNotaio)); resNotaioVendita.textContent = fmtEur(Math.round(notaioVendita)); resNotaioMutuo.textContent = fmtEur(Math.round(notaioMutuo)); resTotAgenzia.textContent = fmtEur(Math.round(agenziaTotale)); resAgenziaNetta.textContent = fmtEur(Math.round(agenziaNetta)); // Box confronto Privato vs Impresa Costruttrice const tasseSePrivato = Math.max(1000, valoreCatastale * 0.02) + 50 + 50; const tasseSeImpresa = (price * 0.04) + 600; const deltaRisparmio = tasseSeImpresa - tasseSePrivato; if (isPrivato) { comparisonBox.className = 'alert-box info'; comparisonText.innerHTML = `Grazie alla regola del Prezzo-Valore paghi ${fmtEur(Math.round(tasseSePrivato))} di imposte (base catastale di ${fmtEur(valoreCatastale)}), contro ${fmtEur(Math.round(tasseSeImpresa))} richiesti da un costruttore (IVA 4% sul prezzo pieno). Stai risparmiando ben +${fmtEur(Math.round(deltaRisparmio))} di imposte immediate!`; } else { comparisonBox.className = 'alert-box warning'; comparisonText.innerHTML = `Acquistando da costruttore paghi ${fmtEur(Math.round(tasseSeImpresa))} di imposte (IVA 4% sul prezzo pattuito + 600 € imposte fisse). Se acquistassi da un privato pagheresti circa ${fmtEur(Math.round(tasseSePrivato))}: un sovrapprezzo fiscale di +${fmtEur(Math.round(deltaRisparmio))}.`; } // Tabella if (isPrivato) { tabTassaNome.textContent = 'Imposta di Registro (Prezzo-Valore)'; tabTassaBase.textContent = `Rendita ${fmtEur(rendita)} × 115,5 = ${fmtEur(valoreCatastale)}`; tabTassaAliquota.textContent = isUnder36 ? '0% (Agevolazione Under 36)' : '2% (min. 1.000 €)'; tabTassaValore.textContent = fmtEurDec(impostaPrincipale); tabIpoRate.textContent = isUnder36 ? 'Esenzione' : '50,00 € fissa'; tabIpoVal.textContent = fmtEurDec(impostaIpotecaria); tabCatRate.textContent = isUnder36 ? 'Esenzione' : '50,00 € fissa'; tabCatVal.textContent = fmtEurDec(impostaCatastale); } else { tabTassaNome.textContent = 'IVA Costruttore Prima Casa'; tabTassaBase.textContent = `Prezzo Reale: ${fmtEur(price)}`; tabTassaAliquota.textContent = '4% (con eventuale credito U36)'; tabTassaValore.textContent = fmtEurDec(impostaPrincipale); tabIpoRate.textContent = '200,00 € fissa'; tabIpoVal.textContent = '200,00 €'; tabCatRate.textContent = '200,00 € fissa'; tabCatVal.textContent = '200,00 €'; } tabSostBase.textContent = `Capitale Mutuo: ${fmtEur(mutuoAmount)}`; tabSostVal.textContent = fmtEurDec(impostaSostitutiva); tabNotComp.textContent = fmtEurDec(notaioVendita); tabNotMut.textContent = fmtEurDec(notaioMutuo); tabAgeBase.textContent = `Prezzo: ${fmtEur(price)}`; tabAgeRate.textContent = `${fmtPct(agenziaPct)} + IVA 22%`; tabAgeVal.textContent = fmtEurDec(agenziaTotale); tabTotaleAccessori.textContent = fmtEurDec(totaleSpeseAccessorie); } // Event listeners cardSellerPrivato.addEventListener('click', () => { document.querySelector('input[name="seller_type"][value="privato"]').checked = true; updateCalculation(); }); cardSellerCostruttore.addEventListener('click', () => { document.querySelector('input[name="seller_type"][value="costruttore"]').checked = true; updateCalculation(); }); housePriceInput.addEventListener('input', () => { const val = parseFloat(housePriceInput.value) || 0; housePriceSlider.value = Math.min(600000, Math.max(50000, val)); if (hasMutuoCheckbox.checked) { mutuoAmountInput.value = Math.round(val * 0.8); } updatePriceChips(val); updateCalculation(); }); housePriceSlider.addEventListener('input', () => { const val = parseFloat(housePriceSlider.value) || 0; housePriceInput.value = val; if (hasMutuoCheckbox.checked) { mutuoAmountInput.value = Math.round(val * 0.8); } updatePriceChips(val); updateCalculation(); }); sellerTypeRadios.forEach(radio => radio.addEventListener('change', updateCalculation)); renditaInput.addEventListener('input', updateCalculation); hasMutuoCheckbox.addEventListener('change', updateCalculation); mutuoAmountInput.addEventListener('input', updateCalculation); hasAgenziaCheckbox.addEventListener('change', updateCalculation); agenziaPctInput.addEventListener('input', updateCalculation); regimeSelect.addEventListener('change', updateCalculation); // Calcolo iniziale updateCalculation(); });