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

# Descarga la instantánea de un feed

> Devuelve cada registro actual del feed como JSON delimitado por saltos de línea
(`application/x-ndjson`), comprimido con gzip cuando la solicitud lo acepta. `{feed}` es
el nombre del feed, como lo da la lista de feeds. La primera línea es
`{"snapshot":{"feed","schema_version","cursor"}}`, con el cursor tomado
cuando empezó la instantánea. Luego viene una línea por cada registro actual, en
orden de tipo de entidad e ID, cada una con su `version`. La última línea es
`{"end":true,"count":n}`.

Cuando la conexión se cae, envía `after` con el último registro guardado, como
`entity_type:id`, para continuar; conserva el cursor del primer encabezado. Cuando llegue la
línea final, obtén los cambios desde el cursor del encabezado.

Requiere el permiso y la función del plan del feed, y un token con `sync:read`
y el alcance del área del feed, como `inventory:read`.



## OpenAPI

````yaml /openapi.es.json get /sync/feeds/{feed}/snapshot
openapi: 3.1.2
info:
  title: StockShift API
  version: 1.0.0
  description: >-
    La API REST de StockShift. Empieza con las guías de autenticación, alcances,
    paginación, errores y webhooks.
servers:
  - url: https://app.stockshift.io/api/v1
    description: Producción
  - url: https://app.beta.stockshift.io/api/v1
    description: Beta
security:
  - apiKey: []
  - oauth2: []
