> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stockshift.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Enregistrer une vue

> Enregistre la définition d'un rapport et son mode d'affichage comme nouvelle vue privée. Avec l'ID d'une vue dans le chemin, enregistre une nouvelle version de cette vue et laisse chaque version antérieure inchangée. La définition est validée par rapport aux champs du jeu de données que le membre peut lire. Seul le propriétaire de la vue ou un membre ayant l'autorisation `insights.reports.share` peut la modifier. La modification est consignée dans l'historique d'audit. Nécessite l'autorisation `insights.reports.manage` et un jeton avec `insights:write`.



## OpenAPI

````yaml /openapi.fr-CA.json put /insights/views/{view}
openapi: 3.1.2
info:
  title: StockShift API
  version: 1.0.0
  description: >-
    L'API REST de StockShift. Commencez par les guides sur l'authentification,
    les portées, la pagination, les erreurs et les webhooks.
servers:
  - url: https://app.stockshift.io/api/v1
    description: Production
  - url: https://app.beta.stockshift.io/api/v1
    description: Bêta
security:
  - apiKey: []
  - oauth2: []
tags:
  - name: Actions de stock avec témoin
    description: >-
      Retenir une action de stock pour une deuxième personne, qui recompte à
      l'aveugle et signe, et lire les deux signatures. Le stock ne change qu'une
      fois que le témoin a signé.
  - name: Stock des articles
    description: "Tout sur le stock d'un article\_: où il se trouve, ce qui est promis, comment il est suivi et ce qu'il coûte."
  - name: Transferts
    description: >-
      Déplacer du stock d'un emplacement à un autre, avec un délai de transit
      entre l'expédition et la réception.
  - name: Coûts de revient rendus
    description: >-
      Ajoutez le fret, les droits et les autres frais au coût du stock que vous
      avez reçu.
  - name: Dénombrements de stock
    description: >-
      Comptez ce qui est sur l'étagère, comparez-le à ce que StockShift attend
      et comptabilisez l'écart une fois que quelqu'un l'approuve.
  - name: Emplacements
    description: >-
      Les entrepôts, salles et bacs où le stock est conservé. La plupart des
      appels de stock ont besoin d'un ID d'emplacement venant d'ici.
  - name: Périodes
    description: "Closez chaque mois une fois qu'il est déclaré\_: verrouillez ce qui y est daté, vérifiez que rien n'est resté ouvert et conservez la valeur du stock à sa fin."
  - name: Importations d'inventaire
    description: >-
      Charger le stock d'ouverture à partir d'un fichier CSV, avec un aperçu
      avant toute comptabilisation.
  - name: Demandes de libération
    description: >-
      Demandez à l'AQ de libérer du stock en attente, et refusez ou retirez la
      demande. Libérer le stock la clôt.
  - name: Signataires
    description: "Qui peut signer les actions de stock avec témoin\_: dont l'identité a été vérifiée, comment et quand, et les signatures échouées que les réviseurs doivent voir."
  - name: Stock
    description: >-
      Combien de chaque article se trouve où. Lisez les niveaux, maintenant ou à
      une date passée, et comptabilisez des ajustements lorsque du stock est
      trouvé, perdu ou endommagé.
  - name: Règles de témoin
    description: >-
      Quelles actions de stock attendent qu'une seconde personne recompte et
      signe, comme le retrait d'une substance contrôlée.
  - name: Règles d'allocation
    description: >-
      Quels lots sont prélevés en premier lorsque le stock est réservé ou
      expédié, comme premier à expirer, premier sorti.
  - name: Paramètres d'inventaire
    description: >-
      Comment l'organisation gère le stock, par exemple si le stock peut devenir
      négatif et comment il est évalué.
  - name: Lots
    description: >-
      Des lots de stock qui partagent un numéro de lot, et leur date
      d'expiration.
  - name: Mouvements
    description: >-
      Le registre derrière chaque niveau de stock. Les mouvements ne sont jamais
      modifiés ; on en corrige un en le contrepassant.
  - name: Numéros de série
    description: Les unités suivies individuellement, et où se trouve chacune maintenant.
  - name: Mouvements de stock
    description: >-
      Déplacer du stock d'un emplacement à un autre en une seule étape, par
      exemple d'un quai à une tablette, et annuler un déplacement en entier.
  - name: Aperçus en lot
    description: >-
      Vérifiez une liste de lignes de stock avant un déplacement, un ajustement,
      une retenue ou une impression en lot, et voyez ce que chaque ligne demande
      de décider.
  - name: Articles
    description: >-
      Les produits et matières que vous stockez, achetez, fabriquez ou vendez.
      L'ID ou l'UGS d'un article est ce que la plupart des autres points de
      terminaison demandent.
  - name: Familles
    description: >-
      Des groupes d'articles qui ne diffèrent que par des options comme la
      taille ou la couleur, et les variantes qui en sont issues.
  - name: Importations du catalogue
    description: >-
      Créez ou mettez à jour des articles à partir d'un fichier CSV, avec un
      aperçu avant que quoi que ce soit soit enregistré.
  - name: Champs personnalisés
    description: >-
      Des champs supplémentaires que l'organisation ajoute à ses articles.
      Définissez-les ici, puis définissez leurs valeurs sur chaque article.
  - name: Bibliothèque de produits
    description: >-
      Rechercher un produit par son GTIN et créer un article à partir de ce que
      la bibliothèque en sait.
  - name: Unités
    description: >-
      Unités de mesure, comme each, box ou kg. Les articles se comptent dans une
      unité de base et se convertissent à partir des autres.
  - name: Balayage
    description: >-
      Transformer un code-barres balayé en l'article, l'unité ou la pièce
      étiquetée qu'il identifie.
  - name: Fournisseurs
    description: >-
      Les entreprises auprès de qui vous achetez, les personnes avec qui vous
      traitez là-bas et ce qu'elles vous facturent.
  - name: Bons de commande
    description: >-
      Des commandes aux fournisseurs. Rédigez-en une en brouillon, approuvez-la,
      envoyez-la et recevez-y les marchandises.
  - name: Importations d'achats
    description: Charger des fournisseurs et leurs catalogues à partir de fichiers CSV.
  - name: Paramètres d'achats
    description: >-
      Comment l'organisation achète, par exemple le seuil d'approbation et de
      combien une réception peut dépasser la commande.
  - name: Réceptions
    description: >-
      Les marchandises reçues pour des bons de commande. Contrepassez une
      réception pour la corriger, ou imprimez des étiquettes pour ce qui est
      arrivé.
  - name: Fournisseurs d'articles
    description: Quels fournisseurs vendent un article, et à quel prix.
  - name: Exportations d'achats
    description: >-
      Téléchargez des fournisseurs ou leurs catalogues en CSV, avec les mêmes
      colonnes que celles que l'importation lit.
  - name: Commandes client
    description: >-
      Les commandes des clients. Prenez-en une en brouillon, confirmez-la pour
      retenir du stock, puis expédiez-la et facturez-la.
  - name: Clients
    description: >-
      Les entreprises à qui vous vendez et les personnes avec qui vous traitez
      là-bas.
  - name: Factures
    description: >-
      Les factures de ce que vous avez vendu, et les paiements consignés à leur
      égard.
  - name: Listes de prix
    description: >-
      Les prix qu'un client paie, avec des paliers de quantité. Donnez une liste
      de prix à un client et ses commandes se tarifent d'elles-mêmes.
  - name: Soumissions
    description: >-
      Des offres aux clients. Une soumission acceptée devient une commande
      client.
  - name: Taux de taxe
    description: Les taux de taxe de vente auxquels les factures sont facturées.
  - name: Importations de ventes
    description: Charger des clients et des listes de prix à partir de fichiers CSV.
  - name: Retours
    description: "Les marchandises que les clients renvoient\_: autoriser le retour, puis le recevoir en stock et le créditer."
  - name: Expéditions
    description: Ce qui a quitté le bâtiment pour chaque commande client.
  - name: Paramètres de ventes
    description: >-
      Comment l'organisation vend, par exemple quand le stock est réservé et si
      les factures peuvent partir avant l'expédition.
  - name: Certificats de conformité
    description: >-
      Certificats signés attestant que les marchandises d'une expédition sont
      conformes à la commande, conservés exactement tels qu'ils ont été signés.
  - name: Prix
    description: >-
      Demander ce qu'un client paierait pour une quantité d'un article avant de
      la mettre sur une commande.
  - name: Exportations de ventes
    description: >-
      Téléchargez des clients et des listes de prix en CSV, avec les mêmes
      colonnes que celles que l'importation lit.
  - name: Ordres de fabrication
    description: >-
      Des ordres pour fabriquer quelque chose. Lancez un ordre de fabrication à
      l'atelier, sortez ses pièces et terminez-le en stock.
  - name: Réparations
    description: "Les réparations d'unités que les clients renvoient\_: vérifier la garantie, enregistrer les pièces posées et retirées, puis terminer la réparation ou la facturer."
  - name: Gammes
    description: >-
      Les étapes que traverse un ordre de fabrication et le poste de travail où
      chaque étape s'exécute.
  - name: Postes de travail
    description: >-
      Les machines, cellules ou équipes où les étapes d'une gamme sont
      réalisées.
  - name: Conditions de garantie
    description: >-
      Combien de temps un article est sous garantie et si la durée compte à
      partir de l'expédition ou de la fabrication, avec des conditions propres à
      certains clients.
  - name: Traçabilité
    description: >-
      Retracer un lot ou un numéro de série jusqu'à ce qui y est entré, ou vers
      l'avant jusqu'à ce dans quoi il est entré.
  - name: Paramètres de fabrication
    description: >-
      Comment l'organisation fabrique, par exemple si les opérations peuvent se
      chevaucher et le statut dans lequel vont les produits finis.
  - name: Planification
    description: Planifier les ordres de fabrication ouverts sur les jours ouvrables.
  - name: Écarts de coût
    description: >-
      Là où un ordre de fabrication terminé a coûté plus ou moins que son coût
      standard.
  - name: Nomenclatures
    description: "Nomenclatures\_: les pièces et les quantités qui entrent dans un article, conservées sous forme de révisions."
  - name: Modifications techniques
    description: >-
      Des ordres de modification qui proposent de nouvelles révisions de
      nomenclature et les lancent une fois approuvés.
  - name: Importations d'ingénierie
    description: >-
      Charger des nomenclatures à partir d'un fichier CSV ou d'une exportation
      CAO.
  - name: Paramètres d'ingénierie
    description: >-
      Comment l'organisation gère les modifications techniques, par exemple
      combien d'approbations un ordre de modification nécessite.
  - name: Exportations d'ingénierie
    description: >-
      Téléchargez des nomenclatures en CSV, avec les mêmes colonnes que celles
      que l'importation lit.
  - name: Cas d'emploi
    description: >-
      Trouvez toutes les nomenclatures où figure un article, avant de le
      modifier ou de le retirer.
  - name: Plans d'inspection
    description: "Quoi vérifier, sur quels articles et en quelle quantité\_: les caractéristiques, l'échantillonnage et le point d'inspection de chaque plan."
  - name: Inspections
    description: >-
      Les inspections ouvertes par les réceptions, les opérations et les ordres
      de fabrication. Enregistrez leurs résultats pour accepter ou refuser le
      stock qu'elles retiennent.
  - name: Prévisions
    description: >-
      La demande attendue pour chaque article, semaine par semaine, et les
      changements que les planificateurs y apportent.
  - name: Scénarios
    description: >-
      Des copies de la prévision pour essayer des changements sans toucher au
      plan réel.
  - name: Demande
    description: >-
      La demande passée d'un article à un emplacement, à partir de laquelle les
      prévisions sont établies.
  - name: Suggestions
    description: >-
      Ce que le plan dit d'acheter ou de fabriquer. Acceptez-en un pour créer le
      bon de commande ou l'ordre de fabrication, ou rejetez-le.
  - name: Réapprovisionnement
    description: "Comment chaque article est tenu en stock à chaque emplacement\_: points de commande, minimums et maximums ou révision périodique."
  - name: Jours fériés
    description: >-
      Les jours où l'organisation ne travaille pas, que le plan ignore lorsqu'il
      compte les délais de livraison.
  - name: Paramètres de planification
    description: >-
      Comment l'organisation planifie, par exemple l'horizon des prévisions et
      le niveau de service.
  - name: Automatisations
    description: >-
      Des règles qui exécutent des étapes lorsque quelque chose se produit ou
      selon une planification. Modifiez le brouillon, puis publiez-le pour
      l'activer.
  - name: Exécutions
    description: "Chaque fois qu'une automatisation s'est exécutée\_: ce qui l'a déclenchée, ce que chaque étape a fait et où elle a échoué."
  - name: Approbations
    description: >-
      Des exécutions en pause, en attente qu'une personne les approuve ou les
      rejette avant de continuer.
  - name: Paramètres d'automatisation
    description: >-
      Des limites à l'échelle de l'organisation pour les automatisations, par
      exemple les exécutions par minute et si quelqu'un peut approuver sa propre
      exécution.
  - name: Modèles d'automatisation
    description: Des automatisations prêtes à l'emploi pour commencer.
  - name: Événements
    description: >-
      Les événements qui peuvent déclencher une automatisation, et les données
      que chacun transporte.
  - name: Catalogue d'étapes
    description: >-
      Chaque étape qu'une automatisation peut utiliser et les entrées que
      chacune accepte.
  - name: Vues
    description: "Les rapports enregistrés\_: le jeu de données, les filtres, le regroupement et le graphique que quelqu'un a configurés, prêts à être exécutés de nouveau."
  - name: Tableaux de bord
    description: Des pages de graphiques et d'indicateurs disposés sur une grille.
  - name: Jeux de données
    description: >-
      Les données sur lesquelles vous pouvez produire des rapports et les champs
      de chacune. Commencez ici pour créer un rapport.
  - name: Planifications
    description: >-
      Envoyer un rapport par courriel selon une planification, ou alerter
      quelqu'un lorsqu'une valeur franchit un seuil.
  - name: Indicateurs
    description: >-
      Des nombres isolés à surveiller, définis comme une formule sur un jeu de
      données.
  - name: Tableau de bord
    description: >-
      Les chiffres de l'écran d'accueil de l'application, si vous voulez
      afficher les mêmes nombres ailleurs.
  - name: Dossiers de vues
    description: Des dossiers qui gardent les vues enregistrées en ordre.
  - name: Exportations d'analyses
    description: >-
      Exportez un rapport vers un fichier. Les grandes exportations s'exécutent
      en arrière-plan et sont prêtes à télécharger plus tard.
  - name: Modèles de rapports
    description: >-
      Des rapports prêts à l'emploi, comme le vieillissement du stock, pour
      commencer une vue.
  - name: Rapports
    description: >-
      Exécuter la définition d'un rapport et en obtenir les lignes ou le
      graphique, sans l'enregistrer d'abord.
  - name: Modèles de tableau de bord
    description: Des tableaux de bord prêts à l'emploi pour commencer.
  - name: Formules
    description: >-
      Vérifiez une formule par rapport à un jeu de données avant de
      l'enregistrer dans un KPI ou un champ calculé.
  - name: Connexions
    description: >-
      Les comptes connectés dans d'autres systèmes, ce que chacun synchronise et
      l'historique de ses exécutions de synchronisation.
  - name: Expédition
    description: >-
      Les tarifs des transporteurs, les étiquettes achetées pour les commandes
      et les retours, et les balayages qui suivent chaque colis.
  - name: Migrations
    description: "Apportez des enregistrements d'un autre système\_: préparez des fichiers ou une extraction, faites correspondre les colonnes, vérifiez les lignes, validez-les et annulez la validation."
  - name: Approvisionnement
    description: "Prix et stock des pièces de distributeur\_: cherchez dans un distributeur connecté, liez des articles à ses pièces et établissez le prix d'une révision de nomenclature."
  - name: CAO
    description: "Assemblages CAO et PLM\_: listez les assemblages d'un outil connecté et surveillez ceux dont les versions deviennent des importations de nomenclature."
  - name: Exportation de données
    description: >-
      Tout ce que l'organisation détient en un seul ZIP de fichiers CSV et de
      lignes JSON, à télécharger par le propriétaire.
  - name: Adresses fiscales
    description: >-
      Les adresses d'après lesquelles un service de taxes connecté taxe chaque
      vente, validées auprès de lui.
  - name: Connecteurs
    description: >-
      Les systèmes auxquels StockShift peut se connecter, et ce que chaque
      connecteur peut synchroniser.
  - name: Jeux d'étiquettes
    description: >-
      Tous les lots d'étiquettes imprimés, pour que vous puissiez les retrouver
      et les réimprimer.
  - name: Modèles d'étiquettes
    description: Les mises en page avec lesquelles les étiquettes sont imprimées.
  - name: Pièces
    description: "Retrouver une pièce étiquetée à partir du code de son étiquette\_: l'article, le lot ou le numéro de série et ce qu'elle contient."
  - name: Image de marque et modèles
    description: >-
      Le logo, les couleurs, les conditions et les champs personnalisés avec
      lesquels chaque soumission, bon de commande, facture et bordereau
      d'expédition s'imprime.
  - name: Applications mobiles
    description: >-
      Comment les applications mobiles StockShift inscrivent un appareil, se
      connectent et restent synchronisées avec le serveur.
  - name: Appareils
    description: >-
      Les téléphones et lecteurs inscrits dans l'organisation. Verrouillez-en un
      perdu, effacez-le ou retirez-le.
  - name: Configuration du lecteur
    description: >-
      Des feuilles imprimables de codes-barres qui configurent un scanner
      matériel, et les préférences de scanner de chaque personne.
  - name: Inscriptions
    description: Créer les codes QR qui inscrivent les appareils partagés et les bornes.
  - name: Flux de synchronisation
    description: >-
      Téléchargez un instantané des données dont un appareil a besoin, puis
      récupérez les changements depuis.
  - name: Commandes de synchronisation
    description: >-
      Envoyez les modifications qu'un appareil a faites hors ligne. Chaque
      commande est appliquée une seule fois, peu importe le nombre d'envois.
  - name: Fichiers de synchronisation
    description: >-
      Téléchargez les fichiers, comme les images d'articles, auxquels un flux
      renvoie.
  - name: Profil
    description: "Le compte de la personne connectée\_: ses coordonnées, son mot de passe, ses clés d'accès, son second facteur et ses sessions."
  - name: Notifications
    description: "La boîte de réception du membre connecté\_: ce qui requiert son attention, ce qui n'est pas lu, et ce dont on l'avise et comment."
  - name: Invitations
    description: >-
      Inviter des personnes à rejoindre l'organisation, et accepter une
      invitation.
  - name: Rôles
    description: >-
      Les rôles et les autorisations de chacun. Un membre peut faire ce que ses
      rôles permettent.
  - name: Accès du personnel
    description: >-
      Des demandes du soutien de StockShift pour consulter les données de
      l'organisation, qu'un propriétaire doit accorder.
  - name: Équipe
    description: Les personnes de l'organisation et les rôles qu'elles détiennent.
  - name: Clés d'API
    description: >-
      Créez et révoquez les clés que les scripts et les intégrations utilisent
      pour appeler cette API.
  - name: Organisations
    description: Les organisations auxquelles appartient la personne connectée.
  - name: Signatures
    description: >-
      Certaines actions exigent une signature électronique. Obtenez ici un jeton
      de signature et envoyez-le avec l'appel.
  - name: Inscription
    description: Créer un nouveau compte et une nouvelle organisation.
  - name: Organisation
    description: "Politique à l'échelle de l'organisation\_: durée de conservation des enregistrements, règles de session, conservations légales et fermeture de l'organisation."
  - name: Acceptations légales
    description: >-
      Les versions des Conditions d'utilisation et de la Politique de
      confidentialité que l'organisation a acceptées, les versions qui attendent
      un propriétaire, et un certificat de chaque acceptation.
  - name: Adresse
    description: L'adresse de facturation qui figure sur les factures de l'organisation.
  - name: Historique
    description: Qui a modifié quel champ d'un enregistrement, quand et à partir de quoi.
  - name: Certificats de destruction
    description: Vérifier qu'un certificat de destruction de données est authentique.
  - name: Facturation
    description: >-
      Consultez ou modifiez le forfait, achetez des blocs d'exécutions pour les
      automatisations, consultez les factures et mettez à jour le mode de
      paiement.
  - name: Webhooks
    description: >-
      Enregistrer des URL à informer lorsque des choses se produisent, et voir
      chaque livraison et sa réponse.
  - name: Applications OAuth
    description: >-
      Les applications tierces que des membres ont connectées par OAuth.
      Révoquez-en une pour couper son accès.
  - name: Hooks REST
    description: "Pour les applications connectées comme Zapier\_: abonner un événement à une URL, et le désabonner."
  - name: Serveur MCP
    description: >-
      Laissez un assistant IA travailler dans StockShift par le Model Context
      Protocol, avec les mêmes autorisations que le membre qui le connecte.
  - name: Événements récents
    description: >-
      Les derniers événements d'un type, tels que les livraisons les envoient, à
      interroger ou à utiliser comme échantillons.
  - name: Événements webhook
    description: >-
      Tous les événements que les webhooks et les REST hooks peuvent envoyer,
      avec la forme de leurs données.
