Install
openclaw skills install @vestafolio/vestafolio-lmnp-fiscaliteCompare LMNP furnished-rental taxation between micro-BIC and régime réel with amortization using Vestafolio's simulator API, after asking the simulator's questions (furnished or not, rents, type of meublé, purchase price, notary fees, furniture, works, TMI, annual charges). Use when a user asks "LMNP micro-BIC ou réel", how furnished rental income is taxed in France, about the 50 % / 30 % abattement, meublé de tourisme thresholds, building/furniture amortization, or which LMNP regime saves more tax.
openclaw skills install @vestafolio/vestafolio-lmnp-fiscaliteFor a request within this simulator's scope:
https://www.vestafolio.com, summarize the fields and
values to be sent, and obtain the user's agreement. Existing explicit
approval for this destination and data scope is sufficient; do not ask
again for calls it already covers. Installing or selecting the skill alone
is not approval to transmit personal data. If the user declines, do not
POST; offer the simulator link for manual use without prefilled inputs.execute_code in OpenWebUI). Python can use
urllib.request; in browser-based Pyodide use await pyfetch(...) from
pyodide.http. A Python environment does not need a shell to call the API.ok must be true; read the
calculation from result. Ground the answer in that output, state relevant
assumptions and limits. Offer the simulator link when useful for checking
assumptions or exploring alternatives; respect requests for no links.Writing a code block is not execution. Do not substitute mental arithmetic, remembered tax rules, or the worked example for a tool result. If execution or network access is unavailable, or the API fails, say the calculation could not be completed and provide the simulator link; do not invent its result or recommendation. A schema GET alone is not a completed simulation.
Reply in French whenever the user speaks or writes in French.
Compares the taxation of a location meublée non professionnelle (LMNP) under the micro-BIC (flat abattement) and the régime réel (real charges plus amortization), with the recommended regime, annual and 10-year savings, and a 10-year amortization schedule. The rules below are the ones coded in the simulator; use them to explain, and the API to compute.
The simulator opens with a gate, then one form. Ask or confirm each in French; do not assume a default for a question marked (gate).
annualRent (charges comprises).propertyType: « Meublé classique
(abattement 50%) » = standard, « Meublé tourisme classé (abattement
50%) » = tourisme_classe, « Meublé tourisme non classé (abattement
30%) » = tourisme_non_classe. It sets the micro-BIC threshold: 83 600 €
for the first two, 15 000 € for the last.purchasePrice, « Frais notaire » →
notaryFees, « Mobilier » → furnitureCosts, « Travaux » →
renovationCosts (the amortization bases).marginalTaxRate, one of 0, 11, 30, 41, 45
(estimate it with vestafolio-impot-revenu if unknown).charges: « Intérêts emprunt » loanInterest, « Taxe foncière »
propertyTax, « Copropriété » condoFees, « Assurance PNO »
insurance, « Gestion » managementFees, « Comptable » accounting,
« Entretien » entretien. Ask for each; use 0 when the user has none.reel when micro-BIC is ineligible, otherwise the regime
with the strictly lower total tax (a tie recommends micro-BIC);
annualSavings = absolute tax gap, tenYearSavings = × 10 with constant
figures.Always fetch the canonical input schema first (fields, bounds, defaults):
GET https://www.vestafolio.com/api/tools/v1/lmnp-fiscalite
Then POST the user's parameters (all amounts annual and in euros, TMI in percent):
curl --fail-with-body --silent --show-error --max-time 30 -X POST https://www.vestafolio.com/api/tools/v1/lmnp-fiscalite \
-H 'Content-Type: application/json' \
-d '{
"annualRent": 15000,
"propertyType": "standard",
"purchasePrice": 200000,
"notaryFees": 16000,
"furnitureCosts": 8000,
"renovationCosts": 10000,
"marginalTaxRate": 30,
"charges": {
"loanInterest": 4000,
"propertyTax": 1200,
"condoFees": 1800,
"insurance": 200,
"managementFees": 0,
"accounting": 500,
"entretien": 300
}
}'
Unknown fields are rejected (strict schema) — if you get a validation_error,
re-read the schema from the GET endpoint rather than guessing field names.
recommendation — micro_bic or reel; check microBic.isEligible /
eligibilityReason to say whether the réel was imposedannualSavings and tenYearSavings — lead with these when answering
"which regime"microBic, reel): taxableIncome, incomeTax,
socialContributions, totalTax, netIncome, effectiveRatedetails — abattement and threshold in micro-BIC; charges, per-asset
amortization (buildingAmort, furnitureAmort, renovationAmort),
usedAmort vs carriedAmort in réel (the site shows « X d'amortissements
reportés (revenu déjà à 0) »)amortizationSchedule — 10-year plan (furniture stops after year 7);
a large cumulativeCarried means the réel advantage persists beyond year 10