tags:
  - name: Acciones de existencias con testigo
    description: >-
      Retiene una acción de existencias para una segunda persona, que recuenta a
      ciegas y firma, y lee ambas firmas. Las existencias solo cambian cuando el
      testigo firma.
  - name: Existencias del artículo
    description: >-
      Todo sobre las existencias de un artículo: dónde están, qué está
      prometido, cómo se rastrean y cuánto cuestan.
  - name: Transferencias
    description: >-
      Mueve existencias de una ubicación a otra, con tiempo en tránsito entre el
      envío y la recepción.
  - name: Costos de importación
    description: >-
      Agrega flete, aranceles y otros cargos al costo de las existencias que
      recibiste.
  - name: Conteos de existencias
    description: >-
      Cuenta lo que hay en el estante, compáralo con lo que StockShift espera y
      contabiliza la diferencia cuando alguien la apruebe.
  - name: Ubicaciones
    description: >-
      Los almacenes, salas y contenedores donde se guardan las existencias. La
      mayoría de las llamadas de existencias necesitan un ID de ubicación de
      aquí.
  - name: Periodos
    description: >-
      Cierra cada mes una vez informado: bloquea lo que tiene fecha en él,
      comprueba que no quede nada abierto y conserva el valor de las existencias
      al final.
  - name: Importaciones de inventario
    description: >-
      Carga las existencias iniciales desde un archivo CSV, con una vista previa
      antes de contabilizar nada.
  - name: Solicitudes de liberación
    description: >-
      Pide a Calidad que libere existencias retenidas, y rechaza o retira la
      solicitud. Liberar las existencias la cierra.
  - name: Firmantes
    description: >-
      Quién puede firmar acciones de existencias con testigo: de quién se
      verificó la identidad, cómo y cuándo, y las firmas fallidas que deben ver
      los revisores.
  - name: Existencias
    description: >-
      Cuánto hay de cada artículo y dónde. Consulta los niveles, ahora o en una
      fecha pasada, y contabiliza ajustes cuando se encuentren, pierdan o dañen
      existencias.
  - name: Reglas de testigo
    description: >-
      Qué acciones de existencias esperan a que una segunda persona vuelva a
      contar y firme, como retirar una sustancia controlada.
  - name: Reglas de asignación
    description: >-
      Qué lotes se toman primero cuando se reservan o se envían existencias,
      como primero en caducar, primero en salir.
  - name: Configuración de inventario
    description: >-
      Cómo maneja la organización las existencias, por ejemplo si pueden quedar
      en negativo y cómo se costean.
  - name: Lotes
    description: Lotes de existencias que comparten un número de lote, y cuándo vencen.
  - name: Movimientos
    description: >-
      El libro detrás de cada nivel de existencias. Los movimientos nunca se
      editan; se corrigen revirtiéndolos.
  - name: Números de serie
    description: Unidades con seguimiento individual y dónde está cada una ahora.
  - name: Movimientos de existencias
    description: >-
      Mueve existencias de una ubicación a otra en un solo paso, por ejemplo de
      un muelle a un estante, y deshaz un movimiento completo.
  - name: Vistas previas masivas
    description: >-
      Revisa una lista de líneas de existencias antes de un movimiento masivo,
      un ajuste, una retención o una impresión, y ve qué debe decidirse en cada
      línea.
  - name: Artículos
    description: >-
      Los productos y materiales que almacenas, compras, fabricas o vendes. El
      ID o el SKU de un artículo es lo que piden la mayoría de los demás
      endpoints.
  - name: Familias
    description: >-
      Grupos de artículos que solo se diferencian por opciones como la talla o
      el color, y las variantes que se hacen con ellos.
  - name: Importaciones de catálogo
    description: >-
      Crea o actualiza artículos desde un archivo CSV, con una vista previa
      antes de guardar nada.
  - name: Campos personalizados
    description: >-
      Campos adicionales que la organización agrega a sus artículos. Defínelos
      aquí y luego asigna sus valores en cada artículo.
  - name: Biblioteca de productos
    description: >-
      Busca un producto por su GTIN y crea un artículo con lo que la biblioteca
      sabe de él.
  - name: Unidades
    description: >-
      Unidades de medida, como each, box o kg. Los artículos se cuentan en una
      unidad base y se convierten desde las demás.
  - name: Escaneo
    description: >-
      Convierte un código de barras escaneado en el artículo, la unidad o la
      pieza etiquetada que identifica.
  - name: Proveedores
    description: >-
      Las empresas a las que compras, las personas con las que tratas allí y lo
      que te cobran.
  - name: Órdenes de compra
    description: >-
      Órdenes a proveedores. Crea un borrador, apruébalo, envíalo y recibe la
      mercancía contra él.
  - name: Importaciones de compras
    description: Carga proveedores y sus catálogos desde archivos CSV.
  - name: Configuración de compras
    description: >-
      Cómo compra la organización, por ejemplo el umbral de aprobación y cuánto
      puede superar una recepción a la orden.
  - name: Recepciones
    description: >-
      Mercancía recibida contra órdenes de compra. Revierte una recepción para
      corregirla o imprime etiquetas de lo que llegó.
  - name: Proveedores del artículo
    description: Qué proveedores venden un artículo, y a qué precio.
  - name: Exportaciones de compras
    description: >-
      Descarga proveedores o sus catálogos como CSV, en las mismas columnas que
      lee la importación.
  - name: Pedidos de venta
    description: >-
      Pedidos de clientes. Toma uno como borrador, confírmalo para reservar
      existencias, luego envíalo y factúralo.
  - name: Clientes
    description: Las empresas a las que vendes y las personas con las que tratas allí.
  - name: Facturas
    description: Facturas de lo que has vendido y los pagos registrados contra ellas.
  - name: Listas de precios
    description: >-
      Los precios que paga un cliente, con escalas por cantidad. Asígnale una
      lista de precios a un cliente y sus pedidos se calculan solos.
  - name: Cotizaciones
    description: >-
      Ofertas a clientes. Una cotización aceptada se convierte en un pedido de
      venta.
  - name: Tasas de impuestos
    description: Las tasas de impuesto sobre las ventas con las que se cobran las facturas.
  - name: Importaciones de ventas
    description: Carga clientes y listas de precios desde archivos CSV.
  - name: Devoluciones
    description: >-
      Mercancía que los clientes devuelven: autoriza la devolución, luego
      recíbela en las existencias y acredítala.
  - name: Envíos
    description: Lo que salió del edificio por cada pedido de venta.
  - name: Configuración de ventas
    description: >-
      Cómo vende la organización, por ejemplo cuándo se reservan las existencias
      y si las facturas pueden salir antes del envío.
  - name: Certificados de conformidad
    description: >-
      Certificados firmados de que los productos de un envío cumplen con el
      pedido, conservados exactamente como se firmaron.
  - name: Precios
    description: >-
      Consulta cuánto pagaría un cliente por una cantidad de un artículo antes
      de ponerlo en un pedido.
  - name: Exportaciones de ventas
    description: >-
      Descarga clientes y listas de precios como CSV, en las mismas columnas que
      lee la importación.
  - name: Órdenes de fabricación
    description: >-
      Órdenes para fabricar algo. Libera una orden de fabricación al piso,
      consume sus piezas y complétala hacia las existencias.
  - name: Reparaciones
    description: >-
      Reparaciones de unidades que los clientes devuelven: revisa la garantía,
      registra las piezas puestas y retiradas, y luego completa la reparación o
      factúrala.
  - name: Rutas
    description: >-
      Los pasos por los que pasa una orden de fabricación y el centro de trabajo
      en el que se ejecuta cada paso.
  - name: Centros de trabajo
    description: Las máquinas, celdas o equipos donde se hacen los pasos de una ruta.
  - name: Plazos de garantía
    description: >-
      Cuánto tiempo un artículo está en garantía y si cuenta desde el envío o la
      fabricación, con condiciones propias para algunos clientes.
  - name: Trazabilidad
    description: >-
      Rastrea un lote o número de serie hacia atrás hasta lo que entró en él, o
      hacia adelante hasta aquello en lo que entró.
  - name: Configuración de fabricación
    description: >-
      Cómo fabrica la organización, por ejemplo si las operaciones pueden
      superponerse y el estado en el que entran los productos terminados.
  - name: Programación
    description: Planifica las órdenes de fabricación abiertas en días hábiles.
  - name: Variaciones de costo
    description: >-
      Dónde una orden de fabricación completada costó más o menos que su costo
      estándar.
  - name: BOM
    description: >-
      Listas de materiales: las piezas y cantidades que forman un artículo,
      guardadas como revisiones.
  - name: Cambios de ingeniería
    description: >-
      Órdenes de cambio que proponen revisiones nuevas de BOM y las liberan una
      vez aprobadas.
  - name: Importaciones de ingeniería
    description: Carga listas de materiales desde un archivo CSV o una exportación de CAD.
  - name: Configuración de Ingeniería
    description: >-
      Cómo gestiona la organización los cambios de ingeniería, por ejemplo
      cuántas aprobaciones necesita una orden de cambio.
  - name: Exportaciones de ingeniería
    description: >-
      Descarga listas de materiales como CSV, en las mismas columnas que lee la
      importación.
  - name: Dónde se usa
    description: >-
      Encuentra todas las BOM en las que aparece un artículo, antes de cambiarlo
      o retirarlo.
  - name: Planes de inspección
    description: >-
      Qué revisar, en qué artículos y cuántos: las características, el muestreo
      y el punto de inspección de cada plan.
  - name: Inspecciones
    description: >-
      Inspecciones abiertas por recepciones, operaciones y órdenes de
      fabricación. Registra sus resultados para aprobar o rechazar las
      existencias que retienen.
  - name: Pronósticos
    description: >-
      La demanda esperada de cada artículo, semana por semana, y los cambios que
      hacen los planificadores.
  - name: Escenarios
    description: Copias del pronóstico para probar cambios sin tocar el plan real.
  - name: Demanda
    description: >-
      Demanda pasada de un artículo en una ubicación, a partir de la cual se
      construyen los pronósticos.
  - name: Sugerencias
    description: >-
      Lo que el plan dice que se compre o se fabrique. Acepta uno para generar
      la orden de compra o la orden de fabricación, o descártalo.
  - name: Reabastecimiento
    description: >-
      Cómo se mantiene cada artículo en existencias en cada ubicación: puntos de
      reorden, mínimos y máximos o revisión periódica.
  - name: Días festivos
    description: >-
      Días en que la organización no trabaja, que el plan omite al contar plazos
      de entrega.
  - name: Configuración de planificación
    description: >-
      Cómo planifica la organización, por ejemplo el horizonte del pronóstico y
      el nivel de servicio.
  - name: Automatizaciones
    description: >-
      Reglas que ejecutan pasos cuando ocurre algo o según una programación.
      Edita el borrador y luego publícalo para activarla.
  - name: Ejecuciones
    description: >-
      Cada vez que se ejecutó una automatización: qué la inició, qué hizo cada
      paso y dónde falló.
  - name: Aprobaciones
    description: >-
      Ejecuciones en pausa a la espera de que una persona las apruebe o rechace
      antes de continuar.
  - name: Configuración de automatización
    description: >-
      Límites de toda la organización para las automatizaciones, como las
      ejecuciones por minuto y si alguien puede aprobar su propia ejecución.
  - name: Plantillas de automatización
    description: Automatizaciones prediseñadas para empezar.
  - name: Eventos
    description: >-
      Los eventos que pueden activar una automatización y los datos que lleva
      cada uno.
  - name: Catálogo de pasos
    description: >-
      Todos los pasos que puede usar una automatización y las entradas que toma
      cada uno.
  - name: Vistas
    description: >-
      Reportes guardados: el conjunto de datos, los filtros, la agrupación y el
      gráfico que alguien configuró, listos para ejecutarse de nuevo.
  - name: Paneles
    description: Páginas de gráficos y KPI dispuestos en una cuadrícula.
  - name: Conjuntos de datos
    description: >-
      Los datos sobre los que puedes reportar y los campos de cada uno. Empieza
      aquí para crear un reporte.
  - name: Programaciones
    description: >-
      Envía un reporte por correo electrónico según una programación, o avisa a
      alguien cuando un valor cruza un umbral.
  - name: KPI
    description: >-
      Cifras individuales que vale la pena vigilar, definidas como una fórmula
      sobre un conjunto de datos.
  - name: Panel
    description: >-
      Las cifras de la pantalla de inicio de la app, por si quieres mostrar los
      mismos números en otro lugar.
  - name: Carpetas de vistas
    description: Carpetas que mantienen organizadas las vistas guardadas.
  - name: Exportaciones de Insights
    description: >-
      Exporta un informe a un archivo. Las exportaciones grandes se ejecutan en
      segundo plano y están listas para descargar más tarde.
  - name: Plantillas de reportes
    description: >-
      Reportes prediseñados, como el envejecimiento de existencias, para empezar
      una vista.
  - name: Reportes
    description: >-
      Ejecuta la definición de un reporte y obtén sus filas o su gráfico, sin
      guardarla antes.
  - name: Plantillas de panel
    description: Paneles prediseñados para empezar.
  - name: Fórmulas
    description: >-
      Comprueba una fórmula contra un conjunto de datos antes de guardarla en un
      KPI o en un campo calculado.
  - name: Conexiones
    description: >-
      Cuentas conectadas en otros sistemas, qué sincroniza cada una y el
      historial de sus ejecuciones de sincronización.
  - name: Envío
    description: >-
      Tarifas de transportistas, las etiquetas compradas para pedidos y
      devoluciones, y los escaneos que rastrean cada paquete.
  - name: Migraciones
    description: >-
      Trae registros de otro sistema: prepara archivos o una extracción, asigna
      las columnas, revisa las filas, confírmalas y deshaz la confirmación.
  - name: Abastecimiento
    description: >-
      Precios y existencias de piezas de distribuidores: busca en un
      distribuidor conectado, vincula artículos con sus piezas y calcula el
      precio de una revisión de BOM.
  - name: CAD
    description: >-
      Ensambles de CAD y PLM: lista los ensambles de una herramienta conectada y
      vigila aquellos cuyas liberaciones se convierten en importaciones de BOM.
  - name: Exportación de datos
    description: >-
      Todo lo que guarda la organización en un solo ZIP de archivos CSV y de
      líneas JSON, para que el propietario lo descargue.
  - name: Direcciones fiscales
    description: >-
      Las direcciones por las que un servicio de impuestos conectado calcula el
      impuesto de cada venta, comprobadas con él.
  - name: Conectores
    description: >-
      Los sistemas a los que puede conectarse StockShift y lo que puede
      sincronizar cada conector.
  - name: Conjuntos de etiquetas
    description: >-
      Todos los lotes de etiquetas impresos, para que puedas encontrar uno de
      nuevo y reimprimirlo.
  - name: Plantillas de etiquetas
    description: Los diseños con que se imprimen las etiquetas.
  - name: Piezas
    description: >-
      Busca una pieza etiquetada a partir del código de su etiqueta: el
      artículo, el lote o la serie y cuánto contiene.
  - name: Marca y plantillas
    description: >-
      El logotipo, los colores, los términos y los campos personalizados con que
      se imprime cada cotización, orden de compra, factura y lista de empaque.
  - name: Apps móviles
    description: >-
      Cómo las apps móviles de StockShift registran un dispositivo, inician
      sesión y se mantienen sincronizadas con el servidor.
  - name: Dispositivos
    description: >-
      Los teléfonos y escáneres registrados en la organización. Bloquea uno
      perdido, bórralo o retíralo.
  - name: Configuración del escáner
    description: >-
      Hojas imprimibles de códigos de barras que configuran un escáner de
      hardware, y las preferencias de escáner de cada persona.
  - name: Inscripciones
    description: Crea los códigos QR que inscriben dispositivos compartidos y quioscos.
  - name: Feeds de sincronización
    description: >-
      Descarga una instantánea de los datos que necesita un dispositivo y luego
      obtén los cambios desde entonces.
  - name: Comandos de sincronización
    description: >-
      Envía los cambios que un dispositivo hizo sin conexión. Cada comando se
      aplica una sola vez, sin importar cuántas veces se envíe.
  - name: Archivos de sincronización
    description: >-
      Descarga los archivos, como imágenes de artículos, a los que apunta un
      feed.
  - name: Perfil
    description: >-
      La cuenta propia de la persona que inició sesión: sus datos, contraseña,
      llaves de acceso, segundo factor y sesiones.
  - name: Notificaciones
    description: >-
      La bandeja de entrada del miembro que inició sesión: lo que lo necesita,
      lo que no ha leído, y de qué se le avisa y cómo.
  - name: Invitaciones
    description: Invita a personas a unirse a la organización y acepta una invitación.
  - name: Roles
    description: >-
      Roles y los permisos de cada uno. Un miembro puede hacer lo que sus roles
      permiten.
  - name: Acceso del personal
    description: >-
      Solicitudes del soporte de StockShift para ver los datos de la
      organización, que un propietario debe conceder.
  - name: Equipo
    description: Las personas de la organización y los roles que tienen.
  - name: Claves de API
    description: >-
      Crea y revoca las claves que usan los scripts y las integraciones para
      llamar a esta API.
  - name: Organizaciones
    description: Las organizaciones a las que pertenece la persona que inició sesión.
  - name: Firmas
    description: >-
      Algunas acciones necesitan una firma electrónica. Obtén aquí un token de
      firma y envíalo con la llamada.
  - name: Registro
    description: Regístrate para obtener una cuenta y una organización nuevas.
  - name: Organización
    description: >-
      Política de toda la organización: cuánto tiempo se conservan los
      registros, reglas de sesión, retenciones legales y cierre de la
      organización.
  - name: Aceptaciones legales
    description: >-
      Las versiones de los Términos de servicio y de la Política de privacidad
      que aceptó la organización, las versiones que esperan a un propietario y
      un certificado de cada aceptación.
  - name: Dirección
    description: >-
      La dirección de facturación que aparece en las facturas de la
      organización.
  - name: Historial
    description: Quién cambió qué campo de un registro, cuándo y a partir de qué.
  - name: Certificados de destrucción
    description: Comprueba que un certificado de destrucción de datos es auténtico.
  - name: Facturación
    description: >-
      Consulta o cambia el plan, compra paquetes de ejecuciones para
      automatizaciones, ve las facturas y actualiza el método de pago.
  - name: Webhooks
    description: >-
      Registra URL para que te avisen cuando pasen cosas, y consulta cada
      entrega y su respuesta.
  - name: Apps OAuth
    description: >-
      Las apps de terceros que los miembros conectaron mediante OAuth. Revoca
      una para cortar su acceso.
  - name: Hooks REST
    description: >-
      Para apps conectadas como Zapier: suscribe un evento a una URL y cancela
      la suscripción.
  - name: Servidor MCP
    description: >-
      Deja que un asistente de IA trabaje en StockShift a través del Model
      Context Protocol, con los mismos permisos que el miembro que lo conecta.
  - name: Eventos recientes
    description: >-
      Los últimos eventos de un tipo, tal como los envían las entregas, para
      consultar periódicamente o usar como muestras.
  - name: Eventos de webhook
    description: >-
      Todos los eventos que pueden enviar los webhooks y los REST hooks, con la
      forma de sus datos.
