> For the complete documentation index, see [llms.txt](https://ouvretaferme.gitbook.io/ouvretaferme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ouvretaferme.gitbook.io/ouvretaferme/endpoints/gestion/comptabilite-generale/exercices-comptables.md).

# Exercices comptables

Les exercices comptables de votre structure.

## Lister les exercices comptables

> Scope requis : \`accounting:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"FinancialYear":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"startDate":{"type":"string","format":"date","description":"Date de début."},"endDate":{"type":"string","format":"date","description":"Date de fin."},"status":{"type":"string","enum":["open","close"],"description":"Valeurs : `open` (Ouvert), `close` (Clôturé)."},"plan":{"type":"string","enum":["agricultural","general","association"],"description":"Plan comptable. Valeurs : `agricultural` (Plan comptable agricole), `general` (Plan comptable général), `association` (Plan comptable des associations)."},"taxSystem":{"type":"string","enum":["micro-ba","micro-entreprise","ba-reel-simplifie","ba-reel-normal"],"description":"Régime fiscal. Valeurs : `micro-ba` (Micro-BA), `micro-entreprise` (Micro-entreprise), `ba-reel-simplifie` (Réel simplifié), `ba-reel-normal` (Réel normal)."},"incomeTax":{"type":"string","enum":["ir","is"],"nullable":true,"description":"Impôt sur les bénéfices."},"legalCategory":{"type":"integer","description":"Forme juridique."},"gaecFormat":{"type":"string","enum":["total","partial"],"nullable":true,"description":"Type de GAEC. Valeurs : `partial` (GAEC partiel), `total` (GAEC total)."},"associates":{"type":"integer","nullable":true,"description":"Nombre d'associé·e·s exploitant·e·s."},"accountingType":{"type":"string","enum":["cash","accrual"],"description":"Type de comptabilité. Valeurs : `cash` (Comptabilité de trésorerieGénéralement lorsque votre structure est imposée au régime du micro-BA, micro-entreprise ou au réel simplifié), `accrual` (Comptabilité à l'engagementFonctionnalité en bêtaObligatoire lorsque votre structure est imposée au régime réel normal, possible dans les autres régimes.)."},"accountingMode":{"type":"string","enum":["accounting","cash-receipts"],"description":"Comment tenez-vous votre comptabilité ?. Valeurs : `accounting` (Je tiens une comptabilité selon le plan comptableJ'enregistre mes écritures comptablesJe gère mes immobilisations), `cash-receipts` (Je tiens uniquement un livre des recettes et un registre des achatsJ'enregistre uniquement les rentrées d'argent et les achats)."},"openDate":{"type":"string","format":"date","nullable":true},"closeDate":{"type":"string","format":"date","nullable":true},"hasOpeningBalance":{"type":"boolean","nullable":true},"allocationDate":{"type":"string","format":"date","nullable":true},"documents":{"type":"object","description":"Adresses des états financiers générés, indexées par type de document. Chacune se lit avec la même clé que les autres appels.","additionalProperties":{"type":"string","format":"uri"}}},"title":"Exercices comptables","description":"Les exercices comptables de votre structure."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/financialYearList":{"get":{"operationId":"getFinancialYearList","tags":["Exercices comptables"],"summary":"Lister les exercices comptables","description":"Scope requis : `accounting:read`.","parameters":[{"name":"start","in":"query","required":false,"description":"Rang du premier élément rendu, à partir de 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Nombre d'éléments rendus, 100 par défaut et 500 au plus. À 0, seul le total est rendu.","schema":{"type":"integer","minimum":0,"maximum":500,"default":100}},{"name":"ids","in":"query","required":false,"description":"Ne rend que ces identifiants, 100 au plus, séparés par des virgules.","style":"form","explode":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"},"maxItems":100}},{"name":"afterId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant supérieur, pour parcourir une liste sans décalage quand elle change pendant la lecture.","schema":{"type":"integer","format":"int64"}},{"name":"beforeId","in":"query","required":false,"description":"Ne rend que les éléments d'identifiant inférieur.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Liste paginée des exercices comptables.","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"Nombre d'éléments que retiennent les filtres, sans tenir compte de la pagination (`start`, `limit`, `afterId`, `beforeId`)."},"list":{"type":"array","items":{"$ref":"#/components/schemas/FinancialYear"}}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Consulter un exercice comptable

> Scope requis : \`accounting:read\`. Pour lire plusieurs exercices comptables, \`GET /financialYearList?ids=12,15,18\` en rend jusqu'à 100, et ne compte que pour un appel.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"FinancialYear":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"startDate":{"type":"string","format":"date","description":"Date de début."},"endDate":{"type":"string","format":"date","description":"Date de fin."},"status":{"type":"string","enum":["open","close"],"description":"Valeurs : `open` (Ouvert), `close` (Clôturé)."},"plan":{"type":"string","enum":["agricultural","general","association"],"description":"Plan comptable. Valeurs : `agricultural` (Plan comptable agricole), `general` (Plan comptable général), `association` (Plan comptable des associations)."},"taxSystem":{"type":"string","enum":["micro-ba","micro-entreprise","ba-reel-simplifie","ba-reel-normal"],"description":"Régime fiscal. Valeurs : `micro-ba` (Micro-BA), `micro-entreprise` (Micro-entreprise), `ba-reel-simplifie` (Réel simplifié), `ba-reel-normal` (Réel normal)."},"incomeTax":{"type":"string","enum":["ir","is"],"nullable":true,"description":"Impôt sur les bénéfices."},"legalCategory":{"type":"integer","description":"Forme juridique."},"gaecFormat":{"type":"string","enum":["total","partial"],"nullable":true,"description":"Type de GAEC. Valeurs : `partial` (GAEC partiel), `total` (GAEC total)."},"associates":{"type":"integer","nullable":true,"description":"Nombre d'associé·e·s exploitant·e·s."},"accountingType":{"type":"string","enum":["cash","accrual"],"description":"Type de comptabilité. Valeurs : `cash` (Comptabilité de trésorerieGénéralement lorsque votre structure est imposée au régime du micro-BA, micro-entreprise ou au réel simplifié), `accrual` (Comptabilité à l'engagementFonctionnalité en bêtaObligatoire lorsque votre structure est imposée au régime réel normal, possible dans les autres régimes.)."},"accountingMode":{"type":"string","enum":["accounting","cash-receipts"],"description":"Comment tenez-vous votre comptabilité ?. Valeurs : `accounting` (Je tiens une comptabilité selon le plan comptableJ'enregistre mes écritures comptablesJe gère mes immobilisations), `cash-receipts` (Je tiens uniquement un livre des recettes et un registre des achatsJ'enregistre uniquement les rentrées d'argent et les achats)."},"openDate":{"type":"string","format":"date","nullable":true},"closeDate":{"type":"string","format":"date","nullable":true},"hasOpeningBalance":{"type":"boolean","nullable":true},"allocationDate":{"type":"string","format":"date","nullable":true},"documents":{"type":"object","description":"Adresses des états financiers générés, indexées par type de document. Chacune se lit avec la même clé que les autres appels.","additionalProperties":{"type":"string","format":"uri"}}},"title":"Exercices comptables","description":"Les exercices comptables de votre structure."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/financialYear/{id}":{"get":{"operationId":"getFinancialYearById","tags":["Exercices comptables"],"summary":"Consulter un exercice comptable","description":"Scope requis : `accounting:read`. Pour lire plusieurs exercices comptables, `GET /financialYearList?ids=12,15,18` en rend jusqu'à 100, et ne compte que pour un appel.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Exercice comptable demandé.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinancialYear"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Modifier un exercice comptable

> Scope requis : \`accounting:write\`. Le corps porte tous les champs modifiables, ou seulement ceux que nomme sa clé \`properties\` (mise à jour partielle, voir la vue d'ensemble).

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"FinancialYearUpdate":{"type":"object","properties":{"incomeTax":{"type":"string","enum":["ir","is"],"nullable":true,"description":"Impôt sur les bénéfices."},"gaecFormat":{"type":"string","enum":["total","partial"],"nullable":true,"description":"Type de GAEC. Valeurs : `partial` (GAEC partiel), `total` (GAEC total)."},"associates":{"type":"integer","nullable":true,"description":"Nombre d'associé·e·s exploitant·e·s."}},"description":"Les champs acceptés dépendent de l'élément envoyé : cette liste réunit ceux des différents cas et aucun n'y est obligatoire dans tous. D'autres champs peuvent être acceptés selon l'élément. Les exercices comptables de votre structure.","additionalProperties":true},"FinancialYear":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"startDate":{"type":"string","format":"date","description":"Date de début."},"endDate":{"type":"string","format":"date","description":"Date de fin."},"status":{"type":"string","enum":["open","close"],"description":"Valeurs : `open` (Ouvert), `close` (Clôturé)."},"plan":{"type":"string","enum":["agricultural","general","association"],"description":"Plan comptable. Valeurs : `agricultural` (Plan comptable agricole), `general` (Plan comptable général), `association` (Plan comptable des associations)."},"taxSystem":{"type":"string","enum":["micro-ba","micro-entreprise","ba-reel-simplifie","ba-reel-normal"],"description":"Régime fiscal. Valeurs : `micro-ba` (Micro-BA), `micro-entreprise` (Micro-entreprise), `ba-reel-simplifie` (Réel simplifié), `ba-reel-normal` (Réel normal)."},"incomeTax":{"type":"string","enum":["ir","is"],"nullable":true,"description":"Impôt sur les bénéfices."},"legalCategory":{"type":"integer","description":"Forme juridique."},"gaecFormat":{"type":"string","enum":["total","partial"],"nullable":true,"description":"Type de GAEC. Valeurs : `partial` (GAEC partiel), `total` (GAEC total)."},"associates":{"type":"integer","nullable":true,"description":"Nombre d'associé·e·s exploitant·e·s."},"accountingType":{"type":"string","enum":["cash","accrual"],"description":"Type de comptabilité. Valeurs : `cash` (Comptabilité de trésorerieGénéralement lorsque votre structure est imposée au régime du micro-BA, micro-entreprise ou au réel simplifié), `accrual` (Comptabilité à l'engagementFonctionnalité en bêtaObligatoire lorsque votre structure est imposée au régime réel normal, possible dans les autres régimes.)."},"accountingMode":{"type":"string","enum":["accounting","cash-receipts"],"description":"Comment tenez-vous votre comptabilité ?. Valeurs : `accounting` (Je tiens une comptabilité selon le plan comptableJ'enregistre mes écritures comptablesJe gère mes immobilisations), `cash-receipts` (Je tiens uniquement un livre des recettes et un registre des achatsJ'enregistre uniquement les rentrées d'argent et les achats)."},"openDate":{"type":"string","format":"date","nullable":true},"closeDate":{"type":"string","format":"date","nullable":true},"hasOpeningBalance":{"type":"boolean","nullable":true},"allocationDate":{"type":"string","format":"date","nullable":true},"documents":{"type":"object","description":"Adresses des états financiers générés, indexées par type de document. Chacune se lit avec la même clé que les autres appels.","additionalProperties":{"type":"string","format":"uri"}}},"title":"Exercices comptables","description":"Les exercices comptables de votre structure."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/financialYear/{id}":{"put":{"operationId":"putFinancialYearById","tags":["Exercices comptables"],"summary":"Modifier un exercice comptable","description":"Scope requis : `accounting:write`. Le corps porte tous les champs modifiables, ou seulement ceux que nomme sa clé `properties` (mise à jour partielle, voir la vue d'ensemble).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/FinancialYearUpdate"},{"type":"object","title":"Mise à jour partielle","description":"Les champs nommés dans `properties`, et eux seuls, chacun à sa nouvelle valeur.","required":["properties"],"properties":{"properties":{"type":"array","minItems":1,"items":{"type":"string","enum":["incomeTax","gaecFormat","associates"]}}},"additionalProperties":true}]}}}},"responses":{"200":{"description":"Exercice comptable modifié.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinancialYear"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Créer un exercice comptable

> Scope requis : \`accounting:write\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"schemas":{"FinancialYearWrite":{"type":"object","properties":{"startDate":{"type":"string","format":"date","description":"Date de début."},"endDate":{"type":"string","format":"date","description":"Date de fin."},"plan":{"type":"string","enum":["agricultural","general","association"],"description":"Plan comptable. Valeurs : `agricultural` (Plan comptable agricole), `general` (Plan comptable général), `association` (Plan comptable des associations)."},"taxSystem":{"type":"string","enum":["micro-ba","micro-entreprise","ba-reel-simplifie","ba-reel-normal"],"description":"Régime fiscal. Valeurs : `micro-ba` (Micro-BA), `micro-entreprise` (Micro-entreprise), `ba-reel-simplifie` (Réel simplifié), `ba-reel-normal` (Réel normal)."},"incomeTax":{"type":"string","enum":["ir","is"],"nullable":true,"description":"Impôt sur les bénéfices."},"legalCategory":{"type":"integer","description":"Forme juridique."},"gaecFormat":{"type":"string","enum":["total","partial"],"nullable":true,"description":"Type de GAEC. Valeurs : `partial` (GAEC partiel), `total` (GAEC total)."},"associates":{"type":"integer","nullable":true,"description":"Nombre d'associé·e·s exploitant·e·s."},"accountingType":{"type":"string","enum":["cash","accrual"],"description":"Type de comptabilité. Valeurs : `cash` (Comptabilité de trésorerieGénéralement lorsque votre structure est imposée au régime du micro-BA, micro-entreprise ou au réel simplifié), `accrual` (Comptabilité à l'engagementFonctionnalité en bêtaObligatoire lorsque votre structure est imposée au régime réel normal, possible dans les autres régimes.)."},"accountingMode":{"type":"string","enum":["accounting","cash-receipts"],"description":"Comment tenez-vous votre comptabilité ?. Valeurs : `accounting` (Je tiens une comptabilité selon le plan comptableJ'enregistre mes écritures comptablesJe gère mes immobilisations), `cash-receipts` (Je tiens uniquement un livre des recettes et un registre des achatsJ'enregistre uniquement les rentrées d'argent et les achats)."}},"required":["startDate","endDate","plan","taxSystem","incomeTax","legalCategory","gaecFormat","associates","accountingType","accountingMode"]},"FinancialYear":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"startDate":{"type":"string","format":"date","description":"Date de début."},"endDate":{"type":"string","format":"date","description":"Date de fin."},"status":{"type":"string","enum":["open","close"],"description":"Valeurs : `open` (Ouvert), `close` (Clôturé)."},"plan":{"type":"string","enum":["agricultural","general","association"],"description":"Plan comptable. Valeurs : `agricultural` (Plan comptable agricole), `general` (Plan comptable général), `association` (Plan comptable des associations)."},"taxSystem":{"type":"string","enum":["micro-ba","micro-entreprise","ba-reel-simplifie","ba-reel-normal"],"description":"Régime fiscal. Valeurs : `micro-ba` (Micro-BA), `micro-entreprise` (Micro-entreprise), `ba-reel-simplifie` (Réel simplifié), `ba-reel-normal` (Réel normal)."},"incomeTax":{"type":"string","enum":["ir","is"],"nullable":true,"description":"Impôt sur les bénéfices."},"legalCategory":{"type":"integer","description":"Forme juridique."},"gaecFormat":{"type":"string","enum":["total","partial"],"nullable":true,"description":"Type de GAEC. Valeurs : `partial` (GAEC partiel), `total` (GAEC total)."},"associates":{"type":"integer","nullable":true,"description":"Nombre d'associé·e·s exploitant·e·s."},"accountingType":{"type":"string","enum":["cash","accrual"],"description":"Type de comptabilité. Valeurs : `cash` (Comptabilité de trésorerieGénéralement lorsque votre structure est imposée au régime du micro-BA, micro-entreprise ou au réel simplifié), `accrual` (Comptabilité à l'engagementFonctionnalité en bêtaObligatoire lorsque votre structure est imposée au régime réel normal, possible dans les autres régimes.)."},"accountingMode":{"type":"string","enum":["accounting","cash-receipts"],"description":"Comment tenez-vous votre comptabilité ?. Valeurs : `accounting` (Je tiens une comptabilité selon le plan comptableJ'enregistre mes écritures comptablesJe gère mes immobilisations), `cash-receipts` (Je tiens uniquement un livre des recettes et un registre des achatsJ'enregistre uniquement les rentrées d'argent et les achats)."},"openDate":{"type":"string","format":"date","nullable":true},"closeDate":{"type":"string","format":"date","nullable":true},"hasOpeningBalance":{"type":"boolean","nullable":true},"allocationDate":{"type":"string","format":"date","nullable":true},"documents":{"type":"object","description":"Adresses des états financiers générés, indexées par type de document. Chacune se lit avec la même clé que les autres appels.","additionalProperties":{"type":"string","format":"uri"}}},"title":"Exercices comptables","description":"Les exercices comptables de votre structure."},"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}}},"paths":{"/financialYear":{"post":{"operationId":"postFinancialYear","tags":["Exercices comptables"],"summary":"Créer un exercice comptable","description":"Scope requis : `accounting:write`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinancialYearWrite"}}}},"responses":{"201":{"description":"Exercice comptable créé.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinancialYear"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Obtenir le fichier des écritures comptables

> Scope requis : \`accounting:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/financialYear/{id}/fec":{"get":{"operationId":"getFinancialYearByIdFec","tags":["Exercices comptables"],"summary":"Obtenir le fichier des écritures comptables","description":"Scope requis : `accounting:read`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Le fichier des écritures comptables de l'exercice.","content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","description":"Nom réglementaire du fichier"},"lines":{"type":"integer","description":"Nombre d'écritures, en-tête non compris"},"content":{"type":"string","description":"Contenu du fichier, colonnes séparées par des tabulations"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"412":{"description":"Condition métier interdisant cette action.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Obtenir le grand livre

> Scope requis : \`accounting:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/financialYear/{id}/book":{"get":{"operationId":"getFinancialYearByIdBook","tags":["Exercices comptables"],"summary":"Obtenir le grand livre","description":"Scope requis : `accounting:read`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"accountLabel","in":"query","required":false,"schema":{"type":"string"}},{"name":"thirdParty","in":"query","required":false,"description":"Identifiant d'un élément `ThirdParty`.","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"Les écritures de l'exercice rangées sous leur compte.","content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","description":"Un élément par compte mouvementé, dans l'ordre des numéros","items":{"type":"object","properties":{"class":{"type":"string","description":"Classe du compte, ses trois premiers chiffres"},"account":{"type":"string","description":"Numéro du compte sur huit chiffres"},"label":{"type":"string","nullable":true,"description":"Libellé du compte au plan comptable, absent si le numéro n'y figure pas"},"debit":{"type":"number","format":"double","description":"Total porté au débit du compte"},"credit":{"type":"number","format":"double","description":"Total porté au crédit du compte"},"balance":{"type":"number","format":"double","description":"Solde du compte, son débit moins son crédit"},"operations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Référence de l'écriture"},"date":{"type":"string","format":"date","description":"Date de l'écriture"},"document":{"type":"string","nullable":true,"description":"Pièce comptable justifiant l'écriture"},"description":{"type":"string","nullable":true,"description":"Libellé de l'écriture"},"thirdParty":{"type":"integer","format":"int64","nullable":true,"description":"Référence du tiers"},"thirdPartyName":{"type":"string","nullable":true,"description":"Nom du tiers, pour que le document se lise sans second appel"},"debit":{"type":"number","format":"double","nullable":true,"description":"Montant au débit, nul si l'écriture est au crédit"},"credit":{"type":"number","format":"double","nullable":true,"description":"Montant au crédit, nul si l'écriture est au débit"},"balance":{"type":"number","format":"double","description":"Solde du compte après cette écriture"}}},"description":"Écritures du compte, par date"}}}},"debit":{"type":"number","format":"double","description":"Total porté au débit, tous comptes confondus"},"credit":{"type":"number","format":"double","description":"Total porté au crédit, tous comptes confondus"},"balance":{"type":"number","format":"double","description":"Solde du livre, nul dès lors que l'exercice est équilibré"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"412":{"description":"Condition métier interdisant cette action.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Obtenir la balance

> Scope requis : \`accounting:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/financialYear/{id}/balance":{"get":{"operationId":"getFinancialYearByIdBalance","tags":["Exercices comptables"],"summary":"Obtenir la balance","description":"Scope requis : `accounting:read`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"dateFrom","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"dateTo","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"precision","in":"query","required":false,"schema":{"type":"integer","minimum":3,"maximum":8}},{"name":"accountLabel","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Un compte par ligne, avec son débit, son crédit et son solde.","content":{"application/json":{"schema":{"type":"object","properties":{"precision":{"type":"integer","description":"Nombre de chiffres sur lequel les comptes ont été regroupés"},"lines":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string","description":"Numéro sur lequel la ligne regroupe, à la précision demandée"},"account":{"type":"string","nullable":true,"description":"Numéro du compte du plan comptable qui porte le libellé"},"accountDetail":{"type":"string","nullable":true,"description":"Chiffres du regroupement que le compte trouvé ne couvre pas"},"label":{"type":"string","nullable":true,"description":"Libellé du compte au plan comptable"},"debit":{"type":"number","format":"double","description":"Total porté au débit sur la période"},"credit":{"type":"number","format":"double","description":"Total porté au crédit sur la période"},"balance":{"type":"number","format":"double","description":"Solde de la ligne, son débit moins son crédit"}}}},"debit":{"type":"number","format":"double","description":"Total porté au débit, toutes lignes confondues"},"credit":{"type":"number","format":"double","description":"Total porté au crédit, toutes lignes confondues"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"412":{"description":"Condition métier interdisant cette action.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```

## Télécharger un état financier

> Scope requis : \`accounting:read\`.

```json
{"openapi":"3.0.3","info":{"title":"API Ouvretaferme","version":"0.1beta"},"tags":[{"name":"Exercices comptables"}],"servers":[{"url":"https://api.ouvretaferme.org/0.1beta"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Clé API personnelle ou jeton OAuth2 d'une application tierce, présenté dans l'en-tête `Authorization: Bearer`. Voir la section Authentification."}},"responses":{"ValidationError":{"description":"Un champ, un filtre ou un argument ne respecte pas les règles de validation, ou le corps n'est pas un objet JSON.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"AuthenticationError":{"description":"Clé API ou jeton absent, invalide, expiré ou révoqué.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"Forbidden":{"description":"Le jeton ne porte pas le scope requis, l'écriture n'est pas ouverte à cette structure, la structure n'a pas l'abonnement qui ouvre l'API, ou la personne qui a créé la clé n'administre plus la structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"NotFound":{"description":"Aucun élément avec cet identifiant pour votre structure.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"RateLimited":{"description":"Trop d'appels. L'en-tête `Retry-After` donne le nombre de secondes à attendre.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}},"headers":{"Retry-After":{"description":"Nombre de secondes à attendre avant le prochain appel.","schema":{"type":"integer"}}}}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string","enum":["authentication_error","resource_error","api_error"]},"code":{"type":"string"},"message":{"type":"string"}}}}},"paths":{"/financialYear/{id}/document":{"get":{"operationId":"getFinancialYearByIdDocument","tags":["Exercices comptables"],"summary":"Télécharger un état financier","description":"Scope requis : `accounting:read`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"type","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Le PDF de l'état financier demandé par son type, tel qu'il a été généré.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/AuthenticationError"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"412":{"description":"Condition métier interdisant cette action.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}}}}
```