paths:
  /insights/views/{view}:
    put:
      tags:
        - Vues
      summary: Enregistrer une vue
      description: >-
        Enregistre la définition d'un rapport et son mode d'affichage comme
        nouvelle vue privée. Avec l'ID d'une vue dans le chemin, enregistre une
        nouvelle version de cette vue et laisse chaque version antérieure
        inchangée. La définition est validée par rapport aux champs du jeu de
        données que le membre peut lire. Seul le propriétaire de la vue ou un
        membre ayant l'autorisation `insights.reports.share` peut la modifier.
        La modification est consignée dans l'historique d'audit. Nécessite
        l'autorisation `insights.reports.manage` et un jeton avec
        `insights:write`.
      operationId: v1.insights.views.update
      parameters:
        - name: view
          in: path
          required: true
          description: L'ID de la vue, un UUID. Omettez-le pour créer une nouvelle vue.
          schema:
            type:
              - string
              - 'null'
            default: null
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SaveViewRequest'
      responses:
        '200':
          description: '`ViewSavedResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ViewSavedResource'
                required:
                  - data
          headers:
            X-RateLimit-Limit:
              description: >-
                Requêtes par minute permises pour ce jeton, ou pour l'adresse
                sans jeton.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requêtes restantes cette minute.
              schema:
                type: integer
        '201':
          description: '`ViewSavedResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ViewSavedResource'
                required:
                  - data
          headers:
            X-RateLimit-Limit:
              description: >-
                Requêtes par minute permises pour ce jeton, ou pour l'adresse
                sans jeton.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requêtes restantes cette minute.
              schema:
                type: integer
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '422':
          $ref: '#/components/responses/ValidationException'
        '429':
          description: Trop de requêtes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          headers:
            Retry-After:
              description: Secondes avant la réinitialisation de la limite.
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Requêtes par minute permises.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: "Requêtes restantes cette minute\_: aucune."
              schema:
                type: integer
      x-codeSamples:
        - lang: typescript
          label: TypeScript SDK
          source: >-
            import { StockShift } from "@stockshift/sdk";


            const stockshift = new StockShift({ token:
            process.env.STOCKSHIFT_TOKEN! });


            const result = await stockshift.put("/insights/views/{view}", {
              path: { view: null },
              body: { name: "<name>", definition: {}, display: {} },
            });