paths:
  /sync/feeds/{feed}/snapshot:
    get:
      tags:
        - Feeds de sincronización
      summary: Descarga la instantánea de un feed
      description: >-
        Devuelve cada registro actual del feed como JSON delimitado por saltos
        de línea

        (`application/x-ndjson`), comprimido con gzip cuando la solicitud lo
        acepta. `{feed}` es

        el nombre del feed, como lo da la lista de feeds. La primera línea es

        `{"snapshot":{"feed","schema_version","cursor"}}`, con el cursor tomado

        cuando empezó la instantánea. Luego viene una línea por cada registro
        actual, en

        orden de tipo de entidad e ID, cada una con su `version`. La última
        línea es

        `{"end":true,"count":n}`.


        Cuando la conexión se cae, envía `after` con el último registro
        guardado, como

        `entity_type:id`, para continuar; conserva el cursor del primer
        encabezado. Cuando llegue la

        línea final, obtén los cambios desde el cursor del encabezado.


        Requiere el permiso y la función del plan del feed, y un token con
        `sync:read`

        y el alcance del área del feed, como `inventory:read`.
      operationId: v1.sync.snapshot
      parameters:
        - name: after
          in: query
          description: >-
            Continúa después de este registro, el último que guardó el
            dispositivo, dado como `entity_type:id`.
          schema:
            type:
              - string
              - 'null'
            pattern: ^[a-z0-9_]{1,64}:.{1,64}$
          example: stock_location:0199a0d0-0000-7000-8000-000000000001
        - name: feed
          in: path
          required: true
          description: >-
            El nombre del feed, como `stock`, tal como lo lista `GET
            /sync/feeds`.
          schema:
            type: string
      responses:
        '200':
          description: >-
            JSON delimitado por saltos de línea: el encabezado, los registros y
            la línea final.
          content:
            application/x-ndjson:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SyncSnapshotHeader'
                  - $ref: '#/components/schemas/SyncSnapshotRecord'
                  - $ref: '#/components/schemas/SyncSnapshotEnd'
          headers:
            X-RateLimit-Limit:
              description: >-
                Solicitudes por minuto permitidas para este token, o para la
                dirección si no tiene uno.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Solicitudes que quedan este minuto.
              schema:
                type: integer
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/DeviceRequired'
        '404':
          $ref: '#/components/responses/UnknownFeed'
        '422':
          $ref: '#/components/responses/ValidationException'
        '429':
          description: Demasiadas solicitudes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          headers:
            Retry-After:
              description: Segundos hasta que se restablece el límite.
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Solicitudes por minuto permitidas.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: 'Solicitudes que quedan este minuto: ninguna.'
              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}/snapshot", {
              path: { feed: "01J8QZ4M..." },
            });
