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

# Cancela una reparación abierta

> `{repair}` es el ID de la reparación. Solo una reparación abierta se puede cancelar,
y se rechaza cuando ya se usó alguna pieza en ella. Las piezas registradas como
retiradas no lo impiden. Requiere el permiso `manufacturing.repairs.manage`
y un token con `manufacturing:write`.



## OpenAPI

````yaml /openapi.es.json post /manufacturing/repairs/{repair}/cancel
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:
  /manufacturing/repairs/{repair}/cancel:
    post:
      tags:
        - Reparaciones
      summary: Cancela una reparación abierta
      description: >-
        `{repair}` es el ID de la reparación. Solo una reparación abierta se
        puede cancelar,

        y se rechaza cuando ya se usó alguna pieza en ella. Las piezas
        registradas como

        retiradas no lo impiden. Requiere el permiso
        `manufacturing.repairs.manage`

        y un token con `manufacturing:write`.
      operationId: v1.manufacturing.repairs.cancel
      parameters:
        - name: repair
          in: path
          required: true
          description: El ID de la reparación.
          schema:
            type: string
      responses:
        '200':
          description: '`RepairResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/RepairResource'
                required:
                  - data
          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/AuthorizationException'
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '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.post("/manufacturing/repairs/{repair}/cancel", {
              path: { repair: "01J8QZ4M..." },
            });
