Chargement...
Chargement...
Add the widget to your website or use the property calculations from the REST API in your application.
10 countries · Widget and API · By Tevaxia
Add the provided JavaScript and CSS files to your page. The widget includes its rendering engine; no framework installation is required on your site.
<link rel="stylesheet"
href="https://www.tevaxia.lu/propcalc/propcalc.min.css">
<script src="https://www.tevaxia.lu/propcalc/propcalc.min.js"></script>
<div data-propcalc data-country="lu" data-lang="en"></div>data-countryWidget codes: lu, fr, de, uk, be, es, pt, it, nl, us. Use uk for the United Kingdom.data-langWidget languages: fr, en, de, es, pt, it, nl. The Luxembourgish page uses a French widget example.data-moduleModules: fees, borrowing, rental, cashflow, comparator, prequalify, amortization, buyvsrent, scenarios, stampdutydata-themeVisual theme: light (default) or darkdata-accent-colorValid CSS accent colour (#1a365d, rgb(...), hsl(...))Tevaxia credit displayed
Base URL: https://www.tevaxia.lu/api/v1/propcalc
JSON and CORS. This service does not publish a guaranteed monthly quota. Input rates are decimal ratios (0.035 = 3.5%). Unknown fields and incorrect types are rejected.
| Method | Endpoint |
|---|---|
| POST | /fees |
| POST | /mortgage |
| POST | /yield |
| POST | /cashflow |
| GET | /countries |
France: price includes VAT when applicable. With isNew=true, provide frenchVatOnFullPrice (a new sale subject to VAT on the full price, excluding margin VAT). If true, frenchVatRate is required: 0.055, 0.1 or 0.2. If false, ordinary transfer taxes are modeled. loanGuaranteeCost is a quoted guarantee cost, accepted only with a loan; if absent, it remains unpriced. acquisitionCoverage lists excluded costs: totalFees is a subtotal, not a complete notarial statement.
French rental taxation (/yield): taxYear is 2025 or 2026 (default 2026). The default is reel_foncier, a simplified unfurnished actual-expense scenario. Micro regimes require frenchMicroEligible=true to confirm eligibility and aggregate household/activity receipts, including prior-year micro-BIC conditions. Furnished rental requires frenchNonProfessional=true. micro_bic means long-term rental, micro_bic_tourism classified tourism, and micro_bic_tourism_unclassified unclassified tourism. annualTaxReceipts supplies aggregate taxable receipts, including taxable tenant charges; otherwise modeled rent after vacancy is used. frenchSocialRegime=solidarity_only requires qualifying social-insurance affiliation; standard is the default. The marginal-rate calculation is not a household tax assessment. Activity contributions, loss carryovers and special regimes are excluded.
Italy (/yield): only 21% cedolare_secca for an ordinary residential free-market lease is calculated. italianCedolareEligible=true confirms an eligible individual landlord outside business/professional activity and a valid election for this regime. italianAnnualContractRent is required: gross contractual rent for the ownership share and rental period, without expense deductions. Modeled vacancy reduces economic receipts but does not automatically change this tax base. Negative rental cash income does not cancel the tax. IRPEF, short lets, reduced-rate contracts, unpaid rent and special cadastral cases require a separate assessment.
Portugal (/yield): portugueseCategoryFConfirmed=true confirms ordinary category F rental and tax-eligible paid expenses. portugueseRentalUse is housing or other. portugueseAnnualTaxReceipts and portugueseDeductibleExpenses are required, including zero: modeled economic expenses are not automatically tax deductions. Interest, depreciation, furniture, appliances, decor and AIMI are excluded from deductions. taxYear is 2025 or 2026. Autonomous rates: housing 25%, other rental 28%, for residents and non-residents. For housing in 2026, portugueseModerateRentEligible must explicitly be true or false: true confirms all conditions and monthly-rent limits under EBF article 45-C / DL 97/2026 article 2 to apply 10%. Do not infer eligibility from annual rent after vacancy. More favourable long-duration rates, exemptions and special regimes need a separate assessment. progressive_resident uses the supplied marginal rate, without automatic comparison or household tax assessment.
UK (/fees, country=uk): region accepts ENG, NIR, SCT or WLS; omitted means an explicit ENG assumption. ukAdditionalProperty confirms higher-rate liability independently of isPrimary; ukNonResident qualifies the non-resident SDLT surcharge in England/Northern Ireland. Both default to false. First-buyer relief requires isFirstTime and isPrimary, with every buyer eligible; Wales has no specific first-buyer relief. Only ordinary residential purchases by individuals are modeled, excluding transitional rules, companies, linked transactions and new lease rents. acquisitionCoverage describes the subtotal and excluded fees. /cashflow assumes an additional purchase in England without the non-resident surcharge.
curl -X POST https://www.tevaxia.lu/api/v1/propcalc/fees \
-H "Content-Type: application/json" \
-d '{
"country": "lu",
"price": 700000,
"isNew": false
}'This example calls the API with fetch, checks errors and reads the returned data and assumptions. Estimates depend on the scenario; no numerical result is guaranteed.
const response = await fetch('https://www.tevaxia.lu/api/v1/propcalc/fees', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ country: 'lu', price: 700000, isNew: false }),
});
const result = await response.json();
if (!response.ok || !result.success) {
throw new Error(result.error || 'Calculation failed');
}
console.log(result.data);
console.log(result.assumptions);
console.log(result.acquisitionCoverage);Choose the widget for an embedded interface or the REST API for your own screens.