diff --git a/README.md b/README.md index 8cd8f31..31b6b9b 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ Les utilisateurs sont attachés au schéma (ce sont les comptes ayant un accès Vous n'avez rien à faire pour activer la clé, ce sont les équipes MyUnisoft qui s'occupent de la générer et de l'activer (càd la rendre valide vis à vis de l'API partenaires). -> À noter qu'il peut parfois y avoir un certain délai entre la génération de la clé et son activation. +> **Note** Il peut y avoir un certain délai entre la génération de la clé et son activation. La clé ne sera pas reconnue par notre API tant que la clé n'a pas été activée et par conséquent vous n'aurez pas l'autorisation de consommer notre API bien que vous ayez en votre possession une clé fournie par MyUnisoft. # Authentification 🔐 diff --git a/docs/EDI.md b/docs/EDI.md index b541760..74c340d 100644 --- a/docs/EDI.md +++ b/docs/EDI.md @@ -2,7 +2,7 @@ Documentation (Guide) sur la récupération d'un fichier de déclaration EDI. -> ⚠️ Attention l'accès à cet endpoint n'est pas automatique (si vous en avez besoin, merci de demander aux équipes MyUnisoft de vous autoriser l'accès). +> **Warning**: L'accès à cet endpoint n'est pas automatique (si vous en avez besoin, merci de demander aux équipes MyUnisoft de vous autoriser l'accès). ## API @@ -38,3 +38,7 @@ Il existe aussi deux autres erreurs possibles (avec statusCode 400); - `ACCOUNTING-FOLDER-NOT-FOUND` (L'id du dossier de production ne correspond à rien sur MyUnisoft). - `MISSING-ACCOUNTING-FOLDER-ID` (L'id du dossier de production est manquant, possible dans le cadre d'un 🔹 Accès cabinet) + +--- + +⬅️ [README](../README.md) diff --git a/docs/analytique.md b/docs/analytique.md index f18f9b2..bb44602 100644 --- a/docs/analytique.md +++ b/docs/analytique.md @@ -734,3 +734,7 @@ $ curl --location --request GET 'https://api.myunisoft.fr/api/v1/analytics/line_ ``` Le retour sera là aussi identique à la définition `AnalyticRepartition` présent dans le chapitre précédent. + +--- + +⬅️ [README](../README.md) diff --git a/docs/auth/cabinet.md b/docs/auth/cabinet.md index fa885ee..dff377f 100644 --- a/docs/auth/cabinet.md +++ b/docs/auth/cabinet.md @@ -1,41 +1,47 @@ -# 🔹 Authentification avec accès cabinet - -Notre service authentification possède un endpoint spécifique qui permet la génération d'un API Token spécialement conçu pour une utilisation avec accès cabinet. La durée de vie du token est de dix minutes. - -## Génération de la clé (API Token) - -La route (racine) pour la requête http est POST **/api/authenticate/firm**. - -Le body (JSON) de la requête pour l’authentification: -```json -{ - "mail": "{{mail}}", - "password": "{{password}}" -} -``` - -Les champs “**password**” et “**mail**” doivent être complétés avec le compte qui vous a été fourni. À noter qu'un champ supplémentaire "**firm**" peut être renseigné (si votre compte permet l'accès à plusieurs cabinets/entités MyUnisoft). - -> 👀 Le champ **firm** peut contenir l'ID numérique de l'entité/schéma ou bien le nom de celui-ci (sur MyUnisoft). Nous appelons "entité" un cabinet ou un groupement de cabinets. - ---- - -Vous devriez recevoir un status code `200` avec un JSON contenant la clé API Token. -```json -{ - "api_token": "{{API_TOKEN}}", - "expiresIn": "2021-04-12 11:54:46", - "firm": { - "id": 80, - "label": "TESTS PARTENAIRES" - } -} -``` - -## Bonus: récupérer l'id de l'entité/schéma MyUnisoft - -Dans l'interface MyUnisoft il est possible de récupérer l'id de l'entité par le biais du menu `Tenue` > `Liens dynamiques`. Il suffira de récupérer le "numéro du schéma". - -![](../images/liens_dynamique.PNG) - -Si vous n'avez pas vous-même accès un collaborateur de l'entité pourra toujours vous fournir l'information (N'hésitez pas non plus à demander à notre équipe). +# 🔹 Authentification avec accès cabinet + +Notre service authentification possède un endpoint spécifique qui permet la génération d'un API Token spécialement conçu pour une utilisation avec accès cabinet. La durée de vie du token est de quatre heures. + +## Génération de la clé (API Token) + +La route (racine) pour la requête http est POST **/api/authenticate/firm**. + +Le body (JSON) de la requête pour l’authentification: +```json +{ + "mail": "{{mail}}", + "password": "{{password}}" +} +``` + +Les champs “**password**” et “**mail**” doivent être complétés avec le compte qui vous a été fourni. À noter qu'un champ supplémentaire "**firm**" peut être renseigné (si votre compte permet l'accès à plusieurs cabinets/entités MyUnisoft). + +> 👀 Le champ **firm** peut contenir l'ID numérique de l'entité/schéma ou bien le nom de celui-ci (sur MyUnisoft). Nous appelons "entité" un cabinet ou un groupement de cabinets. + +--- + +Vous devriez recevoir un status code `200` avec un JSON contenant la clé API Token. +```json +{ + "api_token": "{{API_TOKEN}}", + "expiresIn": "2021-04-12 11:54:46", + "firm": { + "id": 80, + "label": "TESTS PARTENAIRES" + } +} +``` + +## Bonus: récupérer l'id de l'entité/schéma MyUnisoft + +Dans l'interface MyUnisoft il est possible de récupérer l'id de l'entité par le biais du menu `Tenue` > `Liens dynamiques`. Il suffira de récupérer le "numéro du schéma". + +![](../images/liens_dynamique.PNG) + +Si vous n'avez pas vous-même accès un collaborateur de l'entité pourra toujours vous fournir l'information (N'hésitez pas non plus à demander à notre équipe). + +--- + +⬅️ [README](../../README.md) | +➡️ [Utilisation des routes avec un 🔹 Accès cabinet](../endpoints/cabinet.md) + diff --git a/docs/auth/societe.md b/docs/auth/societe.md index 24c2cc5..d68c466 100644 --- a/docs/auth/societe.md +++ b/docs/auth/societe.md @@ -1,30 +1,36 @@ -# 🔸 Authentification avec accès société - -Pour commencer, il est nécessaire de récupérer **un jeton Utilisateur**. Nous vous invitons à suivre [le guide suivant](./user.md) pour en récupérer un. - -## Génération de la clé (API Token) - -Il suffit de requêter la route `/api/v1/key/create` avec la méthode **POST**: -```bash -$ curl --location --request POST 'https://app.myunisoft.fr/api/v1/key/create' \ ---header 'Authorization: Bearer {{ TOKEN }}' \ ---header 'X-Third-Party-Secret: {{ X-Third-Party-Secret }}' \ ---header 'Content-Type: application/json' \ ---data-raw '{ - "target": 1855 -} -' -``` - -- **target**: l’id de la société qui sera lié à l’API token. Il est possible de récupérer l’id d’une société par le biais de l’application MyUnisoft (l’id sera présent dans l’URL). - -Si tout se passe comme prévu vous devriez recevoir un payload comme suit avec un status code `200`. - -

