Améliore la documentation de l'API et de la bibliothèque

pull/2286/head
Johan Girod 2022-09-19 18:28:00 +02:00
parent 2f4805825c
commit 877947e82a
21 changed files with 518 additions and 287 deletions

View File

@ -10,21 +10,21 @@ Ce dépôt contient :
[![Statut test](https://github.com/betagouv/mon-entreprise/actions/workflows/test.yaml/badge.svg?branch=master)](https://github.com/betagouv/mon-entreprise/actions/workflows/test.yaml?query=branch%3Amaster++)
[![Gitter chat](https://badges.gitter.im/mon-entreprise/community.png)](https://gitter.im/mon-entreprise/community)
Site développé en partenariat avec l'Urssaf, qui a pour mission d'accompagner des créateurs dentreprise dans le développement de leur activité.
Site développé en partenariat avec lUrssaf, qui a pour mission daccompagner des créateurs dentreprise dans le développement de leur activité.
Il propose notamment des simulateurs de cotisations sociales très complets, basés sur le language déclaratif [publicodes](https://publi.codes). On peut ainsi calculer le coût d'une embauche, un salaire net après impôt, ses revenus d'auto-entrepreneur ou encore ceux d'un dirigeant de SASU ou d'indépendant
Il propose notamment des simulateurs de cotisations sociales très complets, basés sur le language déclaratif [publicodes](https://publi.codes). On peut ainsi calculer le coût dune embauche, un salaire net après impôt, ses revenus dauto-entrepreneur ou encore ceux dun dirigeant de SASU ou dindépendant
> 🧮 [Voir la liste des simulateurs](https://mon-entreprise.urssaf.fr/simulateurs)
Les développeurs ont la possibilité d'intégrer ces simulateurs sur d'autres sites, ou de réutiliser les règles pour effectuer leur propre calculs.
Les développeurs peuvent intégrer ces simulateurs sur dautres sites, ou de réutiliser les règles pour effectuer leur propre calculs.
> 🧰 [Voir les outils à disposition des développeurs](https://mon-entreprise.urssaf.fr/int%C3%A9gration)
Tous les outils proposés sur mon-entreprise sont propulsés par [publicodes](https://publi.codes), un nouveau langage pour les algorithmes d'intérêt public.
Tous les outils proposés sur mon-entreprise sont propulsés par [publicodes](https://publi.codes), un nouveau langage pour les algorithmes dintérêt public.
## Contribuer
Si vous souhaitez contribuer à l'un des deux projets, rendez-vous sur [CONTRIBUTING.md](./CONTRIBUTING.md).
Si vous souhaitez contribuer à lun des deux projets, rendez-vous sur [CONTRIBUTING.md](./CONTRIBUTING.md).
## 🇬🇧 English users
@ -36,6 +36,6 @@ Most of the documentation (including issues and commit message) is written in fr
The website will run well on modern browsers. Internet Explorer is not supported anymore (it should work but with visual glitches and performance issues).
This compatibility is tested thanks to [BrowserStack](http://browserstack.com/)'s free open source program.
This compatibility is tested thanks to [BrowserStack](http://browserstack.com/)s free open source program.
![Logo de Browserstack, notre solution de tests manuels](https://i.imgur.com/dQwLjXA.png)

View File

@ -5,6 +5,7 @@
applicable si: entreprise . SIREN
établissement . localisation:
experimental: oui
icônes: 🌍
description: |
Lorsqu'une entreprise dispose de plusieurs établissements, certaines cotisations sont
@ -54,6 +55,7 @@
- département = 'La Réunion'
établissement . versement mobilité:
experimental: oui
unité: '%'
par défaut: oui
synchronisation:

View File

@ -563,6 +563,7 @@ salarié . cotisations . chômage:
valeur: 4.05%
salarié . cotisations . ATMP:
experimental: oui
titre: Cotisation Accidents du Travail et Maladies Professionnelles
description: Cotisation due au titre des Accidents du Travail et Maladies Professionnelles.
cotisation:

View File

@ -38,7 +38,11 @@ export default function PageHeader({
align-items: flex-start;
`}
>
{titre && <H1>{titre}</H1>}
{titre && (
<>
<H1>{titre}</H1>
</>
)}
<div>{children}</div>
</Grid>

View File

@ -11,3 +11,8 @@ export const Strong = styled.strong`
export const U = styled.u`
text-decoration: underline;
`
export const Code = styled.code`
background-color: #eee;
padding: 0.25rem;
border-radius: 0.25rem;
`

View File

@ -3553,8 +3553,8 @@ dirigeant . rémunération . totale:
question.fr: Quel montant total pensez-vous dégager pour votre rémunération ?
résumé.en: '[automatic] Including dues and contributions'
résumé.fr: Incluant les cotisations et contributions
titre.en: '[automatic] total'
titre.fr: totale
titre.en: '[automatic] Total compensation'
titre.fr: Rémunération totale
déclaration charge sociales:
description.en:
'[automatic] These rules calculate the amounts of social charges
@ -4823,6 +4823,9 @@ entreprise . résultat fiscal . rémunération dirigeant déductible:
déductibles d'impôt.
titre.en: '[automatic] deductible executive compensation'
titre.fr: rémunération dirigeant déductible
entreprise . salariés:
titre.en: '[automatic] employees'
titre.fr: salariés
entreprise . salariés . effectif:
titre.en: '[automatic] workforce'
titre.fr: effectif

View File

@ -1129,77 +1129,63 @@ pages:
cta: See the help
title: How to declare your income to the tax authorities?
développeur:
api: "<0>Use our REST API </0><1><0>API in beta version</0><1>Some breaking
changes are likely to be made in the coming weeks.</1><2>Feel free to give
feedback on its use directly on Github.</2></1><2>If your site or service
requires to make calculations on salaries, for example to pass from gross
salary to net salary, good news: all calculations of contributions and
taxes of my-company are free and usable via our REST API.</2><3><0>Try the
API</0></3><4>How to use this API?</4><5>The my-company api is totally
open and without authentication, it is composed of 3 routes inspired by
the methods of the <1>Publicodes</1> interpreter: <4>/evaluate</4>,
<6>/rules</6> and <9>/rules/:rule</9>. Find more information on our
<12>Swagger UI</12>.<14></14></5><6><0>What is
Publicodes?</0><1>Publicodes is a declarative language developed by
beta.gouv.fr and Urssaf to encode public interest algorithms. All our
calculation rules are implemented in this language.</1><2><0>Learn more
about publicodes</0></2></6><7>Example</7><8>Here is an example of how to
use the different routes, you can explore their code in the
<1>example</1>folder</8><9><0></0></9>"
api: '<0><0>You can reuse the calculations of my-company on your site or service
very easily thanks to our open REST API and without
authentication.</0><1>Access the Swagger</1></0><1>How to perform a
calculation via the API?</1><2>To perform a calculation, you just have to
make a <1>POST</1> on the <4>/evaluate</4> route with the following
parameters:</2><3><0><0>expressions</0>: the name of the rules whose value
you want to calculate</0><1><0>situation</0>: the situation for the
calculation</1></3><4><0>See the example in the Swagger</0></4><5>How to
replicate a calculation of a simulator ?</5><6><0>To replicate a
calculation from a simulator in my-company in the library, here is the
procedure: </0></6><7><0></0><1><0>In the "Rule and situation" section,
you will find the name of the rule and the situation to use as parameters
for calling/evaluate.</0><1></1>You can also find the API request to copy
and paste as a <3>curl</3> call or <5>fetchJavaScript</5>in the "Reuse
this calculation" section.<7></7></1></7><8></8><9>Example</9><10>Here is
an example of how to use the different routes, you can explore their code
in the <1>example</1> folder</10><11><0></0></11>'
bibliothèque: '<0><0>You can reuse the calculations of my-company on your site
or service very easily thanks to the open-source JavaScript library
available on npm.</0></0><1>How to use this library
?</1><2>Installation</2><3><0>npm install --save publicodes
modele-social</0></3><4><0>What does publicodes mean?</0><1>Publicodes is
a declarative language developed by beta.gouv.fr and the Urssaf to encode
algorithms of public interest. <2>Learn more about publicodes</2></1><2>To
run your own calculations, you need to install the package
<2><0>publicodes</0></2> package containing the interpreter, as well as
the <6><0>modele-social</0></6>package, which contains the rules of the
my-company simulators.</2></4><5>Launch the calculation</5><6>All you have
to do is to set the engine with the rules of the `social-modele` package
and to call the `evaluate` function on the rule you want the value of.
Here is an example for the gross/net
calculation</6><7><0></0></7><8>Setting up the calculation</8><9>As you
modele-social</0></3><4>To run your own calculations, you need to install
the package <2><0>publicodes</0></2> package containing the publicodes
interpreter, and the <6><0>modele-social</0></6>package, which contains
the rules of the my-company simulators.</4><5><0>What is publicodes
?</0><1>Publicodes is a declarative language developed by beta.gouv.fr and
the Urssaf to encode algorithms of public interest. It is the language
that powers all the calculations of the mon-entreprise
simulators.</1><2><0>Learn more about publicodes</0></2></5><6>Launch the
calculation</6><7>To launch the calculation, you need to set up the engine
with the rules of the <1>social-model</1> package and to call the
<4>evaluate</4> function with the rule whose value you want to calculate.
Here is an example for the gross / net
calculation</7><8><0></0></8><9>Setting up the calculation</9><10>As you
can see in the previous example, the recipe for a calculation is simple:
input variables (the gross salary), one or more output variables (the net
salary).</9><10>However, the calculation can be parameterized with all the
possibilities allowed in the simulators of my-company!</10><11>All
input variables (gross salary), one or more output variables (net
salary).</10><11>However, the calculation can be parameterized with all
the possibilities allowed in the simulators of my-company!</11><12>All
available rules are listed and explained in the <2>online
documentation</2>. This documentation is auto-generated from the
publicodes rules files, and fed by the current simulation.</11><12>How to
replicate a calculation from a simulator?</12><13>To replicate a
publicodes rules files, and fed by the current simulation.</12><13>How to
replicate a calculation from a simulator?</13><14>To replicate a
calculation from a simulator of my-company in the library, here are the
steps to follow: </13><14><0><0>Choose the simulator according to the
calculation we are interested in</0><1></1>For example the <4>employee
simulator</4> to calculate a net from the gross.</0><1><0>Run a simulation
with the data you wish to reuse</0><1></1>For example, <4>a manager at
3400 € gross with meal vouchers</4>.</1><2>Go to<0>the documentation page
of the data to be calculated</0><1></1>For example by clicking on "Net
salary" in the simulator, or by searching for "Net salary" in the search
box on the top right.</2><3><0>Copy the customized code extract and
integrate it in your application</0><1></1>. You will find it by clicking
on the "Reuse this calculation" section.<3></3></3><4><0>(optional) Modify
the values of the situation to set the calculation according to your
needs</0><1></1> You can modify without hesitation the values of the
situation. They accept any <4>expression or publicodes
object.</4></4></14><15>Here is what the calculation gives with the
example quoted above:</15><16><0></0></16><17><0>The situation contains
the data of your simulation (executive with a salary of 3400 € gross), but
also the data relating to the parameterization of the
simulator.</0></17><18>Special case: the mobility payment
rate</18><19>Whereas in the <2>employee</2> simulator, all you have to do
is enter the commune and the corresponding rate is automatically
determined. This behavior is not present in the library. This is
deliberate: to keep the library (and the site) light, we use two online
APIs. The<4>Geo - communes API</4> to go from the commune name to the
commune code. Then the<7>Mobility API</7>, developed and maintained by us,
which is not documented but its use is very simple and understandable
<10>in this React component that calls it</10>, component that also calls
the common API.</19><20>Making economic graphs <1></1></20><21>It is also
possible to use the library for economic or political analysis
calculations. Here, we plot the price of labor and the net wage as a
function of the gross wage.</21><22>One can see the progressivity of the
steps to follow: </14><15><0></0><1><0>Copy the custom code snippet and
integrate it into your application</0><1></1>You can find it by clicking
on the "Reuse this calculation" section.<3></3></1><2><0>(optional) Modify
the values of the situation to set up the calculation according to your
needs</0><1></1> You can modify the values of the situation without
hesitation. These values accept any <4>expression or publicodes
object.</4></2></15><16>Here is what the calculation gives with the
example quoted above:</16><17><0></0></17><18><0>The situation contains
the data of your simulation (executive with salary at 3400 € gross), but
also the data related to the parameterization of the
simulator.</0></18><19></19><20>Making economic graphs <1></1></20><21>It
is also possible to use the library for economic or political analysis
calculations. Here, we plot the price of work and the net salary as a
function of the gross salary.</21><22>We can see the progressivity of the
total wage, which is in percent lower for a minimum wage than for a high
wage. In other words, high earners pay part of the social contributions of
low earners.</22><23><0></0></23>'
@ -1222,6 +1208,54 @@ pages:
code:
description: "Here is the code to copy and paste on your site:"
titre: Integration Code
components:
CasParticuliers: '<0>Learn more about...</0><1><0>The
<1>MissingVariables</1></0><1>In return of your call to <1>evaluate</1>,
you will get a <3>missingVariables</3> object. This object contains the
list of all the rules used for the calculation whose value is missing in
the input situation. It is a <6>default value</6> that has been used
instead.</1><2>To further customize your simulation, you can enter their
value.</2><3><0>The number associated with them corresponds to the
importance of the rule for the calculation: the higher it is, the more
the rule was used by other rules during the
calculation.</0></3></1><2><0>Rules tagged as
<1>experimental</1></0><1>Our APIs follow a <2>semantic version
management</2>. This means that all changes made are backwards
compatible, except for major version changes.</1><2>Rules tagged as
experimental do not obey this specification. This means that they can be
deleted, modified, moved, invisibly for the API user.</2><3><0>We
therefore advise you to be very careful when using these rules, and to
always check their existence before including them in your application
code.</0></3><4><0>How to know if a rule is experimental?</0><1>You can
know if you are using an experimental rule by looking at the
<1>warnings</1> object provided in return of your call to
<3>evaluate</3></1><2>Experimental rules also contain a warning in the
"Reuse this calculation" section of the
documentation.</2></4></2><3><0>Reusing data from external
APIs</0><1>Some data in the my-company simulators come from external
APIs. You will have to change their value by yourself in the given input
situation.</1><2>The mobility payment</2><3><0><0>establishment .
mobility payment</0></0></3><4>In the <2>employee</2> simulator, all you
have to do is enter the municipality and the corresponding mobility
payment rate is automatically determined.</4><5>You will have to specify
the rate yourself to redo the calculation. You can find it
again:<1><0>By entering your municipality in a simulator, then searching
for the "mobility payment" rule with the "search" button at the top
right</0><1>Using the <2>dedicated service on
urssaf.fr</2></1></1></5><6>The collective AT/MP
rate</6><7><0><0>employee . contributions . ATMP . collective
rate</0></0></7><8>This collective rate must be found manually. You can
use :<1><0><0>A csv export</0> of the table of collective net rates
published in the Official Journal</0><1>The service <2>Account AT/MP</2>
of net-entreprise</1></1></8></3>'
StepByStep: <0><0>Choose the simulator according to the calculation we are
interested in</0><1></1>For example the <4>employee simulator</4> to
calculate a net amount from the gross amount.</0><1><0>Run a simulation
with the data you wish to reuse</0><1></1>For example, <4>a manager at
3400 € gross with meal vouchers</4>.</1><2><0>Go to the documentation
page of the data to be calculated</0><1></1>For example by clicking on
"Net salary" in the simulator, or by searching for "Net salary" in the
search box at the top right.</2>
couleur: "What color? "
home:
choice:

View File

@ -888,84 +888,69 @@ pages:
cta: Consulter l'aide
title: Comment déclarer son revenu aux impôts ?
développeur:
api: "<0>Utiliser notre API REST </0><1><0>API en version beta</0><1>Des
changements cassants sont succeptibles d'être apportés dans les prochaines
semaine.</1><2>N'hésitez pas à faire des retours sur son utilisation
directement sur Github.</2></1><2>Si votre site ou service requiert de
faire des calculs sur des salaires, par exemple passer du salaire brut au
salaire net, bonne nouvelle : tous les calculs de cotisations et impôts de
mon-entreprise sont libres et utilisable via notre API
REST.</2><3><0>Essayer l'API</0></3><4>Comment utiliser cette API
?</4><5>L'api mon-entreprise est totalement ouverte et sans
authentification, elle se compose de 3 routes qui s'inspirent des méthodes
de l'interpréteur <1>Publicodes</1> : <4>/evaluate</4>, <6>/rules</6> et
<9>/rules/:rule</9>. Retrouvez plus d'informations sur notre <12>Swagger
UI</12>.<14></14></5><6><0>Qu'est ce que Publicodes ?</0><1>Publicodes est
un language déclaratif développé par beta.gouv.fr et l'Urssaf pour encoder
des algorithmes d'intérêt public. Toutes nos règles de calculs sont
implémentées dans ce language.</1><2><0>En savoir plus sur
publicodes</0></2></6><7>Exemple</7><8>Voici un exemple d'utilisation des
différentes routes, vous pouvez explorer leur code dans le dossier
<1>example</1></8><9><0></0></9>"
api: "<0><0>Vous pouvez réutiliser les calculs de mon-entreprise sur votre site
ou service très facilement grâce à notre API REST ouverte et sans
authentification.</0><1>Accéder au Swagger</1></0><1>Comment effectuer un
calcul via l'API ?</1><2>Pour effectuer un calcul, il vous suffit de faire
un <1>POST</1> sur la route <4>/evaluate</4> avec les paramètres suivants
:</2><3><0><0>expressions</0> : le nom des règles dont vous voulez
calculer la valeur</0><1><0>situation</0> : la situation pour le
paramétrage du calcul</1></3><4><0>Voir l'exemple dans le
Swagger</0></4><5>Comment reproduire un calcul d'un simulateur
?</5><6><0>Pour répliquer un calcul d'un simulateur de mon-entreprise dans
la bibliothèque, voici la marche à suivre : </0></6><7><0></0><1><0>Dans
la section « Règle et situation », vous trouverez le nom de la règle et la
situation à utiliser comme paramètres d'appel
à<1>/evaluate</1>.</0><1></1>Vous pouvez également retrouver la requête
API à copier-coller sous forme d'appel <3>curl</3> ou de
<5>fetch</5>JavaScript dans la section « Réutiliser ce calcul
».<7></7></1></7><8></8><9>Exemple</9><10>Voici un exemple d'utilisation
des différentes routes, vous pouvez explorer leur code dans le dossier
<1>example</1></10><11><0></0></11>"
bibliothèque: "<0><0>Vous pouvez réutiliser les calculs de mon-entreprise sur
votre site ou service très facilement grâce à la bibliothèque JavaScript
open-source disponible sur npm.</0></0><1>Comment utiliser cette librairie
?</1><2>Installation</2><3><0>npm install --save publicodes
modele-social</0></3><4><0>Que signifie publicodes ?</0><1>Publicodes est
un language déclaratif développé par beta.gouv.fr et l'Urssaf pour encoder
des algorithmes d'intérêt public. <2>En savoir plus sur
publicodes</2></1><2>Pour lancer vos propre calculs, vous devons donc
installer le paquet <2><0>publicodes</0></2> contenant l'intepreteur,
ainsi que le paquet <6><0>modele-social</0></6>, qui contient les règles
des simulateurs mon-entreprise.</2></4><5>Lancer le calcul</5><6>Il ne
vous reste plus qu'à paramétrer le moteur avec les règles du paquet
`modele-social` et à appeler la fonction `evaluate` sur la règle que dont
vous souhaitez la valeur. Voici un exemple pour le calcul brut /
net</6><7><0></0></7><8>Paramétrer le calcul</8><9>Vous l'aurez constaté
dans l'exemple précédent, la recette d'un calcul est simple : des
variables d'entrée (le salaire brut), une ou plusieurs variables de
sorties (le salaire net).</9><10>Le calcul est cependant paramétrable avec
toutes les possibilités permises dans les simulateurs de mon-entreprise
!</10><11>Toutes les règles disponibles sont listées et expliquées sur la
<2>documentation en ligne</2>. Cette documentation est auto-générée depuis
les fichiers de règles publicodes, et alimentée par la simulation en
cours.</11><12>Comment reproduire un calcul d'un simulateur ?</12><13>Pour
répliquer un calcul d'un simulateur de mon-entreprise dans la
bibliothèque, voici la marche à suivre : </13><14><0><0>Choisir le
simulateur en fonction du calcul qui nous intéresse</0><1></1>Par exemple
le <4>simulateur salarié</4> pour calculer un net à partir du
brut.</0><1><0>Effectuer une simulation avec les données que l'on souhaite
réutiliser</0><1></1>Par exemple <4>un cadre à 3400 € brut avec des
titres-restaurants</4>.</1><2><0>Aller sur la page de documentation de la
donnée à calculer</0><1></1>Par exemple en cliquant sur « Salaire net »
dans le simulateur, ou en recherchant « Salaire net » dans la recherche en
haut à droite.</2><3><0>Copiez l'extrait de code personalisé et
intégrez-le dans votre application</0><1></1>Vous le trouverez en cliquant
sur la section « Réutiliser ce calcul ».<3></3></3><4><0>(facultatif)
Modifiez les valeur de la situation pour paramétrer le calcul selon vos
besoin</0><1></1> Vous pouvez modifier sans hésiter les valeurs de la
situation. Ces dernières acceptent n'importe quelle <4>expression ou objet
publicodes.</4></4></14><15>Voici ce que donne le calcul avec l'exemple
cité ci-dessus :</15><16><0></0></16><17><0>La situation contient les
modele-social</0></3><4>Pour lancer vos propres calculs, vous devez
installer le paquet <2><0>publicodes</0></2> contenant l'interpréteur
publicodes, ainsi que le paquet <6><0>modele-social</0></6>, qui contient
les règles des simulateurs mon-entreprise.</4><5><0>Qu'est-ce que
publicodes ?</0><1>Publicodes est un langage déclaratif développé par
beta.gouv.fr et l'Urssaf pour encoder des algorithmes d'intérêt public.
C'est le langage qui propulse tous les calculs des simulateurs de
mon-entreprise.</1><2><0>En savoir plus sur
publicodes</0></2></5><6>Lancer le calcul</6><7>Pour lancer le calcul, il
vous faut paramétrer le moteur avec les règles du paquet
<1>modele-social</1> et à appeler la fonction <4>evaluate</4> avec la
règle dont vous souhaitez calculer la valeur. Voici un exemple pour le
calcul brut / net</7><8><0></0></8><9>Paramétrer le calcul</9><10>Vous
l'aurez constaté dans l'exemple précédent, la recette d'un calcul est
simple : des variables d'entrée (le salaire brut), une ou plusieurs
variables de sorties (le salaire net).</10><11>Le calcul est cependant
paramétrable avec toutes les possibilités permises dans les simulateurs de
mon-entreprise !</11><12>Toutes les règles disponibles sont listées et
expliquées sur la <2>documentation en ligne</2>. Cette documentation est
auto-générée depuis les fichiers de règles publicodes, et alimentée par la
simulation en cours.</12><13>Comment reproduire un calcul d'un simulateur
?</13><14>Pour répliquer un calcul d'un simulateur de mon-entreprise dans
la bibliothèque, voici la marche à suivre : </14><15><0></0><1><0>Copiez
l'extrait de code personnalisé et intégrez-le dans votre
application</0><1></1>Vous le trouverez en cliquant sur la section «
Réutiliser ce calcul ».<3></3></1><2><0>(facultatif) Modifiez les valeurs
de la situation pour paramétrer le calcul selon vos besoins</0><1></1>
Vous pouvez modifier sans hésiter les valeurs de la situation. Ces
dernières acceptent n'importe quelle <4>expression ou objet
publicodes.</4></2></15><16>Voici ce que donne le calcul avec l'exemple
cité ci-dessus :</16><17><0></0></17><18><0>La situation contient les
données de votre simulation (cadre avec salaire à 3400 € brut), mais
également les données relative au paramétrage du
simulateur.</0></17><18>Cas particulier : le taux versement
mobilité</18><19>Alors que dans le simulateur <2>salarié</2>, il suffit de
renseigner la commune et le taux correspondant est automatiquement
déterminé. Ce comportement n'est pas présent dans la librairie. C'est
voulu : pour garder la bibliothèque (et le site) légers, nous utilisons
deux API en ligne. L'<4>API Géo - communes</4> pour passer du nom de la
commune au code commune. Puis l'<7>API versement mobilité</7>, développé
et maintenu par nos soins, qui n'est pas documenté mais son utilisation
est très simple et compréhensible <10>dans ce composant React qui
l'appelle</10>, composant qui fait aussi appel à l'API
commune.</19><20>Faire des graphiques économiques <1></1></20><21>Il est
aussi possible d'utiliser la bibliothèque pour des calculs d'analyse
économique ou politique. Ici, on trace le prix du travail et le salaire
net en fonction du brut.</21><22>On peut constater la progressivité du
salaire total, qui est en pourcent plus faible pour un SMIC que pour un
haut revenu. Autrement dit, les hauts salaires paient une partie des
cotisations sociales des bas salaires.</22><23><0></0></23>"
également les données relatives au paramétrage du
simulateur.</0></18><19></19><20>Faire des graphiques économiques
<1></1></20><21>Il est aussi possible d'utiliser la bibliothèque pour des
calculs d'analyse économique ou politique. Ici, on trace le prix du
travail et le salaire net en fonction du brut.</21><22>On peut constater
la progressivité du salaire total, qui est en pourcent plus faible pour un
SMIC que pour un haut revenu. Autrement dit, les hauts salaires paient une
partie des cotisations sociales des bas salaires.</22><23><0></0></23>"
choice:
github:
body: Tous nos outils sont ouverts et développés publiquement sur GitHub.
@ -984,6 +969,57 @@ pages:
code:
description: "Voici le code à copier-coller sur votre site&nbsp;:"
titre: Code d'intégration
components:
CasParticuliers: "<0>En savoir plus sur...</0><1><0>Les
<1>MissingVariables</1></0><1>En retour de votre appel à
<1>evaluate</1>, vous obtiendrez un objet <3>missingVariables</3>. Ce
dernier contient la liste de toutes les règles utilisées pour le calcul
dont la valeur est absente dans la situation en entrée. C'est une
<6>valeur par défaut</6> qui a été utilisée à la place.</1><2>Pour
personnaliser encore plus votre simulation, vous pouvez renseigner leur
valeur.</2><3><0>Le nombre qui leur est associé correspond à
l'importance de la règle pour le calcul : plus il est élevé, plus la
règle a été utilisée par d'autres règles lors du
calcul.</0></3></1><2><0>Les règles taguées comme
<1>experimentale</1></0><1>Nos API suivent une <2>gestion sémantique de
version</2>. Cela veut dire que toutes les modifications apportées sont
rétrocompatibles, sauf lors de changements de version majeure.</1><2>Les
règles taguées comme experimentales n'obéissent pas à cette
spécification. Cela veut dire qu'elles peuvent être supprimées,
modifiées, déplacées, de manière invisible pour l'utilisateur de
l'API.</2><3><0>Nous vous conseillons donc d'être très prudent dans
l'utilisation de ces règles, et de toujours bien vérifier leur existence
avant de les inclure dans votre code applicatif.</0></3><4><0>Comment
savoir si une règle est expérimentale ?</0><1>Vous pouvez savoir si vous
utilisez une règle expérimentale en consultant l'objet <1>warnings</1>
fourni en retour de votre appel à <3>evaluate</3></1><2>Les règles
expérimentales contiennent également un avertissement dans la section «
Réutiliser ce calcul » de la documentation.</2></4></2><3><0>Réutiliser
une donnée provenant d'API externes</0><1>Certaines données des
simulateurs de mon-entreprise proviennent d'API externes. Il vous faudra
ainsi changer leur valeur par vous-même dans la situation donnée en
entrée.</1><2>Le versement mobilité</2><3><0><0>établissement .
versement mobilité</0></0></3><4>Dans le simulateur <2>salarié</2>, il
suffit de renseigner la commune et le taux du versement mobilité
correspondant est automatiquement déterminé.</4><5>Il vous faudra
préciser le taux vous-même pour refaire le calcul. Vous pouvez le
retrouver :<1><0>En saisissant votre commune dans un simulateur, puis en
recherchant la règle « versement mobilité » avec le bouton « rechercher
» en haut à droite</0><1>Grâce au <2>service dédié sur
urssaf.fr</2></1></1></5><6>Le taux collectif AT/MP</6><7><0><0>salarié
. cotisations . ATMP . taux collectif</0></0></7><8>Ce taux collectif
doit être retrouvé manuellement. Vous pouvez utiliser :<1><0><0>Un
export csv</0> du tableau des taux nets collectifs paru au Journal
Officiel</0><1>Le service <2>Compte AT/MP</2> de
net-entreprise</1></1></8></3>"
StepByStep: <0><0>Choisir le simulateur en fonction du calcul qui nous
intéresse</0><1></1>Par exemple le <4>simulateur salarié</4> pour
calculer un net à partir du brut.</0><1><0>Effectuer une simulation avec
les données que l'on souhaite réutiliser</0><1></1>Par exemple <4>un
cadre à 3400 € brut avec des titres-restaurants</4>.</1><2><0>Aller sur
la page de documentation de la donnée à calculer</0><1></1>Par exemple
en cliquant sur « Salaire net » dans le simulateur, ou en recherchant «
Salaire net » dans la recherche en haut à droite.</2>
couleur: "Quelle couleur ? "
home:
choice:

View File

@ -1,18 +1,15 @@
import BetaBanner from '@/components/BetaBanner'
import PageHeader from '@/components/PageHeader'
import { ScrollToTop } from '@/components/utils/Scroll'
import { Message } from '@/design-system'
import { Button } from '@/design-system/buttons'
import { H1, H2, H3, H4 } from '@/design-system/typography/heading'
import { Code, Strong } from '@/design-system/typography'
import { H2, H3 } from '@/design-system/typography/heading'
import { Link } from '@/design-system/typography/link'
import { Li, Ol, Ul } from '@/design-system/typography/list'
import { Body, Intro } from '@/design-system/typography/paragraphs'
import { Trans } from 'react-i18next'
import styled from 'styled-components'
const InlineCode = styled.code`
background-color: #eee;
padding: 0.25rem;
border-radius: 0.25rem;
`
import { CasParticuliers } from './_components/CasParticuliers'
import StepByStep from './_components/StepByStep'
import illustration from './_images/API_illustration.svg'
export default function API() {
return (
@ -20,60 +17,63 @@ export default function API() {
<ScrollToTop />
<Trans i18nKey="pages.développeur.api">
<H1>Utiliser notre API REST </H1>
<BetaBanner>
<H3 as="h1">API en version beta</H3>
<PageHeader titre="API REST de simulation" picture={illustration}>
<Intro>
Des changements cassants sont succeptibles d'être apportés dans les
prochaines semaine.
Vous pouvez réutiliser les calculs de mon-entreprise sur votre site
ou service très facilement grâce à notre API REST ouverte et sans
authentification.
</Intro>
<Body>
N'hésitez pas à faire des retours sur son utilisation directement
sur Github.
</Body>
</BetaBanner>
<Intro>
Si votre site ou service requiert de faire des calculs sur des
salaires, par exemple passer du salaire brut au salaire net, bonne
nouvelle : tous les calculs de cotisations et impôts de mon-entreprise
sont libres et utilisable via notre API REST.
</Intro>
<Body>
<Button size="XL" href="/api/v1/doc">
Essayer l'API
Accéder au Swagger
</Button>
</Body>
<H2>Comment utiliser cette API ?</H2>
</PageHeader>
<H2>Comment effectuer un calcul via l'API ?</H2>
<Body>
L'api mon-entreprise est totalement ouverte et sans authentification,
elle se compose de 3 routes qui s'inspirent des méthodes de
l'interpréteur <Link href="https://publi.codes">Publicodes</Link> :{' '}
<InlineCode>/evaluate</InlineCode>, <InlineCode>/rules</InlineCode> et{' '}
<InlineCode>/rules/:rule</InlineCode>. Retrouvez plus d'informations
sur notre{' '}
<Link href="/api/v1/doc/#/publicodes-api/evaluate">Swagger UI</Link>.
<br />
Pour effectuer un calcul, il vous suffit de faire un <Code>POST</Code>{' '}
sur la route <Code>/evaluate</Code> avec les paramètres suivants :
</Body>
<Ul>
<Li>
<Code>expressions</Code> : le nom des règles dont vous voulez
calculer la valeur
</Li>
<Li>
<Code>situation</Code> : la situation pour le paramétrage du calcul
</Li>
</Ul>
<Body>
<Link to="/api/v1/doc/#/publicodes-api/evaluate">
Voir l'exemple dans le Swagger
</Link>
</Body>
<Message>
<H4 as="h3">Qu'est ce que Publicodes ?</H4>
<H3>Comment reproduire un calcul d'un simulateur ?</H3>
<Body>
<Body>
Publicodes est un language déclaratif développé par beta.gouv.fr et
l'Urssaf pour encoder des algorithmes d'intérêt public. Toutes nos
règles de calculs sont implémentées dans ce language.
Pour répliquer un calcul d'un simulateur de mon-entreprise dans la
bibliothèque, voici la marche à suivre :{' '}
</Body>
<Body>
<Link href="https://publi.codes">
En savoir plus sur publicodes
</Link>
</Body>
</Message>
</Body>
<Ol>
<StepByStep />
<Li>
<Strong>
Dans la section « Règle et situation », vous trouverez le nom de
la règle et la situation à utiliser comme paramètres d'appel à
<Code>/evaluate</Code>.
</Strong>
<br />
Vous pouvez également retrouver la requête API à copier-coller sous
forme d'appel <Code>curl</Code> ou de <Code>fetch</Code>
JavaScript dans la section « Réutiliser ce calcul ».
<br />
</Li>
</Ol>
<CasParticuliers />
<H2>Exemple</H2>
<Body>
Voici un exemple d'utilisation des différentes routes, vous pouvez
explorer leur code dans le dossier <InlineCode>example</InlineCode>
explorer leur code dans le dossier <Code>example</Code>
</Body>
<div

View File

@ -15,9 +15,9 @@ import styled from 'styled-components'
import { TrackPage } from '../../ATInternetTracking'
import useSimulatorsData, { SimulatorData } from '../Simulateurs/metadata'
import './iframe.css'
import cciLogo from './images/cci.png'
import minTraLogo from './images/min-tra.jpg'
import poleEmploiLogo from './images/pole-emploi.png'
import cciLogo from './_images/cci.png'
import minTraLogo from './_images/min-tra.jpg'
import poleEmploiLogo from './_images/pole-emploi.png'
const checkIframe = (obj: SimulatorData[keyof SimulatorData]) =>
'iframePath' in obj && obj.iframePath && !('private' in obj && obj.private)

View File

@ -2,14 +2,15 @@ import PageHeader from '@/components/PageHeader'
import Emoji from '@/components/utils/Emoji'
import { ScrollToTop } from '@/components/utils/Scroll'
import { Message } from '@/design-system'
import { Strong } from '@/design-system/typography'
import { Code, Strong } from '@/design-system/typography'
import { H2, H3, H4 } from '@/design-system/typography/heading'
import { Link } from '@/design-system/typography/link'
import { Li, Ol } from '@/design-system/typography/list'
import { Body, Intro } from '@/design-system/typography/paragraphs'
import { useSitePaths } from '@/sitePaths'
import { Trans } from 'react-i18next'
import illustration from './illustration_library.svg'
import { CasParticuliers } from './_components/CasParticuliers'
import StepByStep from './_components/StepByStep'
import illustration from './_images/illustration_library.svg'
export default function Library() {
return (
@ -31,35 +32,39 @@ export default function Library() {
<H3>Installation</H3>
<pre>
<code>npm install --save publicodes modele-social</code>
<Code>npm install --save publicodes modele-social</Code>
</pre>
<Body>
Pour lancer vos propres calculs, vous devez installer le paquet{' '}
<Link href="https://www.npmjs.com/package/publicodes">
<Code>publicodes</Code>
</Link>{' '}
contenant l'interpréteur publicodes, ainsi que le paquet{' '}
<Link href="https://www.npmjs.com/package/modele-social">
<Code>modele-social</Code>
</Link>
, qui contient les règles des simulateurs mon-entreprise.
</Body>
<Message icon>
<H4>Que signifie publicodes ?</H4>
<H4>Qu'est-ce que publicodes ?</H4>
<Body>
Publicodes est un langage déclaratif développé par beta.gouv.fr et
l'Urssaf pour encoder des algorithmes d'intérêt public. C'est le
langage qui propulse tous les calculs des simulateurs de
mon-entreprise.
</Body>
<Body>
Publicodes est un language déclaratif développé par beta.gouv.fr et
l'Urssaf pour encoder des algorithmes d'intérêt public.{' '}
<Link href="https://publi.codes">
En savoir plus sur publicodes
</Link>
</Body>
<Body>
Pour lancer vos propre calculs, vous devons donc installer le paquet{' '}
<Link href="https://www.npmjs.com/package/publicodes">
<code>publicodes</code>
</Link>{' '}
contenant l'intepreteur, ainsi que le paquet{' '}
<Link href="https://www.npmjs.com/package/modele-social">
<code>modele-social</code>
</Link>
, qui contient les règles des simulateurs mon-entreprise.
</Body>
</Message>
<H3>Lancer le calcul</H3>
<Body>
Il ne vous reste plus qu'à paramétrer le moteur avec les règles du
paquet `modele-social` et à appeler la fonction `evaluate` sur la
règle que dont vous souhaitez la valeur. Voici un exemple pour le
calcul brut / net
Pour lancer le calcul, il vous faut paramétrer le moteur avec les
règles du paquet <Code>modele-social</Code> et à appeler la fonction{' '}
<Code>evaluate</Code> avec la règle dont vous souhaitez calculer la
valeur. Voici un exemple pour le calcul brut / net
</Body>
<div
className="ui__ full-width"
@ -98,46 +103,10 @@ export default function Library() {
bibliothèque, voici la marche à suivre :{' '}
</Body>
<Ol>
<StepByStep />
<Li>
<Strong>
Choisir le simulateur en fonction du calcul qui nous intéresse
</Strong>
<br />
Par exemple le{' '}
<Link to={useSitePaths().absoluteSitePaths.simulateurs.salarié}>
simulateur salarié
</Link>{' '}
pour calculer un net à partir du brut.
</Li>
<Li>
<Strong>
Effectuer une simulation avec les données que l'on souhaite
réutiliser
</Strong>
<br />
Par exemple{' '}
<Link
to={{
pathname: useSitePaths().absoluteSitePaths.simulateurs.salarié,
search:
'salaire-brut=3400%E2%82%AC%2Fmois&salari%C3%A9+.+contrat=%27CDI%27&salari%C3%A9+.+contrat+.+statut+cadre=oui&salari%C3%A9+.+r%C3%A9mun%C3%A9ration+.+frais+professionnels+.+titres-restaurant=oui',
}}
>
un cadre à 3400 brut avec des titres-restaurants
</Link>
.
</Li>
<Li>
<Strong>
Aller sur la page de documentation de la donnée à calculer
</Strong>
<br />
Par exemple en cliquant sur « Salaire net » dans le simulateur, ou
en recherchant « Salaire net » dans la recherche en haut à droite.
</Li>
<Li>
<Strong>
Copiez l'extrait de code personalisé et intégrez-le dans votre
Copiez l'extrait de code personnalisé et intégrez-le dans votre
application
</Strong>
<br />
@ -147,8 +116,8 @@ export default function Library() {
</Li>
<Li>
<Strong>
(facultatif) Modifiez les valeur de la situation pour paramétrer
le calcul selon vos besoin
(facultatif) Modifiez les valeurs de la situation pour paramétrer
le calcul selon vos besoins
</Strong>
<br /> Vous pouvez modifier sans hésiter les valeurs de la
situation. Ces dernières acceptent n'importe quelle{' '}
@ -171,33 +140,11 @@ export default function Library() {
<Message type="info" icon>
<Body>
La situation contient les données de votre simulation (cadre avec
salaire à 3400 brut), mais également les données relative au
salaire à 3400 brut), mais également les données relatives au
paramétrage du simulateur.
</Body>
</Message>
<H4>Cas particulier : le taux versement mobilité</H4>
<Body>
Alors que dans le simulateur{' '}
<Link href="https://mon-entreprise.urssaf.fr/simulateurs/salaire-brut-net">
salarié
</Link>
, il suffit de renseigner la commune et le taux correspondant est
automatiquement déterminé. Ce comportement n'est pas présent dans la
librairie. C'est voulu : pour garder la bibliothèque (et le site)
légers, nous utilisons deux API en ligne. L'
<Link href="https://api.gouv.fr/api/api-geo.html#doc_tech">
API Géo - communes
</Link>{' '}
pour passer du nom de la commune au code commune. Puis l'
<Link href="">API versement mobilité</Link>, développé et maintenu par
nos soins, qui n'est pas documenté mais son utilisation est très
simple et compréhensible{' '}
<Link href="https://github.com/betagouv/mon-entreprise/blob/f3e79f42516c0822e8c6d8f6e9fc5646c82fd018/source/components/conversation/select/SelectGéo.js#L7-L14">
dans ce composant React qui l'appelle
</Link>
, composant qui fait aussi appel à l'API commune.
</Body>
<CasParticuliers />
<H2>
Faire des graphiques économiques <Emoji emoji="📈" />

View File

@ -7,7 +7,7 @@ import { Body, Intro } from '@/design-system/typography/paragraphs'
import { useSitePaths } from '@/sitePaths'
import { Trans, useTranslation } from 'react-i18next'
import Meta from '../../components/utils/Meta'
import illustration from './illustration.png'
import illustration from './_images/illustration.png'
export default function Options() {
const { absoluteSitePaths } = useSitePaths()

View File

@ -0,0 +1,150 @@
import RuleLink from '@/components/RuleLink'
import { Message } from '@/design-system'
import { Code, Strong } from '@/design-system/typography'
import { H2, H3, H4, H5 } from '@/design-system/typography/heading'
import { Link } from '@/design-system/typography/link'
import { Li, Ul } from '@/design-system/typography/list'
import { Body } from '@/design-system/typography/paragraphs'
import { useSitePaths } from '@/sitePaths'
import { Trans } from 'react-i18next'
export function CasParticuliers() {
return (
<Trans i18nKey="pages.développeur.components.CasParticuliers">
<H2>En savoir plus sur...</H2>
<section>
<H3>
Les <Code>MissingVariables</Code>
</H3>
<Body>
En retour de votre appel à <Code>evaluate</Code>, vous obtiendrez un
objet <Code>missingVariables</Code>. Ce dernier contient la liste de
toutes les règles utilisées pour le calcul dont la valeur est absente
dans la situation en entrée. C'est une{' '}
<Strong>valeur par défaut</Strong> qui a été utilisée à la place.
</Body>
<Body>
Pour personnaliser encore plus votre simulation, vous pouvez
renseigner leur valeur.
</Body>
<Message icon>
<Body>
Le nombre qui leur est associé correspond à l'importance de la règle
pour le calcul : plus il est élevé, plus la règle a été utilisée par
d'autres règles lors du calcul.
</Body>
</Message>
</section>
<section>
<H3>
Les règles taguées comme <Code>experimentale</Code>
</H3>
<Body>
Nos API suivent une{' '}
<Link href="https://semver.org/lang/fr/">
gestion sémantique de version
</Link>
. Cela veut dire que toutes les modifications apportées sont
rétrocompatibles, sauf lors de changements de version majeure.
</Body>
<Body>
Les règles taguées comme experimentales n'obéissent pas à cette
spécification. Cela veut dire qu'elles peuvent être supprimées,
modifiées, déplacées, de manière invisible pour l'utilisateur de
l'API.
</Body>
<Body>
<Strong>
Nous vous conseillons donc d'être très prudent dans l'utilisation de
ces règles, et de toujours bien vérifier leur existence avant de les
inclure dans votre code applicatif.
</Strong>
</Body>
<Message icon>
<H5 as="h4">Comment savoir si une règle est expérimentale ?</H5>
<Body>
Vous pouvez savoir si vous utilisez une règle expérimentale en
consultant l'objet <Code>warnings</Code> fourni en retour de votre
appel à <Code>evaluate</Code>
</Body>
<Body>
Les règles expérimentales contiennent également un avertissement
dans la section « Réutiliser ce calcul » de la documentation.
</Body>
</Message>
</section>
<section>
<H3>Réutiliser une donnée provenant d'API externes</H3>
<Body>
Certaines données des simulateurs de mon-entreprise proviennent d'API
externes. Il vous faudra ainsi changer leur valeur par vous-même dans
la situation donnée en entrée.
</Body>
<H4>Le versement mobilité</H4>
<Body>
<Code>
<RuleLink dottedName="établissement . versement mobilité">
établissement . versement mobilité
</RuleLink>
</Code>
</Body>
<Body>
Dans le simulateur{' '}
<Link to={useSitePaths().absoluteSitePaths.simulateurs.salarié}>
salarié
</Link>
, il suffit de renseigner la commune et le taux du versement mobilité
correspondant est automatiquement déterminé.
</Body>
<Body>
Il vous faudra préciser le taux vous-même pour refaire le calcul. Vous
pouvez le retrouver :
<Ul>
<Li>
En saisissant votre commune dans un simulateur, puis en
recherchant la règle « versement mobilité » avec le bouton «
rechercher » en haut à droite
</Li>
<Li>
Grâce au{' '}
<Link href="https://www.urssaf.fr/portail/home/taux-et-baremes/versement-mobilite.html">
service dédié sur urssaf.fr
</Link>
</Li>
</Ul>
</Body>
<H4>Le taux collectif AT/MP</H4>
<Body>
<Code>
<RuleLink dottedName="salarié . cotisations . ATMP . taux collectif">
salarié . cotisations . ATMP . taux collectif
</RuleLink>
</Code>
</Body>
<Body>
Ce taux collectif doit être retrouvé manuellement. Vous pouvez
utiliser :
<Ul>
<Li>
<Link href="https://github.com/betagouv/taux-collectifs-cotisation-atmp">
Un export csv
</Link>{' '}
du tableau des taux nets collectifs paru au Journal Officiel
</Li>
<Li>
Le service{' '}
<Link href="https://www.net-entreprises.fr/declaration/compte-atmp/">
Compte AT/MP
</Link>{' '}
de net-entreprise
</Li>
</Ul>
</Body>
</section>
</Trans>
)
}

View File

@ -0,0 +1,48 @@
import { Strong } from '@/design-system/typography'
import { Link } from '@/design-system/typography/link'
import { Li } from '@/design-system/typography/list'
import { useSitePaths } from '@/sitePaths'
import { Trans } from 'react-i18next'
export default function StepByStep() {
return (
<Trans i18nKey="pages.développeur.components.StepByStep">
<Li>
<Strong>
Choisir le simulateur en fonction du calcul qui nous intéresse
</Strong>
<br />
Par exemple le{' '}
<Link to={useSitePaths().absoluteSitePaths.simulateurs.salarié}>
simulateur salarié
</Link>{' '}
pour calculer un net à partir du brut.
</Li>
<Li>
<Strong>
Effectuer une simulation avec les données que l'on souhaite réutiliser
</Strong>
<br />
Par exemple{' '}
<Link
to={{
pathname: useSitePaths().absoluteSitePaths.simulateurs.salarié,
search:
'salaire-brut=3400%E2%82%AC%2Fmois&salari%C3%A9+.+contrat=%27CDI%27&salari%C3%A9+.+contrat+.+statut+cadre=oui&salari%C3%A9+.+r%C3%A9mun%C3%A9ration+.+frais+professionnels+.+titres-restaurant=oui',
}}
>
un cadre à 3400 brut avec des titres-restaurants
</Link>
.
</Li>
<Li>
<Strong>
Aller sur la page de documentation de la donnée à calculer
</Strong>
<br />
Par exemple en cliquant sur « Salaire net » dans le simulateur, ou en
recherchant « Salaire net » dans la recherche en haut à droite.
</Li>
</Trans>
)
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

View File

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB