> ## 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.

# Prévisualiser une action de stock en lot

> Vérifie une liste d'au plus 100 lignes avant que vous les déplaciez, ajustiez, reteniez ou imprimiez, avec une commande pour chaque
ligne. Rien n'est modifié.

Chaque ligne est renvoyée avec ses indicateurs :

- `blocked` : le stock est retenu ou expiré, est couvert par une règle de témoin ou est un lot que la destination
  refuse.
- `reserved` : des documents retiennent une partie du stock.
- `mixed_lots` : la destination contient déjà un autre lot.
- `short_dated` : le lot expire plus tôt que ne le permet la règle de la destination.
- `duplicate` : la ligne a été fusionnée dans une autre ligne.
- `not_permitted` : le membre derrière le jeton ne peut pas voir le stock, n'a pas l'autorisation ou le forfait
  n'a pas la fonctionnalité.

Chaque indicateur a ses faits et les choix qu'il permet. Un indicateur sans choix retire la ligne de la liste.
Lorsque vous appliquez les commandes, envoyez les choix faits dans les `decisions` de chaque commande, avec le même `bulk_id`
sur chaque ligne. Un indicateur laissé sans décision est refusé avec `decision_required`.

Les quantités sont dans l'unité de base de l'article. Les lignes d'un ajustement sont négatives pour sortir du stock.

Nécessite l'autorisation `inventory.stock.view` et un jeton avec `inventory:read`. Depuis un appareil, le forfait doit comprendre les
opérations mobiles.



## OpenAPI

````yaml /openapi.fr-CA.json post /inventory/bulk-previews
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:
  /inventory/bulk-previews:
    post:
      tags:
        - Aperçus en lot
      summary: Prévisualiser une action de stock en lot
      description: "Vérifie une liste d'au plus 100 lignes avant que vous les déplaciez, ajustiez, reteniez ou imprimiez, avec une commande pour chaque\nligne. Rien n'est modifié.\n\nChaque ligne est renvoyée avec ses indicateurs\_:\n\n- `blocked`\_: le stock est retenu ou expiré, est couvert par une règle de témoin ou est un lot que la destination\n  refuse.\n- `reserved`\_: des documents retiennent une partie du stock.\n- `mixed_lots`\_: la destination contient déjà un autre lot.\n- `short_dated`\_: le lot expire plus tôt que ne le permet la règle de la destination.\n- `duplicate`\_: la ligne a été fusionnée dans une autre ligne.\n- `not_permitted`\_: le membre derrière le jeton ne peut pas voir le stock, n'a pas l'autorisation ou le forfait\n  n'a pas la fonctionnalité.\n\nChaque indicateur a ses faits et les choix qu'il permet. Un indicateur sans choix retire la ligne de la liste.\nLorsque vous appliquez les commandes, envoyez les choix faits dans les `decisions` de chaque commande, avec le même `bulk_id`\nsur chaque ligne. Un indicateur laissé sans décision est refusé avec `decision_required`.\n\nLes quantités sont dans l'unité de base de l'article. Les lignes d'un ajustement sont négatives pour sortir du stock.\n\nNécessite l'autorisation `inventory.stock.view` et un jeton avec `inventory:read`. Depuis un appareil, le forfait doit comprendre les\nopérations mobiles."
      operationId: v1.inventory.bulk-previews.create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewBulkStockActionRequest'
      responses:
        '200':
          description: '`BulkPreviewResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/BulkPreviewResource'
                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.post("/inventory/bulk-previews", {
              body: { action: "move", lines: [] },
            });
components:
  schemas:
    PreviewBulkStockActionRequest:
      type: object
      description: "Une liste groupée à vérifier avant son application\_: une action, une destination pour un déplacement seulement, un motif pour un\najustement seulement et de 1 à 100 lignes. Les quantités sont dans l'unité de base de l'article. Les lignes d'un ajustement peuvent être\nnégatives, pour sortir du stock."
      properties:
        action:
          $ref: '#/components/schemas/BulkAction'
          description: "Ce que la liste groupée fait à chaque ligne\_: `move`, `adjust`, `hold` ou `print`.\n\n| |\n|---|\n| `move` <br/> Déplace chaque ligne vers l'emplacement de destination. Nécessite `inventory.transfers.manage`. |\n| `adjust` <br/> Ajuste le stock de chaque ligne à la hausse ou à la baisse. Nécessite `inventory.stock.adjust`. |\n| `hold` <br/> Retient le stock de chaque ligne avec un changement de statut. Nécessite `inventory.stock.adjust`. |\n| `print` <br/> Imprime une étiquette pour chaque ligne. Nécessite `labels.print`. |"
        destination_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            L'ID de l'emplacement où va le stock lors d'un déplacement.
            Obligatoire pour `move` et non permis pour toute autre action.
        reason:
          type:
            - string
            - 'null'
          description: "Pourquoi le stock change, pour `adjust` seulement\_: `found`, `damaged`, `lost`, `destroyed`, `correction`,\n`opening_balance` ou `other`."
          enum:
            - found
            - damaged
            - lost
            - destroyed
            - correction
            - opening_balance
            - other
            - null
        lines:
          type: array
          description: Les lignes de la liste, de 1 à 100.
          items:
            type: object
            properties:
              item:
                type: string
                format: uuid
                description: L'ID de l'article.
              location_id:
                type:
                  - string
                  - 'null'
                format: uuid
                description: >-
                  L'ID de l'emplacement d'où le stock est prélevé. Obligatoire
                  pour toute action sauf `print`.
              lot:
                type:
                  - string
                  - 'null'
                description: Le numéro de lot, pour un article suivi par lot.
                maxLength: 64
              serial:
                type:
                  - string
                  - 'null'
                description: Le numéro de série, pour un article suivi par numéro de série.
                maxLength: 64
              piece:
                type:
                  - string
                  - 'null'
                description: >-
                  L'ID de pièce d'une étiquette balayée, lorsque la ligne en
                  provient.
                maxLength: 16
              quantity:
                type: string
                description: >-
                  La quantité dans l'unité de base de l'article, sous forme de
                  décimal exact autre que zéro, envoyé comme chaîne. Elle

                  ne peut être négative que pour `adjust`, afin de retirer du
                  stock.
                pattern: ^-?(?!0+(\.0+)?$)\d{1,20}(\.\d{1,20})?$
            required:
              - item
              - quantity
          minItems: 1
          maxItems: 100
      required:
        - action
        - lines
      title: PreviewBulkStockActionRequest
    BulkPreviewResource:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/BulkAction'
          description: "Ce que la liste fait à chaque ligne\_: `move`, `adjust`, `hold` ou `print`.\n| |\n|---|\n| `move` <br/> Déplace chaque ligne vers l'emplacement de destination. Nécessite `inventory.transfers.manage`. |\n| `adjust` <br/> Ajuste le stock de chaque ligne à la hausse ou à la baisse. Nécessite `inventory.stock.adjust`. |\n| `hold` <br/> Retient le stock de chaque ligne avec un changement de statut. Nécessite `inventory.stock.adjust`. |\n| `print` <br/> Imprime une étiquette pour chaque ligne. Nécessite `labels.print`. |"
        destination_id:
          type:
            - string
            - 'null'
          description: >-
            L'ID de l'emplacement vers lequel va un déplacement. Null pour toute
            autre action.
        lines:
          type: array
          description: Toutes les lignes de la liste, dans l'ordre d'envoi.
          items:
            $ref: '#/components/schemas/BulkPreviewLineResource'
      required:
        - action
        - destination_id
        - lines
      title: BulkPreviewResource
      description: Une liste groupée vérifiée, avec chaque ligne et ses indicateurs.
    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
    BulkAction:
      type: string
      description: >-
        Ce qu'une liste groupée fait à chaque ligne. Chaque ligne est envoyée
        comme sa propre commande, donc chaque ligne exige l'autorisation et la
        fonctionnalité du forfait de cette commande.

        | |

        |---|

        | `move` <br/> Déplace chaque ligne vers l'emplacement de destination.
        Nécessite `inventory.transfers.manage`. |

        | `adjust` <br/> Ajuste le stock de chaque ligne à la hausse ou à la
        baisse. Nécessite `inventory.stock.adjust`. |

        | `hold` <br/> Retient le stock de chaque ligne avec un changement de
        statut. Nécessite `inventory.stock.adjust`. |

        | `print` <br/> Imprime une étiquette pour chaque ligne. Nécessite
        `labels.print`. |
      enum:
        - move
        - adjust
        - hold
        - print
      title: BulkAction
    BulkPreviewLineResource:
      type: object
      properties:
        line:
          type: integer
          description: La position de la ligne dans la liste, à partir de 0.
        item:
          type: string
          description: L'ID de l'article, tel qu'envoyé.
        location_id:
          type:
            - string
            - 'null'
          description: >-
            L'ID de l'emplacement d'où la ligne prélève du stock, tel qu'envoyé.
            Null pour une impression.
        lot:
          type:
            - string
            - 'null'
          description: Le numéro de lot, tel qu'envoyé. Null lorsqu'aucun n'a été envoyé.
        serial:
          type:
            - string
            - 'null'
          description: Le numéro de série, tel qu'envoyé. Null lorsqu'aucun n'a été envoyé.
        piece:
          type:
            - string
            - 'null'
          description: >-
            L'ID de pièce d'une étiquette balayée, tel qu'envoyé. Null
            lorsqu'aucun n'a été envoyé.
        quantity:
          type: string
          description: >-
            La quantité, telle qu'envoyée, dans l'unité de base de l'article.
            Négative lors d'un ajustement qui retire du stock.
        flags:
          type: array
          description: >-
            Les problèmes trouvés sur la ligne. Vide lorsque la ligne peut être
            validée telle quelle.
          items:
            $ref: '#/components/schemas/BulkFlagResource'
      required:
        - line
        - item
        - location_id
        - lot
        - serial
        - piece
        - quantity
        - flags
      title: BulkPreviewLineResource
      description: >-
        Une ligne d'une liste groupée vérifiée, telle qu'elle a été envoyée,
        avec ses indicateurs.
    BulkFlagResource:
      type: object
      properties:
        flag:
          $ref: '#/components/schemas/BulkFlag'
          description: "Le problème\_: `blocked`, `reserved`, `mixed_lots`, `short_dated`, `duplicate` ou `not_permitted`.\n| |\n|---|\n| `blocked` <br/> La ligne ne peut pas être appliquée. Une règle de témoignage la couvre, elle exige du stock retenu, son lot est périmé et les lots périmés sont bloqués, ou elle mélangerait des lots là où le mélange est bloqué. |\n| `reserved` <br/> La ligne prend plus que ce qui est libre, parce que des documents réservent une partie du stock. |\n| `mixed_lots` <br/> Le mouvement place un lot dans un emplacement qui contient déjà d'autres lots de l'article. |\n| `short_dated` <br/> Le mouvement prend un lot dont la durée de conservation restante est inférieure au minimum, ou un lot périmé lorsque les lots périmés ne font qu'avertir. |\n| `duplicate` <br/> La ligne répète une ligne précédente, ou contient du stock déjà retenu, et elle est donc fusionnée. |\n| `not_permitted` <br/> Le membre ne peut pas voir l'article, n'a pas l'autorisation de l'action ou le forfait n'inclut pas sa fonctionnalité. |"
        facts:
          type: object
          description: >-
            Les faits derrière le signalement. Seuls les faits de ce signalement
            sont définis ; les autres sont null. Les quantités sont dans l'unité
            de base de l'article.
          properties:
            reason:
              type:
                - string
                - 'null'
              description: "Pourquoi la ligne est bloquée\_: `held`, `expired`, `witness` ou `lot_mixing`."
            status:
              type:
                - string
                - 'null'
              description: "Le statut du stock retenu dont la ligne a besoin\_: `quarantined` ou `rejected`."
            held:
              type:
                - string
                - 'null'
              description: Combien du stock est réservé, dans l'unité de base de l'article.
            expires_on:
              type:
                - string
                - 'null'
              description: La date d'expiration du lot, sous forme `YYYY-MM-DD`.
            days_left:
              type:
                - integer
                - 'null'
              description: >-
                Combien de jours il reste au lot avant son expiration. Inférieur
                à zéro pour un lot expiré.
            minimum_days:
              type:
                - integer
                - 'null'
              description: >-
                La durée de conservation minimale qu'il doit rester à un lot à
                la destination, en jours.
            reserved:
              type:
                - string
                - 'null'
              description: La part de la ligne que les documents réservent.
            free:
              type:
                - string
                - 'null'
              description: La part de la ligne que rien ne réserve.
            lots:
              type:
                - array
                - 'null'
              description: Les numéros des autres lots de l'article à la destination.
              items:
                type: string
            merged_into:
              type:
                - integer
                - 'null'
              description: >-
                La position de la ligne dans laquelle ce doublon est fusionné, à
                partir de 0.
            permission:
              type:
                - string
                - 'null'
              description: >-
                L'autorisation qui manque au membre, comme
                `inventory.stock.adjust`.
            entitlement:
              type:
                - string
                - 'null'
              description: La fonctionnalité du forfait qui manque à l'organisation.
          required:
            - reason
            - status
            - held
            - expires_on
            - days_left
            - minimum_days
            - reserved
            - free
            - lots
            - merged_into
            - permission
            - entitlement
        choices:
          type: array
          description: "Ce que le membre peut décider pour le signalement\_: `leave`, `reroute`, `skip` ou `accept`. Vide pour un signalement qui retire la ligne."
          items:
            $ref: '#/components/schemas/BulkChoice'
      required:
        - flag
        - facts
        - choices
      title: BulkFlagResource
      description: >-
        Un indicateur sur une ligne d'une liste groupée, avec ses faits et les
        choix qu'il permet. Un indicateur sans choix retire la ligne de la
        liste.
    BulkFlag:
      type: string
      description: >-
        Un problème que la révision en lot affiche sur une ligne. Seuls
        `reserved`, `mixed_lots` et `short_dated` offrent des choix; les autres
        retirent la ligne de la liste.

        | |

        |---|

        | `blocked` <br/> La ligne ne peut pas être appliquée. Une règle de
        témoin la couvre, elle exige du stock retenu, son lot est expiré et les
        lots expirés sont bloqués, ou elle mélangerait des lots là où le mélange
        est bloqué. |

        | `reserved` <br/> La ligne prend plus que ce qui est libre, parce que
        des documents réservent une partie du stock. |

        | `mixed_lots` <br/> Le déplacement met un lot dans un emplacement qui
        contient déjà d'autres lots de l'article. |

        | `short_dated` <br/> Le déplacement prend un lot dont la durée de
        conservation restante est inférieure au minimum, ou un lot expiré
        lorsque les lots expirés ne font que donner un avertissement. |

        | `duplicate` <br/> La ligne répète une ligne précédente, ou contient du
        stock déjà retenu, et elle est donc fusionnée. |

        | `not_permitted` <br/> Le membre ne peut pas voir l'article, n'a pas
        l'autorisation de l'action ou le forfait n'a pas sa fonctionnalité. |
      enum:
        - blocked
        - reserved
        - mixed_lots
        - short_dated
        - duplicate
        - not_permitted
      title: BulkFlag
    BulkChoice:
      type: string
      description: >-
        Ce qu'un membre a décidé pour un signalement sur une ligne en bloc.

        | |

        |---|

        | `leave` <br/> Ne prendre que la quantité que rien ne retient. |

        | `reroute` <br/> Prendre toute la quantité et déplacer avec elle ce qui
        la retient. |

        | `skip` <br/> Laisser la ligne hors de la liste. |

        | `accept` <br/> Poursuivre avec la ligne telle quelle. |
      enum:
        - leave
        - reroute
        - skip
        - accept
      title: BulkChoice
  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

- [Prévisualiser une action de stock avec témoin](https://docs.stockshift.io/fr-ca/api-reference/actions-de-stock-avec-témoin/prévisualiser-une-action-de-stock-avec-témoin.md)
- [Imprimer les étiquettes d'une liste de stock en main](https://docs.stockshift.io/fr-ca/api-reference/jeux-détiquettes/imprimer-les-étiquettes-dune-liste-de-stock-en-main.md)
- [Exporter le stock en CSV](https://docs.stockshift.io/fr-ca/api-reference/stock/exporter-le-stock-en-csv.md)


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