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

# Récupérer les modifications d'un flux

> Renvoie les entités qui ont changé après `cursor`, de la plus ancienne à la plus récente, jusqu'à
`limit` (500 par défaut, 2,000 au maximum). `{feed}` est le nom du flux, tel que
le donne la liste des flux. Chaque modification est l'enregistrement courant de l'entité, ou
une suppression lorsque l'entité a disparu ou que le membre n'a pas le droit de la voir. Plusieurs
modifications d'une même entité arrivent comme une seule. Conservez `next_cursor` et envoyez-le pour poursuivre
la lecture; une page sans modification en renvoie quand même un. Les modifications d'une transaction
qui n'est pas terminée sont retenues jusqu'à ce qu'elle le soit.

Un curseur à partir duquel l'appareil ne peut pas continuer répond `410` `resync_required`
avec un `reason` : téléchargez de nouveau l'instantané. Un `schema` qui n'est pas la
version courante du flux répond `410` `schema_changed`.

Nécessite l'autorisation et la fonctionnalité de forfait du flux, et un jeton avec `sync:read`
et la portée du domaine du flux, par exemple `inventory:read`.



## OpenAPI

````yaml /openapi.fr-CA.json get /sync/feeds/{feed}/changes
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:
  /sync/feeds/{feed}/changes:
    get:
      tags:
        - Flux de synchronisation
      summary: Récupérer les modifications d'un flux
      description: "Renvoie les entités qui ont changé après `cursor`, de la plus ancienne à la plus récente, jusqu'à\n`limit` (500 par défaut, 2,000 au maximum). `{feed}` est le nom du flux, tel que\nle donne la liste des flux. Chaque modification est l'enregistrement courant de l'entité, ou\nune suppression lorsque l'entité a disparu ou que le membre n'a pas le droit de la voir. Plusieurs\nmodifications d'une même entité arrivent comme une seule. Conservez `next_cursor` et envoyez-le pour poursuivre\nla lecture; une page sans modification en renvoie quand même un. Les modifications d'une transaction\nqui n'est pas terminée sont retenues jusqu'à ce qu'elle le soit.\n\nUn curseur à partir duquel l'appareil ne peut pas continuer répond `410` `resync_required`\navec un `reason`\_: téléchargez de nouveau l'instantané. Un `schema` qui n'est pas la\nversion courante du flux répond `410` `schema_changed`.\n\nNécessite l'autorisation et la fonctionnalité de forfait du flux, et un jeton avec `sync:read`\net la portée du domaine du flux, par exemple `inventory:read`."
      operationId: v1.sync.changes
      parameters:
        - name: cursor
          in: query
          description: >-
            Le `next_cursor` de la page précédente. Omettez-le pour lire depuis
            le début.
          schema:
            type:
              - string
              - 'null'
            maxLength: 2048
        - name: limit
          in: query
          description: >-
            Combien de modifications renvoyer, de 1 à 2,000. La valeur est 500
            si omis.
          schema:
            type:
              - integer
              - 'null'
            minimum: 1
            maximum: 2000
          example: 500
        - name: schema
          in: query
          description: >-
            La version du schéma de flux que l'appareil détient. Une version
            différente répond `410` `schema_changed`.
          schema:
            type:
              - integer
              - 'null'
            minimum: 1
          example: 1
        - name: feed
          in: path
          required: true
          description: Le nom du flux, comme `stock`, tel que `GET /sync/feeds` le liste.
          schema:
            type: string
      responses:
        '200':
          description: '`ChangesResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ChangesResource'
                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
        '400':
          $ref: '#/components/responses/InvalidCursor'
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/DeviceRequired'
        '404':
          $ref: '#/components/responses/UnknownFeed'
        '410':
          $ref: '#/components/responses/ResyncRequired'
        '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.get("/sync/feeds/{feed}/changes", {
              path: { feed: "01J8QZ4M..." },
            });
