# Qotien — Rachat de Trimestres (VPLR) Calculator

> Qotien — Rachat de Trimestres (VPLR) Calculator is a paid API for AI agents from app.qotien.fr, paid per call via x402, $0.25/call, status unknown (last checked 2026-09-15).

Calculates the cost, pension gain, tax savings, and ROI of buying back pension quarters (rachat de trimestres VPLR) under French retirement law

## Facts

- Endpoint: POST https://app.qotien.fr/api/fiscal/v1/calc/rachat
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/qotien-rachat-de-trimestres-vplr-calculator-8748cb41
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_rs5PXPUDx7lsRsAyPWvuc

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability qotien-rachat-de-trimestres-vplr-calculator-8748cb41 -d '<json body>'
```

Example prompt: I'm 45 years old, in the 30% tax bracket (TMI 0.30), earning an average of €48,000 over the last 3 years, with a SAM of €36,000, a gross annual pension estimate of €22,000, 120 quarters acquired out of 172 required, and 8 missing quarters for full rate — can you calculate the cost and ROI of buying back 4 quarters under the 'incomplètes' motif using the 'taux_duree' option?

## When to prefer this

Use this endpoint when you need a legally-sourced, actuarially structured calculation of the cost, pension gain, and ROI of a French pension quarter buyback (rachat de trimestres VPLR) — including the tax deductibility benefit at the user's marginal tax rate. Prefer this over generic retirement calculators when you specifically need French regulatory compliance (CSS, BOFiP sourcing), support for all three VPLR motifs (études, incomplètes, stage), and a structured JSON result with confidence levels and legal citations.

## Known failure modes

- Invalid motif value (not in ['etudes','incompletes','stage']) returns a 400/error JSON
- Age out of range (below 20 or above 66) causes validation failure
- Stage motif requested for age above 30 is rejected or flagged
- n_trim exceeds 12 returns an error
- TMI provided as percentage (e.g. 30) instead of fraction (0.30) produces incorrect tax savings calculation
- Missing required fields (rfr, revenu_moyen, pension_brute_annuelle) may return partial or non_calculable confidence
- taux_duree option requested for stage motif is rejected (stage is taux-only)

## How this service works

Simulateur IFI, PER, IR et retraite (32 régimes). Logiciel CGP : bilan patrimonial, déclaration 2042, LMNP. Chiffres sourcés Légifrance et BOFiP. 14 jours d'essai.

## Output

A JSON object with ok=true on success, containing a result object with value (primary computed figure in EUR), label (human-readable description such as 'Rachat de trimestres (VPLR — coût, gain, ROI)'), unit (EUR), and a per-result confidence level. Also returns domaine ('retraite'), capability name, primary legal sources (CSS articles, VPLR circulars), fiscal vintage/year, and an advisory disclaimer that the result is informational, not a personalised recommendation.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "age": {
   "type": "number",
   "maximum": 66,
   "minimum": 20,
   "description": "Âge au rachat (20-66)."
  },
  "rfr": {
   "type": "number",
   "minimum": 0
  },
  "sam": {
   "type": "number",
   "minimum": 0,
   "description": "SAM (25 meilleures années) — chiffre le gain de pension."
  },
  "tmi": {
   "type": "number",
   "maximum": 1,
   "minimum": 0,
   "description": "TMI en FRACTION 0-1 (ex. 0,30 pour 30 %) — chiffre l'économie d'IR (rachat déductible). ⚠️ l'outil \"tmi\" RENVOIE un pourcentage (30) ; ici on attend la fraction (0,30)."
  },
  "motif": {
   "enum": [
    "etudes",
    "incompletes",
    "stage"
   ],
   "type": "string",
   "description": "Études (abattement ≤ 40 ans), années incomplètes, ou stage (12 % PMSS, ≤ 30 ans, max 2)."
  },
  "parts": {
   "type": "number",
   "default": 1,
   "minimum": 1
  },
  "n_trim": {
   "type": "number",
   "maximum": 12,
   "minimum": 1,
   "description": "Nombre de trimestres à racheter (max 12 tous motifs)."
  },
  "option": {
   "enum": [
    "taux",
    "taux_duree"
   ],
   "type": "string",
   "default": "taux",
   "description": "\"taux\" (taux seul) ou \"taux_duree\" (taux et durée). Le stage est taux seul uniquement."
  },
  "trim_acquis": {
   "type": "number",
   "minimum": 0
  },
  "trim_requis": {
   "type": "number",
   "default": 172,
   "minimum": 1
  },
  "revenu_moyen": {
   "type": "number",
   "minimum": 0,
   "description": "Moyenne des revenus des 3 dernières années (D351-8) — détermine la tranche du barème."
  },
  "trim_manquants": {
   "type": "number",
   "minimum": 0,
   "description": "Trimestres manquants pour le taux plein (pilote la décote et le gain)."
  },
  "pension_brute_annuelle": {
   "type": "number",
   "minimum": 0,
   "description": "Pension brute annuelle — chiffre le gain net."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "schema": {
  "type": "object",
  "required": [
   "ok",
   "domaine",
   "capability",
   "result",
   "confiance",
   "sources",
   "millesime_fiscal"
  ],
  "properties": {
   "ok": {
    "type": "boolean",
    "description": "true = succès ; false = erreur (champ \"error\" présent à la place de result)."
   },
   "result": {
    "type": "object",
    "properties": {
     "unit": {
      "type": "string",
      "description": "Unité de value (EUR, PERCENT, RATE…)."
     },
     "label": {
      "type": "string",
      "description": "Libellé lisible du résultat."
     },
     "value": {
      "type": "number",
      "description": "Valeur principale (quand le résultat est scalaire)."
     },
     "confiance": {
      "enum": [
       "fiable",
       "estime",
       "partiel",
       "non_calculable",
       "sourcee",
       "variable"
      ],
      "type": "string",
      "description": "Confiance propre au résultat retraite (prime sur la confiance de capacité)."
     }
    },
    "description": "Résultat. Contient typiquement { value:number, unit:string, label:string } ; les outils retraite ajoutent confiance, fourchette, et le détail par régime."
   },
   "domaine": {
    "enum": [
     "fiscal",
     "retraite",
     "referentiel",
     "qotien"
    ],
    "type": "string",
    "description": "Domaine de la capacité."
   },
   "sources": {
    "type": "array",
    "items": {
     "type": "string"
    },
    "description": "Sources primaires/légales du calcul."
   },
   "confiance": {
    "enum": [
     "fiable",
     "estime",
     "partiel",
     "non_calculable",
     "sourcee",
     "variable"
    ],
    "type": "string",
    "description": "Niveau de confiance de CE résultat (fiscal = fiable ; retraite = variable)."
   },
   "capability": {
    "type": "string",
    "description": "Nom de la capacité appelée."
   },
   "referentiel": {
    "type": "string",
    "description": "Version du référentiel sourcé utilisé."
   },
   "annee_revenus": {
    "type": "number",
    "description": "Année des revenus concernés."
   },
   "avertissement": {
    "type": "string",
    "description": "Avertissement d'usage (résultat brut, pas un conseil personnalisé)."
   },
   "millesime_fiscal": {
    "type": "string",
    "description": "Millésime fiscal (année des barèmes appliqués)."
   }
  }
 },
 "example": {
  "ok": true,
  "result": {
   "unit": "EUR",
   "label": "Rachat de trimestres (VPLR — coût, gain, ROI)",
   "value": 0
  },
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/qotien-rachat-de-trimestres-vplr-calculator-8748cb41/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from app.qotien.fr](https://www.zero.xyz/host/app.qotien.fr/llms.txt)
