Install
openclaw skills install @vestafolio/vestafolio-micro-entrepriseCompare French micro-entreprise vs régime réel and versement libératoire with actual Vestafolio API calls. Use for consulting or freelance regime choices with projected revenue and expenses, "quel régime adopter", "micro ou réel", cotisations, ACRE, and VL eligibility. Ask missing simulator inputs before recommending; do not answer from remembered tax rules.
openclaw skills install @vestafolio/vestafolio-micro-entrepriseFor 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.
Computes cotisations sociales, impôt and net income of a micro-entreprise under the versement libératoire (VL) and under the barème progressif, and, when real professional expenses are provided, compares with the régime réel, with a recommendation. The numbers come from the API; the rates quoted below are the ones coded in the simulator, so you can explain a result, never to compute it yourself.
For « Un ami souhaite lancer son entreprise pour faire du consulting. Il vise 50K€ de chiffre d'affaires et 10k€ de charges réelles. Quel régime adopter ? »:
annualRevenue: 50000 and chargesReelles: 10000; never replace
supplied expenses with the example's or schema's default.Example opening in French: « Je retiens 50 000 € de CA et 10 000 € de charges annuelles. Pour comparer les régimes, pouvez-vous préciser si ce conseil relève bien des BNC et s'il dépend de la CIPAV, puis sa date de création et son éventuel bénéfice de l'ACRE ? Il me faudra aussi sa TMI (ou les revenus et la composition de son foyer), ses parts fiscales et son RFR N-2. »
The Vestafolio simulator asks these questions, in this order, before it computes anything. Do the same: collect or confirm each answer (in French, with the simulator's wording), skip a question when its condition is not met, and never silently assume a default for a question marked (gate). If the user already gave an answer, do not ask again.
annualRevenue (euros encaissés dans
l'année). Seuils micro : 83 600 € (BNC et services BIC), 203 100 € (vente
de marchandises).activityType : « Profession libérale (BNC) »
= bnc (activités intellectuelles, conseil, expertise) ; « Prestations de
services (BIC) » = services (services artisanaux et commerciaux) ;
« Vente de marchandises » = commerce (achat-revente, fabrication-vente).bnc — « Êtes-vous affilié à la CIPAV ? » (gate) →
isCipavAffiliated. Simulator helper: « Oui : 23,4% de cotisations.
Non : 25,8%. » The simulator defaults to Oui, so ask rather than assume;
the answer is ignored for services and commerce.chargesReelles. Optional: the réel scenario is only computed when it is
0. Examples the simulator gives — BNC : « Logiciel, matériel informatique, formation, assurance RC Pro, coworking » ; services : « Outillage, véhicule, fournitures, local, formation » ; commerce : « Stock, transport, emballage, local commercial ». Ask whenever the user mentions expenses or wants a micro vs réel verdict.
isFirstYear.
hasACRE
(« Aide aux Créateurs et Repreneurs d'Entreprise : application de taux
réduits de cotisations sociales la première année »). If Oui: « Création
avant le 1er juillet 2026 » → acreCreatedBeforeJuly2026 (« Exonération
ACRE de 50 % (au lieu de 25 % depuis juillet 2026) »). Then « Mois
d'activité cette année » → monthsOfActivity (1 à 12 ; « Le seuil micro
est proratisé l'année de création »). Send previousYearAboveThreshold
and twoYearsAgoAboveThreshold as false only if the user has not supplied
a conflicting history. If they report prior-year overruns and a first
year, ask them to clarify before POSTing.previousYearAboveThreshold (« Le régime micro se perd après deux
dépassements consécutifs (N-1 et N-2) »). Only if Oui: « CA également
au-dessus du seuil en N-2 » → twoYearsAgoAboveThreshold (« Si oui, le
régime micro ne s'applique plus cette année »). Send hasACRE: false
and monthsOfActivity: 12 only for a consistent full-year profile.
If the user explicitly reports ACRE or a shorter activity period,
preserve that information and ask for clarification before POSTing.
Explain that the API models ACRE only in the first year; do not treat
this simulator limitation as proof that the user's situation is wrong.marginalTaxRate, one
of 0, 11, 30, 41, 45.revenuNetImposable = other income + CA × (1 − abattement) (66 % of CA
for BNC, 50 % for services, 29 % for commerce), the family situation,
jointDeclaration true when married, partnerIncome 0 and the number
of children, and use its marginalRate × 100 as marginalTaxRate.fiscalParts (1 célibataire, 2 couple, 2,5 couple
avec un enfant…) and « Revenu fiscal N-2 » → previousYearIncome
(revenu fiscal de référence de l'avant-dernière année). Ask both: the VL
is only open when RFR N-2 ≤ 29 315 € × parts. If the user cannot answer,
say the VL eligibility is unverified instead of assuming the simulator's
25 000 € default.monthsOfActivity (month-level approximation).chargesReelles > 0, or forced when the micro regime is
lost): bénéfice = CA − charges; cotisations TNS = 45 % of the bénéfice for
services, 35 % for BNC and commerce; impôt = (bénéfice − cotisations) ×
TMI, floored at 0.reel). annualSavings = gap
between the best and worst eligible options.recommendationText (French) is « Versement libératoire en micro-BNC/BIC
recommandé », « Micro sans VL en micro-BNC/BIC recommandé », « Le régime
réel peut être plus avantageux. Attention : comptabilité plus complexe et
déclaration 2035. » or, when N-1 and N-2 both overran, « Seuil micro
dépassé les deux années précédentes (N-1 et N-2) : le régime micro ne
s'applique plus cette année, le régime réel est obligatoire. » A sentence
is appended when this year's CA exceeds the (prorated) threshold.Always fetch the canonical input schema first (fields, bounds, defaults):
GET https://www.vestafolio.com/api/tools/v1/micro-entreprise
Then POST the user's parameters (all amounts annual, in euros; rates in percent):
curl --fail-with-body --silent --show-error --max-time 30 -X POST https://www.vestafolio.com/api/tools/v1/micro-entreprise \
-H 'Content-Type: application/json' \
-d '{
"annualRevenue": 50000,
"activityType": "bnc",
"isCipavAffiliated": false,
"isFirstYear": true,
"hasACRE": true,
"acreCreatedBeforeJuly2026": false,
"previousYearAboveThreshold": false,
"twoYearsAgoAboveThreshold": false,
"monthsOfActivity": 12,
"marginalTaxRate": 30,
"fiscalParts": 1,
"previousYearIncome": 25000,
"chargesReelles": 10000
}'
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.
The API also rejects hasACRE: true without isFirstYear: true, and any
N-1/N-2 overrun flag in a first year.
recommendation — "micro_vl", "micro_ir" or "reel". Apply the expense-basis
caveat below before interpreting recommendationText as a personal verdict.vlEligible — RFR N-2 condition; if false, present the
versementLiberatoire block as « Non éligible », as the simulator doesversementLiberatoire, baremeProgressif, and reel
only when charges were provided or the micro regime is lost):
socialCharges, incomeTax, netIncome, effectiveRate, isEligible
(micro regime still applicable), thresholddetails.socialRate (fraction), details.acreReduction (present when ACRE
applies) and details.vlRate — show the user how the rate was built; cfp
is always 0 because the CFP is already inside the ratesannualSavings — net-income gap between the best and worst eligible option;
subject to the same expense-basis limitation when réel is includednetIncome excludes professional expenses, whereas reel.netIncome
includes them. The API's recommendation can therefore favor micro on an
inconsistent basis when chargesReelles is positive. Disclose this limit;
do not relay that ranking as a reliable micro-vs-réel verdict or silently
rewrite the API result. The micro VL-vs-IR comparison uses the same basis.