components:
  schemas:
    ChangesResource:
      type: object
      properties:
        changes:
          type: array
          description: >-
            Les modifications de cette page, de la plus ancienne à la plus
            récente.
          items:
            $ref: '#/components/schemas/SyncChange'
        next_cursor:
          type: string
          description: >-
            Passez-le comme `cursor` pour poursuivre la lecture. Une page sans
            modification en renvoie quand même un.
        has_more:
          type: boolean
          description: >-
            Indique si d'autres changements attendent. Lorsque c'est `true`,
            redemandez aussitôt.
      required:
        - changes
        - next_cursor
        - has_more
      title: ChangesResource
      description: Une page des changements d'un flux.
    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
    SyncChange:
      type: object
      description: "Le changement d'une entité\_: son enregistrement courant, ou une suppression."
      properties:
        entity_type:
          type: string
          description: Le type d'enregistrement, comme `stock_location`.
        id:
          type: string
          description: L'ID de l'enregistrement qui a changé.
        op:
          type: string
          enum:
            - upsert
            - delete
          description: >-
            `delete` signifie que l'enregistrement n'existe plus ou que le
            membre n'a pas le droit de le voir.
        version:
          type: integer
          description: >-
            L'ID du dernier changement de l'entité. N'appliquez un upsert que
            s'il est plus récent que celui détenu.
        data:
          oneOf:
            - $ref: '#/components/schemas/CatalogRecord'
            - $ref: '#/components/schemas/CountsRecord'
            - $ref: '#/components/schemas/LabelsRecord'
            - $ref: '#/components/schemas/LocationsRecord'
            - $ref: '#/components/schemas/MeRecord'
            - $ref: '#/components/schemas/PickingRecord'
            - $ref: '#/components/schemas/ReceivingRecord'
            - $ref: '#/components/schemas/ReferenceRecord'
            - $ref: '#/components/schemas/ShopFloorRecord'
            - $ref: '#/components/schemas/StockRecord'
            - $ref: '#/components/schemas/StockActivityRecord'
            - $ref: '#/components/schemas/TransfersRecord'
            - type: 'null'
          description: >-
            L'enregistrement tel que le flux le décrit; null pour une
            suppression.
      required:
        - entity_type
        - id
        - op
        - version
        - data
    CatalogRecord:
      oneOf:
        - type: object
          title: ItemSync
          description: Un enregistrement `item`.
          properties:
            id:
              type: string
              description: L'ID de l'article, un UUID.
            sku:
              type: string
              description: >-
                L'UGS de l'article. Unique dans l'organisation, sans égard à la
                casse.
            name:
              type: string
              description: >-
                Le nom de l'article tel qu'il apparaît sur les documents et les
                étiquettes.
            family_id:
              type:
                - string
                - 'null'
              description: >-
                L'ID de la famille d'articles dont l'article est une variante,
                ou null lorsqu'il n'est pas une variante.
            unit:
              type: string
              description: Le code de l'unité de base de l'article.
            tracking:
              type: string
              enum:
                - none
                - lot
                - serial
              description: "Comment l'article est suivi\_: `none`, `lot` ou `serial`."
            expiry_tracked:
              type: boolean
              description: >-
                Indique si le stock de l'article porte une date d'expiration.
                Les articles suivis par lot en ont une.
            archived:
              type: boolean
              description: >-
                Indique si l'article est archivé. Les articles archivés sont
                quand même envoyés dans le flux.
            controlled_schedule:
              type:
                - string
                - 'null'
              enum:
                - I
                - II
                - III
                - IV
                - V
                - null
              description: >-
                L'annexe de substance contrôlée sur laquelle s'appuient les
                règles de témoin; aucune lorsque null.
            thumbnail:
              type:
                - object
                - 'null'
              description: >-
                Téléchargez le fichier depuis `GET /api/v1/sync/files/{file_id}`
                et conservez-le tant que le hachage ne change pas.
              properties:
                file_id:
                  type: string
                  description: >-
                    L'ID du fichier de la vignette, pour le chemin de
                    téléchargement.
                hash:
                  type: string
                  description: >-
                    Un validateur du fichier. Conservez la copie téléchargée
                    tant qu'il ne change pas.
              required:
                - file_id
                - hash
              additionalProperties: false
          required:
            - id
            - sku
            - name
            - family_id
            - unit
            - tracking
            - expiry_tracked
            - archived
            - controlled_schedule
            - thumbnail
          additionalProperties: false
        - type: object
          title: ItemBarcodeSync
          description: >-
            Un enregistrement `item_barcode`. Pour résoudre un balayage,
            comparez le code balayé, normalisé comme le fait le serveur, avec
            `lookup`.
          properties:
            id:
              type: string
              description: L'ID du code-barres, un UUID.
            item_id:
              type: string
              description: L'ID de l'article sur lequel se trouve le code-barres.
            code:
              type: string
              description: Le code-barres tel qu'il a été saisi.
            lookup:
              type: string
              description: "Le code auquel comparer les balayages\_: un GTIN valide complété de zéros initiaux jusqu'à 14 chiffres, tout autre code tel que saisi."
            symbology:
              type: string
              description: "La symbologie du code-barres\_: `gtin8`, `gtin12`, `gtin13`, `gtin14`, `code128` ou `qr`."
            unit:
              type:
                - string
                - 'null'
              description: >-
                Le code de l'unité que compte un balayage, ou null pour l'unité
                de base.
            quantity_per_scan:
              type: string
              description: >-
                Combien d'unités de base de l'article un balayage compte, sous
                forme décimale exacte.
          required:
            - id
            - item_id
            - code
            - lookup
            - symbology
            - unit
            - quantity_per_scan
          additionalProperties: false
        - type: object
          title: ItemFamilySync
          description: Un enregistrement `item_family`.
          properties:
            id:
              type: string
              description: L'ID de la famille, un UUID.
            code:
              type: string
              description: >-
                Le code de la famille. Unique dans l'organisation, sans égard à
                la casse.
            name:
              type: string
              description: Le nom de la famille tel que les membres le voient.
            options:
              type: array
              description: >-
                Les options qui distinguent les variantes, comme Taille et
                Couleur. Jusqu'à trois, dans l'ordre.
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: Le nom de l'option, comme `Size`.
                  values:
                    type: array
                    items:
                      type: string
                    description: Les valeurs de l'option, dans l'ordre.
                required:
                  - name
                  - values
          required:
            - id
            - code
            - name
            - options
          additionalProperties: false
        - type: object
          title: ItemUnitConversionSync
          description: "Un enregistrement `item_unit_conversion`\_: combien d'unités de base vaut une unité `unit`."
          properties:
            id:
              type: string
              description: L'ID de la conversion, un UUID.
            item_id:
              type: string
              description: L'ID de l'article auquel appartient la conversion.
            unit:
              type: string
              description: Le code de l'unité visée par la conversion.
            factor:
              type: string
              description: >-
                Combien d'unités de base de l'article valent une unité `unit`,
                sous forme de chaîne décimale exacte.
          required:
            - id
            - item_id
            - unit
            - factor
          additionalProperties: false
      title: CatalogRecord
      description: Un enregistrement du flux catalog, en version de schéma 2.
    CountsRecord:
      type: object
      title: CountsRecord
      description: Un enregistrement du flux counts, en version de schéma 1.
      properties:
        id:
          type: string
          description: L'ID du dénombrement de stock.
        location_id:
          type: string
          description: L'ID de l'emplacement dénombré.
        blind:
          type: boolean
          description: Indique si les lignes omettent `expected`.
        started_at:
          type: string
          format: date-time
          description: >-
            Le moment où le dénombrement a été lancé, sous forme d'horodatage
            ISO 8601. Seuls les dénombrements ouverts sont envoyés.
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: L'ID de la ligne de dénombrement.
                  item_id:
                    type: string
                    description: L'ID de l'article que la ligne dénombre.
                  lot_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      L'ID du lot que la ligne dénombre. Null pour un article
                      non suivi par lot.
                  lot_number:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Le numéro de ce lot. Null pour un article non suivi par
                      lot.
                  serial_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      L'ID du numéro de série que la ligne dénombre. Null pour
                      un article non suivi par numéro de série.
                  serial_number:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Ce numéro de série. Null pour un article non suivi par
                      numéro de série.
                  unit:
                    type: string
                    description: Le code de l'unité de base de l'article.
                  expected:
                    type: string
                    description: >-
                      Ce que le dénombrement attend, sous forme de décimal dans
                      l'unité de base. Un dénombrement à l'aveugle l'omet.
                  counted:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Ce qui a été compté, sous forme de décimal dans l'unité de
                      base. Null tant que la ligne n'est pas comptée.
                  counted_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                    description: >-
                      Le moment où la ligne a été comptée, sous forme
                      d'horodatage ISO 8601. Null tant que la ligne n'est pas
                      comptée.
                required:
                  - id
                  - item_id
                  - lot_id
                  - lot_number
                  - serial_id
                  - serial_number
                  - unit
                  - counted
                  - counted_at
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Une ligne d'un article que cet appareil ne peut pas détenir.
                  Ouvrez le document en ligne pour la voir.
                properties:
                  id:
                    type: string
                    description: >-
                      L'ID de la ligne, afin que l'appareil puisse garder sa
                      place dans le document.
                  online_only:
                    type: boolean
                    const: true
                    description: "Toujours `true`\_: le reste de la ligne n'est affiché qu'en ligne."
                required:
                  - id
                  - online_only
                additionalProperties: false
          description: >-
            Les lignes du dénombrement. Une ligne d'un article que cet appareil
            ne peut pas détenir est envoyée sous forme de souche en ligne
            seulement.
      required:
        - id
        - location_id
        - blind
        - started_at
        - lines
      additionalProperties: false
    LabelsRecord:
      oneOf:
        - type: object
          title: LabelSetSync
          description: "Un enregistrement `label_set`\_: des étiquettes imprimées ensemble, avec les faits imprimés sur chaque étiquette. Un ensemble de plusieurs articles, comme une impression en lot, a `item_id`, `sku`, `name`, `gtin` et `date` à null; chacune de ses pièces nomme son propre article."
          properties:
            id:
              type: string
              description: L'ID du jeu d'étiquettes.
            code:
              type: string
              description: L'ID de l'ensemble imprimé sur les étiquettes de l'ensemble.
            item_id:
              type:
                - string
                - 'null'
              description: >-
                L'ID de l'article auquel sont destinées les étiquettes. Null
                pour un jeu de plusieurs articles, dont chaque pièce nomme son
                propre article.
            sku:
              type:
                - string
                - 'null'
              description: >-
                L'UGS de l'article tel que les étiquettes l'impriment,
                enregistré à l'impression de l'ensemble. Null pour un ensemble
                de plusieurs articles.
            name:
              type:
                - string
                - 'null'
              description: >-
                Le nom de l'article tel que les étiquettes l'impriment,
                enregistré à l'impression de l'ensemble. Null pour un ensemble
                de plusieurs articles.
            gtin:
              type:
                - string
                - 'null'
              description: >-
                Le GTIN que les étiquettes impriment. Null lorsqu'elles n'en
                impriment aucun, et pour un ensemble de plusieurs articles.
            source:
              type: string
              description: "Ce pour quoi le lot a été imprimé\_: `receipt`, `build` ou `stock`."
              enum:
                - receipt
                - build
                - stock
            orientation:
              type: string
              description: "Comment les étiquettes sont disposées sur du papier 4x6\_: `portrait` ou `landscape`."
              enum:
                - portrait
                - landscape
            piece_count:
              type: integer
              description: Combien de pièces compte l'ensemble, une étiquette chacune.
            template_version:
              type: integer
              description: >-
                La version du modèle d'étiquette avec laquelle l'ensemble a été
                imprimé; 0 est le modèle par défaut.
            date:
              type:
                - object
                - 'null'
              description: >-
                La date fixe unique que les étiquettes impriment. Null
                lorsqu'elles n'en impriment aucune, et pour un ensemble de
                plusieurs articles.
              properties:
                kind:
                  type: string
                  description: "Ce qu'est la date\_: `expires`, `use_by`, `made`, `received` ou `released`."
                  enum:
                    - expires
                    - use_by
                    - made
                    - received
                    - released
                date:
                  type: string
                  description: La date d'impression des étiquettes, au format `YYYY-MM-DD`.
              required:
                - kind
                - date
              additionalProperties: false
            printed_at:
              type: string
              description: >-
                Le moment où le lot a été imprimé, sous forme d'horodatage ISO
                8601.
          required:
            - id
            - code
            - item_id
            - sku
            - name
            - gtin
            - source
            - orientation
            - piece_count
            - template_version
            - date
            - printed_at
          additionalProperties: false
        - type: object
          title: LabelPieceSync
          description: "Un enregistrement `label_piece`\_: une pièce étiquetée. Pour résoudre un ID de pièce balayé, comparez-le, normalisé comme le fait le serveur, avec `code`."
          properties:
            id:
              type: string
              description: L'ID de la pièce.
            set_id:
              type: string
              description: L'ID du jeu d'étiquettes dans lequel la pièce a été imprimée.
            item_id:
              type: string
              description: "L'ID de l'article auquel est destinée l'étiquette de la pièce\_: l'article du jeu, ou l'article propre de la pièce dans un jeu de plusieurs articles."
            code:
              type: string
              description: L'ID de pièce imprimé sur l'étiquette de la pièce.
            number:
              type: integer
              description: La place de la pièce dans l'ensemble, à partir de 1.
            lot:
              type:
                - string
                - 'null'
              description: Le numéro de lot de la pièce. Null lorsqu'elle n'en a pas.
            serial:
              type:
                - string
                - 'null'
              description: Le numéro de série de la pièce. Null lorsqu'elle n'en a pas.
            quantity:
              type: string
              description: >-
                Combien a été emballé dans la pièce, en `unit`, sous forme de
                décimale simple sans zéros de fin.
            unit:
              type: string
              description: Le code de l'unité dans laquelle `quantity` est exprimée.
            reprints:
              type: integer
              description: Combien de fois l'étiquette de la pièce a été réimprimée.
            reprinted_at:
              type:
                - string
                - 'null'
              description: >-
                Le moment où l'étiquette de la pièce a été réimprimée pour la
                dernière fois, sous forme d'horodatage ISO 8601. Null tant
                qu'elle n'est pas réimprimée.
          required:
            - id
            - set_id
            - item_id
            - code
            - number
            - lot
            - serial
            - quantity
            - unit
            - reprints
            - reprinted_at
          additionalProperties: false
      title: LabelsRecord
      description: Un enregistrement du flux labels, en version de schéma 1.
    LocationsRecord:
      oneOf:
        - type: object
          title: StockLocationSync
          description: Un enregistrement `stock_location`.
          properties:
            id:
              type: string
              description: L'ID de l'emplacement.
            code:
              type: string
              description: >-
                Le code court de l'emplacement. Unique dans l'organisation, sans
                égard à la casse.
            name:
              type: string
              description: Le nom de l'emplacement, tel que les membres le voient.
            kind:
              type: string
              enum:
                - site
                - transit
                - subcontractor
              description: "Ce qu'est l'emplacement\_: `site` pour un endroit où l'organisation garde du stock, `transit` pour là où le stock expédié attend ou `subcontractor` pour le site d'un fournisseur où des pièces sont envoyées pour être travaillées."
            archived:
              type: boolean
              description: >-
                Indique si l'emplacement est archivé. Les emplacements archivés
                sont conservés avec leur historique; le stock ne peut y être
                ajusté ni déplacé.
            scan_code:
              type:
                - string
                - 'null'
              description: >-
                Ce que lit un balayage du panneau de l'emplacement, mis en
                correspondance sans tenir compte de la casse.
          required:
            - id
            - code
            - name
            - kind
            - archived
            - scan_code
          additionalProperties: false
        - type: object
          title: WorkCenterSync
          description: >-
            Un enregistrement `work_center`, envoyé seulement aux membres
            autorisés à voir les postes de travail.
          properties:
            id:
              type: string
              description: L'ID du poste de travail.
            code:
              type: string
              description: >-
                Le code du poste de travail, comme `SAW-1`. Unique parmi les
                postes de travail de l'organisation, sans tenir compte de la
                casse.
            name:
              type: string
              description: Le nom du poste de travail.
            location_id:
              type: string
              description: L'ID de l'emplacement où se trouve le poste de travail.
            archived:
              type: boolean
              description: Indique si le poste de travail est archivé.
          required:
            - id
            - code
            - name
            - location_id
            - archived
          additionalProperties: false
      title: LocationsRecord
      description: Un enregistrement du flux locations, en version de schéma 1.
    MeRecord:
      type: object
      properties:
        member:
          type: object
          properties:
            id:
              type: string
              description: L'ID d'utilisateur du membre, sous forme de chaîne.
            name:
              type: string
              description: Le nom complet du membre.
            locale:
              type:
                - string
                - 'null'
              description: >-
                La langue que le membre a choisie, comme `es`, ou null tant
                qu'il n'en a pas choisi.
          required:
            - id
            - name
            - locale
          additionalProperties: false
          description: Le membre connecté sur l'appareil.
        organization:
          type: object
          properties:
            id:
              type: string
              description: L'ID de l'organisation, un UUID.
            name:
              type: string
              description: Le nom de l'organisation, tel que les membres le voient.
            base_currency:
              type: string
              description: >-
                La devise dans laquelle l'organisation tient ses livres, sous
                forme de code ISO 4217 comme `USD`.
          required:
            - id
            - name
            - base_currency
          additionalProperties: false
          description: L'organisation pour laquelle l'appareil travaille.
        permissions:
          type: array
          items:
            type: string
          description: Ce que le membre peut faire dans l'organisation.
        entitlements:
          type: array
          items:
            type: string
          description: Les fonctionnalités du forfait de l'organisation.
        device:
          type: object
          properties:
            id:
              type: string
              description: >-
                L'ID de l'appareil, celui envoyé dans l'en-tête
                `StockShift-Device`.
            kind:
              type: string
              description: "Qui utilise l'appareil et comment il a été inscrit\_: `personal`, `shared`, `kiosk` ou `workstation`."
            location_id:
              type:
                - string
                - 'null'
              description: >-
                L'ID de l'emplacement auquel l'appareil est affecté, ou null
                s'il n'y en a pas.
            work_center_id:
              type:
                - string
                - 'null'
              description: >-
                L'ID du poste de travail auquel l'appareil est affecté, ou null
                s'il n'y en a pas.
          required:
            - id
            - kind
            - location_id
            - work_center_id
          additionalProperties: false
          description: "L'appareil sur lequel le flux a été lu\_: de quel type il est et où il est affecté."
        settings:
          type: object
          properties:
            offline_grace_hours:
              type: integer
              description: >-
                Combien de temps cet appareil peut rester hors ligne avant de se
                verrouiller.
            allow_negative_stock:
              type: boolean
              description: Indique si l'organisation permet au stock de passer sous zéro.
            can_see_costs:
              type: boolean
              description: >-
                Indique si le membre peut voir les coûts et la valeur du stock.
                Masquez-les dans l'application lorsque c'est faux.
            confidential_on_devices:
              type: boolean
              description: >-
                Indique si l'organisation permet aux appareils personnels de
                conserver des enregistrements confidentiels. Seul un appareil
                personnel d'un membre autorisé à les voir en reçoit.
            grace_cap_hours:
              type:
                - integer
                - 'null'
              description: >-
                Le nombre maximal d'heures qu'un appareil personnel peut rester
                hors ligne tant que les dossiers confidentiels sont permis sur
                les appareils ; null lorsque rien ne le plafonne.
                `offline_grace_hours` en tient déjà compte.
            passcode_required:
              type: boolean
              description: >-
                Indique si l'application doit refuser de conserver des
                enregistrements confidentiels à moins que l'appareil n'ait un
                code d'accès du système.
          required:
            - offline_grace_hours
            - allow_negative_stock
            - can_see_costs
            - confidential_on_devices
            - grace_cap_hours
            - passcode_required
          additionalProperties: false
          description: >-
            Les paramètres de l'organisation et de l'appareil que l'application
            suit.
        members:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: L'ID d'utilisateur du membre, sous forme de chaîne.
              name:
                type: string
                description: Le nom complet du membre.
            required:
              - id
              - name
            additionalProperties: false
          description: >-
            Tous les membres de l'organisation, par ordre alphabétique, pour que
            l'application puisse dire qui a fait une modification. Un membre
            qu'elle ne trouve pas ici s'affiche comme quelqu'un.
        verification_policies:
          type: array
          description: "Les règles de témoignage de l'organisation, dans l'ordre. Une règle correspond à une action de stock lorsque l'action figure parmi ses `actions` et que ses `reasons` (pour `adjust_out`, lorsqu'il y en a) incluent le motif de l'ajustement. Chaque portée qu'elle définit doit aussi correspondre\_: `organization_wide`, ou un article d'un de ses `schedules` et un emplacement parmi ses `location_ids`. Lorsque plusieurs règles correspondent, la valeur la plus stricte de chaque champ l'emporte, et l'annexe I ou II et la destruction ne se signent jamais avec `pin` ni hors ligne. Vide lorsque le forfait n'inclut pas le témoignage."
          items:
            type: object
            properties:
              id:
                type: string
                description: L'ID de la règle de témoin.
              name:
                type: string
                description: Le nom de la règle, tel que les membres le voient.
              actions:
                type: array
                items:
                  type: string
                  enum:
                    - adjust_out
                    - adjust_in
                    - status_change
                    - move
                    - count
                description: "Les actions de stock que la règle retient pour un témoin\_: `adjust_out`, `adjust_in`, `status_change`, `move` ou `count`."
              reasons:
                type: array
                items:
                  type: string
                description: >-
                  Pour `adjust_out`, les motifs d'ajustement auxquels la règle
                  est limitée. Tous les motifs lorsqu'elle est vide.
              schedules:
                type: array
                items:
                  type: string
                  enum:
                    - I
                    - II
                    - III
                    - IV
                    - V
                description: >-
                  Les annexes de substances contrôlées auxquelles la règle est
                  limitée, de `I` à `V`. Toutes les annexes lorsque vide.
              location_ids:
                type: array
                description: >-
                  Les ID des emplacements auxquels la règle est limitée. Tous
                  les emplacements lorsque vide.
                items:
                  type: string
              organization_wide:
                type: boolean
                description: >-
                  Indique si la règle couvre tous les articles et tous les
                  emplacements.
              witness:
                type: string
                description: "Où le témoin signe\_: `same_device`, `remote` ou `either`."
                enum:
                  - same_device
                  - either
                  - remote
              blind_recount:
                type: boolean
                description: >-
                  Indique si le témoin compte avant de voir la quantité de
                  l'exécutant.
              signing:
                type: string
                description: "Comment chaque membre signe\_: `security_key`, `reauth` ou `pin`."
                enum:
                  - security_key
                  - reauth
                  - pin
              offline:
                type: boolean
                description: >-
                  Indique si une vérification sur le même appareil peut se
                  terminer hors ligne.
              pending_minutes:
                type: integer
                description: >-
                  Combien de minutes une demande attend un témoin avant
                  d'expirer.
            required:
              - id
              - name
              - actions
              - reasons
              - schedules
              - location_ids
              - organization_wide
              - witness
              - blind_recount
              - signing
              - offline
              - pending_minutes
            additionalProperties: false
        release_requests:
          type: array
          description: "Les demandes propres au membre pour libérer du stock retenu, de la plus ancienne à la plus récente\_: les demandes ouvertes et celles fermées dans les 30 derniers jours. `command_id` est la commande d'appareil qui en a ouvert une, null lorsqu'elle a été ouverte sur le Web ; `waiting_command_id` est le changement qui l'attend sur l'appareil. `closed_by` est un ID de membre comme dans `members`."
          items:
            type: object
            properties:
              id:
                type: string
                description: L'ID de la demande de publication.
              command_id:
                type:
                  - string
                  - 'null'
                description: >-
                  L'ID de la commande d'appareil qui a ouvert la demande, ou
                  null lorsqu'elle a été ouverte sur le Web.
              waiting_command_id:
                type:
                  - string
                  - 'null'
                description: >-
                  L'ID de la commande qui attend la libération sur l'appareil,
                  ou null si aucune n'attend.
              state:
                type: string
                enum:
                  - open
                  - released
                  - declined
                  - withdrawn
                description: "Où en est la demande\_: `open`, `released`, `declined` ou `withdrawn`."
              closed_at:
                type:
                  - string
                  - 'null'
                format: date-time
                description: >-
                  Le moment où la demande a été libérée, refusée ou retirée,
                  sous forme d'horodatage ISO 8601. Null tant qu'elle est
                  ouverte.
              closed_by:
                type:
                  - string
                  - 'null'
                description: >-
                  L'ID d'utilisateur du membre qui a libéré, refusé ou retiré la
                  demande, comme dans `members`. Null tant qu'elle est ouverte.
            required:
              - id
              - command_id
              - waiting_command_id
              - state
              - closed_at
              - closed_by
            additionalProperties: false
      required:
        - member
        - organization
        - permissions
        - entitlements
        - device
        - settings
        - members
        - verification_policies
        - release_requests
      additionalProperties: false
      title: MeRecord
      description: Un enregistrement du flux me, en version de schéma 4.
    PickingRecord:
      type: object
      title: PickingRecord
      description: Un enregistrement du flux picking, en version de schéma 1.
      properties:
        id:
          type: string
          description: L'ID de la commande client, un UUID.
        number:
          type: string
          description: >-
            Le numéro de commande client, tiré de la séquence de l'organisation,
            comme SO-00001.
        status:
          type: string
          enum:
            - confirmed
            - partially_shipped
          description: "Où en est la commande\_: `confirmed`, ou `partially_shipped` une fois qu'une partie a été expédiée."
        customer_name:
          type: string
          description: Le nom du client pour qui la commande est faite.
        location_id:
          type: string
          description: L'ID de l'emplacement de stock d'où la commande est expédiée.
        ship_by:
          type:
            - string
            - 'null'
          format: date
          description: >-
            La date demandée par le client sur la commande, sous forme
            `YYYY-MM-DD`. Null lorsqu'aucune n'a été donnée.
        ship_to_city:
          type:
            - string
            - 'null'
          description: >-
            La ville où la commande est expédiée, lue dans l'adresse
            d'expédition. Null lorsque l'adresse comporte trop peu d'éléments
            pour distinguer la ville de la rue.
        ship_to_country:
          type:
            - string
            - 'null'
          description: "Le pays vers lequel la commande est expédiée\_: la dernière partie de l'adresse de livraison, telle qu'elle a été saisie. Null lorsque l'adresse compte moins de deux parties."
        lines:
          type: array
          description: >-
            Les lignes de la commande. Une ligne d'un article que cet appareil
            ne peut pas détenir arrive sous forme de ligne en ligne seulement
            avec son ID uniquement.
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: L'ID de la ligne de commande client.
                  item_id:
                    type: string
                    description: L'ID de l'article commandé.
                  quantity:
                    type: string
                    description: Un nombre décimal dans l'unité de la ligne.
                  unit:
                    type: string
                    description: >-
                      Le code de l'unité dans laquelle les quantités sont
                      exprimées.
                  reserved:
                    type: string
                    description: Réservée pour la ligne, dans l'unité de la ligne.
                  picked:
                    type: string
                    description: Expédié jusqu'à présent, dans l'unité de la ligne.
                  holds:
                    type: array
                    description: "Le stock retenu pour la ligne\_: où le prélever et, pour un article suivi par lot ou par numéro de série, quel lot ou numéro de série."
                    items:
                      type: object
                      properties:
                        location_id:
                          type: string
                          description: >-
                            L'ID de l'emplacement de stock où se trouve le stock
                            retenu.
                        quantity:
                          type: string
                          description: >-
                            La quantité détenue, sous forme de décimal dans
                            l'unité de base de l'article.
                        lot_id:
                          type:
                            - string
                            - 'null'
                          description: >-
                            L'ID du lot retenu. Null pour un article non suivi
                            par lot.
                        lot_number:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Le numéro du lot retenu. Null pour un article non
                            suivi par lot.
                        serial_id:
                          type:
                            - string
                            - 'null'
                          description: >-
                            L'ID du numéro de série retenu. Null pour un article
                            non suivi par numéro de série.
                        serial_number:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Le numéro de série retenu. Null pour un article non
                            suivi par numéro de série.
                      required:
                        - location_id
                        - quantity
                        - lot_id
                        - lot_number
                        - serial_id
                        - serial_number
                      additionalProperties: false
                required:
                  - id
                  - item_id
                  - quantity
                  - unit
                  - reserved
                  - picked
                  - holds
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Une ligne d'un article que cet appareil ne peut pas détenir.
                  Ouvrez le document en ligne pour la voir.
                properties:
                  id:
                    type: string
                    description: >-
                      L'ID de la ligne, afin que l'appareil puisse garder sa
                      place dans le document.
                  online_only:
                    type: boolean
                    const: true
                    description: "Toujours `true`\_: le reste de la ligne n'est affiché qu'en ligne."
                required:
                  - id
                  - online_only
                additionalProperties: false
      required:
        - id
        - number
        - status
        - customer_name
        - location_id
        - ship_by
        - ship_to_city
        - ship_to_country
        - lines
      additionalProperties: false
    ReceivingRecord:
      type: object
      title: ReceivingRecord
      description: Un enregistrement du flux receiving, en version de schéma 1.
      properties:
        id:
          type: string
          description: L'ID du bon de commande, un UUID.
        number:
          type: string
          description: >-
            Le numéro de la commande tiré de la séquence de l'organisation,
            comme `PO-00001`.
        status:
          type: string
          enum:
            - approved
            - sent
            - partially_received
          description: "Où en est la commande\_: `approved`, `sent` ou `partially_received`. Le flux ne contient que les commandes encore ouvertes à la réception."
        supplier_id:
          type: string
          description: L'ID du fournisseur auprès de qui la commande est passée.
        supplier_name:
          type: string
          description: Le nom du fournisseur, pour l'affichage.
        location_id:
          type: string
          description: Où la commande est livrée.
        expected_on:
          type:
            - string
            - 'null'
          format: date
          description: >-
            La date prévue de réception des marchandises, au format date
            (`YYYY-MM-DD`). Null lorsqu'aucune date n'est définie.
        origin_capture:
          type: boolean
          description: "Indique si une réception peut consigner le pays d'origine\_: le forfait l'inclut."
        lines:
          type: array
          description: >-
            Les lignes de la commande. Une ligne d'un article que cet appareil
            ne peut pas détenir arrive sous forme de souche en ligne seulement.
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: >-
                      L'ID de la ligne de commande, un UUID. Une réception nomme
                      la ligne par celui-ci.
                  item_id:
                    type: string
                    description: L'ID de l'article commandé sur la ligne.
                  ordered:
                    type: string
                    description: Un nombre décimal dans l'unité de la ligne.
                  received:
                    type: string
                    description: Un nombre décimal dans l'unité de la ligne.
                  open:
                    type: string
                    description: Ce qui reste à venir, jamais sous zéro.
                  unit:
                    type: string
                    description: >-
                      Le code de l'unité dans laquelle les quantités sont
                      exprimées.
                  tracking:
                    type: string
                    enum:
                      - none
                      - lot
                      - serial
                    description: Ce que la réception de l'article doit saisir.
                required:
                  - id
                  - item_id
                  - ordered
                  - received
                  - open
                  - unit
                  - tracking
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Une ligne d'un article que cet appareil ne peut pas détenir.
                  Ouvrez le document en ligne pour la voir.
                properties:
                  id:
                    type: string
                    description: >-
                      L'ID de la ligne, afin que l'appareil puisse garder sa
                      place dans le document.
                  online_only:
                    type: boolean
                    const: true
                    description: "Toujours `true`\_: le reste de la ligne n'est affiché qu'en ligne."
                required:
                  - id
                  - online_only
                additionalProperties: false
      required:
        - id
        - number
        - status
        - supplier_id
        - supplier_name
        - location_id
        - expected_on
        - origin_capture
        - lines
      additionalProperties: false
    ReferenceRecord:
      oneOf:
        - type: object
          title: CodeSync
          description: >-
            Un enregistrement `adjustment_reason` (un motif qu'une personne peut
            donner pour un ajustement de stock) ou un enregistrement `symbology`
            (une symbologie de code-barres qu'un balayage peut signaler).
          properties:
            code:
              type: string
              description: >-
                Le code du motif ou de la symbologie, comme `damaged` ou
                `ean13`.
          required:
            - code
          additionalProperties: false
        - type: object
          title: StockStatusSync
          description: Un enregistrement `stock_status`.
          properties:
            code:
              type: string
              description: "Le code du statut\_: `available`, `quarantined` ou `rejected`."
            available:
              type: boolean
              description: Indique si le stock dans ce statut peut être utilisé.
          required:
            - code
            - available
          additionalProperties: false
        - type: object
          title: CountrySync
          description: Un enregistrement `country`.
          properties:
            code:
              type: string
              description: Le code ISO 3166-1 alpha-2, en minuscules.
            name:
              type: string
              description: Le nom du pays en anglais.
          required:
            - code
            - name
          additionalProperties: false
        - type: object
          title: UnitSync
          description: >-
            Un enregistrement `standard_unit` (les unités que toute organisation
            possède) ou un enregistrement `unit` (les unités propres à
            l'organisation).
          properties:
            id:
              type: string
              description: "L'ID de l'unité\_: un UUID pour l'unité propre à l'organisation, le code pour une unité standard."
            code:
              type: string
              description: >-
                Le code de l'unité, comme `kg`. Les articles et les codes-barres
                nomment les unités par ce code.
            name:
              type: string
              description: Le nom de l'unité tel que les membres le voient.
            dimension:
              type: string
              description: "Ce que l'unité mesure\_: `count`, `mass`, `length`, `volume`, `area` ou `time`."
            factor:
              type:
                - string
                - 'null'
              description: >-
                Combien d'unités de référence de la dimension valent une unité
                de celle-ci, sous forme décimale exacte; null lorsqu'elle n'a
                pas de taille standard.
            standard:
              type: boolean
              description: >-
                Indique s'il s'agit d'une unité standard que toute organisation
                possède. Faux pour celles propres à l'organisation.
          required:
            - id
            - code
            - name
            - dimension
            - factor
            - standard
          additionalProperties: false
      title: ReferenceRecord
      description: Un enregistrement du flux reference, en version de schéma 3872671621.
    ShopFloorRecord:
      oneOf:
        - type: object
          title: BuildSync
          description: "Un enregistrement `build`\_: un ordre de fabrication lancé ou en cours qui a une opération à un poste de travail dans la portée."
          properties:
            id:
              type: string
              description: L'ID de la fabrication.
            number:
              type: string
              description: Le numéro de la fabrication, par exemple `MO-00001`.
            item_id:
              type: string
              description: >-
                L'ID de l'article que la fabrication produit. Le mode de suivi
                de l'article par lot ou par numéro de série figure dans son
                enregistrement `catalog`.
            quantity:
              type: string
              description: >-
                Combien produire, dans l'unité de base de l'article, sous forme
                décimale exacte.
            location_id:
              type: string
              description: >-
                L'ID de l'emplacement de stock où la fabrication produit
                l'article.
            due_on:
              type:
                - string
                - 'null'
              description: >-
                La date d'échéance de l'ordre de fabrication, au format `Y-m-d`.
                Null lorsqu'il n'a pas de date d'échéance.
            status:
              type: string
              enum:
                - released
                - in_progress
              description: "Où en est l'ordre de fabrication\_: `released`, ou `in_progress` une fois des pièces sorties pour lui."
            priority:
              type: string
              enum:
                - high
                - normal
                - low
              description: "L'urgence de l'ordre de fabrication\_: `high`, `normal` ou `low`. La planification s'en sert pour classer les ordres dus le même jour à un poste de travail partagé."
            revision_label:
              type:
                - string
                - 'null'
              description: >-
                Le libellé de la révision de nomenclature avec laquelle l'ordre
                de fabrication a été lancé, comme `A`, tel que la révision était
                libellée au lancement. Null lorsque l'ordre de fabrication n'a
                pas de libellé de révision.
            lot:
              type:
                - string
                - 'null'
              description: >-
                Le numéro de lot que l'ordre de fabrication consigne pour sa
                production. Null tant qu'il n'en consigne pas.
            serials:
              type: array
              items:
                type: string
              description: >-
                Les numéros de série que l'ordre de fabrication enregistre pour
                sa production. Vide tant qu'il ne les a pas enregistrés.
          required:
            - id
            - number
            - item_id
            - quantity
            - location_id
            - due_on
            - status
            - priority
            - revision_label
            - lot
            - serials
          additionalProperties: false
        - type: object
          title: BuildLineSync
          description: "Un enregistrement `build_line`\_: une pièce que l'ordre de fabrication doit consommer. Le suivi de la pièce par lot ou par numéro de série figure dans l'enregistrement `catalog` de l'article."
          properties:
            id:
              type: string
              description: >-
                L'ID de la ligne de la liste de pièces. Les pièces sont
                consommées sur celle-ci.
            build_id:
              type: string
              description: L'ID de la fabrication à laquelle appartient la ligne.
            sequence:
              type: integer
              description: >-
                La place de la ligne dans la liste de pièces de l'ordre de
                fabrication, en comptant à partir de 1.
            component_id:
              type: string
              description: L'ID de l'article composant que prend la ligne.
            quantity:
              type: string
              description: >-
                Combien l'ordre de fabrication prend de la pièce, rebut compris,
                en `unit`, sous forme décimale exacte.
            unit:
              type: string
              description: Le code de l'unité dans laquelle `quantity` est exprimée.
            issued:
              type: string
              description: >-
                Combien a été sorti jusqu'ici, dans l'unité de base de
                l'article, sous forme décimale exacte.
          required:
            - id
            - build_id
            - sequence
            - component_id
            - quantity
            - unit
            - issued
          additionalProperties: false
        - type: object
          title: BuildOperationSync
          description: "Un enregistrement `build_operation`\_: une opération d'un ordre de fabrication à un poste de travail dans la portée."
          properties:
            id:
              type: string
              description: L'ID de l'opération de fabrication.
            build_id:
              type: string
              description: L'ID de la fabrication à laquelle appartient l'opération.
            routing_operation_id:
              type:
                - string
                - 'null'
              description: >-
                L'opération de gamme dont l'opération de l'ordre de fabrication
                a été copiée. Ses fichiers d'instructions de travail la portent
                comme `operation_id`. Null lorsqu'il n'y en a pas.
            sequence:
              type: integer
              description: >-
                La place de l'opération parmi les opérations de l'ordre de
                fabrication, comme dans la gamme.
            name:
              type: string
              description: Le nom de l'opération, comme `Solder`.
            work_center_id:
              type: string
              description: L'ID du poste de travail où l'opération est faite.
            status:
              type: string
              enum:
                - pending
                - running
                - paused
                - completed
              description: "Où en est l'opération\_: `pending`, `running`, `paused` ou `completed`."
            setup_minutes:
              type: string
              description: >-
                Les minutes prévues pour le réglage, comptées une seule fois
                pour l'ordre de fabrication, sous forme de décimal exact.
            run_minutes:
              type: string
              description: >-
                Les minutes prévues pour produire la quantité entière de l'ordre
                de fabrication, sous forme de décimal exact.
            instructions:
              type:
                - string
                - 'null'
              description: >-
                Les instructions de travail de l'opération, telles qu'écrites
                dans la gamme. Null lorsqu'il n'y en a aucune.
            started_at:
              type:
                - string
                - 'null'
              description: >-
                Le moment où la période de travail en cours a commencé, sous
                forme d'horodatage ISO 8601. Null sauf si l'opération est en
                cours.
            started_by:
              type:
                - integer
                - 'null'
              description: >-
                L'ID du membre qui travaille actuellement sur l'opération. Null
                à moins qu'elle soit en cours.
          required:
            - id
            - build_id
            - routing_operation_id
            - sequence
            - name
            - work_center_id
            - status
            - setup_minutes
            - run_minutes
            - instructions
            - started_at
            - started_by
          additionalProperties: false
        - type: object
          title: BuildProblemSync
          description: "Un enregistrement `build_problem`\_: un problème ouvert sur l'ordre de fabrication ou l'une de ses opérations."
          properties:
            id:
              type: string
              description: L'ID du problème.
            build_id:
              type: string
              description: L'ID de la fabrication touchée par le problème.
            operation_id:
              type:
                - string
                - 'null'
              description: >-
                L'ID de l'opération de fabrication visée par le problème. Null
                lorsqu'il vise toute la fabrication.
            reason:
              type: string
              enum:
                - material
                - machine
                - quality
                - instructions
                - other
              description: "Le genre de problème\_: `material`, `machine`, `quality`, `instructions` ou `other`."
            note:
              type: string
              description: Ce que le membre qui a signalé le problème a écrit à ce sujet.
            created_at:
              type: string
              description: >-
                Le moment où le problème a été signalé, sous forme d'horodatage
                ISO 8601.
          required:
            - id
            - build_id
            - operation_id
            - reason
            - note
            - created_at
          additionalProperties: false
        - type: object
          title: OperationFileSync
          description: "Un enregistrement `routing_operation_file`\_: un fichier d'instructions de travail d'une opération. Téléchargez-le depuis `GET /api/v1/sync/files/{file_id}` et conservez-le tant que `hash` ne change pas. Le contenu associé à un ID de fichier ne change jamais."
          properties:
            id:
              type: string
              description: L'ID du lien entre le fichier et l'opération de gamme.
            operation_id:
              type: string
              description: >-
                Le `routing_operation_id` des opérations de fabrication
                auxquelles le fichier appartient.
            file_id:
              type: string
              description: L'ID du fichier stocké. Utilisez-le pour télécharger le contenu.
            name:
              type: string
              description: Le nom du fichier, comme `drilling.pdf`.
            mime_type:
              type: string
              description: Le type de média du fichier, comme `application/pdf`.
            size:
              type: integer
              description: La taille du fichier en octets.
            key:
              type: string
              description: >-
                Un ID pour le fichier qui reste le même à chaque révision de
                gamme à laquelle le fichier a été reporté.
            hash:
              type: string
              description: >-
                Une valeur SHA-256 qui change lorsque le contenu du fichier
                change. Conservez une copie en cache tant qu'elle reste
                identique.
          required:
            - id
            - operation_id
            - file_id
            - name
            - mime_type
            - size
            - key
            - hash
          additionalProperties: false
      title: ShopFloorRecord
      description: Un enregistrement du flux shop_floor, en version de schéma 1.
    StockRecord:
      oneOf:
        - type: object
          title: StockLevelSync
          description: "Un enregistrement `stock_level`\_: le stock d'un article à un emplacement, dans un statut et un lot. Un niveau à zéro n'est pas envoyé."
          properties:
            id:
              type: string
              description: L'ID du niveau de stock.
            item_id:
              type: string
              description: L'ID de l'article dont le stock fait partie.
            location_id:
              type: string
              description: L'ID de l'emplacement où se trouve le stock.
            status:
              type: string
              enum:
                - available
                - quarantined
                - rejected
              description: "Le statut du stock\_: `available`, `quarantined` ou `rejected`."
            lot_id:
              type:
                - string
                - 'null'
              description: >-
                L'ID du lot dans lequel se trouve le stock. Null pour un article
                non suivi par lot.
            quantity:
              type: string
              description: Un nombre décimal dans l'unité de base de l'article.
            unit:
              type: string
              description: >-
                Le code de l'unité de base de l'article, tel que l'envoie le
                flux du catalogue.
            value:
              type: string
              description: >-
                Ce que vaut le stock dans la devise de l'organisation. Seuls les
                membres autorisés à voir les coûts l'obtiennent.
          required:
            - id
            - item_id
            - location_id
            - status
            - lot_id
            - quantity
            - unit
          additionalProperties: false
        - type: object
          title: StockLotSync
          description: "Un enregistrement `stock_lot`\_: un lot avec du stock aux emplacements de l'appareil."
          properties:
            id:
              type: string
              description: L'ID du lot.
            item_id:
              type: string
              description: L'ID de l'article dont le lot est composé.
            number:
              type: string
              description: Le numéro qui identifie le lot.
            expires_on:
              type:
                - string
                - 'null'
              format: date
              description: >-
                La date d'expiration du lot, au format `YYYY-MM-DD`. Null
                lorsque le lot n'a pas de date d'expiration.
          required:
            - id
            - item_id
            - number
            - expires_on
          additionalProperties: false
        - type: object
          title: StockSerialSync
          description: "Un enregistrement `stock_serial`\_: une unité d'un article suivi par numéro de série, en main à l'un des emplacements de l'appareil."
          properties:
            id:
              type: string
              description: L'ID du numéro de série.
            item_id:
              type: string
              description: L'ID de l'article dont l'unité fait partie.
            number:
              type: string
              description: Le numéro de série de l'unité.
            location_id:
              type: string
              description: L'ID de l'emplacement où se trouve l'unité.
            status:
              type: string
              enum:
                - available
                - quarantined
                - rejected
              description: "Le statut de l'unité\_: `available`, `quarantined` ou `rejected`."
          required:
            - id
            - item_id
            - number
            - location_id
            - status
          additionalProperties: false
      title: StockRecord
      description: Un enregistrement du flux stock, en version de schéma 1.
    StockActivityRecord:
      type: object
      title: StockActivityRecord
      description: Un enregistrement du flux stock_activity, en version de schéma 1.
      properties:
        id:
          type: string
          description: L'ID du mouvement de stock.
        item_id:
          type: string
          description: L'ID de l'article dont le stock a changé.
        location_id:
          type: string
          description: L'ID de l'emplacement dont le stock a changé.
        lot_id:
          type:
            - string
            - 'null'
          description: >-
            L'ID du lot dont le stock a changé. Null pour un article non suivi
            par lot.
        quantity:
          type: string
          description: "Un nombre décimal signé dans l'unité de base de l'article\_: négatif lorsque du stock est sorti."
        status:
          type: string
          enum:
            - available
            - quarantined
            - rejected
          description: "Le statut dont le stock a changé\_: `available`, `quarantined` ou `rejected`."
        reason:
          type: string
          description: >-
            Pourquoi le stock a changé, comme `transfer`, `shipment` ou
            `status_change`.
        source_type:
          type:
            - string
            - 'null'
          description: >-
            Le type de document qui l'a comptabilisé, comme `stock_transfer`, ou
            null pour un ajustement.
        posted_at:
          type: string
          format: date-time
          description: >-
            Le moment où le mouvement a été comptabilisé, selon l'horloge du
            serveur.
        member_id:
          type:
            - string
            - 'null'
          description: >-
            Le membre qui l'a fait, tel que le flux `me` les liste, ou null
            lorsque ce n'est pas une personne.
      required:
        - id
        - item_id
        - location_id
        - lot_id
        - quantity
        - status
        - reason
        - source_type
        - posted_at
        - member_id
      additionalProperties: false
    TransfersRecord:
      type: object
      title: TransfersRecord
      description: Un enregistrement du flux transfers, en version de schéma 1.
      properties:
        id:
          type: string
          description: L'ID du transfert.
        status:
          type: string
          enum:
            - draft
            - shipped
          description: "Où en est le transfert\_: `draft` ou `shipped`. Les transferts reçus et annulés ne sont pas envoyés."
        from_location_id:
          type: string
          description: L'ID de l'emplacement d'où le stock est expédié.
        to_location_id:
          type: string
          description: L'ID de l'emplacement où le stock est reçu.
        shipped_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Le moment où le transfert a été expédié, sous forme d'horodatage ISO
            8601. Null pour un brouillon.
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: L'ID de la ligne de transfert.
                  item_id:
                    type: string
                    description: L'ID de l'article que la ligne déplace.
                  quantity:
                    type: string
                    description: Un nombre décimal dans l'unité de base de l'article.
                  unit:
                    type: string
                    description: Le code de l'unité de base de l'article.
                  entered_quantity:
                    type: string
                    description: Un nombre décimal dans `entered_unit`.
                  entered_unit:
                    type: string
                    description: Le code de l'unité dans laquelle la quantité a été saisie.
                  shipped:
                    type: string
                    description: "Ce qui a été expédié, dans l'unité de base\_: toute la ligne une fois le transfert expédié, rien avant."
                  lot:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Le numéro de lot déplacé, ou null lorsque la ligne ne
                      nomme aucun lot.
                  serials:
                    type: array
                    items:
                      type: string
                    description: >-
                      Les numéros de série que la ligne déplace, un par unité.
                      Vide pour un article non suivi par numéro de série.
                  received:
                    type: string
                    description: Un nombre décimal dans l'unité de base de l'article.
                  received_serials:
                    type: array
                    items:
                      type: string
                    description: >-
                      Les numéros de série reçus jusqu'ici. Vide tant qu'aucun
                      numéro de série n'est arrivé.
                required:
                  - id
                  - item_id
                  - quantity
                  - unit
                  - entered_quantity
                  - entered_unit
                  - shipped
                  - lot
                  - serials
                  - received
                  - received_serials
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Une ligne d'un article que cet appareil ne peut pas détenir.
                  Ouvrez le document en ligne pour la voir.
                properties:
                  id:
                    type: string
                    description: >-
                      L'ID de la ligne, afin que l'appareil puisse garder sa
                      place dans le document.
                  online_only:
                    type: boolean
                    const: true
                    description: "Toujours `true`\_: le reste de la ligne n'est affiché qu'en ligne."
                required:
                  - id
                  - online_only
                additionalProperties: false
          description: >-
            Les lignes du transfert. Une ligne d'un article que cet appareil ne
            peut pas détenir est envoyée sous forme de souche en ligne
            seulement.
      required:
        - id
        - status
        - from_location_id
        - to_location_id
        - shipped_at
        - lines
      additionalProperties: false
  responses:
    InvalidCursor:
      description: Curseur invalide
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    AuthenticationException:
      description: Non authentifié
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    DeviceRequired:
      description: Appareil requis
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    UnknownFeed:
      description: Flux introuvable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ResyncRequired:
      description: Resynchronisation requise
      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

- [Afficher l'effet d'un ordre de modification technique sur les coûts de ses nomenclatures](https://docs.stockshift.io/fr-ca/api-reference/modifications-techniques/afficher-leffet-dun-ordre-de-modification-technique-sur-les-coûts-de-ses-nomenclatures.md)
- [Réessayer tous les enregistrements en échec d'un type de problème](https://docs.stockshift.io/fr-ca/api-reference/connexions/réessayer-tous-les-enregistrements-en-échec-dun-type-de-problème.md)
- [Définir la fréquence de synchronisation d'un flux](https://docs.stockshift.io/fr-ca/api-reference/connexions/définir-la-fréquence-de-synchronisation-dun-flux.md)


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