components:
  schemas:
    SyncSnapshotHeader:
      type: object
      description: La primera línea de una instantánea.
      properties:
        snapshot:
          type: object
          description: De qué feed es la instantánea, y desde dónde continúan sus cambios.
          properties:
            feed:
              type: string
              description: El nombre del feed del que es la instantánea.
            schema_version:
              type: integer
              description: La versión del esquema de los registros que siguen.
            cursor:
              type: string
              description: >-
                Dónde empezó la instantánea. Obtén los cambios a partir de ahí
                cuando llegue la línea final.
          required:
            - feed
            - schema_version
            - cursor
      required:
        - snapshot
    SyncSnapshotRecord:
      type: object
      description: Un registro actual, ordenado por tipo de entidad e ID.
      properties:
        entity_type:
          type: string
          description: El tipo de registro, como `stock_location`.
        id:
          type: string
          description: El ID del registro.
        version:
          type: integer
          description: >-
            El ID del último cambio de la entidad; 0 cuando el registro no tiene
            ninguno.
        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'
          description: El registro tal como lo describe el feed.
      required:
        - entity_type
        - id
        - version
        - data
    SyncSnapshotEnd:
      type: object
      description: La última línea de una instantánea.
      properties:
        end:
          type: boolean
          const: true
          description: 'Siempre `true`: la instantánea está completa.'
        count:
          type: integer
          description: Cuántos registros se enviaron.
      required:
        - end
        - count
    ProblemDetails:
      type: object
      description: >-
        Un error, como detalles del problema RFC 9457. Decide según `code`, que
        es estable; `detail` está escrito para personas y puede cambiar.
      properties:
        type:
          type: string
          format: uri
          description: Enlaces a la documentación de este código.
        title:
          type: string
          description: El texto de estado HTTP.
        status:
          type: integer
          description: El código de estado HTTP.
        code:
          type: string
          description: Un nombre estable legible por máquina, como validation_failed.
        detail:
          type: string
          description: Qué salió mal, para las personas.
        errors:
          type: object
          description: >-
            Errores por campo. En validation_failed, y en un rechazo con un
            código propio como insufficient_stock o document_closed.
          additionalProperties:
            type: array
            items:
              type: string
        feature:
          type: string
          description: La función del plan que se necesita. Solo en plan_upgrade_required.
        reason:
          type: string
          description: >-
            Por qué un dispositivo debe descargar un feed de nuevo. Solo en
            resync_required.
        attempts_left:
          type: integer
          description: >-
            Cuántas firmas rechazadas quedan antes de que el miembro se bloquee
            en el dispositivo. Solo en signature_assertion_invalid.
        rule_ids:
          type: array
          description: >-
            Las reglas de testigo que cubren las existencias. Solo en
            verification_required.
          items:
            type: string
        witness:
          type: string
          description: >-
            Dónde firma el testigo: same_device, remote o either. Solo en
            verification_required.
        blind_recount:
          type: boolean
          description: >-
            Si el testigo vuelve a contar antes de ver la cantidad. Solo en
            verification_required.
        flags:
          type: array
          description: >-
            Las marcas que dejan abiertas las decisiones de una línea masiva,
            tal como las nombra la vista previa masiva. Solo en
            decision_required.
          items:
            type: object
            properties:
              flag:
                type: string
                description: El nombre de la marca, tal como lo da la vista previa masiva.
              facts:
                type: object
                description: >-
                  Los hechos de la marca, como en la vista previa masiva; los
                  demás son null.
                additionalProperties:
                  anyOf:
                    - type: string
                    - type: integer
                    - type: array
                      items:
                        type: string
                    - type: 'null'
              choices:
                type: array
                description: >-
                  Las decisiones que resolverían la marca, tal como las nombra
                  la vista previa masiva.
                items:
                  type: string
            required:
              - flag
              - facts
              - choices
      required:
        - type
        - title
        - status
        - code
        - detail
      title: ProblemDetails
    CatalogRecord:
      oneOf:
        - type: object
          title: ItemSync
          description: Un registro `item`.
          properties:
            id:
              type: string
              description: El ID del artículo, un UUID.
            sku:
              type: string
              description: >-
                El SKU del artículo. Es único en la organización, sin distinguir
                mayúsculas.
            name:
              type: string
              description: >-
                El nombre del artículo tal como aparece en los documentos y las
                etiquetas.
            family_id:
              type:
                - string
                - 'null'
              description: >-
                El ID de la familia de artículos de la que el artículo es una
                variante, o null cuando no es una variante.
            unit:
              type: string
              description: El código de la unidad base del artículo.
            tracking:
              type: string
              enum:
                - none
                - lot
                - serial
              description: 'Cómo se rastrea el artículo: `none`, `lot` o `serial`.'
            expiry_tracked:
              type: boolean
              description: >-
                Si las existencias del artículo tienen fecha de caducidad. Los
                artículos con seguimiento por lote la tienen.
            archived:
              type: boolean
              description: >-
                Si el artículo está archivado. Los artículos archivados se
                siguen enviando en el feed.
            controlled_schedule:
              type:
                - string
                - 'null'
              enum:
                - I
                - II
                - III
                - IV
                - V
                - null
              description: >-
                La lista de sustancias controladas por la que coinciden las
                reglas de testigo; ninguna cuando es null.
            thumbnail:
              type:
                - object
                - 'null'
              description: >-
                Descarga el archivo desde `GET /api/v1/sync/files/{file_id}` y
                consérvalo mientras el hash no cambie.
              properties:
                file_id:
                  type: string
                  description: El ID del archivo de la miniatura, para la ruta de descarga.
                hash:
                  type: string
                  description: >-
                    Un validador del archivo. Conserva la copia descargada
                    mientras no cambie.
              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 registro `item_barcode`. Para resolver un escaneo, compara el
            código escaneado, normalizado como lo hace el servidor, con
            `lookup`.
          properties:
            id:
              type: string
              description: El ID del código de barras, un UUID.
            item_id:
              type: string
              description: El ID del artículo al que pertenece el código de barras.
            code:
              type: string
              description: El código de barras tal como se ingresó.
            lookup:
              type: string
              description: >-
                El código con el que se comparan los escaneos: un GTIN válido
                rellenado con ceros a la izquierda hasta 14 dígitos, o cualquier
                otro código tal como se ingresó.
            symbology:
              type: string
              description: >-
                La simbología del código de barras: `gtin8`, `gtin12`, `gtin13`,
                `gtin14`, `code128` o `qr`.
            unit:
              type:
                - string
                - 'null'
              description: >-
                El código de la unidad que cuenta un escaneo, o null para la
                unidad base.
            quantity_per_scan:
              type: string
              description: >-
                Cuántas unidades base del artículo cuenta un escaneo, como
                decimal exacto.
          required:
            - id
            - item_id
            - code
            - lookup
            - symbology
            - unit
            - quantity_per_scan
          additionalProperties: false
        - type: object
          title: ItemFamilySync
          description: Un registro `item_family`.
          properties:
            id:
              type: string
              description: El ID de la familia, un UUID.
            code:
              type: string
              description: >-
                El código de la familia. Es único en la organización, sin
                distinguir mayúsculas.
            name:
              type: string
              description: El nombre de la familia como lo ven los miembros.
            options:
              type: array
              description: >-
                Las opciones en las que difieren las variantes, como Size y
                Color. Hasta tres, en orden.
              items:
                type: object
                properties:
                  name:
                    type: string
                    description: El nombre de la opción, como `Size`.
                  values:
                    type: array
                    items:
                      type: string
                    description: Los valores de la opción, en orden.
                required:
                  - name
                  - values
          required:
            - id
            - code
            - name
            - options
          additionalProperties: false
        - type: object
          title: ItemUnitConversionSync
          description: >-
            Un registro `item_unit_conversion`: cuántas unidades base es una de
            `unit`.
          properties:
            id:
              type: string
              description: El ID de la conversión, un UUID.
            item_id:
              type: string
              description: El ID del artículo al que pertenece la conversión.
            unit:
              type: string
              description: El código de la unidad a la que corresponde la conversión.
            factor:
              type: string
              description: >-
                Cuántas unidades base del artículo equivale una de `unit`, como
                cadena decimal exacta.
          required:
            - id
            - item_id
            - unit
            - factor
          additionalProperties: false
      title: CatalogRecord
      description: Un registro del feed catalog, en la versión de esquema 2.
    CountsRecord:
      type: object
      title: CountsRecord
      description: Un registro del feed counts, en la versión de esquema 1.
      properties:
        id:
          type: string
          description: El ID del conteo de existencias.
        location_id:
          type: string
          description: El ID de la ubicación que se cuenta.
        blind:
          type: boolean
          description: Si las líneas omiten `expected`.
        started_at:
          type: string
          format: date-time
          description: >-
            Cuándo se inició el conteo, como marca de tiempo ISO 8601. Solo se
            envían los conteos abiertos.
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: El ID de la línea de conteo.
                  item_id:
                    type: string
                    description: El ID del artículo que cuenta la línea.
                  lot_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      El ID del lote que cuenta la línea. Es null para un
                      artículo que no se rastrea por lote.
                  lot_number:
                    type:
                      - string
                      - 'null'
                    description: >-
                      El número de ese lote. Es null para un artículo sin
                      seguimiento por lote.
                  serial_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      El ID del número de serie que cuenta la línea. Es null
                      para un artículo que no se rastrea por número de serie.
                  serial_number:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Ese número de serie. Es null para un artículo que no se
                      rastrea por número de serie.
                  unit:
                    type: string
                    description: El código de la unidad base del artículo.
                  expected:
                    type: string
                    description: >-
                      Lo que espera el conteo, como decimal en la unidad base.
                      Un conteo ciego lo omite.
                  counted:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Lo contado, como decimal en la unidad base. Es null hasta
                      que se cuenta la línea.
                  counted_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                    description: >-
                      Cuándo se contó la línea, como marca de tiempo ISO 8601.
                      Es null hasta que se cuenta la línea.
                required:
                  - id
                  - item_id
                  - lot_id
                  - lot_number
                  - serial_id
                  - serial_number
                  - unit
                  - counted
                  - counted_at
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Una línea de un artículo que este dispositivo no puede tener.
                  Abre el documento en línea para verla.
                properties:
                  id:
                    type: string
                    description: >-
                      El ID de la línea, para que el dispositivo pueda mantener
                      su lugar en el documento.
                  online_only:
                    type: boolean
                    const: true
                    description: >-
                      Siempre `true`: el resto de la línea solo se muestra en
                      línea.
                required:
                  - id
                  - online_only
                additionalProperties: false
          description: >-
            Las líneas del conteo. Una línea de un artículo que este dispositivo
            no puede tener se envía como un stub solo en línea.
      required:
        - id
        - location_id
        - blind
        - started_at
        - lines
      additionalProperties: false
    LabelsRecord:
      oneOf:
        - type: object
          title: LabelSetSync
          description: >-
            Un registro `label_set`: etiquetas impresas juntas, con los datos
            impresos en todas las etiquetas del conjunto. Un conjunto de varios
            artículos, como una impresión masiva, tiene `item_id`, `sku`,
            `name`, `gtin` y `date` en null; cada una de sus piezas nombra su
            propio artículo.
          properties:
            id:
              type: string
              description: El ID del conjunto de etiquetas.
            code:
              type: string
              description: El ID de conjunto impreso en las etiquetas del conjunto.
            item_id:
              type:
                - string
                - 'null'
              description: >-
                El ID del artículo al que corresponden las etiquetas. Es null
                para un conjunto de varios artículos, cuyas piezas nombran cada
                una su propio artículo.
            sku:
              type:
                - string
                - 'null'
              description: >-
                El SKU del artículo tal como lo imprimen las etiquetas, guardado
                cuando se imprimió el conjunto. Es null para un conjunto de
                varios artículos.
            name:
              type:
                - string
                - 'null'
              description: >-
                El nombre del artículo tal como lo imprimen las etiquetas,
                guardado cuando se imprimió el conjunto. Es null para un
                conjunto de varios artículos.
            gtin:
              type:
                - string
                - 'null'
              description: >-
                El GTIN que imprimen las etiquetas. Es null cuando no imprimen
                ninguno, y para un conjunto de varios artículos.
            source:
              type: string
              description: 'Para qué se imprimió el conjunto: `receipt`, `build` o `stock`.'
              enum:
                - receipt
                - build
                - stock
            orientation:
              type: string
              description: >-
                Cómo se distribuyen las etiquetas en papel de 4x6: `portrait` o
                `landscape`.
              enum:
                - portrait
                - landscape
            piece_count:
              type: integer
              description: Cuántas piezas tiene el conjunto, una etiqueta cada una.
            template_version:
              type: integer
              description: >-
                La versión de la plantilla de etiqueta con la que se imprimió el
                conjunto; 0 es la plantilla predeterminada.
            date:
              type:
                - object
                - 'null'
              description: >-
                La única fecha fija que imprimen las etiquetas. Es null cuando
                no imprimen ninguna, y para un conjunto de varios artículos.
              properties:
                kind:
                  type: string
                  description: >-
                    Qué es la fecha: `expires`, `use_by`, `made`, `received` o
                    `released`.
                  enum:
                    - expires
                    - use_by
                    - made
                    - received
                    - released
                date:
                  type: string
                  description: >-
                    La fecha que imprimen las etiquetas, en formato
                    `YYYY-MM-DD`.
              required:
                - kind
                - date
              additionalProperties: false
            printed_at:
              type: string
              description: Cuándo se imprimió el conjunto, como marca de tiempo 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 registro `label_piece`: una pieza con etiqueta. Para resolver el
            ID de una pieza escaneada, compáralo con `code`, normalizado como lo
            hace el servidor.
          properties:
            id:
              type: string
              description: El ID de la pieza.
            set_id:
              type: string
              description: El ID del conjunto de etiquetas en el que se imprimió la pieza.
            item_id:
              type: string
              description: >-
                El ID del artículo al que corresponde la etiqueta de la pieza:
                el artículo del conjunto, o el propio artículo de la pieza en un
                conjunto de varios artículos.
            code:
              type: string
              description: El ID de pieza impreso en la etiqueta de la pieza.
            number:
              type: integer
              description: El lugar de la pieza en el conjunto, desde 1.
            lot:
              type:
                - string
                - 'null'
              description: El número de lote de la pieza. Es null cuando no tiene.
            serial:
              type:
                - string
                - 'null'
              description: El número de serie de la pieza. Es null cuando no tiene.
            quantity:
              type: string
              description: >-
                Cuánto se empacó en la pieza, en `unit`, como decimal simple sin
                ceros finales.
            unit:
              type: string
              description: El código de la unidad en la que está `quantity`.
            reprints:
              type: integer
              description: Cuántas veces se volvió a imprimir la etiqueta de la pieza.
            reprinted_at:
              type:
                - string
                - 'null'
              description: >-
                Cuándo se volvió a imprimir por última vez la etiqueta de la
                pieza, como marca de tiempo ISO 8601. Es null hasta que se
                reimprime.
          required:
            - id
            - set_id
            - item_id
            - code
            - number
            - lot
            - serial
            - quantity
            - unit
            - reprints
            - reprinted_at
          additionalProperties: false
      title: LabelsRecord
      description: Un registro del feed labels, en la versión de esquema 1.
    LocationsRecord:
      oneOf:
        - type: object
          title: StockLocationSync
          description: Un registro `stock_location`.
          properties:
            id:
              type: string
              description: El ID de la ubicación.
            code:
              type: string
              description: >-
                El código corto de la ubicación. Es único en la organización,
                sin distinguir mayúsculas.
            name:
              type: string
              description: El nombre de la ubicación, como lo ven los miembros.
            kind:
              type: string
              enum:
                - site
                - transit
                - subcontractor
              description: >-
                Qué es la ubicación: `site` para un lugar donde la organización
                guarda existencias, `transit` para donde esperan las existencias
                enviadas o `subcontractor` para el sitio de un proveedor al que
                se envían partes para trabajarlas.
            archived:
              type: boolean
              description: >-
                Si la ubicación está archivada. Las ubicaciones archivadas se
                conservan con su historial; no se pueden ajustar ni mover
                existencias en ellas.
            scan_code:
              type:
                - string
                - 'null'
              description: >-
                Lo que lee un escaneo del letrero de la ubicación, comparado sin
                distinguir mayúsculas de minúsculas.
          required:
            - id
            - code
            - name
            - kind
            - archived
            - scan_code
          additionalProperties: false
        - type: object
          title: WorkCenterSync
          description: >-
            Un registro `work_center`, enviado solo a los miembros que pueden
            ver centros de trabajo.
          properties:
            id:
              type: string
              description: El ID del centro de trabajo.
            code:
              type: string
              description: >-
                El código del centro de trabajo, como `SAW-1`. Es único entre
                los centros de trabajo de la organización, sin distinguir
                mayúsculas de minúsculas.
            name:
              type: string
              description: El nombre del centro de trabajo.
            location_id:
              type: string
              description: El ID de la ubicación donde está el centro de trabajo.
            archived:
              type: boolean
              description: Si el centro de trabajo está archivado.
          required:
            - id
            - code
            - name
            - location_id
            - archived
          additionalProperties: false
      title: LocationsRecord
      description: Un registro del feed locations, en la versión de esquema 1.
    MeRecord:
      type: object
      properties:
        member:
          type: object
          properties:
            id:
              type: string
              description: El ID de usuario del miembro, como cadena.
            name:
              type: string
              description: El nombre completo del miembro.
            locale:
              type:
                - string
                - 'null'
              description: >-
                El idioma que eligió el miembro, como `es`, o null hasta que
                elija uno.
          required:
            - id
            - name
            - locale
          additionalProperties: false
          description: El miembro que inició sesión en el dispositivo.
        organization:
          type: object
          properties:
            id:
              type: string
              description: El ID de la organización, un UUID.
            name:
              type: string
              description: El nombre de la organización, tal como lo ven los miembros.
            base_currency:
              type: string
              description: >-
                La moneda en la que la organización lleva su contabilidad, como
                código ISO 4217, como `USD`.
          required:
            - id
            - name
            - base_currency
          additionalProperties: false
          description: La organización para la que trabaja el dispositivo.
        permissions:
          type: array
          items:
            type: string
          description: Lo que el miembro puede hacer en la organización.
        entitlements:
          type: array
          items:
            type: string
          description: Las funciones del plan de la organización.
        device:
          type: object
          properties:
            id:
              type: string
              description: >-
                El ID del dispositivo, el que se envía en el encabezado
                `StockShift-Device`.
            kind:
              type: string
              description: >-
                Quién usa el dispositivo y cómo se inscribió: `personal`,
                `shared`, `kiosk` o `workstation`.
            location_id:
              type:
                - string
                - 'null'
              description: >-
                El ID de la ubicación a la que está asignado el dispositivo, o
                null si no tiene.
            work_center_id:
              type:
                - string
                - 'null'
              description: >-
                El ID del centro de trabajo al que está asignado el dispositivo,
                o null si no tiene.
          required:
            - id
            - kind
            - location_id
            - work_center_id
          additionalProperties: false
          description: >-
            El dispositivo donde se leyó el feed: qué tipo es y dónde está
            asignado.
        settings:
          type: object
          properties:
            offline_grace_hours:
              type: integer
              description: >-
                Cuánto tiempo puede este dispositivo estar sin conexión antes de
                bloquearse solo.
            allow_negative_stock:
              type: boolean
              description: Si la organización permite que las existencias bajen de cero.
            can_see_costs:
              type: boolean
              description: >-
                Si el miembro puede ver costos y valores de existencias.
                Ocúltalos en la app cuando sea false.
            confidential_on_devices:
              type: boolean
              description: >-
                Si la organización permite que los dispositivos personales
                tengan registros confidenciales. Solo un dispositivo personal de
                un miembro que puede verlos recibe alguno.
            grace_cap_hours:
              type:
                - integer
                - 'null'
              description: >-
                El máximo de horas que un dispositivo personal puede estar sin
                conexión mientras se permiten registros confidenciales en los
                dispositivos; es null cuando nada lo limita.
                `offline_grace_hours` ya lo refleja.
            passcode_required:
              type: boolean
              description: >-
                Si la app debe negarse a guardar registros confidenciales a
                menos que el dispositivo tenga un código de acceso del sistema
                operativo.
          required:
            - offline_grace_hours
            - allow_negative_stock
            - can_see_costs
            - confidential_on_devices
            - grace_cap_hours
            - passcode_required
          additionalProperties: false
          description: Los ajustes de la organización y del dispositivo que sigue la app.
        members:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: El ID de usuario del miembro, como cadena.
              name:
                type: string
                description: El nombre completo del miembro.
            required:
              - id
              - name
            additionalProperties: false
          description: >-
            Todos los miembros de la organización, por orden de nombre, para que
            la app pueda decir quién hizo un cambio. Un miembro que no se
            encuentra aquí aparece como alguien.
        verification_policies:
          type: array
          description: >-
            Las reglas de testigo de la organización, en orden. Una regla
            coincide con una acción de existencias cuando la acción es una de
            sus `actions` y sus `reasons` (para `adjust_out`, cuando hay alguna)
            incluyen el motivo del ajuste. También debe coincidir cada alcance
            que defina: `organization_wide`, o un artículo de uno de sus
            `schedules` y una ubicación entre sus `location_ids`. Cuando
            coinciden varias, gana el valor más estricto de cada campo, y las
            sustancias Schedule I o II y la destrucción nunca se firman con
            `pin` ni sin conexión. Está vacío cuando el plan no incluye testigo.
          items:
            type: object
            properties:
              id:
                type: string
                description: El ID de la regla de testigo.
              name:
                type: string
                description: El nombre de la regla, tal como lo ven los miembros.
              actions:
                type: array
                items:
                  type: string
                  enum:
                    - adjust_out
                    - adjust_in
                    - status_change
                    - move
                    - count
                description: >-
                  Las acciones de existencias que la regla retiene para un
                  testigo: `adjust_out`, `adjust_in`, `status_change`, `move` o
                  `count`.
              reasons:
                type: array
                items:
                  type: string
                description: >-
                  Para `adjust_out`, los motivos de ajuste a los que se limita
                  la regla. Todos los motivos cuando está vacío.
              schedules:
                type: array
                items:
                  type: string
                  enum:
                    - I
                    - II
                    - III
                    - IV
                    - V
                description: >-
                  Las listas de sustancias controladas a las que se limita la
                  regla, de `I` a `V`. Son todas las listas cuando está vacío.
              location_ids:
                type: array
                description: >-
                  Los IDs de las ubicaciones a las que se limita la regla. Son
                  todas las ubicaciones cuando está vacío.
                items:
                  type: string
              organization_wide:
                type: boolean
                description: Si la regla cubre todos los artículos y ubicaciones.
              witness:
                type: string
                description: 'Dónde firma el testigo: `same_device`, `remote` o `either`.'
                enum:
                  - same_device
                  - either
                  - remote
              blind_recount:
                type: boolean
                description: >-
                  Si el testigo cuenta antes de ver la cantidad de quien realiza
                  la acción.
              signing:
                type: string
                description: 'Cómo firma cada miembro: `security_key`, `reauth` o `pin`.'
                enum:
                  - security_key
                  - reauth
                  - pin
              offline:
                type: boolean
                description: >-
                  Si una verificación en el mismo dispositivo puede completarse
                  sin conexión.
              pending_minutes:
                type: integer
                description: >-
                  Cuántos minutos espera una solicitud a un testigo antes de
                  vencer.
            required:
              - id
              - name
              - actions
              - reasons
              - schedules
              - location_ids
              - organization_wide
              - witness
              - blind_recount
              - signing
              - offline
              - pending_minutes
            additionalProperties: false
        release_requests:
          type: array
          description: >-
            Las solicitudes propias del miembro para liberar existencias
            retenidas, de la más antigua a la más reciente: las abiertas y las
            cerradas en los últimos 30 días. `command_id` es el comando del
            dispositivo que abrió una, null cuando se abrió en la web;
            `waiting_command_id` es el cambio que espera en el dispositivo por
            ella. `closed_by` es un ID de miembro como en `members`.
          items:
            type: object
            properties:
              id:
                type: string
                description: El ID de la solicitud de liberación.
              command_id:
                type:
                  - string
                  - 'null'
                description: >-
                  El ID del comando del dispositivo que abrió la solicitud, o
                  null cuando se abrió en la web.
              waiting_command_id:
                type:
                  - string
                  - 'null'
                description: >-
                  El ID del comando que espera la liberación en el dispositivo,
                  o null si ninguno la espera.
              state:
                type: string
                enum:
                  - open
                  - released
                  - declined
                  - withdrawn
                description: >-
                  En qué situación está la solicitud: `open`, `released`,
                  `declined` o `withdrawn`.
              closed_at:
                type:
                  - string
                  - 'null'
                format: date-time
                description: >-
                  Cuándo se liberó, rechazó o retiró la solicitud, como marca de
                  tiempo ISO 8601. Es null mientras está abierta.
              closed_by:
                type:
                  - string
                  - 'null'
                description: >-
                  El ID de usuario del miembro que liberó, declinó o retiró la
                  solicitud, como en `members`. Es null mientras está abierta.
            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 registro del feed me, en la versión de esquema 4.
    PickingRecord:
      type: object
      title: PickingRecord
      description: Un registro del feed picking, en la versión de esquema 1.
      properties:
        id:
          type: string
          description: El ID del pedido de venta, un UUID.
        number:
          type: string
          description: >-
            El número del pedido de venta, de la secuencia de la organización,
            como SO-00001.
        status:
          type: string
          enum:
            - confirmed
            - partially_shipped
          description: >-
            En qué situación está el pedido: `confirmed`, o `partially_shipped`
            cuando parte de él ya se envió.
        customer_name:
          type: string
          description: El nombre del cliente para el que es el pedido.
        location_id:
          type: string
          description: >-
            El ID de la ubicación de existencias desde la que se envía el
            pedido.
        ship_by:
          type:
            - string
            - 'null'
          format: date
          description: >-
            La fecha que el cliente pidió en el pedido, como `YYYY-MM-DD`. Es
            null cuando no se indicó ninguna.
        ship_to_city:
          type:
            - string
            - 'null'
          description: >-
            La ciudad a la que se envía el pedido, leída de la dirección de
            envío. Es null cuando la dirección tiene muy pocas partes para
            distinguir la ciudad de la calle.
        ship_to_country:
          type:
            - string
            - 'null'
          description: >-
            El país al que se envía el pedido: la última parte de la dirección
            de envío, tal como se ingresó. Es null cuando la dirección tiene
            menos de dos partes.
        lines:
          type: array
          description: >-
            Las líneas del pedido. Una línea de un artículo que este dispositivo
            no puede tener llega como una línea solo en línea con únicamente su
            ID.
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: El ID de la línea del pedido de venta.
                  item_id:
                    type: string
                    description: El ID del artículo pedido.
                  quantity:
                    type: string
                    description: Un decimal en la unidad de la línea.
                  unit:
                    type: string
                    description: El código de la unidad en la que están las cantidades.
                  reserved:
                    type: string
                    description: Reservado para la línea, en la unidad de la línea.
                  picked:
                    type: string
                    description: Enviado hasta ahora, en la unidad de la línea.
                  holds:
                    type: array
                    description: >-
                      Las existencias retenidas para la línea: dónde tomarlas y,
                      para un artículo con seguimiento por lote o número de
                      serie, qué lote o número de serie.
                    items:
                      type: object
                      properties:
                        location_id:
                          type: string
                          description: >-
                            El ID de la ubicación de existencias donde están las
                            existencias retenidas.
                        quantity:
                          type: string
                          description: >-
                            La cantidad retenida, como decimal en la unidad base
                            del artículo.
                        lot_id:
                          type:
                            - string
                            - 'null'
                          description: >-
                            El ID del lote retenido. Es null para un artículo
                            que no se rastrea por lote.
                        lot_number:
                          type:
                            - string
                            - 'null'
                          description: >-
                            El número del lote retenido. Es null para un
                            artículo sin seguimiento por lote.
                        serial_id:
                          type:
                            - string
                            - 'null'
                          description: >-
                            El ID del número de serie retenido. Es null para un
                            artículo que no se rastrea por número de serie.
                        serial_number:
                          type:
                            - string
                            - 'null'
                          description: >-
                            El número de serie retenido. Es null para un
                            artículo sin seguimiento por número de serie.
                      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: >-
                  Una línea de un artículo que este dispositivo no puede tener.
                  Abre el documento en línea para verla.
                properties:
                  id:
                    type: string
                    description: >-
                      El ID de la línea, para que el dispositivo pueda mantener
                      su lugar en el documento.
                  online_only:
                    type: boolean
                    const: true
                    description: >-
                      Siempre `true`: el resto de la línea solo se muestra en
                      línea.
                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 registro del feed receiving, en la versión de esquema 1.
      properties:
        id:
          type: string
          description: El ID de la orden de compra, un UUID.
        number:
          type: string
          description: >-
            El número del pedido de la secuencia de la organización, como
            `PO-00001`.
        status:
          type: string
          enum:
            - approved
            - sent
            - partially_received
          description: >-
            En qué situación está el pedido: `approved`, `sent` o
            `partially_received`. El feed solo incluye los pedidos que aún están
            abiertos para recibir.
        supplier_id:
          type: string
          description: El ID del proveedor al que se hace el pedido.
        supplier_name:
          type: string
          description: El nombre del proveedor, para mostrarlo.
        location_id:
          type: string
          description: A dónde se entrega el pedido.
        expected_on:
          type:
            - string
            - 'null'
          format: date
          description: >-
            Cuándo se espera la mercancía, como fecha (`YYYY-MM-DD`). Es null
            cuando no hay fecha establecida.
        origin_capture:
          type: boolean
          description: >-
            Si una recepción puede registrar el país de origen: el plan lo
            incluye.
        lines:
          type: array
          description: >-
            Las líneas del pedido. Una línea de un artículo que este dispositivo
            no puede tener llega como un stub solo en línea.
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: >-
                      El ID de la línea del pedido, un UUID. Una recepción
                      nombra la línea con él.
                  item_id:
                    type: string
                    description: El ID del artículo pedido en la línea.
                  ordered:
                    type: string
                    description: Un decimal en la unidad de la línea.
                  received:
                    type: string
                    description: Un decimal en la unidad de la línea.
                  open:
                    type: string
                    description: Lo que aún está por llegar, nunca por debajo de cero.
                  unit:
                    type: string
                    description: El código de la unidad en la que están las cantidades.
                  tracking:
                    type: string
                    enum:
                      - none
                      - lot
                      - serial
                    description: Lo que debe capturar una recepción del artículo.
                required:
                  - id
                  - item_id
                  - ordered
                  - received
                  - open
                  - unit
                  - tracking
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Una línea de un artículo que este dispositivo no puede tener.
                  Abre el documento en línea para verla.
                properties:
                  id:
                    type: string
                    description: >-
                      El ID de la línea, para que el dispositivo pueda mantener
                      su lugar en el documento.
                  online_only:
                    type: boolean
                    const: true
                    description: >-
                      Siempre `true`: el resto de la línea solo se muestra en
                      línea.
                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 registro `adjustment_reason` (un motivo que una persona puede dar
            para un ajuste de existencias) o un registro `symbology` (una
            simbología de código de barras que un escaneo puede informar).
          properties:
            code:
              type: string
              description: >-
                El código del motivo o de la simbología, como `damaged` o
                `ean13`.
          required:
            - code
          additionalProperties: false
        - type: object
          title: StockStatusSync
          description: Un registro `stock_status`.
          properties:
            code:
              type: string
              description: 'El código del estado: `available`, `quarantined` o `rejected`.'
            available:
              type: boolean
              description: Si las existencias en este estado se pueden usar.
          required:
            - code
            - available
          additionalProperties: false
        - type: object
          title: CountrySync
          description: Un registro `country`.
          properties:
            code:
              type: string
              description: El código ISO 3166-1 alpha-2, en minúsculas.
            name:
              type: string
              description: El nombre del país en inglés.
          required:
            - code
            - name
          additionalProperties: false
        - type: object
          title: UnitSync
          description: >-
            Un registro `standard_unit` (las unidades que tiene toda
            organización) o un registro `unit` (las propias de la organización).
          properties:
            id:
              type: string
              description: >-
                El ID de la unidad: un UUID para una unidad propia de la
                organización, el código para una unidad estándar.
            code:
              type: string
              description: >-
                El código de la unidad, como `kg`. Los artículos y los códigos
                de barras nombran las unidades con él.
            name:
              type: string
              description: El nombre de la unidad tal como lo ven los miembros.
            dimension:
              type: string
              description: >-
                Qué mide la unidad: `count`, `mass`, `length`, `volume`, `area`
                o `time`.
            factor:
              type:
                - string
                - 'null'
              description: >-
                Cuántas unidades de referencia de la dimensión equivale una de
                esta, como decimal exacto; null cuando no tiene tamaño estándar.
            standard:
              type: boolean
              description: >-
                Si es una unidad estándar que tiene toda organización. Es false
                para las propias de la organización.
          required:
            - id
            - code
            - name
            - dimension
            - factor
            - standard
          additionalProperties: false
      title: ReferenceRecord
      description: Un registro del feed reference, en la versión de esquema 3872671621.
    ShopFloorRecord:
      oneOf:
        - type: object
          title: BuildSync
          description: >-
            Un registro `build`: una orden de fabricación liberada o en curso
            que tiene una operación en un centro de trabajo dentro del alcance.
          properties:
            id:
              type: string
              description: El ID de la orden de fabricación.
            number:
              type: string
              description: El número de la orden de fabricación, como `MO-00001`.
            item_id:
              type: string
              description: >-
                El ID del artículo que fabrica la orden de fabricación. Cómo se
                rastrea el artículo por lote o número de serie está en su
                registro de `catalog`.
            quantity:
              type: string
              description: >-
                Cuántas unidades fabricar, en la unidad base del artículo, como
                decimal exacto.
            location_id:
              type: string
              description: >-
                El ID de la ubicación de existencias donde la orden de
                fabricación produce el artículo.
            due_on:
              type:
                - string
                - 'null'
              description: >-
                Cuándo vence la orden de fabricación, como fecha en formato
                `Y-m-d`. Es null cuando no tiene fecha de vencimiento.
            status:
              type: string
              enum:
                - released
                - in_progress
              description: >-
                En qué situación está la orden de fabricación: `released`, o
                `in_progress` una vez que se le emitieron piezas.
            priority:
              type: string
              enum:
                - high
                - normal
                - low
              description: >-
                Qué tan urgente es la orden de fabricación: `high`, `normal` o
                `low`. La programación la usa para ordenar las órdenes que
                vencen el mismo día en un centro de trabajo compartido.
            revision_label:
              type:
                - string
                - 'null'
              description: >-
                La etiqueta de la revisión de la BOM con la que se liberó la
                orden de fabricación, como `A`, tal como estaba etiquetada la
                revisión al liberarse. Es null cuando la orden no tiene etiqueta
                de revisión.
            lot:
              type:
                - string
                - 'null'
              description: >-
                El número de lote que registra la orden de fabricación para su
                producción. Es null hasta que registra uno.
            serials:
              type: array
              items:
                type: string
              description: >-
                Los números de serie que la orden de fabricación registra para
                su salida. Está vacío hasta que los registra.
          required:
            - id
            - number
            - item_id
            - quantity
            - location_id
            - due_on
            - status
            - priority
            - revision_label
            - lot
            - serials
          additionalProperties: false
        - type: object
          title: BuildLineSync
          description: >-
            Un registro `build_line`: una pieza que la orden de fabricación debe
            consumir. La forma en que la pieza se rastrea por lote o número de
            serie está en el registro `catalog` del artículo.
          properties:
            id:
              type: string
              description: >-
                El ID de la línea de la lista de piezas. Las piezas se consumen
                contra ella.
            build_id:
              type: string
              description: El ID de la orden de fabricación a la que pertenece la línea.
            sequence:
              type: integer
              description: >-
                El lugar de la línea en la lista de piezas de la orden de
                fabricación, contando desde 1.
            component_id:
              type: string
              description: El ID del artículo componente que toma la línea.
            quantity:
              type: string
              description: >-
                Cuánto toma la orden de fabricación de la pieza, con la merma
                incluida, en `unit`, como decimal exacto.
            unit:
              type: string
              description: El código de la unidad en la que está `quantity`.
            issued:
              type: string
              description: >-
                Cuánto se ha consumido hasta ahora, en la unidad base del
                artículo, como decimal exacto.
          required:
            - id
            - build_id
            - sequence
            - component_id
            - quantity
            - unit
            - issued
          additionalProperties: false
        - type: object
          title: BuildOperationSync
          description: >-
            Un registro `build_operation`: una operación de una orden de
            fabricación en un centro de trabajo dentro del alcance.
          properties:
            id:
              type: string
              description: El ID de la operación de la orden de fabricación.
            build_id:
              type: string
              description: >-
                El ID de la orden de fabricación a la que pertenece la
                operación.
            routing_operation_id:
              type:
                - string
                - 'null'
              description: >-
                La operación de ruta de la que se copió la operación de la orden
                de fabricación. Sus archivos de instrucciones de trabajo la
                llevan como `operation_id`. Es null cuando no hay ninguna.
            sequence:
              type: integer
              description: >-
                El lugar de la operación entre las operaciones de la orden de
                fabricación, como en la ruta.
            name:
              type: string
              description: El nombre de la operación, como `Solder`.
            work_center_id:
              type: string
              description: El ID del centro de trabajo donde se realiza la operación.
            status:
              type: string
              enum:
                - pending
                - running
                - paused
                - completed
              description: >-
                En qué situación está la operación: `pending`, `running`,
                `paused` o `completed`.
            setup_minutes:
              type: string
              description: >-
                Los minutos planificados de preparación, contados una vez para
                la orden de fabricación, como decimal exacto.
            run_minutes:
              type: string
              description: >-
                Los minutos planificados para producir toda la cantidad de la
                orden de fabricación, como decimal exacto.
            instructions:
              type:
                - string
                - 'null'
              description: >-
                Las instrucciones de trabajo de la operación, tal como están
                escritas en la ruta. Es null cuando no hay ninguna.
            started_at:
              type:
                - string
                - 'null'
              description: >-
                Cuándo empezó el tramo de trabajo en curso, como marca de tiempo
                ISO 8601. Es null salvo que la operación esté en curso.
            started_by:
              type:
                - integer
                - 'null'
              description: >-
                El ID del miembro que trabaja ahora en la operación. Es null
                salvo que esté en ejecución.
          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 registro `build_problem`: un problema abierto en la orden de
            fabricación o en una de sus operaciones.
          properties:
            id:
              type: string
              description: El ID del problema.
            build_id:
              type: string
              description: El ID de la orden de fabricación en la que está el problema.
            operation_id:
              type:
                - string
                - 'null'
              description: >-
                El ID de la operación de la orden de fabricación a la que se
                refiere el problema. Es null cuando se refiere a toda la orden.
            reason:
              type: string
              enum:
                - material
                - machine
                - quality
                - instructions
                - other
              description: >-
                Qué tipo de problema es: `material`, `machine`, `quality`,
                `instructions` o `other`.
            note:
              type: string
              description: Lo que escribió sobre el problema el miembro que lo reportó.
            created_at:
              type: string
              description: Cuándo se reportó el problema, como marca de tiempo ISO 8601.
          required:
            - id
            - build_id
            - operation_id
            - reason
            - note
            - created_at
          additionalProperties: false
        - type: object
          title: OperationFileSync
          description: >-
            Un registro `routing_operation_file`: un archivo de instrucciones de
            trabajo de una operación. Descárgalo desde `GET
            /api/v1/sync/files/{file_id}` y consérvalo mientras `hash` no
            cambie. El contenido bajo un ID de archivo nunca cambia.
          properties:
            id:
              type: string
              description: El ID del vínculo entre el archivo y la operación de la ruta.
            operation_id:
              type: string
              description: >-
                El `routing_operation_id` de las operaciones de la orden de
                fabricación a las que pertenece el archivo.
            file_id:
              type: string
              description: El ID del archivo almacenado. Úsalo para descargar el contenido.
            name:
              type: string
              description: El nombre del archivo, como `drilling.pdf`.
            mime_type:
              type: string
              description: El tipo de medio del archivo, como `application/pdf`.
            size:
              type: integer
              description: El tamaño del archivo en bytes.
            key:
              type: string
              description: >-
                Un ID del archivo que se mantiene igual en todas las revisiones
                de ruta a las que se trasladó el archivo.
            hash:
              type: string
              description: >-
                Un valor SHA-256 que cambia cuando cambia el contenido del
                archivo. Conserva una copia en caché mientras siga igual.
          required:
            - id
            - operation_id
            - file_id
            - name
            - mime_type
            - size
            - key
            - hash
          additionalProperties: false
      title: ShopFloorRecord
      description: Un registro del feed shop_floor, en la versión de esquema 1.
    StockRecord:
      oneOf:
        - type: object
          title: StockLevelSync
          description: >-
            Un registro `stock_level`: existencias de un artículo en una
            ubicación, en un estado y un lote. Un nivel en cero no se envía.
          properties:
            id:
              type: string
              description: El ID del nivel de existencias.
            item_id:
              type: string
              description: El ID del artículo al que pertenecen las existencias.
            location_id:
              type: string
              description: El ID de la ubicación donde están las existencias.
            status:
              type: string
              enum:
                - available
                - quarantined
                - rejected
              description: >-
                El estado de las existencias: `available`, `quarantined` o
                `rejected`.
            lot_id:
              type:
                - string
                - 'null'
              description: >-
                El ID del lote en el que están las existencias. Es null para un
                artículo que no se rastrea por lote.
            quantity:
              type: string
              description: Un decimal en la unidad base del artículo.
            unit:
              type: string
              description: >-
                El código de la unidad base del artículo, como lo envía el feed
                del catálogo.
            value:
              type: string
              description: >-
                Lo que valen las existencias en la moneda de la organización.
                Solo lo reciben los miembros que pueden ver los costos.
          required:
            - id
            - item_id
            - location_id
            - status
            - lot_id
            - quantity
            - unit
          additionalProperties: false
        - type: object
          title: StockLotSync
          description: >-
            Un registro `stock_lot`: un lote con existencias en las ubicaciones
            del dispositivo.
          properties:
            id:
              type: string
              description: El ID del lote.
            item_id:
              type: string
              description: El ID del artículo al que pertenece el lote.
            number:
              type: string
              description: El número que identifica el lote.
            expires_on:
              type:
                - string
                - 'null'
              format: date
              description: >-
                Cuándo caduca el lote, como `YYYY-MM-DD`. Es null cuando el lote
                no tiene fecha de caducidad.
          required:
            - id
            - item_id
            - number
            - expires_on
          additionalProperties: false
        - type: object
          title: StockSerialSync
          description: >-
            Un registro `stock_serial`: una unidad de un artículo con
            seguimiento por número de serie que está disponible en una de las
            ubicaciones del dispositivo.
          properties:
            id:
              type: string
              description: El ID del número de serie.
            item_id:
              type: string
              description: El ID del artículo al que pertenece la unidad.
            number:
              type: string
              description: El número de serie de la unidad.
            location_id:
              type: string
              description: El ID de la ubicación donde está la unidad.
            status:
              type: string
              enum:
                - available
                - quarantined
                - rejected
              description: 'El estado de la unidad: `available`, `quarantined` o `rejected`.'
          required:
            - id
            - item_id
            - number
            - location_id
            - status
          additionalProperties: false
      title: StockRecord
      description: Un registro del feed stock, en la versión de esquema 1.
    StockActivityRecord:
      type: object
      title: StockActivityRecord
      description: Un registro del feed stock_activity, en la versión de esquema 1.
      properties:
        id:
          type: string
          description: El ID del movimiento de existencias.
        item_id:
          type: string
          description: El ID del artículo cuyas existencias cambiaron.
        location_id:
          type: string
          description: El ID de la ubicación cuyas existencias cambiaron.
        lot_id:
          type:
            - string
            - 'null'
          description: >-
            El ID del lote cuyas existencias cambiaron. Es null para un artículo
            que no se rastrea por lote.
        quantity:
          type: string
          description: >-
            Un decimal con signo en la unidad base del artículo: negativo cuando
            salieron existencias.
        status:
          type: string
          enum:
            - available
            - quarantined
            - rejected
          description: >-
            El estado cuyas existencias cambiaron: `available`, `quarantined` o
            `rejected`.
        reason:
          type: string
          description: >-
            Por qué cambiaron las existencias, como `transfer`, `shipment` o
            `status_change`.
        source_type:
          type:
            - string
            - 'null'
          description: >-
            El tipo de documento que lo contabilizó, como `stock_transfer`, o
            null para un ajuste.
        posted_at:
          type: string
          format: date-time
          description: Cuándo se contabilizó el movimiento, según el reloj del servidor.
        member_id:
          type:
            - string
            - 'null'
          description: >-
            El miembro que la creó, tal como las lista el feed `me`, o null
            cuando no la creó una persona.
      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 registro del feed transfers, en la versión de esquema 1.
      properties:
        id:
          type: string
          description: El ID de la transferencia.
        status:
          type: string
          enum:
            - draft
            - shipped
          description: >-
            En qué situación está la transferencia: `draft` o `shipped`. Las
            transferencias recibidas y canceladas no se envían.
        from_location_id:
          type: string
          description: El ID de la ubicación desde la que se envían las existencias.
        to_location_id:
          type: string
          description: El ID de la ubicación donde se reciben las existencias.
        shipped_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Cuándo se envió la transferencia, como marca de tiempo ISO 8601. Es
            null en un borrador.
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                    description: El ID de la línea de la transferencia.
                  item_id:
                    type: string
                    description: El ID del artículo que mueve la línea.
                  quantity:
                    type: string
                    description: Un decimal en la unidad base del artículo.
                  unit:
                    type: string
                    description: El código de la unidad base del artículo.
                  entered_quantity:
                    type: string
                    description: Un decimal en `entered_unit`.
                  entered_unit:
                    type: string
                    description: El código de la unidad en la que se ingresó la cantidad.
                  shipped:
                    type: string
                    description: >-
                      Lo que se ha enviado, en la unidad base: toda la línea una
                      vez que se envía la transferencia, nada antes.
                  lot:
                    type:
                      - string
                      - 'null'
                    description: >-
                      El número de lote movido, o null cuando la línea no nombra
                      ningún lote.
                  serials:
                    type: array
                    items:
                      type: string
                    description: >-
                      Los números de serie que mueve la línea, uno por unidad.
                      Está vacío para un artículo sin seguimiento por número de
                      serie.
                  received:
                    type: string
                    description: Un decimal en la unidad base del artículo.
                  received_serials:
                    type: array
                    items:
                      type: string
                    description: >-
                      Los números de serie recibidos hasta ahora. Está vacío
                      hasta que llega un número de serie.
                required:
                  - id
                  - item_id
                  - quantity
                  - unit
                  - entered_quantity
                  - entered_unit
                  - shipped
                  - lot
                  - serials
                  - received
                  - received_serials
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  Una línea de un artículo que este dispositivo no puede tener.
                  Abre el documento en línea para verla.
                properties:
                  id:
                    type: string
                    description: >-
                      El ID de la línea, para que el dispositivo pueda mantener
                      su lugar en el documento.
                  online_only:
                    type: boolean
                    const: true
                    description: >-
                      Siempre `true`: el resto de la línea solo se muestra en
                      línea.
                required:
                  - id
                  - online_only
                additionalProperties: false
          description: >-
            Las líneas de la transferencia. Una línea de un artículo que este
            dispositivo no puede tener se envía como un stub solo en línea.
      required:
        - id
        - status
        - from_location_id
        - to_location_id
        - shipped_at
        - lines
      additionalProperties: false
  responses:
    AuthenticationException:
      description: No autenticado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    DeviceRequired:
      description: Se requiere un dispositivo
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    UnknownFeed:
      description: Feed no encontrado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ValidationException:
      description: Error de validación
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
  securitySchemes:
    apiKey:
      type: http
      description: >-
        Para tus propios scripts e integraciones de servidor a servidor. Crea
        una clave en la app en Configuración > Acceso > Claves de API y cópiala
        entonces, porque se muestra una sola vez. Envíala como `Authorization:
        Bearer <key>`. La clave actúa como el miembro que la creó, en la
        organización en la que se creó. Una llamada necesita el permiso del
        miembro y uno de los alcances de la clave, como `inventory:read` o
        `sales:write`. Una clave con `*` tiene todos los alcances.
      scheme: bearer
    oauth2:
      type: oauth2
      description: >-
        Para apps que otras personas conectan a su cuenta de StockShift. Usa el
        flujo de código de autorización OAuth 2.1 con PKCE (S256); no hay
        secreto de cliente. Descubre los endpoints en
        `/.well-known/oauth-authorization-server` (RFC 8414) y registra tu app
        en `POST /oauth/register` (RFC 7591). El miembro elige la organización y
        aprueba los alcances en la página de consentimiento, y el token nunca
        puede hacer más de lo que podría hacer el miembro. Envíalo como
        `Authorization: Bearer <token>`, igual que una clave de API. Los tokens
        de acceso duran una hora; cada actualización devuelve un token de
        actualización nuevo, así que guárdalo.
      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

- [Obtén un enlace de descarga de la foto de un problema](https://docs.stockshift.io/es/api-reference/órdenes-de-fabricación/obtén-un-enlace-de-descarga-de-la-foto-de-un-problema.md)
- [Obtén un enlace de descarga de la foto o el documento registrado para una característica](https://docs.stockshift.io/es/api-reference/inspecciones/obtén-un-enlace-de-descarga-de-la-foto-o-el-documento-registrado-para-una-característica.md)
- [Obtén los cambios de un feed](https://docs.stockshift.io/es/api-reference/feeds-de-sincronización/obtén-los-cambios-de-un-feed.md)


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