components:
  schemas:
    SaveViewRequest:
      type: object
      description: >-
        Un rapport à enregistrer comme vue, ou comme nouvelle version d'une vue.
        La définition est

        vérifiée comme pour une exécution, et l'affichage détermine comment la
        grille l'affiche.
      properties:
        name:
          type: string
          description: >-
            Le nom de la vue, d'au plus 120 caractères, tel qu'affiché dans la
            liste des vues.
          maxLength: 120
        description:
          type:
            - string
            - 'null'
          description: À quoi répond la vue, en une phrase.
          maxLength: 1000
        folder_id:
          type:
            - string
            - 'null'
          format: uuid
          description: L'ID du dossier où la vue est conservée.
        definition:
          type: object
          description: "La définition du rapport\_: le jeu de données à lire, les champs à afficher et comment filtrer, grouper, pivoter, trier et totaliser ses lignes."
          properties:
            schema_version:
              type: integer
              description: >-
                La version de la structure de la définition. Seule la valeur 1
                est acceptée.
              enum:
                - '1'
            dataset:
              type: string
              description: >-
                La clé du jeu de données que lit le rapport, comme
                `inventory.stock-movements`.
              pattern: ^[a-z]+\.[a-z][a-z0-9-]{0,63}$
            joins:
              type: array
              description: >-
                Les champs de référence du jeu de données dont le rapport joint
                les jeux de données, par exemple `item`. 10 au maximum.
              items:
                type: string
                pattern: ^[a-z][a-z0-9-]{0,63}$
              maxItems: 10
              uniqueItems: true
            fields:
              type: array
              description: Les champs que le rapport affiche, dans l'ordre. 50 au plus.
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: >-
                      Un champ du jeu de données, d'un jeu de données joint
                      comme `item.name`, ou un champ calculé. Avec une formule,
                      la clé par laquelle le rapport nomme la formule.
                    pattern: ^[a-z][a-z0-9-]{0,63}(\.[a-z][a-z0-9-]{0,63})?$
                  formula:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Une formule, comme `SUM([Revenue]) - SUM([Cost])`, avec
                      des champs entre crochets par clé ou par nom.
                    maxLength: 2000
                  label:
                    type:
                      - string
                      - 'null'
                    description: Le nom de la formule, affiché au-dessus de sa colonne.
                    maxLength: 120
                  aggregation:
                    anyOf:
                      - $ref: '#/components/schemas/Aggregation'
                      - type: 'null'
                    description: "Comment un rapport groupé additionne le champ\_: `sum`, `avg`, `min`, `max`, `count` ou `count_distinct`. Une mesure a sa propre agrégation. En donner une à un champ quelconque regroupe le rapport."
                required:
                  - field
              maxItems: 50
            filters:
              type: array
              description: >-
                Les filtres auxquels une ligne doit correspondre pour compter.
                Chaque filtre doit correspondre. 20 au plus.
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: Le champ que le filtre compare, nommé comme dans `fields`.
                    pattern: ^[a-z][a-z0-9-]{0,63}(\.[a-z][a-z0-9-]{0,63})?$
                  operator:
                    $ref: '#/components/schemas/FilterOperator'
                    description: "Comment le champ est comparé\_: `equals`, `not-equals`, `one-of`, `none-of`, `contains`, `starts-with`, `greater-than`, `at-least`, `less-than`, `at-most`, `between`, `empty`, `not-empty` ou `within`.\n\n| |\n|---|\n| `equals` <br/>  |\n| `not-equals` <br/>  |\n| `one-of` <br/>  |\n| `none-of` <br/>  |\n| `contains` <br/>  |\n| `starts-with` <br/>  |\n| `greater-than` <br/>  |\n| `at-least` <br/>  |\n| `less-than` <br/>  |\n| `at-most` <br/>  |\n| `between` <br/>  |\n| `empty` <br/>  |\n| `not-empty` <br/>  |\n| `within` <br/> Une plage de dates, comme les 12 dernières semaines ou l'exercice en cours. |"
                  values:
                    type: array
                    description: "Les valeurs à comparer, sous forme de texte\_: nombres comme `12.5`, dates comme `2026-01-31`, horodatages en ISO 8601 et booléens comme `true` ou `false`."
                    items:
                      type: string
                      maxLength: 255
                    maxItems: 100
                  range:
                    type:
                      - object
                      - 'null'
                    description: "Pour `within`\_: une plage comptée à partir d'aujourd'hui, ou une plage fixe d'un jour à un autre."
                    properties:
                      relative:
                        anyOf:
                          - $ref: '#/components/schemas/RelativePeriod'
                          - type: 'null'
                        description: >-
                          `this` pour la période en cours, ou `last` pour des
                          périodes complètes avant elle.
                      unit:
                        anyOf:
                          - $ref: '#/components/schemas/TimeGrain'
                          - type: 'null'
                        description: "La durée de la période\_: `day`, `week`, `month`, `quarter`, `year`, `fiscal-quarter` ou `fiscal-year`."
                      count:
                        type:
                          - integer
                          - 'null'
                        description: >-
                          Combien de périodes contient une plage `last`, de 1 à
                          1000.
                        minimum: 1
                        maximum: 1000
                      from:
                        type:
                          - string
                          - 'null'
                        format: date
                        description: Le premier jour d'une plage fixe, comme `2026-01-01`.
                      to:
                        type:
                          - string
                          - 'null'
                        format: date
                        description: >-
                          Le dernier jour d'une plage fixe, inclus, comme
                          `2026-01-31`.
                required:
                  - field
                  - operator
              maxItems: 20
            group_by:
              type: array
              description: >-
                Les champs selon lesquels les lignes sont regroupées, du plus
                externe au plus interne. 5 au plus.
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: Le champ de regroupement, nommé comme dans `fields`.
                    pattern: ^[a-z][a-z0-9-]{0,63}(\.[a-z][a-z0-9-]{0,63})?$
                  grain:
                    anyOf:
                      - $ref: '#/components/schemas/TimeGrain'
                      - type: 'null'
                    description: "Pour une date, la période de regroupement\_: `day`, `week`, `month`, `quarter`, `year`, `fiscal-quarter` ou `fiscal-year`."
                required:
                  - field
              maxItems: 5
            pivot:
              type:
                - object
                - 'null'
              description: >-
                Un champ dont les valeurs deviennent des colonnes, jusqu'à 50
                colonnes.
              properties:
                field:
                  type: string
                  description: >-
                    Le champ dont les valeurs deviennent des colonnes, nommé
                    comme dans `fields`.
                  pattern: ^[a-z][a-z0-9-]{0,63}(\.[a-z][a-z0-9-]{0,63})?$
                grain:
                  anyOf:
                    - $ref: '#/components/schemas/TimeGrain'
                    - type: 'null'
                  description: "Pour une date, la période que contient chaque colonne\_: `day`, `week`, `month`, `quarter`, `year`, `fiscal-quarter` ou `fiscal-year`."
            sort:
              type: array
              description: >-
                Les champs selon lesquels les lignes sont triées, tour à tour.
                Chacun doit être affiché ou servir au regroupement. 5 au plus.
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: Le champ de tri, nommé comme dans `fields`.
                    pattern: ^[a-z][a-z0-9-]{0,63}(\.[a-z][a-z0-9-]{0,63})?$
                  direction:
                    anyOf:
                      - $ref: '#/components/schemas/SortDirection'
                      - type: 'null'
                    description: >-
                      `asc` ou `desc`. Les valeurs vides viennent en dernier
                      dans les deux cas.
                  aggregation:
                    anyOf:
                      - $ref: '#/components/schemas/Aggregation'
                      - type: 'null'
                    description: >-
                      Pour un champ affiché plus d'une fois, celle de ses
                      agrégations selon laquelle trier.
                required:
                  - field
              maxItems: 5
            totals:
              type: boolean
              description: >-
                Indique s'il faut ajouter une ligne de totaux sur toutes les
                lignes.
            subtotals:
              type: boolean
              description: >-
                Indique s'il faut ajouter un sous-total après chaque groupe du
                premier regroupement. Nécessite deux regroupements.
            comparison:
              anyOf:
                - $ref: '#/components/schemas/Comparison'
                - type: 'null'
              description: "Ce à quoi comparer la période du seul filtre `within` du rapport\_: `previous-period` ou `same-period-last-year`."
            limit:
              type:
                - integer
                - 'null'
              description: >-
                Le nombre maximal de lignes à renvoyer, sous la limite propre au
                forfait.
              minimum: 1
              maximum: 1000000
          required:
            - dataset
        display:
          type: object
          description: "Comment la grille affiche le rapport\_: ordre et largeur des colonnes, colonnes figées, décimales, mise en évidence et graphique."
          properties:
            columns:
              type: array
              description: >-
                Les colonnes dans l'ordre affiché, chacune par sa clé (champ,
                valeur de pivot et agrégation). Au plus 200.
              items:
                type: object
                properties:
                  key:
                    type: string
                    description: "La clé de la colonne\_: son champ, sa valeur de pivot et son agrégation."
                    maxLength: 255
                  width:
                    type:
                      - integer
                      - 'null'
                    description: La largeur de la colonne en pixels, de 48 à 1000.
                    minimum: 48
                    maximum: 1000
                  hidden:
                    type: boolean
                    description: Indique si la colonne est masquée.
                required:
                  - key
              maxItems: 200
            frozen:
              type: integer
              description: >-
                Combien de colonnes à partir de la gauche restent visibles
                pendant le défilement latéral.
              minimum: 0
              maximum: 5
            formats:
              type: array
              description: >-
                Combien de décimales chaque colonne de nombres affiche, selon le
                format de nombre du lecteur.
              items:
                type: object
                properties:
                  key:
                    type: string
                    description: La clé de la colonne numérique.
                    maxLength: 255
                  decimals:
                    type: integer
                    description: Combien de décimales la colonne affiche, de 0 à 6.
                    minimum: 0
                    maximum: 6
                required:
                  - key
                  - decimals
              maxItems: 200
            rules:
              type: array
              description: "Règles de mise en évidence\_: une cellule colorée, une échelle de couleurs, une barre de données ou une icône. 20 au maximum."
              items:
                type: object
                properties:
                  key:
                    type: string
                    description: La clé de la colonne que la règle met en évidence.
                    maxLength: 255
                  kind:
                    type: string
                    description: "Le type de mise en évidence\_: `cell`, `scale`, `bar` ou `icon`."
                    enum:
                      - cell
                      - scale
                      - bar
                      - icon
                  operator:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Pour `cell` et `icon`, la manière dont la cellule est
                      comparée à la valeur.
                    enum:
                      - equals
                      - not-equals
                      - greater-than
                      - at-least
                      - less-than
                      - at-most
                      - between
                      - empty
                      - not-empty
                      - null
                  value:
                    type:
                      - string
                      - 'null'
                    description: La valeur à laquelle la cellule est comparée.
                    maxLength: 40
                  value2:
                    type:
                      - string
                      - 'null'
                    description: La borne supérieure d'une comparaison `between`.
                    maxLength: 40
                  tone:
                    type:
                      - string
                      - 'null'
                    description: "La couleur\_: `good`, `warning`, `bad` ou `info`, ou pour une échelle `good-high` ou `good-low`."
                    enum:
                      - good
                      - warning
                      - bad
                      - info
                      - good-high
                      - good-low
                      - null
                  icon:
                    type:
                      - string
                      - 'null'
                    description: "Pour une règle d'icône, l'icône\_: `up`, `down`, `check`, `flag` ou `alert`."
                    enum:
                      - up
                      - down
                      - check
                      - flag
                      - alert
                      - null
                required:
                  - key
                  - kind
              maxItems: 20
            chart:
              type: object
              description: "Comment le rapport est dessiné en graphique\_: le type de graphique et les colonnes de chaque axe."
              properties:
                type:
                  $ref: '#/components/schemas/ChartType'
                  description: "Le type de graphique\_: `line`, `area`, `stacked-area`, `bar`, `grouped-bar`, `stacked-bar`, `combo`, `scatter`, `donut`, `heatmap` ou `band`."
                x:
                  type:
                    - string
                    - 'null'
                  description: >-
                    La colonne de l'axe x, nommée par son champ, sa valeur de
                    pivot, sa comparaison et son agrégation reliés par des
                    barres. La première dimension lorsqu'elle est omise.
                  maxLength: 255
                'y':
                  type: array
                  description: >-
                    Les colonnes de mesure tracées comme séries. Toutes les
                    mesures si elles sont omises.
                  items:
                    type: string
                    maxLength: 255
                  maxItems: 20
                y2:
                  type: array
                  description: >-
                    Pour un graphique combiné, les colonnes de mesure tracées en
                    lignes sur le deuxième axe.
                  items:
                    type: string
                    maxLength: 255
                  maxItems: 20
                split:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Une colonne de dimension dont chaque valeur devient une
                    série de la première mesure.
                  maxLength: 255
                multiples:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Une colonne de dimension dont chaque valeur obtient son
                    propre graphique, en petits multiples.
                  maxLength: 255
                lower:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Pour un graphique en bande, la colonne contenant sa borne
                    inférieure.
                  maxLength: 255
                upper:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Pour un graphique en bande, la colonne contenant sa borne
                    supérieure.
                  maxLength: 255
      required:
        - name
        - definition
        - display
      title: SaveViewRequest
    ViewSavedResource:
      type: object
      properties:
        id:
          type: string
          description: L'ID de la vue, un UUID.
        name:
          type: string
          description: Le nom de la vue, tel qu'affiché dans la liste des vues.
        description:
          type:
            - string
            - 'null'
          description: À quoi répond la vue, en une phrase, ou null.
        dataset:
          type: string
          description: >-
            La clé du jeu de données sur lequel porte la vue, comme
            `inventory.stock-movements`.
        folder_id:
          type:
            - string
            - 'null'
          description: L'ID du dossier où la vue est conservée, ou null s'il n'y en a pas.
        visibility:
          type: string
          description: "Qui peut l'ouvrir\_: `private` pour son propriétaire seulement, `roles` pour les membres détenant les rôles nommés, ou `organization` pour tous les membres."
          enum:
            - private
            - roles
            - organization
        roles:
          type: array
          description: >-
            Les noms des rôles avec lesquels la vue est partagée, lorsque
            `visibility` est `roles`.
          items:
            type: string
        version:
          type: integer
          description: >-
            Le numéro de la version la plus récente, 1 lors du premier
            enregistrement.
        updated_at:
          type: string
          description: >-
            Le moment du dernier enregistrement de la vue, sous forme
            d'horodatage ISO 8601 en UTC.
      required:
        - id
        - name
        - description
        - dataset
        - folder_id
        - visibility
        - roles
        - version
        - updated_at
      title: ViewSavedResource
      description: >-
        Une vue enregistrée telle qu'elle est après un enregistrement, une
        restauration ou un changement de partage. Lisez la vue par son ID pour
        le reste.
    ProblemDetails:
      type: object
      description: >-
        Une erreur, sous forme de détails du problème RFC 9457. Branchez-vous
        sur `code`, qui est stable; `detail` est écrit pour les personnes et
        peut changer.
      properties:
        type:
          type: string
          format: uri
          description: Des liens vers la documentation de ce code.
        title:
          type: string
          description: Le texte du statut HTTP.
        status:
          type: integer
          description: Le code de statut HTTP.
        code:
          type: string
          description: Un nom stable lisible par machine, comme validation_failed.
        detail:
          type: string
          description: Ce qui a mal tourné, à l'intention des utilisateurs.
        errors:
          type: object
          description: >-
            Erreurs par champ. Sur validation_failed, et sur un refus avec un
            code qui lui est propre comme insufficient_stock ou document_closed.
          additionalProperties:
            type: array
            items:
              type: string
        feature:
          type: string
          description: >-
            La fonctionnalité du forfait requise. Seulement avec
            plan_upgrade_required.
        reason:
          type: string
          description: >-
            Pourquoi un appareil doit télécharger de nouveau un flux. Seulement
            avec resync_required.
        attempts_left:
          type: integer
          description: >-
            Combien de signatures refusées il reste avant que le membre soit
            verrouillé sur l'appareil. Seulement sur
            signature_assertion_invalid.
        rule_ids:
          type: array
          description: >-
            Les règles de témoignage qui couvrent le stock. Seulement avec
            verification_required.
          items:
            type: string
        witness:
          type: string
          description: "Où le témoin signe\_: same_device, remote ou either. Seulement avec verification_required."
        blind_recount:
          type: boolean
          description: >-
            Indique si le témoin recompte avant de voir la quantité. Seulement
            avec verification_required.
        flags:
          type: array
          description: >-
            Les signalements que les décisions d'une ligne groupée laissent
            ouverts, tels que l'aperçu groupé les nomme. Seulement sur
            decision_required.
          items:
            type: object
            properties:
              flag:
                type: string
                description: Le nom du signalement, tel que l'aperçu groupé le donne.
              facts:
                type: object
                description: >-
                  Les faits du signalement, comme dans l'aperçu groupé ; les
                  autres sont null.
                additionalProperties:
                  anyOf:
                    - type: string
                    - type: integer
                    - type: array
                      items:
                        type: string
                    - type: 'null'
              choices:
                type: array
                description: >-
                  Les décisions qui régleraient le signalement, telles que
                  l'aperçu groupé les nomme.
                items:
                  type: string
            required:
              - flag
              - facts
              - choices
      required:
        - type
        - title
        - status
        - code
        - detail
      title: ProblemDetails
    Aggregation:
      type: string
      description: |
        Comment une mesure est additionnée quand un rapport regroupe ses lignes.
      enum:
        - sum
        - avg
        - min
        - max
        - count
        - count_distinct
      title: Aggregation
    FilterOperator:
      type: string
      description: >-
        Comment un filtre de rapport compare un champ à ses valeurs. Les valeurs
        sont toujours liées à la requête, jamais écrites dedans.

        | |

        |---|

        | `equals` <br/>  |

        | `not-equals` <br/>  |

        | `one-of` <br/>  |

        | `none-of` <br/>  |

        | `contains` <br/>  |

        | `starts-with` <br/>  |

        | `greater-than` <br/>  |

        | `at-least` <br/>  |

        | `less-than` <br/>  |

        | `at-most` <br/>  |

        | `between` <br/>  |

        | `empty` <br/>  |

        | `not-empty` <br/>  |

        | `within` <br/> Une plage de dates, comme les 12 dernières semaines ou
        l'exercice en cours. |
      enum:
        - equals
        - not-equals
        - one-of
        - none-of
        - contains
        - starts-with
        - greater-than
        - at-least
        - less-than
        - at-most
        - between
        - empty
        - not-empty
        - within
      title: FilterOperator
    RelativePeriod:
      type: string
      description: "Une plage de dates comptée à partir d'aujourd'hui\_: la période en cours, ou un nombre de périodes entières se terminant là où la période en cours commence.\n"
      enum:
        - this
        - last
      title: RelativePeriod
    TimeGrain:
      type: string
      description: "Le degré de finesse avec lequel un rapport groupe une date\_: par jour civil, semaine ISO, mois, trimestre ou année, ou par trimestre ou année financière de l'organisation.\n"
      enum:
        - day
        - week
        - month
        - quarter
        - year
        - fiscal-quarter
        - fiscal-year
      title: TimeGrain
    SortDirection:
      type: string
      description: >
        Dans quel sens un rapport trie une colonne. Les valeurs vides viennent
        en dernier dans les deux cas.
      enum:
        - asc
        - desc
      title: SortDirection
    Comparison:
      type: string
      description: "La période qu'un rapport place à côté de la sienne\_: celle qui précède immédiatement, ou la même un an plus tôt.\n"
      enum:
        - previous-period
        - same-period-last-year
      title: Comparison
    ChartType:
      type: string
      description: "Les graphiques qu'une vue peut tracer\_: des lignes et des aires dans le temps ou par catégorie, des barres et une combinaison de barres avec une ligne sur un second axe. Aussi un nuage de points de deux mesures, un anneau pour les parties d'un tout, une carte thermique de deux dimensions et la bande de prévision.\n"
      enum:
        - line
        - area
        - stacked-area
        - bar
        - grouped-bar
        - stacked-bar
        - combo
        - scatter
        - donut
        - heatmap
        - band
      title: ChartType
  responses:
    AuthenticationException:
      description: Non authentifié
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    AuthorizationException:
      description: Interdit
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ModelNotFoundException:
      description: Introuvable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ValidationException:
      description: Erreur de validation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
  securitySchemes:
    apiKey:
      type: http
      description: >-
        Pour vos propres scripts et vos intégrations de serveur à serveur. Créez
        une clé dans l'application sous Paramètres > Accès > Clés d'API et
        copiez-la à ce moment-là, car elle n'est affichée qu'une fois.
        Envoyez-la sous la forme `Authorization: Bearer <key>`. La clé agit en
        tant que le membre qui l'a créée, dans l'organisation où elle a été
        créée. Un appel exige l'autorisation du membre et l'une des portées de
        la clé, comme `inventory:read` ou `sales:write`. Une clé avec `*` a
        toutes les portées.
      scheme: bearer
    oauth2:
      type: oauth2
      description: >-
        Pour les applications que d'autres personnes connectent à leur compte
        StockShift. Utilisez le flux du code d'autorisation OAuth 2.1 avec PKCE
        (S256); il n'y a pas de secret client. Découvrez les points de
        terminaison à `/.well-known/oauth-authorization-server` (RFC 8414) et
        enregistrez votre application à `POST /oauth/register` (RFC 7591). Le
        membre choisit l'organisation et approuve les portées sur la page de
        consentement, et le jeton ne peut jamais faire plus que ce que le membre
        pourrait faire. Envoyez-le sous la forme `Authorization: Bearer
        <token>`, comme vous le feriez avec une clé d'API. Les jetons d'accès
        durent une heure; chaque actualisation renvoie un nouveau jeton
        d'actualisation, alors conservez-le.
      flows:
        authorizationCode:
          authorizationUrl: https://app.stockshift.io/oauth/authorize
          tokenUrl: https://app.stockshift.io/oauth/token
          refreshUrl: https://app.stockshift.io/oauth/token
          scopes:
            access:read: Access read
            audit:read: Audit read
            address:read: Address read
            address:write: Address write
            billing:read: Billing read
            catalog:read: Catalog read
            catalog:write: Catalog write
            dashboard:read: Dashboard read
            dashboard:write: Dashboard write
            developer:read: Developer read
            developer:write: Developer write
            devices:read: Devices read
            devices:write: Devices write
            documents:read: Documents read
            documents:write: Documents write
            notifications:read: Notifications read
            notifications:write: Notifications write
            inventory:read: Inventory read
            inventory:write: Inventory write
            purchasing:read: Purchasing read
            purchasing:write: Purchasing write
            quality:read: Quality read
            quality:write: Quality write
            sales:read: Sales read
            sales:write: Sales write
            engineering:read: Engineering read
            engineering:write: Engineering write
            manufacturing:read: Manufacturing read
            manufacturing:write: Manufacturing write
            automation:read: Automation read
            automation:write: Automation write
            insights:read: Insights read
            insights:write: Insights write
            integrations:read: Integrations read
            integrations:write: Integrations write
            labels:read: Labels read
            labels:write: Labels write
            library:read: Library read
            organization:read: Organization read
            organization:write: Organization write
            planning:read: Planning read
            planning:write: Planning write
            sync:read: Sync read
            sync:write: Sync write

````

## Related topics

- [Enregistrer un rapport planifié ou une alerte](https://docs.stockshift.io/fr-ca/api-reference/planifications/enregistrer-un-rapport-planifié-ou-une-alerte.md)
- [Dupliquer une vue](https://docs.stockshift.io/fr-ca/api-reference/vues/dupliquer-une-vue.md)
- [Partager une vue](https://docs.stockshift.io/fr-ca/api-reference/vues/partager-une-vue.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.