
{"id":35088,"date":"2026-01-16T19:42:23","date_gmt":"2026-01-16T19:42:23","guid":{"rendered":"https:\/\/lisbonproperty.com\/fr\/?post_type=portugal&#038;p=35088"},"modified":"2026-01-16T19:43:02","modified_gmt":"2026-01-16T19:43:02","slug":"calculateur-de-taxe","status":"publish","type":"portugal","link":"https:\/\/lisbonproperty.com\/fr\/portugal\/calculateur-de-taxe\/","title":{"rendered":"Calculateur de Taxe IMT"},"content":{"rendered":"<h2>Calculateur IMT &#8211; Calculateur de Taxe de Transfert de Propri\u00e9t\u00e9 du Portugal 2026<\/h2>\n    \n    <div class=\"tax-calculator-widget\" style=\"max-width: 600px; margin: 20px auto; padding: 20px; background: #f8f9fa; border-radius: 8px;\">\n        <h3 style=\"margin-top: 0;\">Calculateur de Taxes 2026<\/h3>\n        \n        <form id=\"standalone-tax-form\" style=\"display: flex; flex-direction: column; gap: 15px;\">\n            \n            <!-- Property Price Input -->\n            <div>\n                <label for=\"calc_price\" style=\"display: block; font-weight: 600; margin-bottom: 5px;\">\n                    Prix Demand\u00e9                <\/label>\n                <input type=\"number\" \n                       id=\"calc_price\" \n                       name=\"calc_price\" \n                       placeholder=\"e.g. 250000\"\n                       min=\"0\"\n                       step=\"500000\"\n                       style=\"width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; font-size: 16px;\">\n            <\/div>\n            \n            <!-- Location -->\n            <div>\n                <label for=\"calc_location\" style=\"display: block; font-weight: 600; margin-bottom: 5px;\">\n                    Location:\n                <\/label>\n                <select id=\"calc_location\" \n                        name=\"calc_location\" \n                        style=\"width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px;\">\n                    <option value=\"0\"  selected='selected'>Portugal Continental<\/option>\n                    <option value=\"1\" >Mad\u00e8re\/A\u00e7ores<\/option>\n                <\/select>\n            <\/div>\n            \n            <!-- Property Usage -->\n            <div>\n                <label for=\"calc_usage\" style=\"display: block; font-weight: 600; margin-bottom: 5px;\">\n                    Usage de la Propri\u00e9t\u00e9:                <\/label>\n                <select id=\"calc_usage\" \n                        name=\"calc_usage\"\n                        onchange=\"toggleCalcYouthBonus();\"\n                        style=\"width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px;\">\n                    <option value=\"primary_residence\">R\u00e9sidence Principale (Habita\u00e7\u00e3o Pr\u00f3pria)<\/option>\n                    <option value=\"secondary_residence\">Secondaire\/Location (Habita\u00e7\u00e3o Secund\u00e1ria)<\/option>\n                    <option value=\"touristic\">Exploitation Touristique<\/option>\n                <\/select>\n            <\/div>\n            \n            <!-- Youth Bonus -->\n            <div id=\"calc-youth-section\" style=\"padding: 10px; background: #fff9e6; border: 1px solid #ffc107; border-radius: 4px;\">\n                <label style=\"display: flex; align-items: center; cursor: pointer; margin: 0;\">\n                    <input type=\"checkbox\" \n                           id=\"calc_youth_bonus\" \n                           name=\"calc_youth_bonus\"\n                           style=\"width: 18px; height: 18px; margin-right: 8px; cursor: pointer;\">\n                    <span style=\"font-weight: 600;\">Exclusif pour 35 ans ou moins (Bonus Jeunesse)<\/span>\n                <\/label>\n            <\/div>\n            \n            <!-- Calculate Button -->\n            <button type=\"button\" \n                    onclick=\"calculateStandaloneTax()\"\n                    style=\"padding: 12px 24px; background: #0073aa; color: white; border: none; border-radius: 4px; font-size: 16px; font-weight: 600; cursor: pointer;\">\n                Calculate Taxes\n            <\/button>\n        <\/form>\n        \n        <!-- Results Container -->\n        <div id=\"calc-results\" style=\"margin-top: 20px;\"><\/div>\n    <\/div>\n    \n    <script>\n    function toggleCalcYouthBonus() {\n        const usage = document.getElementById('calc_usage');\n        const youthSection = document.getElementById('calc-youth-section');\n        const checkbox = document.getElementById('calc_youth_bonus');\n        \n        if (usage.value === 'primary_residence') {\n            youthSection.style.background = '#fff9e6';\n            youthSection.style.borderColor = '#ffc107';\n            youthSection.style.opacity = '1';\n            checkbox.disabled = false;\n        } else {\n            youthSection.style.background = '#f5f5f5';\n            youthSection.style.borderColor = '#ddd';\n            youthSection.style.opacity = '0.5';\n            checkbox.disabled = true;\n            checkbox.checked = false;\n        }\n    }\n    \n    function calculateStandaloneTax() {\n        const price = parseFloat(document.getElementById('calc_price').value);\n        const isIsland = document.getElementById('calc_location').value;\n        const usageType = document.getElementById('calc_usage').value;\n        const applyYouthBonus = document.getElementById('calc_youth_bonus').checked;\n        const resultsDiv = document.getElementById('calc-results');\n        \n        if (!price || price <= 0) {\n            resultsDiv.innerHTML = '<div style=\"padding: 15px; background: #f8d7da; color: #721c24; border-radius: 4px;\">Please enter a valid price<\/div>';\n            return;\n        }\n        \n        resultsDiv.innerHTML = '<div style=\"padding: 15px; text-align: center;\">' + taxCalculatorData.TEXT_CALCULATING + '<\/div>';\n        \n        jQuery.ajax({\n            url: taxCalculatorData.ajaxurl,\n            type: 'POST',\n            data: {\n                action: 'calculate_imt_tax',\n                nonce: taxCalculatorData.nonce,\n                price: price,\n                is_island: isIsland,\n                usage_type: usageType,\n                apply_youth_bonus: applyYouthBonus,\n                is_touristic: (usageType === 'touristic') ? '1' : '0',\n                is_rustic: '0',\n                property_type: 'apartment'\n            },\n            success: function(response) {\n                if (response.success) {\n                    displayCalcResults(response.data);\n                } else {\n                    resultsDiv.innerHTML = '<div style=\"padding: 15px; background: #f8d7da; color: #721c24; border-radius: 4px;\">' + taxCalculatorData.TEXT_ERROR_CALCULATING + '<\/div>';\n                }\n            },\n            error: function() {\n                resultsDiv.innerHTML = '<div style=\"padding: 15px; background: #f8d7da; color: #721c24; border-radius: 4px;\">' + taxCalculatorData.TEXT_CONNECTION_ERROR + '<\/div>';\n            }\n        });\n    }\n    \n    function displayCalcResults(data) {\n        let usageText = taxCalculatorData.TEXT_IMT_TAX_FOR;\n        \n        if (data.usage_label === \"youth_bonus\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_YOUTH_BONUS;\n        } else if (data.usage_label === \"youth_not_applicable\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_YOUTH_BONUS_NOT_APPLICABLE;\n        } else if (data.usage_label === \"touristic_flat\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_TOURISTIC_FLAT;\n        } else if (data.usage_label === \"primary_mainland\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_PRIMARY_MAINLAND;\n        } else if (data.usage_label === \"primary_islands\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_PRIMARY_ISLANDS;\n        } else if (data.usage_label === \"secondary_mainland\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_SECONDARY_MAINLAND;\n        } else if (data.usage_label === \"secondary_islands\") {\n            usageText += \" \" + taxCalculatorData.TEXT_SUFFIX_SECONDARY_ISLANDS;\n        }\n        \n        let html = '<table style=\"width: 100%; border-collapse: collapse; background: white; border-radius: 4px; overflow: hidden;\">';\n        html += '<tr style=\"background: #f8f9fa;\"><td style=\"padding: 12px; font-weight: 600; border-bottom: 1px solid #dee2e6;\">' + usageText + '<\/td><td style=\"padding: 12px; text-align: right; border-bottom: 1px solid #dee2e6;\">' + data.imt_tax + ' \u20ac<\/td><\/tr>';\n        html += '<tr><td style=\"padding: 12px; border-bottom: 1px solid #dee2e6;\">' + taxCalculatorData.TEXT_STAMP_DUTY + '<\/td><td style=\"padding: 12px; text-align: right; border-bottom: 1px solid #dee2e6;\">' + data.stamp_duty + ' \u20ac<\/td><\/tr>';\n        \n        if (data.savings) {\n            html += '<tr style=\"background: #d4edda; color: #155724; font-weight: 600;\"><td style=\"padding: 12px;\">' + taxCalculatorData.TEXT_YOUTH_SAVINGS + '<\/td><td style=\"padding: 12px; text-align: right;\">- ' + data.savings + ' \u20ac<\/td><\/tr>';\n        }\n        \n        html += '<tr style=\"background: #e7f3ff; font-weight: 600; font-size: 16px;\"><td style=\"padding: 12px;\">Total<\/td><td style=\"padding: 12px; text-align: right;\">' + data.total_tax + ' \u20ac<\/td><\/tr>';\n        html += '<\/table>';\n        \n        document.getElementById('calc-results').innerHTML = html;\n    }\n    \n    \/\/ Initialize on load\n    document.addEventListener('DOMContentLoaded', toggleCalcYouthBonus);\n    <\/script>\n    \n    \n","protected":false},"featured_media":0,"parent":0,"menu_order":0,"template":"","meta":[],"class_list":["post-35088","portugal","type-portugal","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lisbonproperty.com\/fr\/wp-json\/wp\/v2\/portugal\/35088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lisbonproperty.com\/fr\/wp-json\/wp\/v2\/portugal"}],"about":[{"href":"https:\/\/lisbonproperty.com\/fr\/wp-json\/wp\/v2\/types\/portugal"}],"wp:attachment":[{"href":"https:\/\/lisbonproperty.com\/fr\/wp-json\/wp\/v2\/media?parent=35088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}