components:
  schemas:
    RepairResource:
      type: object
      properties:
        id:
          type: string
          description: El ID de la reparación, un UUID.
        number:
          type: string
          description: >-
            El número de la reparación, como `RPR-00001`, numerado por
            organización.
        status:
          type: string
          description: >-
            En qué situación está la reparación: `open`, `completed` o
            `cancelled`.
        customer_id:
          type: string
          description: El ID del cliente propietario de la unidad.
        customer_code:
          type: string
          description: El código del cliente. Vacío cuando no se encuentra al cliente.
        customer_name:
          type: string
          description: El nombre del cliente. Vacío cuando no se encuentra al cliente.
        item_id:
          type: string
          description: El ID del artículo que se repara.
        item_sku:
          type: string
          description: El SKU del artículo que se repara.
        item_name:
          type: string
          description: El nombre del artículo que se repara.
        unit:
          type: string
          description: La unidad de medida base del artículo.
        lot:
          type:
            - string
            - 'null'
          description: >-
            El lote de la unidad, para un artículo con seguimiento por lote. Es
            null para un artículo con número de serie.
        serial:
          type:
            - string
            - 'null'
          description: >-
            El número de serie de la unidad, para un artículo con número de
            serie. Es null para un artículo con seguimiento por lote.
        location_id:
          type: string
          description: >-
            El ID de la ubicación de existencias de la que se consumen las
            piezas usadas en la reparación.
        location_code:
          type: string
          description: >-
            El código de la ubicación de existencias de la que se consumen las
            piezas.
        location_name:
          type: string
          description: >-
            El nombre de la ubicación de existencias desde la que se consumen
            las piezas.
        return_id:
          type:
            - string
            - 'null'
          description: >-
            El ID de la devolución recibida con la que volvió la unidad. Es null
            cuando la reparación no está vinculada a una devolución.
        return_number:
          type:
            - string
            - 'null'
          description: >-
            El número de la devolución con la que volvió la unidad. Es null
            cuando la reparación no está vinculada a una devolución.
        reported_fault:
          type: string
          description: Lo que está mal en la unidad, tal como lo informó el cliente.
        diagnosis:
          type:
            - string
            - 'null'
          description: Lo que encontró el diagnóstico. Es null hasta que se registra.
        note:
          type:
            - string
            - 'null'
          description: >-
            Una nota de texto libre sobre la reparación. Es null cuando no hay
            ninguna.
        warranty:
          $ref: '#/components/schemas/RepairWarrantyResource'
          description: >-
            La garantía de la unidad tal como se encontró al abrir la
            reparación. No cambia después.
        under_warranty:
          type: boolean
          description: >-
            Si la reparación se hace sin cargo, en garantía o como cortesía. Se
            establece a partir de la garantía cuando se abre la reparación y se
            puede cambiar mientras la reparación está abierta.
        labor_minutes:
          type: integer
          description: >-
            Mano de obra dedicada a la reparación hasta ahora, en minutos
            completos.
        work_center_id:
          type:
            - string
            - 'null'
          description: >-
            El ID del centro de trabajo cuyas tarifas de mano de obra y gastos
            indirectos determinan el costo de la mano de obra. Es null cuando no
            hay ninguno, y entonces la mano de obra no cuesta nada.
        work_center_name:
          type:
            - string
            - 'null'
          description: >-
            El código y el nombre del centro de trabajo, unidos por ` · `. Es
            null cuando no hay centro de trabajo.
        quoted_price:
          type:
            - string
            - 'null'
          description: >-
            Para una reparación de pago, el precio cotizado al cliente, como
            cadena decimal en `currency`. Es null cuando no se cotiza ningún
            precio.
        outcome:
          type:
            - string
            - 'null'
          description: >-
            Cómo terminó la reparación: `repaired`, `no_fault_found` o
            `beyond_repair`. Es null hasta que se completa la reparación.
        parts_cost:
          type: string
          description: >-
            El costo en el libro contable de las piezas usadas, como cadena
            decimal en `currency`.
        labor_cost:
          type:
            - string
            - 'null'
          description: >-
            El costo de mano de obra, como cadena decimal en `currency`: los
            minutos de mano de obra a las tarifas por hora de mano de obra y
            gastos indirectos del centro de trabajo. Es null hasta que se
            completa la reparación.
        total_cost:
          type: string
          description: >-
            El costo combinado de partes y mano de obra, como cadena decimal en
            `currency`. En una reparación en garantía, es el gasto de garantía.
        currency:
          type: string
          description: >-
            La moneda de la organización, como código ISO 4217, por ejemplo
            `USD`.
        sales_order_id:
          type:
            - string
            - 'null'
          description: >-
            El ID del pedido de venta en el que se facturó una reparación
            pagada. Es null hasta que se factura la reparación.
        sales_order_number:
          type:
            - string
            - 'null'
          description: >-
            El número del pedido de venta en el que se facturó la reparación. Es
            null hasta que se factura la reparación.
        invoice_id:
          type:
            - string
            - 'null'
          description: >-
            El ID de la factura en borrador creada cuando se facturó la
            reparación. Es null hasta que se factura la reparación.
        invoice_number:
          type:
            - string
            - 'null'
          description: >-
            El número de la factura creada cuando se facturó la reparación. Es
            null hasta que se factura la reparación.
        parts:
          type: array
          description: >-
            Las partes usadas en la unidad y retiradas de ella, en el orden en
            que se registraron.
          items:
            $ref: '#/components/schemas/RepairPartResource'
        history:
          type: array
          description: >-
            Las otras reparaciones de la unidad, de las más nuevas a las más
            antiguas.
          items:
            $ref: '#/components/schemas/RepairSummaryResource'
        can_manage:
          type: boolean
          description: >-
            Si el miembro detrás del token tiene el permiso para administrar
            reparaciones. Úsalo para mostrar u ocultar las acciones de edición.
        can_invoice:
          type: boolean
          description: >-
            Si el miembro detrás del token puede facturar la reparación ahora:
            está completada, no está en garantía, aún no se factura y tiene un
            precio cotizado.
        created_at:
          type: string
          description: Cuándo se abrió la reparación, como marca de tiempo ISO 8601 en UTC.
        completed_at:
          type:
            - string
            - 'null'
          description: >-
            Cuándo se completó la reparación, como marca de tiempo ISO 8601 en
            UTC. Es null hasta entonces.
        cancelled_at:
          type:
            - string
            - 'null'
          description: >-
            Cuándo se canceló la reparación, como marca de tiempo ISO 8601 en
            UTC. Es null salvo que se haya cancelado.
        invoiced_at:
          type:
            - string
            - 'null'
          description: >-
            Cuándo se facturó la reparación, como marca de tiempo ISO 8601 en
            UTC. Es null hasta entonces.
      required:
        - id
        - number
        - status
        - customer_id
        - customer_code
        - customer_name
        - item_id
        - item_sku
        - item_name
        - unit
        - lot
        - serial
        - location_id
        - location_code
        - location_name
        - return_id
        - return_number
        - reported_fault
        - diagnosis
        - note
        - warranty
        - under_warranty
        - labor_minutes
        - work_center_id
        - work_center_name
        - quoted_price
        - outcome
        - parts_cost
        - labor_cost
        - total_cost
        - currency
        - sales_order_id
        - sales_order_number
        - invoice_id
        - invoice_number
        - parts
        - history
        - can_manage
        - can_invoice
        - created_at
        - completed_at
        - cancelled_at
        - invoiced_at
      title: RepairResource
      description: Una reparación con la garantía, las piezas y el costo de su unidad.
    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
    RepairWarrantyResource:
      type: object
      properties:
        status:
          type: string
          description: >-
            La garantía de la unidad al abrir la reparación: `in_warranty`,
            `expired`, `no_terms` cuando ningún plazo cubre el artículo, o
            `unknown_start` cuando no hay envío ni fabricación desde donde
            contar.
        months:
          type:
            - integer
            - 'null'
          description: >-
            Cuántos meses dura la garantía. Es null cuando ninguna condición
            cubre el artículo.
        starts_from:
          type:
            - string
            - 'null'
          description: >-
            Desde cuándo cuenta la garantía: `shipment` o `build`. Es null
            cuando ningún plazo cubre el artículo.
        started_on:
          type:
            - string
            - 'null'
          description: >-
            El día en que empezó la garantía, como fecha en formato `Y-m-d`. Es
            null cuando no hay inicio.
        ends_on:
          type:
            - string
            - 'null'
          description: >-
            El último día que cubre la garantía, como fecha en formato `Y-m-d`.
            Es null cuando no hay inicio.
        source:
          type:
            - string
            - 'null'
          description: >-
            El número del envío o de la orden de fabricación desde el que se
            contó la garantía. Es null cuando no hay ninguno.
      required:
        - status
        - months
        - starts_from
        - started_on
        - ends_on
        - source
      title: RepairWarrantyResource
      description: >-
        La garantía de una unidad reparada, tal como estaba al abrir la
        reparación.
    RepairPartResource:
      type: object
      properties:
        id:
          type: string
          description: El ID de este registro de pieza.
        kind:
          type: string
          description: >-
            Si la pieza fue `used`, emitida de las existencias a la unidad, o
            `removed` de la unidad.
        item_id:
          type: string
          description: El ID del artículo de la pieza.
        item_sku:
          type:
            - string
            - 'null'
          description: >-
            El SKU de la parte. Es null cuando el miembro detrás del token no
            puede ver el artículo.
        item_name:
          type:
            - string
            - 'null'
          description: >-
            El nombre de la parte. Es null cuando el miembro detrás del token no
            puede ver el artículo.
        quantity:
          type: string
          description: Cuántas, en la unidad base del artículo, como cadena decimal.
        unit:
          type:
            - string
            - 'null'
          description: >-
            La unidad de medida base del artículo. Es null cuando el miembro
            detrás del token no puede ver el artículo.
        lots:
          type: array
          description: Los lotes de la pieza. Vacío cuando no tiene ninguno.
          items:
            type: string
        serials:
          type: array
          description: Los números de serie de la parte. Está vacío cuando no tiene.
          items:
            type: string
        cost:
          type: string
          description: >-
            El costo en el libro contable de una pieza usada, como cadena
            decimal en la moneda de la reparación. Cero para una pieza retirada.
        disposition:
          type:
            - string
            - 'null'
          description: >-
            Lo que pasó con una parte retirada: `scrap` o `return_to_supplier`.
            Es null para una parte usada.
        note:
          type:
            - string
            - 'null'
          description: >-
            Una nota de texto libre sobre la pieza. Es null cuando no hay
            ninguna.
        recorded_at:
          type: string
          description: Cuándo se registró la pieza, como marca de tiempo ISO 8601 en UTC.
      required:
        - id
        - kind
        - item_id
        - item_sku
        - item_name
        - quantity
        - unit
        - lots
        - serials
        - cost
        - disposition
        - note
        - recorded_at
      title: RepairPartResource
      description: Una pieza que usó o retiró una reparación.
    RepairSummaryResource:
      type: object
      properties:
        id:
          type: string
          description: El ID de la reparación, un UUID.
        number:
          type: string
          description: >-
            El número de la reparación, como `RPR-00001`, numerado por
            organización.
        status:
          type: string
          description: >-
            En qué situación está la reparación: `open`, `completed` o
            `cancelled`.
        customer_code:
          type: string
          description: >-
            El código del cliente propietario de la unidad. Está vacío cuando no
            se encuentra al cliente.
        customer_name:
          type: string
          description: >-
            El nombre del cliente propietario de la unidad. Vacío cuando no se
            encuentra al cliente.
        item_id:
          type: string
          description: El ID del artículo que se repara.
        item_sku:
          type: string
          description: El SKU del artículo que se repara.
        item_name:
          type: string
          description: El nombre del artículo que se repara.
        lot:
          type:
            - string
            - 'null'
          description: >-
            El lote de la unidad, para un artículo con seguimiento por lote. Es
            null para un artículo con número de serie.
        serial:
          type:
            - string
            - 'null'
          description: >-
            El número de serie de la unidad, para un artículo con número de
            serie. Es null para un artículo con seguimiento por lote.
        warranty_status:
          type: string
          description: >-
            La garantía de la unidad tal como se encontró al abrir la
            reparación: `in_warranty`, `expired`, `no_terms` o `unknown_start`.
        under_warranty:
          type: boolean
          description: Si la reparación se hace sin cargo, en garantía o como cortesía.
        outcome:
          type:
            - string
            - 'null'
          description: >-
            Cómo terminó la reparación: `repaired`, `no_fault_found` o
            `beyond_repair`. Es null hasta que se completa la reparación.
        created_at:
          type: string
          description: Cuándo se abrió la reparación, como marca de tiempo ISO 8601 en UTC.
      required:
        - id
        - number
        - status
        - customer_code
        - customer_name
        - item_id
        - item_sku
        - item_name
        - lot
        - serial
        - warranty_status
        - under_warranty
        - outcome
        - created_at
      title: RepairSummaryResource
      description: Una reparación en una lista.
  responses:
    AuthenticationException:
      description: No autenticado
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    AuthorizationException:
      description: Prohibido
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ModelNotFoundException:
      description: 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

- [Actualiza una reparación abierta](https://docs.stockshift.io/es/api-reference/reparaciones/actualiza-una-reparación-abierta.md)
- [Registra una pieza usada o retirada en una reparación abierta](https://docs.stockshift.io/es/api-reference/reparaciones/registra-una-pieza-usada-o-retirada-en-una-reparación-abierta.md)
- [Completa una reparación abierta con su resultado](https://docs.stockshift.io/es/api-reference/reparaciones/completa-una-reparación-abierta-con-su-resultado.md)


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