- -

- -La clé value est un jeton [JWT](https://jwt.io/) que vous allez devoir utiliser pour requêter les routes exposées par l’API. Nous parlerons “d’API Token” quand il est question de l’utilisation de celui-ci (A ne pas confondre avec le jeton Utilisateur). - -À noter qu’une fois votre API token généré il n’est plus nécessaire de refaire les étapes ci-dessus (sauf si le token a entre-temps été revoqué). - +# 🔸 Authentification avec accès société + +Pour commencer, il est nécessaire de récupérer **un jeton Utilisateur**. Nous vous invitons à suivre [le guide suivant](./user.md) pour en récupérer un. + +> **Note**: Le jeton utilisateur ne sera nécessaire que pour la génération de la clé API. + +## Génération de la clé (API Token) + +Il suffit de requêter la route `/api/v1/key/create` avec la méthode **POST**: +```bash +$ curl --location --request POST 'https://app.myunisoft.fr/api/v1/key/create' \ +--header 'Authorization: Bearer {{ TOKEN }}' \ +--header 'X-Third-Party-Secret: {{ X-Third-Party-Secret }}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "target": 1855 +} +' +``` + +- **target**: l’id de la société (dossier de production) qui sera lié à l’API token. Il est possible de récupérer l’id d’une société par le biais de l’application MyUnisoft (l’id sera présent dans l’URL). + +Si tout se passe comme prévu vous devriez recevoir un payload comme suit avec un status code `200`. + +

+ +

+ +La clé value est un jeton [JWT](https://jwt.io/) que vous allez devoir utiliser pour requêter les routes exposées par l’API. Nous parlerons “d’API Token” quand il est question de l’utilisation de celui-ci (A ne pas confondre avec le jeton Utilisateur). + +> **Note**: une fois votre API token généré il n’est plus nécessaire de refaire les étapes ci-dessus (sauf si le token a entre-temps été **revoqué**). + +--- + +⬅️ [README](../../README.md) | +➡️ [Utilisation des routes avec un 🔸 Accès société](../endpoints/societe.md) diff --git a/docs/auth/user.md b/docs/auth/user.md index 8fbd798..962a45f 100644 --- a/docs/auth/user.md +++ b/docs/auth/user.md @@ -1,37 +1,41 @@ -# Authentification utilisateur - -Pour pouvoir créer un jeton (API Token) il est nécessaire de s'authentifier auprès de notre service authentification. Un compte vous sera créé au sein d'un schéma dédié aux tests avec nos différents partenaires. - -## Récupération d’un jeton sur le Service auth - -Les routes de l’API partenaires commençant par **/key** demandent toutes une en-tête http **Authorization** avec un **Bearer token** (l'access token). Nous parlerons de ce token comme étant le “**User token**”. - -La route (racine) pour la requête http est POST **/api/authenticate**. Le body (JSON) de la requête pour l’authentification: -```json -{ - "mail": "{{mail}}", - "password": "{{password}}" -} -``` - -Les champs “**password**” et “**mail**” doivent être complétés avec le compte qui vous a été fourni. - -> Si vous utilisez Postman, faites attention à désactiver l'utilisation des cookies. -![](../images/user_cookie.png) - ---- - -Vous devriez recevoir un status code `200` avec un JSON contenant la fameuse clé JWT “**access_token**”. -```json -{ - "status": "authenticated", - "policy": "OAuth2", - "firmId": 1, - "details": { - "expire_in": "2021-04-13 10:41:01", - "access_token": "{{ACCESS_TOKEN}}", - "refresh_token": "{{REFRESH_TOKEN}}", - "token_type": "bearer" - } -} -``` \ No newline at end of file +# Authentification utilisateur + +Pour pouvoir créer un jeton (API Token) il est nécessaire de s'authentifier auprès de notre service authentification. Un compte vous sera créé au sein d'un schéma dédié aux tests avec nos différents partenaires. + +## Récupération d’un jeton sur le Service auth + +Les routes de l’API partenaires commençant par **/key** demandent toutes une en-tête http **Authorization** avec un **Bearer token** (l'access token). Nous parlerons de ce token comme étant le “**User token**”. + +La route (racine) pour la requête http est POST **/api/authenticate**. Le body (JSON) de la requête pour l’authentification: +```json +{ + "mail": "{{mail}}", + "password": "{{password}}" +} +``` + +Les champs “**password**” et “**mail**” doivent être complétés avec le compte qui vous a été fourni. + +> Si vous utilisez Postman, faites attention à désactiver l'utilisation des cookies. +![](../images/user_cookie.png) + +--- + +Vous devriez recevoir un status code `200` avec un JSON contenant la fameuse clé JWT “**access_token**”. +```json +{ + "status": "authenticated", + "policy": "OAuth2", + "firmId": 1, + "details": { + "expire_in": "2021-04-13 10:41:01", + "access_token": "{{ACCESS_TOKEN}}", + "refresh_token": "{{REFRESH_TOKEN}}", + "token_type": "bearer" + } +} +``` + +--- + +⬅️ [🔸 Authentification avec accès société](./societe.md) diff --git a/docs/complementary_info.md b/docs/complementary_info.md index 48d97d4..a26000b 100644 --- a/docs/complementary_info.md +++ b/docs/complementary_info.md @@ -174,3 +174,7 @@ interface AmountTypePaid { } ``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/connector.md b/docs/connector.md index b4bfbd3..d0a1135 100644 --- a/docs/connector.md +++ b/docs/connector.md @@ -1,25 +1,29 @@ -# Connecteurs - -Les connecteurs sont des abstractions qui permettent d'interconnecter MyUnisoft avec d'autres solutions (par le biais d'implémentations techniques diverses et variées selon les contraintes et besoins de chacun). - -L'API partenaires offre la possibilité à nos partenaires (ainsi que les cabinets utilisant déjà la solution) de s'interconnecter eux-mêmes avec MyUnisoft par le biais d'une API Gateway qui s'occupera de dispatcher les demandes à nos micros-services internes (pour récupérer ou envoyer des informations d'une société ou d'un cabinet entier). - -Le gestionnaire (comptable et autres) d'un dossier aura plus tard la possibilité de gérer lui-même les outils qu'il souhaitera utiliser (dans le cadre d'un accès par société). Les différents connecteurs sont disponibles dans `Paramètres` > `Tenue` > `Connecteur (Silea, RCA...)` - -![](./images/connector_tab.PNG) - -Lors d'un clic sur un des connecteurs un pop-up s'ouvrira. Elle va permettre de générer une clé (API Token) que le comptable pourra renseigner dans votre solution. - -![](./images/connector_tab_evoliz.PNG) - -## Exemple avec Evoliz - -Pour mieux comprendre je vous invite à [visionner la vidéo de notre partenaire Evoliz](https://vimeo.com/432178505/b1a518283f) sûr comment connecter MyUnisoft avec leur solution. - -## Pourquoi - -Il pourrait être tentant d'essayer de s'interconnecter à MyUnisoft en exploitant directement nos API comme le ferait nos frontaux. Mais laissez-nous vous expliquer pourquoi ce serait une terrible erreur: - -- Le modèle d'authentification est conçu pour un Utilisateur (une personne physique). Établir une utilisation non identifiée et non autorisée aura probablement comme conséquence de compromettre la sécurité des comptes que vous exploitez. -- Vous n'avez aucune garantie que les endpoints HTTP seront demain toujours accessible et identique (Il vous sera donc impossible de vous plaindre à MyUnisoft en cas d'impact). -- Ce ne sont pas les mêmes garanties en termes de sécurité, monitoring et support. \ No newline at end of file +# Connecteurs + +Les connecteurs sont des abstractions qui permettent d'interconnecter MyUnisoft avec d'autres solutions (par le biais d'implémentations techniques diverses et variées selon les contraintes et besoins de chacun). + +L'API partenaires offre la possibilité à nos partenaires (ainsi que les cabinets utilisant déjà la solution) de s'interconnecter eux-mêmes avec MyUnisoft par le biais d'une API Gateway qui s'occupera de dispatcher les demandes à nos micros-services internes (pour récupérer ou envoyer des informations d'une société ou d'un cabinet entier). + +Le gestionnaire (comptable et autres) d'un dossier aura plus tard la possibilité de gérer lui-même les outils qu'il souhaitera utiliser (dans le cadre d'un accès par société). Les différents connecteurs sont disponibles dans `Paramètres` > `Tenue` > `Connecteur (Silea, RCA...)` + +![](./images/connector_tab.PNG) + +Lors d'un clic sur un des connecteurs un pop-up s'ouvrira. Elle va permettre de générer une clé (API Token) que le comptable pourra renseigner dans votre solution. + +![](./images/connector_tab_evoliz.PNG) + +## Exemple avec Evoliz + +Pour mieux comprendre je vous invite à [visionner la vidéo de notre partenaire Evoliz](https://vimeo.com/432178505/b1a518283f) sûr comment connecter MyUnisoft avec leur solution. + +## Pourquoi + +Il pourrait être tentant d'essayer de s'interconnecter à MyUnisoft en exploitant directement nos API comme le ferait nos frontaux. Mais laissez-nous vous expliquer pourquoi ce serait une terrible erreur: + +- Le modèle d'authentification est conçu pour un Utilisateur (une personne physique). Établir une utilisation non identifiée et non autorisée aura probablement comme conséquence de compromettre la sécurité des comptes que vous exploitez. +- Vous n'avez aucune garantie que les endpoints HTTP seront demain toujours accessible et identique (Il vous sera donc impossible de vous plaindre à MyUnisoft en cas d'impact). +- Ce ne sont pas les mêmes garanties en termes de sécurité, monitoring et support. + +--- + +⬅️ [README](../README.md) diff --git a/docs/dashboard.md b/docs/dashboard.md index 25d8f54..3c6c4b2 100644 --- a/docs/dashboard.md +++ b/docs/dashboard.md @@ -238,3 +238,7 @@ Dans le cas contraire le JSON retourné ressemble à ceci: "last_update":"2021-06-02T11:17:37" } ``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/dossier_accessible.md b/docs/dossier_accessible.md index ddbcf21..3a8199b 100644 --- a/docs/dossier_accessible.md +++ b/docs/dossier_accessible.md @@ -40,3 +40,7 @@ Retour JSON de l'API: "56" ] ``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/ecritures.md b/docs/ecritures.md index fce3b7f..4f2be9f 100644 --- a/docs/ecritures.md +++ b/docs/ecritures.md @@ -1,228 +1,232 @@ -# Récupérer les écritures comptables - -Ce guide a pour objectif de vous aider dans la récupération des écritures comptables d'un dossier de production. - -## API - -La route https://api.myunisoft.fr/api/v1/entries?type=e permet de récupérer l'intégralité des écritures par **type**. - -```bash -$ curl --location --request POST 'https://api.myunisoft.fr/api/v1/entries?type=e' \ ---header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ ---header 'Authorization: Bearer {{API_TOKEN}}' ---data-raw '{ - "sort": { "ecr": "desc" }, - "filters": [ - { - "name": "type", "value": "e" - } - ] - }' -``` - -> 👀 Penser à préciser l'en-tête **society-id** si vous utilisez un 🔹 Accès cabinet. - -Si tout va bien vous devriez recevoir un JSON avec **une structure similaire à l'exemple ci-dessous** - -```json -{ - "type": "E", - "debit_total": 118000, - "credit_total": 118000, - "entry_array": [ - { - "diary": { - "id": 15894, - "code": "V", - "label": "VENTES", - "diary_type_code": "VTE" - }, - "blocked": false, - "comment": false, - "entry_id": 1945319, - "date_piece": "2020-12-31", - "entry_date": "2020-12-31", - "entry_list": [ - { - "debit": 83.77, - "label": "TEST", - "piece": "", - "piece2": "202007567", - "account": { - "label": "TEST", - "account_id": 618900, - "account_number": "411CG875400" - }, - "currency": "EUR", - "line_entry_id": 8756022 - } - ], - "etablissement_id": 178 - } - ] -} -``` - -### Type d'écriture disponible - -Les différents types d'écritures sont: - -- **E** (ECRITURE) -- **O** (ECRITURE OCR/ECRITURE EN ATTENTE) -- **IB** (ECRITURE INTEGRATION BANCAIRE) -- **M** (ECRITURE MANUEL) -- **EXT** (ECRITURE EXTOURNE) -- **L** (ECRITURE LETTRAGE) - -### Filtre de la requête HTTP - -Il vous est possible de récupérer les écritures par période et par code journal par le biais des filtres du body JSON. - -```json -{ - "sort": { "ecr": "desc" }, - "filters": [ - { "name": "type", "value": "e" }, - { "name": "diary", "value": "02" }, - { "name": "start_date", "value": "2020-12-01" }, - { "name": "end_date", "value": "2020-12-31" } - ] -} -``` - -### Interface TypeScript (type E & O uniquement). - -```ts -export type Entries = { - type: "E"; - debit_total: number; - credit_total: number; - entry_array: EntryE[]; -} | { - type: "O"; - debit_total: number; - credit_total: number; - entry_array: EntryO[]; -} - -interface BaseEntry { - comment: boolean; - entry_id: number; - date_piece: string; - etablissement_id: number; - diary: DiaryType; - entry_list: EntryLineType[]; -} - -export interface EntryE extends BaseEntry{ - blocked: boolean; - entry_date: string; -} - -export interface EntryO extends BaseEntry{ - alerte: string; - doublon: boolean; - period_to?: string; - period_from?: string; - last_comment?: string | LastComment; - account_base_id?: string; - transaction_qonto_id: string; - entry_origin_partner_id: string; - pj_list: EntryOPJ[]; -} - -export interface LastComment { - id: number; - name: string; - comment: string; - date_time: string; -} - -export interface DiaryE { - id: number; - code: string; - label: string; - account?: { - id: number; - label: string; - number: string; - }; - diary_type_code?: string; -} - -export interface DiaryO { - id: number; - code: string; - label: string; -} - -interface BaseEntryLine { - credit?: number; - debit?: number; - label: string; - piece?: string; - piece2?: string; - account: Account; - deadline?: string; - line_entry_id: number; -} - -export interface EntryLineE extends BaseEntryLine{ - currency: string; - flags?: { - leasing: { - company: { - value: number; - }; - leasing: { - id: number; - title: string; - comment: string; - period_id: number; - is_expired: boolean; - payment_count: number; - bank_account_id: number; - contract_number: string; - payment_type_id: number; - contract_type_id: number; - is_tax_deduction: boolean; - is_deductible_vat: boolean; - personal_account_id: number; - tax_deduction_value: number; - }; - property_cost: { - actual: number; - original: number; - }; - payments?: Payment[]; - } - }; -} - -export interface Payment { - date: string; - amount: number; - insurance: number; -} - -export interface EntryLineO extends BaseEntryLine{ - payment_type: { - code: string; - name: string; - payment_type_id?: number; - }; - pj_list: EntryOPJ[]; -} - -export interface EntryOPJ { - name: string; - token: string; - etat: boolean; - link?: string; - baseUrl?: string; - download?: string; - date_time?: string; - thumbnail?: string; - document_id?: number; -} -``` +# Récupérer les écritures comptables + +Ce guide a pour objectif de vous aider dans la récupération des écritures comptables d'un dossier de production. + +## API + +La route https://api.myunisoft.fr/api/v1/entries?type=e permet de récupérer l'intégralité des écritures par **type**. + +```bash +$ curl --location --request POST 'https://api.myunisoft.fr/api/v1/entries?type=e' \ +--header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ +--header 'Authorization: Bearer {{API_TOKEN}}' +--data-raw '{ + "sort": { "ecr": "desc" }, + "filters": [ + { + "name": "type", "value": "e" + } + ] + }' +``` + +> 👀 Penser à préciser l'en-tête **society-id** si vous utilisez un 🔹 Accès cabinet. + +Si tout va bien vous devriez recevoir un JSON avec **une structure similaire à l'exemple ci-dessous** + +```json +{ + "type": "E", + "debit_total": 118000, + "credit_total": 118000, + "entry_array": [ + { + "diary": { + "id": 15894, + "code": "V", + "label": "VENTES", + "diary_type_code": "VTE" + }, + "blocked": false, + "comment": false, + "entry_id": 1945319, + "date_piece": "2020-12-31", + "entry_date": "2020-12-31", + "entry_list": [ + { + "debit": 83.77, + "label": "TEST", + "piece": "", + "piece2": "202007567", + "account": { + "label": "TEST", + "account_id": 618900, + "account_number": "411CG875400" + }, + "currency": "EUR", + "line_entry_id": 8756022 + } + ], + "etablissement_id": 178 + } + ] +} +``` + +### Type d'écriture disponible + +Les différents types d'écritures sont: + +- **E** (ECRITURE) +- **O** (ECRITURE OCR/ECRITURE EN ATTENTE) +- **IB** (ECRITURE INTEGRATION BANCAIRE) +- **M** (ECRITURE MANUEL) +- **EXT** (ECRITURE EXTOURNE) +- **L** (ECRITURE LETTRAGE) + +### Filtre de la requête HTTP + +Il vous est possible de récupérer les écritures par période et par code journal par le biais des filtres du body JSON. + +```json +{ + "sort": { "ecr": "desc" }, + "filters": [ + { "name": "type", "value": "e" }, + { "name": "diary", "value": "02" }, + { "name": "start_date", "value": "2020-12-01" }, + { "name": "end_date", "value": "2020-12-31" } + ] +} +``` + +### Interface TypeScript (type E & O uniquement). + +```ts +export type Entries = { + type: "E"; + debit_total: number; + credit_total: number; + entry_array: EntryE[]; +} | { + type: "O"; + debit_total: number; + credit_total: number; + entry_array: EntryO[]; +} + +interface BaseEntry { + comment: boolean; + entry_id: number; + date_piece: string; + etablissement_id: number; + diary: DiaryType; + entry_list: EntryLineType[]; +} + +export interface EntryE extends BaseEntry{ + blocked: boolean; + entry_date: string; +} + +export interface EntryO extends BaseEntry{ + alerte: string; + doublon: boolean; + period_to?: string; + period_from?: string; + last_comment?: string | LastComment; + account_base_id?: string; + transaction_qonto_id: string; + entry_origin_partner_id: string; + pj_list: EntryOPJ[]; +} + +export interface LastComment { + id: number; + name: string; + comment: string; + date_time: string; +} + +export interface DiaryE { + id: number; + code: string; + label: string; + account?: { + id: number; + label: string; + number: string; + }; + diary_type_code?: string; +} + +export interface DiaryO { + id: number; + code: string; + label: string; +} + +interface BaseEntryLine { + credit?: number; + debit?: number; + label: string; + piece?: string; + piece2?: string; + account: Account; + deadline?: string; + line_entry_id: number; +} + +export interface EntryLineE extends BaseEntryLine{ + currency: string; + flags?: { + leasing: { + company: { + value: number; + }; + leasing: { + id: number; + title: string; + comment: string; + period_id: number; + is_expired: boolean; + payment_count: number; + bank_account_id: number; + contract_number: string; + payment_type_id: number; + contract_type_id: number; + is_tax_deduction: boolean; + is_deductible_vat: boolean; + personal_account_id: number; + tax_deduction_value: number; + }; + property_cost: { + actual: number; + original: number; + }; + payments?: Payment[]; + } + }; +} + +export interface Payment { + date: string; + amount: number; + insurance: number; +} + +export interface EntryLineO extends BaseEntryLine{ + payment_type: { + code: string; + name: string; + payment_type_id?: number; + }; + pj_list: EntryOPJ[]; +} + +export interface EntryOPJ { + name: string; + token: string; + etat: boolean; + link?: string; + baseUrl?: string; + download?: string; + date_time?: string; + thumbnail?: string; + document_id?: number; +} +``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/endpoints/cabinet.md b/docs/endpoints/cabinet.md index bcae6cd..e6142a4 100644 --- a/docs/endpoints/cabinet.md +++ b/docs/endpoints/cabinet.md @@ -1,28 +1,32 @@ -# Endpoints d'accès cabinet - -> Suivez [ce guide](./endpoints_accessibles.md) pour récupérer les routes disponibles. -Les routes sont documentées sur le [postman](https://docs.api.myunisoft.fr/#intro) en ligne. - -Pour toutes les endpoints liées aux informations sur une société particulière, vous devez renseigner en plus l’en-tête HTTP “**society-id**”. - -```bash -curl --location --request GET 'https://app.myunisoft.fr/api/v1/society/exercice' \ ---header 'X-Third-Party-Secret: {{THIRD_PARTY_SECRET}}' \ ---header 'society-id: 1' \ ---header 'Authorization: Bearer {{API_TOKEN}}' -``` - -## Endpoints pour récupérer des informations sur le cabinet - -Les endpoints suivants ne nécessitent pas l'en-tête **society-id**: - -- /api/v1/society (liste des sociétés/dossiers du cabinet). -- /api/v1/users_v2 (liste des comptes utilisateurs du cabinet). -- /api/v1/pers_physique (liste des personnes physiques gérées par cabinet). - -Les routes sont documentés sur le [postman en ligne](https://docs.api.myunisoft.fr/#intro). - -> **Warning**: Attention car les routes sur le postman n'indique pas la nécessité d'avoir l'en-tête **society-id**. - -## Route society -La route `/api/v1/society` peut recevoir le header **society-id** ce qui permet de récupérer les informations uniquement pour la société en question. +# Endpoints d'accès cabinet + +> Suivez [ce guide](./endpoints_accessibles.md) pour récupérer les routes disponibles. +Les routes sont documentées sur le [postman](https://docs.api.myunisoft.fr/#intro) en ligne. + +Pour toutes les endpoints liées aux informations sur une société particulière, vous devez renseigner en plus l’en-tête HTTP “**society-id**”. + +```bash +curl --location --request GET 'https://app.myunisoft.fr/api/v1/society/exercice' \ +--header 'X-Third-Party-Secret: {{THIRD_PARTY_SECRET}}' \ +--header 'society-id: 1' \ +--header 'Authorization: Bearer {{API_TOKEN}}' +``` + +## Endpoints pour récupérer des informations sur le cabinet + +Les endpoints suivants ne nécessitent pas l'en-tête **society-id**: + +- /api/v1/society (liste des sociétés/dossiers du cabinet). +- /api/v1/users_v2 (liste des comptes utilisateurs du cabinet). +- /api/v1/pers_physique (liste des personnes physiques gérées par cabinet). + +Les routes sont documentés sur le [postman en ligne](https://docs.api.myunisoft.fr/#intro). + +> **Warning**: Attention car les routes sur le postman n'indique pas la nécessité d'avoir l'en-tête **society-id**. + +## Route society +La route `/api/v1/society` peut recevoir le header **society-id** ce qui permet de récupérer les informations uniquement pour la société en question. + +--- + +⬅️ [README](../../README.md) diff --git a/docs/endpoints/endpoints_accessibles.md b/docs/endpoints/endpoints_accessibles.md index 439a4ee..843af5c 100644 --- a/docs/endpoints/endpoints_accessibles.md +++ b/docs/endpoints/endpoints_accessibles.md @@ -55,3 +55,7 @@ interface Route { type Routes = Route[]; ``` + +--- + +⬅️ [README](../../README.md) diff --git a/docs/endpoints/societe.md b/docs/endpoints/societe.md index f505ce5..1f553c4 100644 --- a/docs/endpoints/societe.md +++ b/docs/endpoints/societe.md @@ -1,9 +1,12 @@ -# Endpoints d'accès sociétés - -> Suivez [ce guide](./endpoints_accessibles.md) pour récupérer les routes disponibles. -Les routes sont documentées sur le [postman](https://docs.api.myunisoft.fr/#intro) en ligne. - -Lors de l'utilisation des endpoints avec un accès de type société il n'est pas nécessaire de renseigner l'id de la société car par défaut l'API partenaires ne vous autorise l'accès qu'au dossier concerné par la clé. - -Il n'est donc pas possible de récupérer des informations en lien avec le cabinet ou d'autres sociétés/dossiers. - +# Endpoints d'accès sociétés + +> Suivez [ce guide](./endpoints_accessibles.md) pour récupérer les routes disponibles. +Les routes sont documentées sur le [postman](https://docs.api.myunisoft.fr/#intro) en ligne. + +Lors de l'utilisation des endpoints avec un accès de type société il n'est pas nécessaire de renseigner l'id de la société car par défaut l'API partenaires ne vous autorise l'accès qu'au dossier concerné par la clé. + +Il n'est donc pas possible de récupérer des informations en lien avec le cabinet ou d'autres sociétés/dossiers. + +--- + +⬅️ [README](../../README.md) diff --git a/docs/entry_facturx.md b/docs/entry_facturx.md index d2c3517..b730641 100644 --- a/docs/entry_facturx.md +++ b/docs/entry_facturx.md @@ -1,30 +1,34 @@ -# Création d'une entrée comptable avec le format Factur-X -Documentation sur la création d’une entrée comptable au format Factur-X. -​ - -Les routes HTTP concernées; -- https://api.myunisoft.fr/api/v1/invoice - -## Introduction - -Factur-X est un standard franco-allemand de facture électronique mixte (PDF pour les utilisateurs et données XML pour un traitement automatisé), première implémentation de la Norme Sémantique Européenne EN 16931 publiée par la Commission Européenne le 16 octobre 2017. Factur-x est le même standard que ZUGFeRD 2.1. - -Factur-X est en même temps une facture lisible sous format PDF, contenant toutes les informations utiles à son traitement, notamment en cas d’écart de rapprochement avec les commandes ou les réceptions, et des données de facture présentées sous forme de fichier structuré, complet ou pas, permettant aux systèmes d’information de procéder à une intégration et un rapprochement automatisé. - -L’objectif premier de Factur-X est de permettre aux fournisseurs, émetteurs de factures de créer des factures à valeur ajoutée, contenant un maximum d’informations sous forme structurée, suivant leur capacité à les produire sous cette forme, et de laisser les clients destinataires libres d’utiliser ou pas les données et / ou la presentation lisible, en fonction de leurs besoins et de leur maturité en matière d’automatisation de traitement. - -## API - -```bash -curl --location --request POST 'https://app.myunisoft.fr/api/v1/invoice?invoice_type_id=1&ocr_type_id=6&name=CHORUS0000003&extension=pdf' \ ---header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ ---header 'Content-Type: application/octet-stream' \ ---header 'Authorization: {{API_TOKEN}}' \ ---data-binary '@/F:/Code/MyUnisoft/impex/tmp/EBP/CHORUS00000034 20210122 143504.pdf' -``` - -La route prend plusieurs arguments: -- **invoice_type_id** (Required 1 = Achat / 2 = Note de frais / 3 = Vente / 4 = Avoir) -- **ocr_type_id** 6 Pour Factur-X. -- **name** (le nom du fichier qui est attaché avec la requête). -- **extension** pdf. +# Création d'une entrée comptable avec le format Factur-X +Documentation sur la création d’une entrée comptable au format Factur-X. +​ + +Les routes HTTP concernées; +- https://api.myunisoft.fr/api/v1/invoice + +## Introduction + +Factur-X est un standard franco-allemand de facture électronique mixte (PDF pour les utilisateurs et données XML pour un traitement automatisé), première implémentation de la Norme Sémantique Européenne EN 16931 publiée par la Commission Européenne le 16 octobre 2017. Factur-x est le même standard que ZUGFeRD 2.1. + +Factur-X est en même temps une facture lisible sous format PDF, contenant toutes les informations utiles à son traitement, notamment en cas d’écart de rapprochement avec les commandes ou les réceptions, et des données de facture présentées sous forme de fichier structuré, complet ou pas, permettant aux systèmes d’information de procéder à une intégration et un rapprochement automatisé. + +L’objectif premier de Factur-X est de permettre aux fournisseurs, émetteurs de factures de créer des factures à valeur ajoutée, contenant un maximum d’informations sous forme structurée, suivant leur capacité à les produire sous cette forme, et de laisser les clients destinataires libres d’utiliser ou pas les données et / ou la presentation lisible, en fonction de leurs besoins et de leur maturité en matière d’automatisation de traitement. + +## API + +```bash +curl --location --request POST 'https://app.myunisoft.fr/api/v1/invoice?invoice_type_id=1&ocr_type_id=6&name=CHORUS0000003&extension=pdf' \ +--header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ +--header 'Content-Type: application/octet-stream' \ +--header 'Authorization: {{API_TOKEN}}' \ +--data-binary '@/F:/Code/MyUnisoft/impex/tmp/EBP/CHORUS00000034 20210122 143504.pdf' +``` + +La route prend plusieurs arguments: +- **invoice_type_id** (Required 1 = Achat / 2 = Note de frais / 3 = Vente / 4 = Avoir) +- **ocr_type_id** 6 Pour Factur-X. +- **name** (le nom du fichier qui est attaché avec la requête). +- **extension** pdf. + +--- + +⬅️ [README](../README.md) diff --git a/docs/entry_fec.md b/docs/entry_fec.md index 6bfec19..177b484 100644 --- a/docs/entry_fec.md +++ b/docs/entry_fec.md @@ -1,36 +1,40 @@ -# Création d'une entrée comptable avec le format FEC -Documentation sur la création d’une entrée comptable au format FEC. -​ - -Les routes HTTP concernées; -- https://api.myunisoft.fr/api/v1/FEC - -## Introduction - -FEC est le diminutif de fichier des écritures comptables. Si n'êtes pas encore à l'aise avec ce format nous vous recommandons de lire la ressource [suivante](https://www.compta-facile.com/fichier-des-ecritures-comptables-fec-definition-contenu-utilite/) ou encore [Tout savoir sur le fec](https://info.masterfec.fr/tout-savoir-sur-le-fec). - -Exemple du format à plat: - -![](https://cdn2.hubspot.net/hubfs/3924385/Images/exemple%20fec%20excel.png) - -## API - -MyUnisoft permet de créer ou supprimer des écritures par le biais du format FEC grâce à la route `api/v1/fec`. - -```bash -$ curl --location --request POST 'https://api.myunisoft.fr/api/v1/fec?type=2&exercice_id=13647&filename=export_fec_20201002.txt' \ ---header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ ---header 'Content-Type: application/octet-stream' \ ---header 'Authorization: {{API_TOKEN}}' \ ---data-binary '@/C:/Users/name/Downloads/export_fec_20201002.txt' -``` - -La route prend plusieurs arguments: -- **exercice_id** (l'id de l'exercice. Il est possible de le récupérer par API, merci de suivre [le guide suivant](./exercices.md)). -- **filename** (le nom du fichier qui est attaché avec la requête). -- **type** (valeur numérique entre `0` et `2`). - -Le type permet de configurer le comportement de la requête: -- **0** = vérification si écriture sur l'exercice (renvoie d'un message d'erreur). -- **1** = aucune vérification on rajoute les données a l'exercice existant. -- **2** = on supprime les écritures si présent sur l'exercice. +# Création d'une entrée comptable avec le format FEC +Documentation sur la création d’une entrée comptable au format FEC. +​ + +Les routes HTTP concernées; +- https://api.myunisoft.fr/api/v1/FEC + +## Introduction + +FEC est le diminutif de fichier des écritures comptables. Si n'êtes pas encore à l'aise avec ce format nous vous recommandons de lire la ressource [suivante](https://www.compta-facile.com/fichier-des-ecritures-comptables-fec-definition-contenu-utilite/) ou encore [Tout savoir sur le fec](https://info.masterfec.fr/tout-savoir-sur-le-fec). + +Exemple du format à plat: + +![](https://cdn2.hubspot.net/hubfs/3924385/Images/exemple%20fec%20excel.png) + +## API + +MyUnisoft permet de créer ou supprimer des écritures par le biais du format FEC grâce à la route `api/v1/fec`. + +```bash +$ curl --location --request POST 'https://api.myunisoft.fr/api/v1/fec?type=2&exercice_id=13647&filename=export_fec_20201002.txt' \ +--header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ +--header 'Content-Type: application/octet-stream' \ +--header 'Authorization: {{API_TOKEN}}' \ +--data-binary '@/C:/Users/name/Downloads/export_fec_20201002.txt' +``` + +La route prend plusieurs arguments: +- **exercice_id** (l'id de l'exercice. Il est possible de le récupérer par API, merci de suivre [le guide suivant](./exercices.md)). +- **filename** (le nom du fichier qui est attaché avec la requête). +- **type** (valeur numérique entre `0` et `2`). + +Le type permet de configurer le comportement de la requête: +- **0** = vérification si écriture sur l'exercice (renvoie d'un message d'erreur). +- **1** = aucune vérification on rajoute les données a l'exercice existant. +- **2** = on supprime les écritures si présent sur l'exercice. + +--- + +⬅️ [README](../README.md) diff --git a/docs/entry_json.md b/docs/entry_json.md index a0382a7..78a6658 100644 --- a/docs/entry_json.md +++ b/docs/entry_json.md @@ -89,7 +89,7 @@ interface NewEntryLine { Numéro d'identification de la facture. Contient uniquement des caractères alphanumériques et avoir une longueur maximum de 10. */ - piece2: string; + piece2?: string; /** Doit être supérieur ou égale a la propriété date_piece, format AAAA-MM-JJ */ deadline: string; @@ -133,6 +133,8 @@ interface NewEntryLine { pointage_jj?: string; } ``` + +> **Note** Vous aurez probablement besoin d'un des deux champs (**piece** ou **piece2**). ​ ### Entrée comptable ​ @@ -302,7 +304,7 @@ Le schéma JSON est un vocabulaire qui vous permet d'annoter et de valider les d "NewEntryLine": { "type": "object", "additionalProperties": true, - "required": ["piece2", "deadline", "account_id", "label", "credit", "debit"], + "required": ["deadline", "account_id", "label", "credit", "debit"], "properties": { "pj_list": { "type": "array", @@ -467,3 +469,7 @@ Pour récupérer l'écriture en elle même il vous suffit maintenant d'appeler l ] }; ``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/entry_tra.md b/docs/entry_tra.md index 16cae30..d1d9a03 100644 --- a/docs/entry_tra.md +++ b/docs/entry_tra.md @@ -1,14 +1,18 @@ -# Création d'une entrée comptable avec le format TRA+PJ -Documentation sur la création d’une entrée comptable au format TRA+PJ. -​ - -Les routes HTTP concernées; -- https://api.myunisoft.fr/api/v1/TRA/partial - -## Introduction - -Un TRA + PJ est une archive .zip contenant un fichier .TRA et optionnellement des pièces jointes (à la racine de l'archive). - -![](./images/TRA_archive.PNG) - -Le format du fichier .TRA est documenté dans [le PDF ici](./formats/TRA.pdf). +# Création d'une entrée comptable avec le format TRA+PJ +Documentation sur la création d’une entrée comptable au format TRA+PJ. +​ + +Les routes HTTP concernées; +- https://api.myunisoft.fr/api/v1/TRA/partial + +## Introduction + +Un TRA + PJ est une archive .zip contenant un fichier .TRA et optionnellement des pièces jointes (à la racine de l'archive). + +![](./images/TRA_archive.PNG) + +Le format du fichier .TRA est documenté dans [le PDF ici](./formats/TRA.pdf). + +--- + +⬅️ [README](../README.md) diff --git a/docs/erreurs.md b/docs/erreurs.md index 0a26a6e..0c6d907 100644 --- a/docs/erreurs.md +++ b/docs/erreurs.md @@ -636,3 +636,6 @@ Les codes d’erreurs (unique) sont les suivants; | WORKSHEET8 | Le compte de TVA ne doit pas être renseigné pour ce type de feuille de travail | 400 | | WORKSHEET9 | Impossible de trouver la feuille de travail sélectionnée | 400 | +--- + +⬅️ [README](../README.md) diff --git a/docs/exercices.md b/docs/exercices.md index ec18142..f65bb5d 100644 --- a/docs/exercices.md +++ b/docs/exercices.md @@ -91,3 +91,7 @@ export interface Exercice { ``` Si l'exercice n'est pas un clos les valeurs `closed_at` et `closed_by` seront null. + +--- + +⬅️ [README](../README.md) diff --git a/docs/journaux.md b/docs/journaux.md index 3cdc076..97ad93f 100644 --- a/docs/journaux.md +++ b/docs/journaux.md @@ -234,3 +234,7 @@ interface Diary { diary_type_name: string; } ``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/paiements.md b/docs/paiements.md index bdda93e..b61fabc 100644 --- a/docs/paiements.md +++ b/docs/paiements.md @@ -1,72 +1,76 @@ -# Récupérer les types de paiement disponible sur une société (dossier) -Ce guide a pour objectif de vous aider dans la récupération des méthodes de paiement disponible sur une société (dossier). - -## API - -La route https://api.myunisoft.fr/api/v1/payment_type permet de récupérer la même liste mais par le biais de l'API partenaires. - -```bash -$ curl --location --request GET 'https://api.myunisoft.fr/api/v1/payment_type' \ ---header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ ---header 'Authorization: Bearer {{API_TOKEN}}' -``` - -> 👀 Penser à préciser l'en-tête **society-id** si vous utilisez un 🔹 Accès cabinet. - -Si tout va bien vous devriez recevoir un JSON avec **une structure similaire à l'exemple ci-dessous** -```json -[ - { - "payment_type_id": 11093, - "name": "Carte bleue", - "code": "CB" - }, - { - "payment_type_id": 11096, - "name": "Chèque", - "code": "CHQ" - }, - { - "payment_type_id": 11095, - "name": "Espèce", - "code": "ESP" - }, - { - "payment_type_id": 11098, - "name": "Lettre de change", - "code": "LCR" - }, - { - "payment_type_id": 11097, - "name": "Prélèvement", - "code": "PRLV" - }, - { - "payment_type_id": 11094, - "name": "Virement", - "code": "VIRT" - } -] -``` - -### Type de paiement - -| id | label | code | -| --- | --- | --- | -| 1 | Télépaiement | TP | -| 2 | Chéque | CH | -| 3 | Prélèvement | PRE | -| 4 | Virement | VIR | -| 5 | Espèce | ESP | - -## Définition TypeScript - -Le endpoint **payment_type** retourne un tableau de structure Payment. - -```ts -interface Payment { - payment_type_id: number; - name: string; - code: string; -} -``` \ No newline at end of file +# Récupérer les types de paiement disponible sur une société (dossier) +Ce guide a pour objectif de vous aider dans la récupération des méthodes de paiement disponible sur une société (dossier). + +## API + +La route https://api.myunisoft.fr/api/v1/payment_type permet de récupérer la même liste mais par le biais de l'API partenaires. + +```bash +$ curl --location --request GET 'https://api.myunisoft.fr/api/v1/payment_type' \ +--header 'X-Third-Party-Secret: nompartenaire-L8vlKfjJ5y7zwFj2J49xo53V' \ +--header 'Authorization: Bearer {{API_TOKEN}}' +``` + +> 👀 Penser à préciser l'en-tête **society-id** si vous utilisez un 🔹 Accès cabinet. + +Si tout va bien vous devriez recevoir un JSON avec **une structure similaire à l'exemple ci-dessous** +```json +[ + { + "payment_type_id": 11093, + "name": "Carte bleue", + "code": "CB" + }, + { + "payment_type_id": 11096, + "name": "Chèque", + "code": "CHQ" + }, + { + "payment_type_id": 11095, + "name": "Espèce", + "code": "ESP" + }, + { + "payment_type_id": 11098, + "name": "Lettre de change", + "code": "LCR" + }, + { + "payment_type_id": 11097, + "name": "Prélèvement", + "code": "PRLV" + }, + { + "payment_type_id": 11094, + "name": "Virement", + "code": "VIRT" + } +] +``` + +### Type de paiement + +| id | label | code | +| --- | --- | --- | +| 1 | Télépaiement | TP | +| 2 | Chéque | CH | +| 3 | Prélèvement | PRE | +| 4 | Virement | VIR | +| 5 | Espèce | ESP | + +## Définition TypeScript + +Le endpoint **payment_type** retourne un tableau de structure Payment. + +```ts +interface Payment { + payment_type_id: number; + name: string; + code: string; +} +``` + +--- + +⬅️ [README](../README.md) diff --git a/docs/pj.md b/docs/pj.md index 13ed60d..96a2ce1 100644 --- a/docs/pj.md +++ b/docs/pj.md @@ -1,47 +1,51 @@ -# Attacher une pièce jointe à une entrée comptable existante -Ce guide a pour objectif de vous aider dans l'ajout (upload) d'une pièce jointe sur une écriture comptable déjà existante. C'est une approche qui peut être nécessaire dans plusieurs situations: - -- Combiner avec un import au format JSON (pour éviter de charger en mémoire l'intégralité du fichier). -- Vous permettre plus de flexibilité dans la gestion de la pièce jointe (si vous avez par exemple un système en deux temps). -- Permettre de revenir plus tard pour un ajout ou une correction. - -Dans MyUnisoft les pièces jointes sont visibles à gauche (sur la saisie). À noter que leur présence sur la première ligne ne leur donne pas particulièrement d'affiliation avec la ligne elle-même (elles sont bien souvent en lien avec l'écriture elle-même). - -![](./images/pj.PNG) - -Effectuer un clic sur la bulle noire vous ouvrira une nouvelle page navigateur avec un rendu de la pièce. - -## API - -La route https://api.myunisoft.fr/api/v1/document/add_all_types permets d'envoyer une pièce jointe sur une écriture précise. - -```bash -curl --location --request POST 'https://api.myunisoft.fr/api/v1/document/add_all_types?location=ENTRIES&object_id=79985373&filename_extension=note%20de%20frais%20manuel.JPG&type_result=1' \ ---header 'X-Third-Party-Secret: {{X-Third-Party-Secret}}' \ ---header 'Content-Type: application/octet-stream' \ ---header 'Authorization: Bearer {{API_TOKEN}}' -``` - -Les paramètres (URL) de la route sont les suivants: - -| clé | description | -| --- | --- | -| location | Le type de l'entrée, **ENTRIES** ou **ENTRIES_TEMP** | -| object_id | l'id de l'entrée comptable sur laquelle nous souhaitons ajouter la pièce | -| filename_extension | le nom du fichier avec l'extension | -| type_result | laisser la valeur 1 | - -### Location - -Dans MyUnisoft la location correspond à la catégorie de la saisie - -![](./images/saisie_location.PNG) - -- ENTRIES = **Ecriture** -- ENTRIES_TEMP = **Facture(s) en attente** - -### Récupération d'une écriture - -Pour récupérer l'id d'une écriture les guides suivants pourront probablement vous aider; -- [Par l'endpoint de récupération des écritures comptables](https://github.com/MyUnisoft/api-partenaires/blob/main/docs/ecritures.md) -- [Par l'ID partenaire](https://github.com/MyUnisoft/api-partenaires/blob/main/docs/entry_json.md#gestion-dun-id-partenaire) \ No newline at end of file +# Attacher une pièce jointe à une entrée comptable existante +Ce guide a pour objectif de vous aider dans l'ajout (upload) d'une pièce jointe sur une écriture comptable déjà existante. C'est une approche qui peut être nécessaire dans plusieurs situations: + +- Combiner avec un import au format JSON (pour éviter de charger en mémoire l'intégralité du fichier). +- Vous permettre plus de flexibilité dans la gestion de la pièce jointe (si vous avez par exemple un système en deux temps). +- Permettre de revenir plus tard pour un ajout ou une correction. + +Dans MyUnisoft les pièces jointes sont visibles à gauche (sur la saisie). À noter que leur présence sur la première ligne ne leur donne pas particulièrement d'affiliation avec la ligne elle-même (elles sont bien souvent en lien avec l'écriture elle-même). + +![](./images/pj.PNG) + +Effectuer un clic sur la bulle noire vous ouvrira une nouvelle page navigateur avec un rendu de la pièce. + +## API + +La route https://api.myunisoft.fr/api/v1/document/add_all_types permets d'envoyer une pièce jointe sur une écriture précise. + +```bash +curl --location --request POST 'https://api.myunisoft.fr/api/v1/document/add_all_types?location=ENTRIES&object_id=79985373&filename_extension=note%20de%20frais%20manuel.JPG&type_result=1' \ +--header 'X-Third-Party-Secret: {{X-Third-Party-Secret}}' \ +--header 'Content-Type: application/octet-stream' \ +--header 'Authorization: Bearer {{API_TOKEN}}' +``` + +Les paramètres (URL) de la route sont les suivants: + +| clé | description | +| --- | --- | +| location | Le type de l'entrée, **ENTRIES** ou **ENTRIES_TEMP** | +| object_id | l'id de l'entrée comptable sur laquelle nous souhaitons ajouter la pièce | +| filename_extension | le nom du fichier avec l'extension | +| type_result | laisser la valeur 1 | + +### Location + +Dans MyUnisoft la location correspond à la catégorie de la saisie + +![](./images/saisie_location.PNG) + +- ENTRIES = **Ecriture** +- ENTRIES_TEMP = **Facture(s) en attente** + +### Récupération d'une écriture + +Pour récupérer l'id d'une écriture les guides suivants pourront probablement vous aider; +- [Par l'endpoint de récupération des écritures comptables](https://github.com/MyUnisoft/api-partenaires/blob/main/docs/ecritures.md) +- [Par l'ID partenaire](https://github.com/MyUnisoft/api-partenaires/blob/main/docs/entry_json.md#gestion-dun-id-partenaire) + +--- + +⬅️ [README](../README.md) diff --git a/docs/plan_comptable.md b/docs/plan_comptable.md index 74f72c8..61d96e5 100644 --- a/docs/plan_comptable.md +++ b/docs/plan_comptable.md @@ -316,3 +316,7 @@ La requête ci-dessus aura pour effet de récupérer (ou créer s'il n'existe pa ### Mise à jour d'un compte existant TBC + +--- + +⬅️ [README](../README.md) diff --git a/docs/society.md b/docs/society.md index 3780b3b..4a36f0d 100644 --- a/docs/society.md +++ b/docs/society.md @@ -595,3 +595,7 @@ Il est possible de récupérer les informations d'un dossier spécifique grâce: > Le retour JSON de l'API a la même structure que le retour JSON avec accès société. + +--- + +⬅️ [README](../README.md) diff --git a/docs/tva.md b/docs/tva.md index 4f09d1c..1f7d6e4 100644 --- a/docs/tva.md +++ b/docs/tva.md @@ -157,3 +157,7 @@ Attention `account_ded` et `account_coll` peuvent être null (dans le cas d'un r ## Architecture d'une TVA MyUnisoft À la différence de plusieurs autres logiciels la TVA sur MyUnisoft est directement composé d'un compte achat (déductible) et vente (collectée). Dans le cadre d'une auto-liquidation vous aurez donc au sein d'une même TVA l'intégralité des informations qui vous sont nécessaires. + +--- + +⬅️ [README](../README.md) diff --git a/docs/users.md b/docs/users.md index 7dd4bad..e3e78a9 100644 --- a/docs/users.md +++ b/docs/users.md @@ -249,3 +249,6 @@ interface Company { ``` +--- + +⬅️ [README](../README.md)