---
title: "Contribution différentielle sur les hauts revenus (CDHR)"
method: POST
path: "/api/fiscal/v1/calc/cdhr"
tags: ["fiscal"]
---

# Contribution différentielle sur les hauts revenus (CDHR)

`POST /api/fiscal/v1/calc/cdhr`

## Request

- Base URL: `https://app.qotien.fr`
- URL: `https://app.qotien.fr/api/fiscal/v1/calc/cdhr`
- Auth: none declared

CDHR due (art. 224 CGI) : imposition minimale de 20 % du RFR ajusté − imposition effective (IR au barème + PFU 12,8 % sur les revenus financiers + CEHR + majorations 12 500 €/couple et 1 500 €/personne à charge), après décote art. 224 V. DISTINCTE de la CEHR (art. 223 sexies). Version stateless. Montant ADDITIONNEL, dû en plus de l'IR (fiscal_impot_revenu) et de la CEHR (fiscal_cehr), déjà déduits dans son calcul : l'additionner, ne pas le substituer. — palier etude · 0.250000 USD (x402 v2, USDC/Base).

## Request body

- object
  - `revenu_fiscal_reference` number, required: RFR du foyer (€).
  - `parts` number: Parts de quotient familial.
  - `situation` 'Célibataire' | 'Marié(e)' | 'Pacsé(e)' | 'Divorcé(e)' | 'Veuf(ve)': Situation familiale (seuils célib 250 k / couple 500 k, majoration 12 500 € couple).
  - `parent_isole` boolean: Parent isolé (case T, art. 194 II CGI) : célibataire ou divorcé vivant seul avec au moins un enfant à charge. La part du 1er enfant est alors plafonnée à 4 262 € (art. 197 I-2) au lieu de 2 × 1 807 €. Les parts transmises doivent déjà inclure la demi-part case T.
  - `residence_alternee` boolean: Avec parent_isole : enfants UNIQUEMENT en résidence alternée — la demi-part de chacun des deux premiers enfants est plafonnée à 2 131 € (art. 197 I-2 CGI). Les parts transmises doivent inclure les majorations de 0,25 (art. 194 I).
  - `demi_parts_195_abe` number: Demi-parts de l'art. 195-1 a, b ou e CGI (personne vivant seule ayant élevé seule un enfant 5 ans, enfant décédé, enfant adopté) incluses dans les parts : plafonnées à 1 079 € chacune.
  - `demi_parts_invalidite` number: Demi-parts d'invalidité ou d'ancien combattant (art. 195-1 c, d, d bis, f et 195-2 à 6 CGI) incluses dans les parts : plafond de droit commun + réduction de 1 801 € chacune quand le plafonnement joue.
  - `revenus_financiers_pfu` number: Revenus financiers imposés au PFU 12,8 % (dividendes + intérêts) inclus dans le RFR (€) — corrige l'imposition de référence.
  - `nb_personnes_charge` number: Personnes à charge (majoration 1 500 € chacune de l'imposition de référence).
  - `rfr_ajuste` number: RFR ajusté art. 224 II (assiette CDHR) si connu. Absent → = RFR.
  - `impot_reference` number: Imposition effective exacte de la déclaration (€). Absent → reconstruite (IR barème + PFU + CEHR + majorations).

## Response `200`

Résultat sourcé — enveloppe commune (ok/confiance/sources/millesime), jamais un chiffre nu.

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

## Other responses

- `400`: Entrée invalide.
- `402`: Paiement requis (x402 v2, USDC/Base) — 0.250000 USD.
- `429`: Rate limit dépassé.

---

[API](https://skmtc.dev/qotien/apis/qotien-api-fiscale-retraite-sourcee-datee.md) · [All operations](https://skmtc.dev/qotien/apis/qotien-api-fiscale-retraite-sourcee-datee/llms.txt) · [OpenAPI document](https://skmtc.dev/qotien/apis/qotien-api-fiscale-retraite-sourcee-datee/revisions/c130d35543dd?raw)
