Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde applied, rejected o deferred. applied viene con el resultado. rejected es definitivo y viene con un code, un message y los fields inválidos. deferred significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de retry_after segundos.
Un comando enviado otra vez devuelve su resultado almacenado con replayed: true y no ejecuta nada. El mismo id con otro payload se rechaza con command_id_reused. Un comando cuya dependencia fue rechazada se rechaza con dependency_rejected. Un comando creado hace más de 90 días se rechaza con command_expired, y uno que el servidor no conoce con unknown_command.
Requiere un token de un dispositivo registrado con sync:write, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.
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.
Cuerpo
application/json
Un lote de comandos que envía un dispositivo, en el orden en que se ejecutan.
Los comandos, de 1 a 100 y 1 MB en total. Se ejecutan en este orden.
Required array length: 1 - 100 elements
Existencias encontradas que el conteo no esperaba: un artículo, su lote, cuánto se contó y, si quien cuenta lo indica, cuándo y después de qué contacto.
Lo que pasó con cada comando de un lote, en el orden en que se enviaron.
Show child attributes
¿Esta página le ayudó?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"StockShift Developers","description":"Build on StockShift: the REST API, webhooks, the MCP server and SDKs for TypeScript, PHP, Laravel, Python, Go, Rust and .NET.","colors":{"primary":"#c4400e","light":"#ff7a4f","dark":"#a8370c"},"logo":{"light":"https://mintcdn.com/stock-shift/veECiA638KjVgilP/logo/light.svg?fit=max\u0026auto=format\u0026n=veECiA638KjVgilP\u0026q=85\u0026s=c33bd50768974f62f8e61a994cd1d200","dark":"https://mintcdn.com/stock-shift/veECiA638KjVgilP/logo/dark.svg?fit=max\u0026auto=format\u0026n=veECiA638KjVgilP\u0026q=85\u0026s=74bfe4a79e2daaa03bea6fe5da4e3a83"},"favicon":"https://mintcdn.com/stock-shift/veECiA638KjVgilP/favicon.svg?fit=max\u0026auto=format\u0026n=veECiA638KjVgilP\u0026q=85\u0026s=e0bd7c6d3000160e67c8476f7122e320","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","python","php","go"]}},"background":{"color":{"light":"#ffffff","dark":"#16191d"}},"navbar":{"links":[{"href":"https://knowledge.stockshift.io","label":"Help center"}],"primary":{"type":"button","label":"Open StockShift","href":"https://app.stockshift.io"}},"footer":{"links":[{"header":"StockShift","items":[{"label":"Website","href":"https://stockshift.io"},{"label":"Help center","href":"https://knowledge.stockshift.io"},{"label":"Sign in","href":"https://app.stockshift.io"}]}]},"seo":{"metatags":{"og:site_name":"StockShift Developers"}},"fonts":{"family":"Strawford","weight":400,"source":"fonts/strawford-regular-webfont.woff2","format":"woff2"},"icons":{"library":"lucide"},"errors":{"404":{"redirect":false,"title":"Page not found","description":"That page moved or never existed. Try the [quickstart](/quickstart) or the [API reference](/api-reference/introduction)."}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode","download-spec"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"es","footer":{"links":[{"header":"StockShift","items":[{"label":"Sitio web","href":"https://stockshift.io"},{"label":"Centro de ayuda","href":"https://knowledge.stockshift.io"},{"label":"Iniciar sesión","href":"https://app.stockshift.io"}]}]},"navbar":{"links":[{"href":"https://knowledge.stockshift.io","label":"Centro de ayuda"}],"primary":{"type":"button","label":"Abrir StockShift","href":"https://app.stockshift.io"}},"href":"es"},{"language":"fr-CA","footer":{"links":[{"header":"StockShift","items":[{"label":"Site Web","href":"https://stockshift.io"},{"label":"Centre d'aide","href":"https://knowledge.stockshift.io"},{"label":"Se connecter","href":"https://app.stockshift.io"}]}]},"navbar":{"links":[{"href":"https://knowledge.stockshift.io","label":"Centre d'aide"}],"primary":{"type":"button","label":"Ouvrir StockShift","href":"https://app.stockshift.io"}},"href":"fr-ca"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"stock-shift","hasAudioNarration":false,"actualSubdomain":"stock-shift","customDomains":["docs.stockshift.io"],"gitSource":{"type":"github","owner":"stockshift","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6af3b63ef75528b5276fce1d"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3e7df14b7dffd712f6617","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"en","tag":"API reference","count":756},{"language":"es","tag":"Referencia de la API","count":755},{"language":"fr-CA","tag":"Référence de l'API","count":755},{"language":"en","tag":"Integrations","count":105},{"language":"es","tag":"Integraciones","count":105},{"language":"fr-CA","tag":"Intégrations","count":105},{"language":"en","tag":"Inventory","count":85},{"language":"es","tag":"Inventario","count":84},{"language":"fr-CA","tag":"Inventaire","count":84},{"language":"en","tag":"Sales","count":79},{"language":"es","tag":"Ventas","count":79},{"language":"fr-CA","tag":"Ventes","count":79},{"language":"en","tag":"Connections","count":66},{"language":"es","tag":"Conexiones","count":66},{"language":"fr-CA","tag":"Connexions","count":66},{"language":"en","tag":"Manufacturing","count":53},{"language":"es","tag":"Fabricación","count":53},{"language":"fr-CA","tag":"Fabrication","count":53},{"language":"en","tag":"Access","count":51},{"language":"es","tag":"Acceso","count":51},{"language":"fr-CA","tag":"Accès","count":51},{"language":"en","tag":"Webhook events","count":46},{"language":"en","tag":"Catalog","count":46},{"language":"es","tag":"Eventos de webhook","count":46},{"language":"es","tag":"Catálogo","count":46},{"language":"fr-CA","tag":"Événements webhook","count":46},{"language":"fr-CA","tag":"Catalogue","count":46},{"language":"en","tag":"Purchasing","count":43},{"language":"es","tag":"Compras","count":43},{"language":"fr-CA","tag":"Achats","count":43}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"Strawford\";src:url(\"/fonts/strawford-bold-webfont.woff2\") format(\"woff2\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Geist Mono\";src:url(\"/fonts/GeistMono-Regular.woff2\") format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Geist Mono\";src:url(\"/fonts/GeistMono-Medium.woff2\") format(\"woff2\");font-weight:500;font-style:normal;font-display:swap}code,pre,kbd{font-family:\"Geist Mono\", ui-monospace, monospace!important}:root:not(.dark) #content-area{color:#263238}#page-title{letter-spacing:-0.01em}[data-component-part=\"card-content-container\"]{align-items:flex-start!important}[data-component-part=\"card-content-container\"] [data-component-part=\"card-icon\"]{margin-top:0}"}],"page":{"pagePath":"es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión","slug":"/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión","pageMetadata":{"title":"Envía comandos sin conexión","description":"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde `applied`, `rejected` o `deferred`. `applied` viene con el resultado. `rejected` es definitivo y viene con un `code`, un `message` y los `fields` inválidos. `deferred` significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de `retry_after` segundos.\n\nUn comando enviado otra vez devuelve su resultado almacenado con `replayed: true` y no ejecuta nada. El mismo id con otro payload se rechaza con `command_id_reused`. Un comando cuya dependencia fue rechazada se rechaza con `dependency_rejected`. Un comando creado hace más de 90 días se rechaza con `command_expired`, y uno que el servidor no conoce con `unknown_command`.\n\nRequiere un token de un dispositivo registrado con `sync:write`, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sync/commands","href":"/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde \", _jsx(_components.code, {\n children: \"applied\"\n }), \", \", _jsx(_components.code, {\n children: \"rejected\"\n }), \" o \", _jsx(_components.code, {\n children: \"deferred\"\n }), \". \", _jsx(_components.code, {\n children: \"applied\"\n }), \" viene con el resultado. \", _jsx(_components.code, {\n children: \"rejected\"\n }), \" es definitivo y viene con un \", _jsx(_components.code, {\n children: \"code\"\n }), \", un \", _jsx(_components.code, {\n children: \"message\"\n }), \" y los \", _jsx(_components.code, {\n children: \"fields\"\n }), \" inválidos. \", _jsx(_components.code, {\n children: \"deferred\"\n }), \" significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de \", _jsx(_components.code, {\n children: \"retry_after\"\n }), \" segundos.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Un comando enviado otra vez devuelve su resultado almacenado con \", _jsx(_components.code, {\n children: \"replayed: true\"\n }), \" y no ejecuta nada. El mismo id con otro payload se rechaza con \", _jsx(_components.code, {\n children: \"command_id_reused\"\n }), \". Un comando cuya dependencia fue rechazada se rechaza con \", _jsx(_components.code, {\n children: \"dependency_rejected\"\n }), \". Un comando creado hace más de 90 días se rechaza con \", _jsx(_components.code, {\n children: \"command_expired\"\n }), \", y uno que el servidor no conoce con \", _jsx(_components.code, {\n children: \"unknown_command\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requiere un token de un dispositivo registrado con \", _jsx(_components.code, {\n children: \"sync:write\"\n }), \", y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Envía comandos sin conexión","description":"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde `applied`, `rejected` o `deferred`. `applied` viene con el resultado. `rejected` es definitivo y viene con un `code`, un `message` y los `fields` inválidos. `deferred` significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de `retry_after` segundos.\n\nUn comando enviado otra vez devuelve su resultado almacenado con `replayed: true` y no ejecuta nada. El mismo id con otro payload se rechaza con `command_id_reused`. Un comando cuya dependencia fue rechazada se rechaza con `dependency_rejected`. Un comando creado hace más de 90 días se rechaza con `command_expired`, y uno que el servidor no conoce con `unknown_command`.\n\nRequiere un token de un dispositivo registrado con `sync:write`, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sync/commands","href":"/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"v1.sync.commands.submit","description":"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde `applied`, `rejected` o `deferred`. `applied` viene con el resultado. `rejected` es definitivo y viene con un `code`, un `message` y los `fields` inválidos. `deferred` significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de `retry_after` segundos.\n\nUn comando enviado otra vez devuelve su resultado almacenado con `replayed: true` y no ejecuta nada. El mismo id con otro payload se rechaza con `command_id_reused`. Un comando cuya dependencia fue rechazada se rechaza con `dependency_rejected`. Un comando creado hace más de 90 días se rechaza con `command_expired`, y uno que el servidor no conoce con `unknown_command`.\n\nRequiere un token de un dispositivo registrado con `sync:write`, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.","summary":"Envía comandos sin conexión","tags":["Comandos de sincronización"],"requestBody":"a56c8a30-8ecc-461f-9d49-ab712eb2600a","responses":{"200":"ff8c6292-58ab-410f-b53c-3015efc24b36","401":"57d5bd1b-8b0b-4037-8a45-91ca3ea2be13","403":"a885ff9c-851f-4f06-8b4a-1b853d15528a","413":"2515c3db-f40a-4a01-8383-b1e26839f1c1","422":"3b9eb8cb-9125-44b8-b76d-fb507fe16d48","429":"e0a788d9-5317-479a-958c-27d70789ea09"},"x-codeSamples":[{"lang":"typescript","label":"TypeScript SDK","source":"import { StockShift } from \"@stockshift/sdk\";\n\nconst stockshift = new StockShift({ token: process.env.STOCKSHIFT_TOKEN! });\n\nconst result = await stockshift.post(\"/sync/commands\", {\n body: { commands: [] },\n});"}],"method":"post","type":"path","servers":["b8bced36-2570-45cc-867e-6fa023822a4a","24306c1e-bb6a-47f2-b229-0b70108174f9"],"security":["9fa34b8d-13a7-49c9-ba00-1159189674d6","d5827afa-ff80-44a4-b3a4-bc94d3c29a94"],"path":"/sync/commands","baseUrlOptions":["https://app.stockshift.io/api/v1","https://app.beta.stockshift.io/api/v1"],"title":"Envía comandos sin conexión","codeSamples":[{"label":"TypeScript SDK","lang":"typescript","source":"import { StockShift } from \"@stockshift/sdk\";\n\nconst stockshift = new StockShift({ token: process.env.STOCKSHIFT_TOKEN! });\n\nconst result = await stockshift.post(\"/sync/commands\", {\n body: { commands: [] },\n});"}],"requestExampleLanguages":["bash","python","php","go"],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Un lote de comandos que envía un dispositivo, en el orden en que se ejecutan.","properties":{"commands":{"type":"array","description":"Los comandos, de 1 a 100 y 1 MB en total. Se ejecutan en este orden.","items":{"oneOf":[{"type":"object","title":"SyncCommandInventoryCountsAddLine","description":"Existencias encontradas que el conteo no esperaba: un artículo, su lote, cuánto se contó y, si quien cuenta lo indica, cuándo y después de qué contacto.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.counts.add_line","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"count_id":"0199a0d0-0000-7000-8000-00000000f002","item":"0199a0d0-0000-7000-8000-00000000f003","quantity":"40"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.counts.add_line","description":"El nombre del comando, siempre `inventory.counts.add_line`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"count_id":{"type":"string","description":"El ID del conteo abierto en el que se encontraron las existencias.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.count_id","typeLabel":"string"},"item":{"type":"string","description":"El artículo, por su ID o su SKU. Un SKU coincide sin distinguir mayúsculas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.item","typeLabel":"string"},"quantity":{"type":"string","description":"Lo contado, como decimal exacto de cero o más, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.unit","typeLabel":"string | null"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.lot","typeLabel":"string | null"},"counted_at":{"oneOf":[{"type":"string","format":"date-time","description":"Cuándo se contó la línea, como marca de tiempo ISO 8601 según el reloj del dispositivo anclado al servidor. Un dispositivo que contó sin conexión lo envía para que la aprobación compare la línea con los libros tal como estaban entonces. Debe ser posterior a `contact_at` y al inicio del conteo, y no posterior al momento en que llega el comando. Si se omite, se usa la hora del servidor.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.counted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Cuándo se contó la línea, como marca de tiempo ISO 8601 según el reloj del dispositivo anclado al servidor. Un dispositivo que contó sin conexión lo envía para que la aprobación compare la línea con los libros tal como estaban entonces. Debe ser posterior a `contact_at` y al inicio del conteo, y no posterior al momento en que llega el comando. Si se omite, se usa la hora del servidor.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.counted_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.counted_at","typeLabel":"string\u003cdate-time> | null"},"contact_at":{"oneOf":[{"type":"string","format":"date-time","description":"El último contacto del dispositivo con el servidor antes de contar la línea, como marca de tiempo ISO 8601. Es obligatorio con `counted_at` y debe ser un contacto que el servidor registró para el dispositivo que envía el comando.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.contact_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"El último contacto del dispositivo con el servidor antes de contar la línea, como marca de tiempo ISO 8601. Es obligatorio con `counted_at` y debe ser un contacto que el servidor registró para el dispositivo que envía el comando.","uniqueKey":"commands.items.[INDEX].oneOf.0.payload.contact_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.0.payload.contact_at","typeLabel":"string\u003cdate-time> | null"}},"required":["count_id","item","quantity"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.0.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.0.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.0.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.0.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.0.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.0","typeLabel":"SyncCommandInventoryCountsAddLine · object"},{"type":"object","title":"SyncCommandInventoryCountsRecord","description":"El comando `inventory.counts.record`, que un dispositivo envía para cambiar algo mientras puede estar sin conexión.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.counts.record","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"count_id":"0199a0d0-0000-7000-8000-00000000f002","lines":[{"line_id":"0199a0d0-0000-7000-8000-00000000f003","quantity":"9"},{"line_id":"0199a0d0-0000-7000-8000-00000000f004","quantity":"1","unit":"each"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.counts.record","description":"El nombre del comando, siempre `inventory.counts.record`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"count_id":{"type":"string","description":"El ID del conteo abierto al que pertenecen las líneas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.count_id","typeLabel":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"line_id":{"type":"string","description":"El ID de la línea de conteo que se contó.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].line_id","typeLabel":"string"},"quantity":{"type":"string","description":"Lo contado, como decimal exacto de cero o más, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].unit","typeLabel":"string | null"},"counted_at":{"oneOf":[{"type":"string","format":"date-time","description":"Cuándo se contó la línea, como marca de tiempo ISO 8601 según el reloj del dispositivo anclado al servidor. Un dispositivo que contó sin conexión lo envía para que la aprobación compare la línea con los libros tal como estaban entonces. Debe ser posterior a `contact_at` y al inicio del conteo, y no posterior al momento en que llega el comando. Si se omite, se usa la hora del servidor.","uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].counted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Cuándo se contó la línea, como marca de tiempo ISO 8601 según el reloj del dispositivo anclado al servidor. Un dispositivo que contó sin conexión lo envía para que la aprobación compare la línea con los libros tal como estaban entonces. Debe ser posterior a `contact_at` y al inicio del conteo, y no posterior al momento en que llega el comando. Si se omite, se usa la hora del servidor.","uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].counted_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].counted_at","typeLabel":"string\u003cdate-time> | null"},"contact_at":{"oneOf":[{"type":"string","format":"date-time","description":"El último contacto del dispositivo con el servidor antes de contar la línea, como marca de tiempo ISO 8601. Es obligatorio con `counted_at` y debe ser un contacto que el servidor registró para el dispositivo que envía el comando.","uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].contact_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"El último contacto del dispositivo con el servidor antes de contar la línea, como marca de tiempo ISO 8601. Es obligatorio con `counted_at` y debe ser un contacto que el servidor registró para el dispositivo que envía el comando.","uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].contact_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX].contact_at","typeLabel":"string\u003cdate-time> | null"}},"required":["line_id","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines.items.[INDEX]","typeLabel":"object"},"description":"Las líneas contadas, de 1 a 500.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.payload.lines","typeLabel":"object[]"}},"required":["count_id","lines"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.1.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.1.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.1.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.1.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.1.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.1","typeLabel":"SyncCommandInventoryCountsRecord · object"},{"type":"object","title":"SyncCommandInventoryReleaseRequestsCreate","description":"Pide a las personas que pueden liberar existencias retenidas que las liberen: el artículo por id o SKU, dónde está, el estado en que se retiene, cuánto, su lote, número de serie o pieza etiquetada, una nota y el comando del dispositivo que espera la liberación. También es el payload del comando de sincronización `inventory.release_requests.create`, así que sus claves van en snake case.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d1-4a10-7000-8000-000000000001","name":"inventory.release_requests.create","depends_on":[],"created_at":"2026-10-23T11:20:00+00:00","payload":{"item":"N4BT-NVGY","location_id":"0199a0c0-0000-7000-8000-000000000a12","held_status":"quarantined","quantity":"12","piece":"P-7Q2K9","note":"Moving it to A12-04-B","waiting_command_id":"0199a0d0-0000-7000-8000-0000000000aa"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.release_requests.create","description":"El nombre del comando, siempre `inventory.release_requests.create`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"item":{"type":"string","description":"El artículo, por su ID o su SKU. Un SKU coincide sin distinguir mayúsculas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.item","typeLabel":"string"},"location_id":{"type":"string","description":"El ID de la ubicación donde se retienen las existencias.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.location_id","typeLabel":"string"},"held_status":{"enum":["available","quarantined","rejected"],"description":"El estado en el que se retienen las existencias: `quarantined` o `rejected`.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.held_status","typeLabel":"enum\u003cstring>"},"quantity":{"type":"string","description":"Un decimal exacto positivo, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.unit","typeLabel":"string | null"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.lot","typeLabel":"string | null"},"serial":{"oneOf":[{"type":"string","description":"El número de serie, para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.serial.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de serie, para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.serial.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.serial","typeLabel":"string | null"},"piece":{"oneOf":[{"type":"string","description":"El ID de pieza de la etiqueta que se escaneó.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.piece.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de pieza de la etiqueta que se escaneó.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.piece.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.piece","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"Una nota para los miembros que pueden liberar las existencias, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota para los miembros que pueden liberar las existencias, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.note","typeLabel":"string | null"},"waiting_command_id":{"oneOf":[{"type":"string","description":"El ID del comando del dispositivo que espera la liberación.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.waiting_command_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID del comando del dispositivo que espera la liberación.","uniqueKey":"commands.items.[INDEX].oneOf.2.payload.waiting_command_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.payload.waiting_command_id","typeLabel":"string | null"}},"required":["item","location_id","held_status","quantity"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.2.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.2.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.2.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.2.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.2.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.2","typeLabel":"SyncCommandInventoryReleaseRequestsCreate · object"},{"type":"object","title":"SyncCommandInventoryStockAdjust","description":"Un ajuste de existencias: una recepción o una salida de una cantidad positiva, en cualquier unidad desde la que el artículo se convierta (su unidad base si no se da ninguna), en un estado (available si no se da ninguno).","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.stock.adjust","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"item":"0199a0d0-0000-7000-8000-000000000201","location_id":"0199a0d0-0000-7000-8000-000000000101","direction":"issue","quantity":"3","reason":"damaged","note":"Crushed in the tote"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.stock.adjust","description":"El nombre del comando, siempre `inventory.stock.adjust`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"item":{"type":"string","description":"El artículo, por su ID o su SKU. Un SKU coincide sin distinguir mayúsculas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.item","typeLabel":"string"},"location_id":{"type":"string","description":"El ID de la ubicación cuyas existencias cambian. La ubicación no puede estar archivada.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.location_id","typeLabel":"string"},"direction":{"enum":["receipt","issue"],"description":"Si el ajuste suma existencias o las quita: `receipt` o `issue`.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.direction","typeLabel":"enum\u003cstring>"},"quantity":{"type":"string","description":"Un decimal exacto positivo, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.quantity","typeLabel":"string"},"reason":{"enum":["found","damaged","lost","destroyed","correction","opening_balance","other","reversal","status_change","transfer","move","cycle_count","receipt","shipment","return","production_issue","production_receipt","repair_issue","revaluation","cost_correction","landed_cost"],"description":"Por qué cambiaron las existencias: `found`, `damaged`, `lost`, `destroyed`, `correction`, `opening_balance` u `other`.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.reason","typeLabel":"enum\u003cstring>"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.unit","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"Una nota que se guarda con el movimiento, de hasta 1000 caracteres. Obligatoria cuando el motivo es `other`.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota que se guarda con el movimiento, de hasta 1000 caracteres. Obligatoria cuando el motivo es `other`.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.note","typeLabel":"string | null"},"status":{"enum":["available","quarantined","rejected"],"description":"El estado de las existencias que se agregan o se sacan: `available`, `quarantined` o `rejected`. Si no se envía, las existencias quedan `available`.","type":"string","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.status","typeLabel":"enum\u003cstring>"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote. Los números de lote coinciden sin distinguir mayúsculas. En una recepción, se crea un lote que el artículo todavía no tiene; en una salida, el lote debe existir.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote. Los números de lote coinciden sin distinguir mayúsculas. En una recepción, se crea un lote que el artículo todavía no tiene; en una salida, el lote debe existir.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.lot","typeLabel":"string | null"},"lot_expires_on":{"oneOf":[{"type":"string","format":"date","description":"La fecha de vencimiento de un lote nuevo, como `YYYY-MM-DD`. Solo se guarda cuando la recepción crea el lote.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.lot_expires_on.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"La fecha de vencimiento de un lote nuevo, como `YYYY-MM-DD`. Solo se guarda cuando la recepción crea el lote.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.lot_expires_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.lot_expires_on","typeLabel":"string\u003cdate> | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie, para un artículo con seguimiento por número de serie. Envía uno por unidad, de modo que la cantidad coincida con la cantidad en la unidad base. Máximo 25 en un comando.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.serials","typeLabel":"string[]"},"unit_cost":{"oneOf":[{"type":"string","description":"El costo de una unidad de `unit`, como decimal exacto de cero o más en la moneda de la organización. Solo una recepción lleva costo. Se guarda por unidad base.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.unit_cost.oneOf.0","typeLabel":"string"},{"type":"null","description":"El costo de una unidad de `unit`, como decimal exacto de cero o más en la moneda de la organización. Solo una recepción lleva costo. Se guarda por unidad base.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.unit_cost.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.unit_cost","typeLabel":"string | null"},"bulk_id":{"oneOf":[{"type":"string","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_id","typeLabel":"string | null"},"bulk_line":{"oneOf":[{"type":"integer","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_line.oneOf.0","typeLabel":"integer"},{"type":"null","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_line.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_line","typeLabel":"integer | null"},"decisions":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.decisions.additionalProperties","typeLabel":"string"},"description":"La decisión para cada marca que el miembro resolvió en la vista previa masiva, como `{\"reserved\": \"leave\"}`. Solo se pueden decidir `reserved`, `mixed_lots` y `short_dated`.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.decisions","typeLabel":"object"},"bulk_undo_of":{"oneOf":[{"type":"string","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_undo_of.oneOf.0","typeLabel":"string"},{"type":"null","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_undo_of.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.payload.bulk_undo_of","typeLabel":"string | null"}},"required":["item","location_id","direction","quantity","reason"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.3.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.3.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.3.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.3.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.3.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.3","typeLabel":"SyncCommandInventoryStockAdjust · object"},{"type":"object","title":"SyncCommandInventoryStockChangeStatus","description":"Mueve una cantidad positiva de un artículo en una ubicación de un estado a otro, por ejemplo al liberar existencias en cuarentena.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.stock.change_status","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"item":"0199a0d0-0000-7000-8000-000000000201","location_id":"0199a0d0-0000-7000-8000-000000000101","from":"available","to":"quarantined","quantity":"4","note":"Rust on the threads"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.stock.change_status","description":"El nombre del comando, siempre `inventory.stock.change_status`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"item":{"type":"string","description":"El artículo, por su ID o su SKU. Un SKU coincide sin distinguir mayúsculas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.item","typeLabel":"string"},"location_id":{"type":"string","description":"El ID de la ubicación donde están las existencias. Las existencias se quedan allí.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.location_id","typeLabel":"string"},"from":{"enum":["available","quarantined","rejected"],"description":"El estado que dejan las existencias: `available`, `quarantined` o `rejected`. Las existencias en él no pueden bajar de cero.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.from","typeLabel":"enum\u003cstring>"},"to":{"enum":["available","quarantined","rejected"],"description":"El estado que toman las existencias: `available`, `quarantined` o `rejected`. Debe ser distinto de `from`. Pasar existencias retenidas a `available` cierra las solicitudes abiertas para liberarlas.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.to","typeLabel":"enum\u003cstring>"},"quantity":{"type":"string","description":"Un decimal exacto positivo, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.unit","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"Una nota que se guarda con los movimientos, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota que se guarda con los movimientos, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.note","typeLabel":"string | null"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote. Debe ser un lote que el artículo ya tenga; los números de lote coinciden sin distinguir mayúsculas.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote. Debe ser un lote que el artículo ya tenga; los números de lote coinciden sin distinguir mayúsculas.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.lot","typeLabel":"string | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie, para un artículo con seguimiento por número de serie. Envía uno por unidad, de modo que la cantidad coincida con la cantidad en la unidad base. Máximo 25 en un comando.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.serials","typeLabel":"string[]"},"bulk_id":{"oneOf":[{"type":"string","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_id","typeLabel":"string | null"},"bulk_line":{"oneOf":[{"type":"integer","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_line.oneOf.0","typeLabel":"integer"},{"type":"null","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_line.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_line","typeLabel":"integer | null"},"decisions":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.decisions.additionalProperties","typeLabel":"string"},"description":"La decisión para cada marca que el miembro resolvió en la vista previa masiva, como `{\"reserved\": \"leave\"}`. Solo se pueden decidir `reserved`, `mixed_lots` y `short_dated`.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.decisions","typeLabel":"object"},"bulk_undo_of":{"oneOf":[{"type":"string","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_undo_of.oneOf.0","typeLabel":"string"},{"type":"null","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_undo_of.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.payload.bulk_undo_of","typeLabel":"string | null"}},"required":["item","location_id","from","to","quantity"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.4.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.4.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.4.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.4.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.4.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.4","typeLabel":"SyncCommandInventoryStockChangeStatus · object"},{"type":"object","title":"SyncCommandInventoryStockMove","description":"Mueve una cantidad positiva de un artículo de una ubicación a otra en un solo paso, con el mismo estado y lote.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.stock.move","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"item":"0199a0d0-0000-7000-8000-000000000201","from_location_id":"0199a0d0-0000-7000-8000-000000000101","to_location_id":"0199a0d0-0000-7000-8000-000000000102","quantity":"4","note":"To the pick face","bulk_id":"0199a0d0-0000-7000-8000-00000000b001","bulk_line":1,"decisions":{"short_dated":"accept"}}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.stock.move","description":"El nombre del comando, siempre `inventory.stock.move`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"item":{"type":"string","description":"El artículo, por su ID o su SKU. Un SKU coincide sin distinguir mayúsculas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.item","typeLabel":"string"},"from_location_id":{"type":"string","description":"El ID de la ubicación de la que salen las existencias. No puede estar archivada.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.from_location_id","typeLabel":"string"},"to_location_id":{"type":"string","description":"El ID de la ubicación a la que van las existencias. No puede estar archivada ni ser la misma que `from_location_id`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.to_location_id","typeLabel":"string"},"quantity":{"type":"string","description":"Un decimal exacto positivo, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.unit","typeLabel":"string | null"},"status":{"enum":["available","quarantined","rejected"],"description":"El estado en el que están las existencias y en el que se quedan: `available`, `quarantined` o `rejected`. Si no se envía, las existencias quedan `available`.","type":"string","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.status","typeLabel":"enum\u003cstring>"},"note":{"oneOf":[{"type":"string","description":"Una nota que se guarda con los movimientos, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota que se guarda con los movimientos, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.note","typeLabel":"string | null"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote. El lote sigue igual en el destino.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote. El lote sigue igual en el destino.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.lot","typeLabel":"string | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie, para un artículo con seguimiento por número de serie. Envía uno por unidad, de modo que la cantidad coincida con la cantidad en la unidad base. Máximo 25 en un comando.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.serials","typeLabel":"string[]"},"bulk_id":{"oneOf":[{"type":"string","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_id","typeLabel":"string | null"},"bulk_line":{"oneOf":[{"type":"integer","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_line.oneOf.0","typeLabel":"integer"},{"type":"null","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_line.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_line","typeLabel":"integer | null"},"bulk_undo_of":{"oneOf":[{"type":"string","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_undo_of.oneOf.0","typeLabel":"string"},{"type":"null","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_undo_of.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.payload.bulk_undo_of","typeLabel":"string | null"},"decisions":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.decisions.additionalProperties","typeLabel":"string"},"description":"La decisión para cada marca que el miembro resolvió en la vista previa masiva, como `{\"reserved\": \"leave\"}`. Solo se pueden decidir `reserved`, `mixed_lots` y `short_dated`.","uniqueKey":"commands.items.[INDEX].oneOf.5.payload.decisions","typeLabel":"object"}},"required":["item","from_location_id","to_location_id","quantity"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.5.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.5.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.5.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.5.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.5.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.5","typeLabel":"SyncCommandInventoryStockMove · object"},{"type":"object","title":"SyncCommandInventoryStockReverse","description":"El movimiento de existencias a revertir, y el lote masivo cuyo \"Deshacer todo\" lo revierte.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.stock.reverse","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"movement_id":"0199a0d0-0000-7000-8000-00000000f002","bulk_id":"0199a0d0-0000-7000-8000-00000000b001","bulk_line":1,"bulk_undo_of":"0199a0d0-0000-7000-8000-00000000b001"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.6.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.stock.reverse","description":"El nombre del comando, siempre `inventory.stock.reverse`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.6.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.6.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"movement_id":{"type":"string","description":"El ID del movimiento de existencias que se revierte. Un movimiento se revierte como máximo una vez. Las reversiones, los cambios de estado, los tramos de un movimiento y los movimientos que solo afectan el valor no se pueden revertir.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.6.payload.movement_id","typeLabel":"string"},"bulk_id":{"oneOf":[{"type":"string","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_id","typeLabel":"string | null"},"bulk_line":{"oneOf":[{"type":"integer","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_line.oneOf.0","typeLabel":"integer"},{"type":"null","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_line.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_line","typeLabel":"integer | null"},"bulk_undo_of":{"oneOf":[{"type":"string","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_undo_of.oneOf.0","typeLabel":"string"},{"type":"null","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_undo_of.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.6.payload.bulk_undo_of","typeLabel":"string | null"}},"required":["movement_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.6.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.6.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.6.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.6.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.6.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.6","typeLabel":"SyncCommandInventoryStockReverse · object"},{"type":"object","title":"SyncCommandInventoryStockReverseMove","description":"El movimiento a deshacer, y el lote masivo cuyo \"Deshacer todo\" lo deshace.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.stock.reverse_move","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"move_id":"0199a0d0-0000-7000-8000-00000000f002","bulk_id":"0199a0d0-0000-7000-8000-00000000b001","bulk_line":1,"bulk_undo_of":"0199a0d0-0000-7000-8000-00000000b001"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.7.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.stock.reverse_move","description":"El nombre del comando, siempre `inventory.stock.reverse_move`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.7.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.7.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"move_id":{"type":"string","description":"El ID del movimiento que se deshace. Todos los movimientos de existencias del movimiento se revierten juntos.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.7.payload.move_id","typeLabel":"string"},"bulk_id":{"oneOf":[{"type":"string","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de la lista masiva de la que este comando es una línea, un UUID que el cliente elige para toda la lista. Omítelo para un comando fuera de una lista masiva; entonces no se ejecutan las comprobaciones masivas.","uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_id","typeLabel":"string | null"},"bulk_line":{"oneOf":[{"type":"integer","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_line.oneOf.0","typeLabel":"integer"},{"type":"null","description":"La posición de la línea en la lista masiva, de 0 a 99.","uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_line.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_line","typeLabel":"integer | null"},"bulk_undo_of":{"oneOf":[{"type":"string","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_undo_of.oneOf.0","typeLabel":"string"},{"type":"null","description":"En una línea de un \"Deshacer todo\", el `bulk_id` de la lista masiva que deshace.","uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_undo_of.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.7.payload.bulk_undo_of","typeLabel":"string | null"}},"required":["move_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.7.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.7.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.7.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.7.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.7.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.7","typeLabel":"SyncCommandInventoryStockReverseMove · object"},{"type":"object","title":"SyncCommandInventoryTransfersCreate","description":"Una transferencia en borrador: de dónde sale, adónde va y sus líneas. Con un ID de transferencia, reemplaza el contenido de un borrador.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.transfers.create","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"id":"0199a0d0-0000-7000-8000-00000000f002","from_location_id":"0199a0d0-0000-7000-8000-000000000101","to_location_id":"0199a0d0-0000-7000-8000-000000000102","note":"For the morning run","lines":[{"item":"0199a0d0-0000-7000-8000-000000000201","quantity":"4"},{"item":"0199a0d0-0000-7000-8000-000000000202","quantity":"2"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.transfers.create","description":"El nombre del comando, siempre `inventory.transfers.create`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"from_location_id":{"type":"string","description":"El ID de la ubicación desde la que se envían las existencias. Debe estar activa.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.from_location_id","typeLabel":"string"},"to_location_id":{"type":"string","description":"El ID de la ubicación donde se reciben las existencias. Debe estar activa y ser distinta de `from_location_id`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.to_location_id","typeLabel":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string","description":"El artículo, por su ID o su SKU. Un SKU coincide sin distinguir mayúsculas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].item","typeLabel":"string"},"quantity":{"type":"string","description":"Un decimal exacto positivo, enviado como cadena, con hasta 20 dígitos a cada lado del punto. Está en `unit`, o en la unidad base del artículo cuando se omite `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"La unidad en la que está la cantidad, como `case`. Debe ser una unidad desde la que el artículo se convierte. Si no se envía, se usa la unidad base del artículo.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].unit","typeLabel":"string | null"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].lot","typeLabel":"string | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie, para un artículo con seguimiento por número de serie, uno por unidad.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX].serials","typeLabel":"string[]"}},"required":["item","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines.items.[INDEX]","typeLabel":"object"},"description":"Las líneas de la transferencia, de 1 a 20. Todas las líneas juntas pueden nombrar como máximo 25 números de serie.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.lines","typeLabel":"object[]"},"note":{"oneOf":[{"type":"string","description":"Una nota que se guarda con la transferencia, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota que se guarda con la transferencia, de hasta 1000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.note","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","description":"Un UUIDv7 que el dispositivo eligió para la transferencia nueva, para poder nombrarla antes de recibir respuesta.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Un UUIDv7 que el dispositivo eligió para la transferencia nueva, para poder nombrarla antes de recibir respuesta.","uniqueKey":"commands.items.[INDEX].oneOf.8.payload.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.8.payload.id","typeLabel":"string | null"}},"required":["from_location_id","to_location_id","lines"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.8.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.8.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.8.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.8.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.8.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.8","typeLabel":"SyncCommandInventoryTransfersCreate · object"},{"type":"object","title":"SyncCommandInventoryTransfersReceive","description":"El comando `inventory.transfers.receive`, que un dispositivo envía para cambiar algo mientras puede estar sin conexión.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.transfers.receive","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"transfer_id":"0199a0d0-0000-7000-8000-00000000f002","lines":[{"line_id":"0199a0d0-0000-7000-8000-00000000f003","quantity":"3"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.transfers.receive","description":"El nombre del comando, siempre `inventory.transfers.receive`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"transfer_id":{"type":"string","description":"El ID de la transferencia enviada para la que llegaron las existencias.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.payload.transfer_id","typeLabel":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"line_id":{"type":"string","description":"El ID de la línea de la transferencia.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.payload.lines.items.[INDEX].line_id","typeLabel":"string"},"quantity":{"type":"string","description":"Cuánto de la línea llegó, en la unidad base del artículo, como decimal exacto positivo enviado como cadena. No puede superar lo que le queda por recibir a la línea.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.payload.lines.items.[INDEX].quantity","typeLabel":"string"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.9.payload.lines.items.[INDEX].serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie que llegaron, para un artículo con seguimiento por número de serie, uno por unidad y máximo 25.","uniqueKey":"commands.items.[INDEX].oneOf.9.payload.lines.items.[INDEX].serials","typeLabel":"string[]"}},"required":["line_id","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.9.payload.lines.items.[INDEX]","typeLabel":"object"},"description":"Las líneas que llegaron, de 1 a 20. Las líneas omitidas no reciben nada esta vez.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.payload.lines","typeLabel":"object[]"}},"required":["transfer_id","lines"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.9.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.9.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.9.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.9.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.9.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.9","typeLabel":"SyncCommandInventoryTransfersReceive · object"},{"type":"object","title":"SyncCommandInventoryTransfersShip","description":"El comando `inventory.transfers.ship`, que un dispositivo envía para cambiar algo mientras puede estar sin conexión.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.transfers.ship","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"transfer_id":"0199a0d0-0000-7000-8000-00000000f002"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.10.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.transfers.ship","description":"El nombre del comando, siempre `inventory.transfers.ship`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.10.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.10.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"transfer_id":{"type":"string","description":"El ID de la transferencia en borrador que se envía.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.10.payload.transfer_id","typeLabel":"string"}},"required":["transfer_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.10.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.10.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.10.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.10.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.10.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.10","typeLabel":"SyncCommandInventoryTransfersShip · object"},{"type":"object","title":"SyncCommandInventoryVerificationsCancel","description":"Cerrar o dejar una verificación con un motivo: una cancelación, un rechazo o un descarte.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.cancel","depends_on":[],"created_at":"2026-11-02T10:00:30+00:00","payload":{"verification_id":"0199a0d0-0000-7000-8000-000000000401","reason":"Asked by mistake"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.11.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.cancel","description":"El nombre del comando, siempre `inventory.verifications.cancel`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.11.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.11.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"verification_id":{"type":"string","description":"El ID de la verificación que se cancela, se rechaza o se declina.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.11.payload.verification_id","typeLabel":"string"},"reason":{"type":"string","description":"Por qué el miembro cancela, rechaza o desestima la verificación, hasta 500 caracteres. Se conserva con la verificación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.11.payload.reason","typeLabel":"string"}},"required":["verification_id","reason"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.11.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.11.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.11.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.11.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.11.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.11","typeLabel":"SyncCommandInventoryVerificationsCancel · object"},{"type":"object","title":"SyncCommandInventoryVerificationsCount","description":"Un reconteo a ciegas del testigo: la cantidad de la acción, o cada línea de un conteo por su ID.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.count","depends_on":[],"created_at":"2026-11-02T10:00:30+00:00","payload":{"verification_id":"0199a0d0-0000-7000-8000-000000000401","count":"3"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.12.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.count","description":"El nombre del comando, siempre `inventory.verifications.count`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.12.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.12.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"verification_id":{"type":"string","description":"El ID de la verificación para la que cuenta el testigo.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.12.payload.verification_id","typeLabel":"string"},"count":{"oneOf":[{"type":"string","description":"Lo que contó el testigo, en la unidad de la acción retenida, como decimal de cero o más con hasta 12 dígitos antes del punto y 6 después. No se usa en un conteo de existencias.","uniqueKey":"commands.items.[INDEX].oneOf.12.payload.count.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lo que contó el testigo, en la unidad de la acción retenida, como decimal de cero o más con hasta 12 dígitos antes del punto y 6 después. No se usa en un conteo de existencias.","uniqueKey":"commands.items.[INDEX].oneOf.12.payload.count.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.12.payload.count","typeLabel":"string | null"},"lines":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.12.payload.lines.additionalProperties","typeLabel":"string"},"description":"Para un conteo de existencias: lo que contó el testigo en cada línea, con el ID de la línea de conteo como clave, hasta 500 líneas. Cada valor es un decimal de cero o más con hasta 12 dígitos antes del punto y 6 después.","uniqueKey":"commands.items.[INDEX].oneOf.12.payload.lines","typeLabel":"object"}},"required":["verification_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.12.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.12.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.12.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.12.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.12.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.12","typeLabel":"SyncCommandInventoryVerificationsCount · object"},{"type":"object","title":"SyncCommandInventoryVerificationsDecline","description":"Cerrar o dejar una verificación con un motivo: una cancelación, un rechazo o un descarte.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.decline","depends_on":[],"created_at":"2026-11-02T10:00:30+00:00","payload":{"verification_id":"0199a0d0-0000-7000-8000-000000000401","reason":"Going off shift"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.13.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.decline","description":"El nombre del comando, siempre `inventory.verifications.decline`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.13.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.13.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"verification_id":{"type":"string","description":"El ID de la verificación que se cancela, se rechaza o se declina.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.13.payload.verification_id","typeLabel":"string"},"reason":{"type":"string","description":"Por qué el miembro cancela, rechaza o desestima la verificación, hasta 500 caracteres. Se conserva con la verificación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.13.payload.reason","typeLabel":"string"}},"required":["verification_id","reason"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.13.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.13.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.13.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.13.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.13.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.13","typeLabel":"SyncCommandInventoryVerificationsDecline · object"},{"type":"object","title":"SyncCommandInventoryVerificationsReject","description":"Cerrar o dejar una verificación con un motivo: una cancelación, un rechazo o un descarte.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.count","depends_on":[],"created_at":"2026-11-02T10:00:30+00:00","payload":{"verification_id":"0199a0d0-0000-7000-8000-000000000401","count":"2"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.14.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.reject","description":"El nombre del comando, siempre `inventory.verifications.reject`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.14.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.14.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"verification_id":{"type":"string","description":"El ID de la verificación que se cancela, se rechaza o se declina.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.14.payload.verification_id","typeLabel":"string"},"reason":{"type":"string","description":"Por qué el miembro cancela, rechaza o desestima la verificación, hasta 500 caracteres. Se conserva con la verificación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.14.payload.reason","typeLabel":"string"}},"required":["verification_id","reason"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.14.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.14.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.14.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.14.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.14.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.14","typeLabel":"SyncCommandInventoryVerificationsReject · object"},{"type":"object","title":"SyncCommandInventoryVerificationsRequest","description":"La solicitud del ejecutor: la acción retenida y el resumen de ella que vio en la vista previa y firma.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.request","depends_on":[],"created_at":"2026-11-02T10:00:30+00:00","payload":{"command":"inventory.stock.adjust","payload":{"item":"OXY-5","location_id":"0199a0d0-0000-7000-8000-000000000301","direction":"issue","quantity":"2","reason":"damaged"},"digest":"abc"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.request","description":"El nombre del comando, siempre `inventory.verifications.request`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"command":{"type":"string","description":"El comando de sincronización de la acción retenida, como `inventory.stock.adjust`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.payload.command","typeLabel":"string"},"payload":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"commands.items.[INDEX].oneOf.15.payload.payload.additionalProperties","typeLabel":"any"},"description":"El payload que recibe ese comando, tal como lo documenta su propio esquema de comando de sincronización, como `SyncCommandInventoryStockAdjust`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.payload.payload","typeLabel":"object"},"digest":{"type":"string","description":"El resumen SHA-256 de la declaración, como 64 caracteres hexadecimales, que la vista previa devolvió para esta acción. La solicitud se rechaza cuando la declaración cambió desde entonces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.payload.digest","typeLabel":"string"},"locale":{"type":"string","description":"El idioma en que se muestra y se almacena la declaración.","uniqueKey":"commands.items.[INDEX].oneOf.15.payload.locale","typeLabel":"string"}},"required":["command","payload","digest"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.15.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.15.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.15.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.15.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.15.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.15","typeLabel":"SyncCommandInventoryVerificationsRequest · object"},{"type":"object","title":"SyncCommandInventoryVerificationsSubmit","description":"Una verificación presenciada sin conexión en un dispositivo compartido: la acción retenida, las firmas de ambas personas como aserciones que firmó la clave del dispositivo después de comprobar cada PIN en el dispositivo, cada reconteo y cada intento fallido de PIN, solo por hora.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.submit","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"command":"inventory.stock.adjust","payload":{"item":"OXY-5","location_id":"0199a0d0-0000-7000-8000-000000000301","direction":"issue","quantity":"2","reason":"damaged"},"digest":"11e29cde467d3cde7dfbf4cccf925b590ec17dc5faccec79e2b8c4f7f9c1a99d","locale":"en","performer_assertion":"A JWS of type device-offline-signature+jwt the device key signed when the performer's PIN was checked, with the meaning PERFORMED","witness_assertion":"A JWS of type device-offline-signature+jwt the device key signed when the witness's PIN was checked, with the meaning WITNESSED","attempts":[{"count":"3","at":"2026-11-02T09:11:00+00:00"},{"count":"2","at":"2026-11-02T09:11:40+00:00"}],"failed_pins":[{"role":"witness","at":"2026-11-02T09:11:50+00:00"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.submit","description":"El nombre del comando, siempre `inventory.verifications.submit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"command":{"type":"string","description":"El comando de sincronización de la acción retenida, como `inventory.stock.adjust`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.command","typeLabel":"string"},"payload":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.payload.additionalProperties","typeLabel":"any"},"description":"El payload que recibe ese comando, tal como lo documenta su propio esquema de comando de sincronización, como `SyncCommandInventoryStockAdjust`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.payload","typeLabel":"object"},"digest":{"type":"string","description":"El resumen de la acción retenida que firmaron las dos personas, tal como lo calculó el dispositivo, de 64 caracteres.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.digest","typeLabel":"string"},"locale":{"type":"string","description":"El idioma en que se mostraron ambas declaraciones.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.locale","typeLabel":"string"},"performer_assertion":{"type":"string","description":"La firma del ejecutor: una aserción que la clave del dispositivo firmó con el significado `PERFORMED`, de hasta 8192 caracteres.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.performer_assertion","typeLabel":"string"},"witness_assertion":{"type":"string","description":"La firma del testigo: una aserción que la clave del dispositivo firmó con el significado `WITNESSED`, de hasta 8192 caracteres.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.witness_assertion","typeLabel":"string"},"attempts":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time","description":"Cuándo lo contó el dispositivo, como marca de tiempo ISO 8601 según su reloj anclado.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX].at","typeLabel":"string\u003cdate-time>"},"count":{"oneOf":[{"type":"string","description":"Lo que contó el testigo, en la unidad de la acción retenida, como decimal de cero o más con hasta 12 dígitos antes del punto y 6 después. No se usa en un conteo de existencias.","uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX].count.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lo que contó el testigo, en la unidad de la acción retenida, como decimal de cero o más con hasta 12 dígitos antes del punto y 6 después. No se usa en un conteo de existencias.","uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX].count.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX].count","typeLabel":"string | null"},"lines":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX].lines.additionalProperties","typeLabel":"string"},"description":"Para un conteo de existencias: lo que contó el testigo en cada línea, con el ID de la línea de conteo como clave, hasta 500 líneas. Cada valor es un decimal de cero o más con hasta 12 dígitos antes del punto y 6 después.","uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX].lines","typeLabel":"object"}},"required":["at"],"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts.items.[INDEX]","typeLabel":"object"},"description":"Todos los reconteos que ingresó el testigo, en orden, de uno a tres. El último es el que firmó.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.attempts","typeLabel":"object[]"},"failed_pins":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","description":"A quién le tocaba firmar cuando se ingresó el PIN incorrecto: `performer` o `witness`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.failed_pins.items.[INDEX].role","typeLabel":"string"},"at":{"type":"string","format":"date-time","description":"Cuándo se ingresó el PIN incorrecto, como marca de tiempo ISO 8601 según el reloj anclado del dispositivo.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.failed_pins.items.[INDEX].at","typeLabel":"string\u003cdate-time>"}},"required":["role","at"],"uniqueKey":"commands.items.[INDEX].oneOf.16.payload.failed_pins.items.[INDEX]","typeLabel":"object"},"description":"Todos los PIN incorrectos ingresados al firmar, por de quién era el turno y cuándo, hasta 50. El PIN en sí nunca se envía.","uniqueKey":"commands.items.[INDEX].oneOf.16.payload.failed_pins","typeLabel":"object[]"}},"required":["command","payload","digest","locale","performer_assertion","witness_assertion","attempts"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.16.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.16.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.16.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.16.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.16.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.16","typeLabel":"SyncCommandInventoryVerificationsSubmit · object"},{"type":"object","title":"SyncCommandInventoryVerificationsWitness","description":"La firma del testigo: el resumen de la acción retenida y el de la declaración, de modo que la firma vincula al testigo exactamente con lo que vio.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.verifications.count","depends_on":[],"created_at":"2026-11-02T10:01:00+00:00","payload":{"verification_id":"0199a0d0-0000-7000-8000-000000000401","count":"2"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"inventory.verifications.witness","description":"El nombre del comando, siempre `inventory.verifications.witness`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"verification_id":{"type":"string","description":"El ID de la verificación que firma el testigo.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.payload.verification_id","typeLabel":"string"},"digest":{"type":"string","description":"El resumen de la acción retenida, como 64 caracteres hexadecimales, tal como lo muestra la verificación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.payload.digest","typeLabel":"string"},"statement_digest":{"type":"string","description":"El resumen SHA-256 de la declaración del testigo que mostró la verificación, como 64 caracteres hexadecimales.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.payload.statement_digest","typeLabel":"string"},"locale":{"type":"string","description":"El idioma de esa declaración. Si se omite, se usa el idioma propio del miembro.","uniqueKey":"commands.items.[INDEX].oneOf.17.payload.locale","typeLabel":"string"}},"required":["verification_id","digest","statement_digest"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.17.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.17.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.17.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.17.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.17.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.17","typeLabel":"SyncCommandInventoryVerificationsWitness · object"},{"type":"object","title":"SyncCommandLabelsSetsPrint","description":"Una impresión masiva: un conjunto de etiquetas para cada línea de una lista, donde cada línea es un artículo de existencias disponibles.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"labels.sets.print","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"bulk_id":"0199a0d0-0000-7000-8000-00000000f002","lines":[{"item":"0199a0d0-0000-7000-8000-000000000201","quantity":"5","pieces":3},{"item":"0199a0d0-0000-7000-8000-000000000202","quantity":"1"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"labels.sets.print","description":"El nombre del comando, siempre `labels.sets.print`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string","description":"El ID del artículo.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].item","typeLabel":"string"},"quantity":{"type":"string","description":"Lo que contiene cada pieza, en la unidad base del artículo, como decimal exacto positivo enviado como cadena. La pieza de un número de serie contiene 1.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].quantity","typeLabel":"string"},"pieces":{"type":"integer","description":"Cuántas piezas etiquetar, cada una con su propio ID de pieza, hasta 250. Es 1 si se omite, y siempre 1 para un número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].pieces","typeLabel":"integer"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].lot","typeLabel":"string | null"},"serial":{"oneOf":[{"type":"string","description":"El número de serie, para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].serial.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de serie, para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].serial.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX].serial","typeLabel":"string | null"}},"required":["item","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines.items.[INDEX]","typeLabel":"object"},"description":"Las líneas para las que imprimir etiquetas, de 1 a 100.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.lines","typeLabel":"object[]"},"bulk_id":{"oneOf":[{"type":"string","description":"La lista masiva que imprime, como un UUIDv7 que eligió el dispositivo. Se registra en el historial de auditoría.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.bulk_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"La lista masiva que imprime, como un UUIDv7 que eligió el dispositivo. Se registra en el historial de auditoría.","uniqueKey":"commands.items.[INDEX].oneOf.18.payload.bulk_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.18.payload.bulk_id","typeLabel":"string | null"}},"required":["lines"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.18.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.18.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.18.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.18.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.18.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.18","typeLabel":"SyncCommandLabelsSetsPrint · object"},{"type":"object","title":"SyncCommandManufacturingBuildsComplete","description":"Una orden de fabricación por completar, con los números de lote o de serie que toma su producción.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"manufacturing.builds.complete","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"build_id":"0199a0d0-0000-7000-8000-000000000601","lot":"B-2611","lot_expires_on":"2028-01-31"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"manufacturing.builds.complete","description":"El nombre del comando, siempre `manufacturing.builds.complete`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"build_id":{"type":"string","description":"El ID de la orden de fabricación que se completa.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.build_id","typeLabel":"string"},"lot":{"oneOf":[{"type":"string","description":"El lote de la salida, obligatorio para un artículo con seguimiento por lote. Se crea un lote nuevo.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El lote de la salida, obligatorio para un artículo con seguimiento por lote. Se crea un lote nuevo.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.lot","typeLabel":"string | null"},"lot_expires_on":{"oneOf":[{"type":"string","format":"date","description":"Cuándo caduca el lote de la producción, como fecha en formato `Y-m-d`.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.lot_expires_on.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"Cuándo caduca el lote de la producción, como fecha en formato `Y-m-d`.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.lot_expires_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.lot_expires_on","typeLabel":"string\u003cdate> | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie de la salida, uno por unidad producida, obligatorios para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.serials","typeLabel":"string[]"},"as_recorded":{"type":"boolean","description":"Ponlo en `true` cuando los pasos ya registrados fueron toda la fabricación, de modo que no se consuma nada más.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.as_recorded","typeLabel":"boolean"},"reasons":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.reasons.additionalProperties","typeLabel":"string"},"description":"Por qué una línea usó menos que su lista de piezas, por ID de la línea. Se usa al completar tal como se registró.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.reasons","typeLabel":"object"},"links":{"type":"array","items":{"type":"object","properties":{"output":{"type":"string","description":"La unidad de salida: uno de los números de serie producidos, o el lote de salida.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].output","typeLabel":"string"},"item":{"type":"string","description":"La parte, por ID o SKU.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].item","typeLabel":"string"},"lot":{"oneOf":[{"type":"string","description":"Un lote de la pieza que usó la orden de fabricación. Envía `lot` o `serial`.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"Un lote de la pieza que usó la orden de fabricación. Envía `lot` o `serial`.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].lot","typeLabel":"string | null"},"serial":{"oneOf":[{"type":"string","description":"Un número de serie de la pieza que usó la orden de fabricación. Envía `lot` o `serial`.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].serial.oneOf.0","typeLabel":"string"},{"type":"null","description":"Un número de serie de la pieza que usó la orden de fabricación. Envía `lot` o `serial`.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].serial.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX].serial","typeLabel":"string | null"}},"required":["output","item"],"uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links.items.[INDEX]","typeLabel":"object"},"description":"Qué lotes y números de serie que usó la orden de fabricación entraron en qué unidades de producción, cuando el plan registra el consumo.","uniqueKey":"commands.items.[INDEX].oneOf.19.payload.links","typeLabel":"object[]"}},"required":["build_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.19.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.19.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.19.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.19.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.19.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.19","typeLabel":"SyncCommandManufacturingBuildsComplete · object"},{"type":"object","title":"SyncCommandManufacturingBuildsIssueParts","description":"Un paso de consumo registrado: piezas consumidas por una orden de fabricación antes de completarla.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"manufacturing.builds.issue_parts","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"build_id":"0199a0d0-0000-7000-8000-000000000601","entries":[{"line":"0199a0d0-0000-7000-8000-000000000604","item":"M4-10","quantity":"4","lot":null}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"manufacturing.builds.issue_parts","description":"El nombre del comando, siempre `manufacturing.builds.issue_parts`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"build_id":{"type":"string","description":"El ID de la orden de fabricación a la que se consumen las piezas.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.build_id","typeLabel":"string"},"entries":{"type":"array","items":{"type":"object","properties":{"line":{"type":"string","description":"El ID de la línea de la lista de piezas a la que corresponde la entrada.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].line","typeLabel":"string"},"item":{"type":"string","description":"El componente de la línea o uno de sus alternativos, por ID o SKU. Los alternativos se usan por orden de prioridad.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].item","typeLabel":"string"},"quantity":{"type":"string","description":"Cuánto se consume, en la unidad base del artículo, como decimal exacto mayor que cero.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].quantity","typeLabel":"string"},"lot":{"oneOf":[{"type":"string","description":"El lote usado, para un artículo con seguimiento por lote. Si se omite, se usan los lotes que tiene la orden de fabricación.","uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El lote usado, para un artículo con seguimiento por lote. Si se omite, se usan los lotes que tiene la orden de fabricación.","uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].lot","typeLabel":"string | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie usados, para un artículo con seguimiento por número de serie, uno por unidad.","uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].serials","typeLabel":"string[]"},"reason":{"oneOf":[{"type":"string","description":"Por qué la línea usa más que su lista de piezas. Es obligatorio cuando lo hace.","uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Por qué la línea usa más que su lista de piezas. Es obligatorio cuando lo hace.","uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX].reason","typeLabel":"string | null"}},"required":["line","item","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries.items.[INDEX]","typeLabel":"object"},"description":"Lo que se consume, en orden, de 1 a 200 entradas. Un alternativo se revisa contra lo que usaron las entradas anteriores.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.payload.entries","typeLabel":"object[]"}},"required":["build_id","entries"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.20.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.20.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.20.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.20.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.20.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.20","typeLabel":"SyncCommandManufacturingBuildsIssueParts · object"},{"type":"object","title":"SyncCommandManufacturingBuildsReportProblem","description":"Un problema reportado en una orden de fabricación o en una de sus operaciones. El contenido de la foto no se incluye en las entradas de auditoría.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"manufacturing.builds.report_problem","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"build_id":"0199a0d0-0000-7000-8000-000000000601","operation":"0199a0d0-0000-7000-8000-000000000602","reason":"machine","note":"The saw stalls."}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"manufacturing.builds.report_problem","description":"El nombre del comando, siempre `manufacturing.builds.report_problem`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"build_id":{"type":"string","description":"El ID de la orden de fabricación en la que está el problema.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.payload.build_id","typeLabel":"string"},"reason":{"enum":["material","machine","quality","instructions","other"],"description":"Qué tipo de problema es: `material`, `machine`, `quality`, `instructions` o `other`.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.payload.reason","typeLabel":"enum\u003cstring>"},"note":{"type":"string","description":"Lo que pasó, hasta 5,000 caracteres.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.payload.note","typeLabel":"string"},"operation":{"oneOf":[{"type":"string","description":"El ID de la operación de la orden de fabricación a la que se refiere el problema. Si se omite, el problema se refiere a toda la orden.","uniqueKey":"commands.items.[INDEX].oneOf.21.payload.operation.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID de la operación de la orden de fabricación a la que se refiere el problema. Si se omite, el problema se refiere a toda la orden.","uniqueKey":"commands.items.[INDEX].oneOf.21.payload.operation.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.21.payload.operation","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","description":"Un UUIDv7 que el dispositivo eligió para el problema, para que los comandos posteriores puedan referirse a él.","uniqueKey":"commands.items.[INDEX].oneOf.21.payload.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Un UUIDv7 que el dispositivo eligió para el problema, para que los comandos posteriores puedan referirse a él.","uniqueKey":"commands.items.[INDEX].oneOf.21.payload.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.21.payload.id","typeLabel":"string | null"}},"required":["build_id","reason","note"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.21.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.21.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.21.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.21.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.21.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.21","typeLabel":"SyncCommandManufacturingBuildsReportProblem · object"},{"type":"object","title":"SyncCommandManufacturingOperationsComplete","description":"Cómo terminó una operación de una orden de fabricación: cuántas salieron buenas, cuántas se desecharon y, cuando hubo, por qué.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"manufacturing.operations.complete","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"build_id":"0199a0d0-0000-7000-8000-000000000601","operation_id":"0199a0d0-0000-7000-8000-000000000602","good_quantity":"2","checks":[{"check_id":"length","result":"pass","value":"400.2"},{"check_id":"burr","result":"fail","note":"Deburred by hand"},{"check_id":"label","result":"na"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"manufacturing.operations.complete","description":"El nombre del comando, siempre `manufacturing.operations.complete`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"build_id":{"type":"string","description":"El ID de la orden de fabricación a la que pertenece la operación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.build_id","typeLabel":"string"},"operation_id":{"type":"string","description":"El ID de la operación de la orden de fabricación que se completa.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.operation_id","typeLabel":"string"},"good_quantity":{"type":"string","description":"Cuántas salieron buenas, en la unidad base del artículo, como decimal exacto de cero o más. La siguiente operación puede tomar como máximo esta cantidad.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.good_quantity","typeLabel":"string"},"scrap_quantity":{"type":"string","description":"Cuántas se desecharon, como decimal exacto de cero o más. Es `0` si se omite. Las buenas y las desechadas juntas no pueden superar lo que la operación podía tomar.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.scrap_quantity","typeLabel":"string"},"scrap_reason":{"oneOf":[{"type":"string","description":"Por qué se desecharon unidades, hasta 1,000 caracteres. Es obligatorio cuando se desechó alguna.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.scrap_reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Por qué se desecharon unidades, hasta 1,000 caracteres. Es obligatorio cuando se desechó alguna.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.scrap_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.scrap_reason","typeLabel":"string | null"},"checks":{"type":"array","items":{"type":"object","properties":{"check_id":{"type":"string","description":"La comprobación, como la nombra el dispositivo.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].check_id","typeLabel":"string"},"result":{"enum":["pass","fail","na"],"description":"Cómo salió la verificación: `pass`, `fail` o `na`.","type":"string","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].result","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","description":"Qué se midió, cuando la inspección toma un valor.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"null","description":"Qué se midió, cuando la inspección toma un valor.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].value","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"Una nota sobre la comprobación, de hasta 1,000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota sobre la comprobación, de hasta 1,000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX].note","typeLabel":"string | null"}},"required":["check_id","result"],"uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks.items.[INDEX]","typeLabel":"object"},"description":"Las comprobaciones registradas al terminar la operación. Una comprobación fallida se guarda y no detiene la operación.","uniqueKey":"commands.items.[INDEX].oneOf.22.payload.checks","typeLabel":"object[]"}},"required":["build_id","operation_id","good_quantity"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.22.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.22.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.22.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.22.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.22.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.22","typeLabel":"SyncCommandManufacturingOperationsComplete · object"},{"type":"object","title":"SyncCommandManufacturingOperationsPause","description":"Una operación de una orden de fabricación.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"manufacturing.operations.pause","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"build_id":"0199a0d0-0000-7000-8000-000000000601","operation_id":"0199a0d0-0000-7000-8000-000000000602"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.23.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"manufacturing.operations.pause","description":"El nombre del comando, siempre `manufacturing.operations.pause`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.23.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.23.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"build_id":{"type":"string","description":"El ID de la orden de fabricación a la que pertenece la operación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.23.payload.build_id","typeLabel":"string"},"operation_id":{"type":"string","description":"El ID de la operación de la orden de fabricación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.23.payload.operation_id","typeLabel":"string"}},"required":["build_id","operation_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.23.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.23.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.23.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.23.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.23.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.23","typeLabel":"SyncCommandManufacturingOperationsPause · object"},{"type":"object","title":"SyncCommandManufacturingOperationsStart","description":"Una operación de una orden de fabricación.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"manufacturing.operations.start","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"build_id":"0199a0d0-0000-7000-8000-000000000601","operation_id":"0199a0d0-0000-7000-8000-000000000602"}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.24.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"manufacturing.operations.start","description":"El nombre del comando, siempre `manufacturing.operations.start`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.24.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.24.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"build_id":{"type":"string","description":"El ID de la orden de fabricación a la que pertenece la operación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.24.payload.build_id","typeLabel":"string"},"operation_id":{"type":"string","description":"El ID de la operación de la orden de fabricación.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.24.payload.operation_id","typeLabel":"string"}},"required":["build_id","operation_id"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.24.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.24.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.24.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.24.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.24.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.24","typeLabel":"SyncCommandManufacturingOperationsStart · object"},{"type":"object","title":"SyncCommandPurchasingOrdersReceive","description":"El comando `purchasing.orders.receive`, que un dispositivo envía para cambiar algo mientras puede estar sin conexión.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"purchasing.orders.receive","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"order_id":"0199a0d0-0000-7000-8000-000000000301","received_on":"2026-11-02","note":"Box 2 of 3","lines":[{"order_line_id":"0199a0d0-0000-7000-8000-000000000302","quantity":"6","lot":"L-2611","lot_expires_on":"2028-01-31","origin_country":"DE"},{"order_line_id":"0199a0d0-0000-7000-8000-000000000303","quantity":"4","status":"quarantined"}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"purchasing.orders.receive","description":"El nombre del comando, siempre `purchasing.orders.receive`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"order_id":{"type":"string","description":"El ID de la orden de compra contra la que se reciben los productos.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.order_id","typeLabel":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"order_line_id":{"type":"string","description":"El ID de la línea de orden de compra contra la que se reciben los productos.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].order_line_id","typeLabel":"string"},"quantity":{"type":"string","description":"Cuánto entró, en `unit`, como cadena decimal mayor que cero.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"El código de la unidad en la que está `quantity`. Cualquier unidad desde la que el artículo se convierta; la unidad de la línea del pedido si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"El código de la unidad en la que está `quantity`. Cualquier unidad desde la que el artículo se convierta; la unidad de la línea del pedido si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].unit","typeLabel":"string | null"},"status":{"enum":["available","quarantined","rejected"],"description":"El estado con el que entran las existencias: `available`, `quarantined` para retenerlas para inspección o `rejected`. Si no se envía, es `available`.","type":"string","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"lot":{"oneOf":[{"type":"string","description":"El número de lote, de hasta 64 caracteres, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de lote, de hasta 64 caracteres, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].lot","typeLabel":"string | null"},"lot_expires_on":{"oneOf":[{"type":"string","format":"date","description":"El día en que vence el lote, como `YYYY-MM-DD`, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].lot_expires_on.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"El día en que vence el lote, como `YYYY-MM-DD`, para un artículo con seguimiento por lote.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].lot_expires_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].lot_expires_on","typeLabel":"string\u003cdate> | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie recibidos, uno por unidad y hasta 25, para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].serials","typeLabel":"string[]"},"origin_country":{"oneOf":[{"type":"string","description":"El país de donde provienen los productos, como código ISO 3166-1 alfa-2. Si se omite, se usa el país de la entrada del catálogo del proveedor.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].origin_country.oneOf.0","typeLabel":"string"},{"type":"null","description":"El país de donde provienen los productos, como código ISO 3166-1 alfa-2. Si se omite, se usa el país de la entrada del catálogo del proveedor.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].origin_country.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX].origin_country","typeLabel":"string | null"}},"required":["order_line_id","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines.items.[INDEX]","typeLabel":"object"},"description":"Lo que entró, de 1 a 50 líneas, cada una contra una línea del pedido.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.lines","typeLabel":"object[]"},"received_on":{"oneOf":[{"type":"string","format":"date","description":"El día en que llegaron los productos, como `YYYY-MM-DD`. Hoy si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.received_on.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"El día en que llegaron los productos, como `YYYY-MM-DD`. Hoy si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.received_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.received_on","typeLabel":"string\u003cdate> | null"},"note":{"oneOf":[{"type":"string","description":"Una nota sobre la recepción, de máximo 1,000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota sobre la recepción, de máximo 1,000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.note","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","description":"Un UUIDv7 que el dispositivo elige para la recepción, para que los comandos posteriores puedan nombrarla. Se genera uno si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Un UUIDv7 que el dispositivo elige para la recepción, para que los comandos posteriores puedan nombrarla. Se genera uno si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.25.payload.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.payload.id","typeLabel":"string | null"}},"required":["order_id","lines"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.25.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.25.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.25.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.25.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.25.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.25","typeLabel":"SyncCommandPurchasingOrdersReceive · object"},{"type":"object","title":"SyncCommandSalesOrdersShip","description":"El comando `sales.orders.ship`, que un dispositivo envía para cambiar algo mientras puede estar sin conexión.","required":["id","name","created_at","payload"],"example":{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"sales.orders.ship","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"order_id":"0199a0d0-0000-7000-8000-000000000301","shipped_on":"2026-11-02","carrier":"UPS","tracking_number":"1Z999AA10123456784","note":"Left at the dock","lines":[{"order_line_id":"0199a0d0-0000-7000-8000-000000000302","quantity":"6"},{"order_line_id":"0199a0d0-0000-7000-8000-000000000303","quantity":"4"}],"packages":[{"weight":{"value":"1.2","unit":"kg"},"length":{"value":"30","unit":"cm"},"width":{"value":"20","unit":"cm"},"height":{"value":"10","unit":"cm"}},{"weight":{"value":"0.4","unit":"kg"}}]}},"properties":{"id":{"type":"string","format":"uuid","description":"Un UUIDv7 que el dispositivo genera para el comando. Es la clave de idempotencia, así que enviar el mismo ID otra vez no ejecuta el comando dos veces.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","const":"sales.orders.ship","description":"El nombre del comando, siempre `sales.orders.ship`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.name","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","description":"Cuándo generó el dispositivo el comando, según el reloj del propio dispositivo. Es solo una referencia, porque el reloj de un dispositivo puede estar mal.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.created_at","typeLabel":"string\u003cdate-time>"},"payload":{"type":"object","properties":{"order_id":{"type":"string","description":"El ID del pedido de venta contra el que se envían los productos.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.order_id","typeLabel":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"order_line_id":{"type":"string","description":"El ID de la línea del pedido de venta contra la que se envió.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].order_line_id","typeLabel":"string"},"quantity":{"type":"string","description":"La cantidad enviada, como cadena decimal en `unit`. Mayor que cero.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].quantity","typeLabel":"string"},"unit":{"oneOf":[{"type":"string","description":"Cualquier unidad desde la que se convierta el artículo; la de la línea del pedido si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].unit.oneOf.0","typeLabel":"string"},{"type":"null","description":"Cualquier unidad desde la que se convierta el artículo; la de la línea del pedido si se omite.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].unit.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].unit","typeLabel":"string | null"},"lot":{"oneOf":[{"type":"string","description":"Un lote elegido por número; si se omite, lo que tiene la línea.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].lot.oneOf.0","typeLabel":"string"},{"type":"null","description":"Un lote elegido por número; si se omite, lo que tiene la línea.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].lot.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].lot","typeLabel":"string | null"},"serials":{"type":"array","items":{"type":"string","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].serials.items.[INDEX]","typeLabel":"string"},"description":"Los números de serie enviados, uno por unidad y hasta 25, para un artículo con seguimiento por número de serie.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX].serials","typeLabel":"string[]"}},"required":["order_line_id","quantity"],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines.items.[INDEX]","typeLabel":"object"},"description":"Lo que se envió, de 1 a 50 líneas. Ninguna línea puede enviar más de lo que queda en su línea del pedido.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.lines","typeLabel":"object[]"},"shipped_on":{"oneOf":[{"type":"string","format":"date","description":"Hoy si no se envía.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.shipped_on.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"Hoy si no se envía.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.shipped_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.shipped_on","typeLabel":"string\u003cdate> | null"},"carrier":{"oneOf":[{"type":"string","description":"El transportista que recogió los productos, como UPS, de hasta 64 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.carrier.oneOf.0","typeLabel":"string"},{"type":"null","description":"El transportista que recogió los productos, como UPS, de hasta 64 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.carrier.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.carrier","typeLabel":"string | null"},"tracking_number":{"oneOf":[{"type":"string","description":"El número de seguimiento del transportista, de hasta 128 caracteres. También se puede definir después de contabilizar.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.tracking_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"El número de seguimiento del transportista, de hasta 128 caracteres. También se puede definir después de contabilizar.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.tracking_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.tracking_number","typeLabel":"string | null"},"note":{"oneOf":[{"type":"string","description":"Una nota impresa en la lista de empaque, de hasta 1,000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Una nota impresa en la lista de empaque, de hasta 1,000 caracteres.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.note.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.note","typeLabel":"string | null"},"packages":{"type":"array","items":{"type":"object","properties":{"weight":{"type":"object","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].weight.value","typeLabel":"string"},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].weight.unit","typeLabel":"string"}},"required":["value","unit"],"description":"El peso del bulto, como `value` y `unit`.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].weight","typeLabel":"object"},"length":{"oneOf":[{"type":"object","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].length.oneOf.0.value","typeLabel":"string"},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].length.oneOf.0.unit","typeLabel":"string"}},"required":["value","unit"],"description":"El largo del bulto, como `value` y `unit`. Es null cuando no se midió.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].length.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales."},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud."}},"required":["value","unit"],"description":"El largo del bulto, como `value` y `unit`. Es null cuando no se midió.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].length.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].length","typeLabel":"object | null"},"width":{"oneOf":[{"type":"object","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].width.oneOf.0.value","typeLabel":"string"},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].width.oneOf.0.unit","typeLabel":"string"}},"required":["value","unit"],"description":"El ancho del bulto, como `value` y `unit`. Es null cuando no se midió.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].width.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales."},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud."}},"required":["value","unit"],"description":"El ancho del bulto, como `value` y `unit`. Es null cuando no se midió.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].width.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].width","typeLabel":"object | null"},"height":{"oneOf":[{"type":"object","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].height.oneOf.0.value","typeLabel":"string"},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].height.oneOf.0.unit","typeLabel":"string"}},"required":["value","unit"],"description":"El alto del bulto, como `value` y `unit`. Es null cuando no se midió.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].height.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"value":{"type":"string","description":"La medida como cadena decimal, mayor que cero, con hasta 8 dígitos y 4 decimales."},"unit":{"type":"string","description":"La unidad: `g`, `kg`, `oz` o `lb` para un peso, o `mm`, `cm` o `in` para una longitud."}},"required":["value","unit"],"description":"El alto del bulto, como `value` y `unit`. Es null cuando no se midió.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].height.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].height","typeLabel":"object | null"},"package_preset_id":{"oneOf":[{"type":"string","description":"La caja guardada en la que se empacó.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].package_preset_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"La caja guardada en la que se empacó.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].package_preset_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX].package_preset_id","typeLabel":"string | null"}},"required":["weight"],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages.items.[INDEX]","typeLabel":"object"},"description":"Los bultos en los que salió, tal como se empacaron.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.packages","typeLabel":"object[]"},"id":{"oneOf":[{"type":"string","description":"El ID del envío, un UUIDv7 que eligió el dispositivo para que los comandos posteriores puedan nombrarlo.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"El ID del envío, un UUIDv7 que eligió el dispositivo para que los comandos posteriores puedan nombrarlo.","uniqueKey":"commands.items.[INDEX].oneOf.26.payload.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.payload.id","typeLabel":"string | null"}},"required":["order_id","lines"],"description":"Los campos del cambio que hace el comando.","isRequired":true,"uniqueKey":"commands.items.[INDEX].oneOf.26.payload","typeLabel":"object"},"depends_on":{"oneOf":[{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"commands.items.[INDEX].oneOf.26.depends_on.oneOf.0.items.[INDEX]","typeLabel":"string\u003cuuid>"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.26.depends_on.oneOf.0","typeLabel":"string\u003cuuid>[]"},{"type":"null","items":{"type":"string","format":"uuid"},"description":"Los IDs de los comandos que deben terminar antes de que se ejecute este.","uniqueKey":"commands.items.[INDEX].oneOf.26.depends_on.oneOf.1","typeLabel":"null"}],"uniqueKey":"commands.items.[INDEX].oneOf.26.depends_on","typeLabel":"string\u003cuuid>[] | null"}},"uniqueKey":"commands.items.[INDEX].oneOf.26","typeLabel":"SyncCommandSalesOrdersShip · object"}],"uniqueKey":"commands.items.[INDEX]","typeLabel":"SyncCommandInventoryCountsAddLine · object | SyncCommandInventoryCountsRecord · object | SyncCommandInventoryReleaseRequestsCreate · object | SyncCommandInventoryStockAdjust · object | SyncCommandInventoryStockChangeStatus · object | SyncCommandInventoryStockMove · object | SyncCommandInventoryStockReverse · object | SyncCommandInventoryStockReverseMove · object | SyncCommandInventoryTransfersCreate · object | SyncCommandInventoryTransfersReceive · object | SyncCommandInventoryTransfersShip · object | SyncCommandInventoryVerificationsCancel · object | SyncCommandInventoryVerificationsCount · object | SyncCommandInventoryVerificationsDecline · object | SyncCommandInventoryVerificationsReject · object | SyncCommandInventoryVerificationsRequest · object | SyncCommandInventoryVerificationsSubmit · object | SyncCommandInventoryVerificationsWitness · object | SyncCommandLabelsSetsPrint · object | SyncCommandManufacturingBuildsComplete · object | SyncCommandManufacturingBuildsIssueParts · object | SyncCommandManufacturingBuildsReportProblem · object | SyncCommandManufacturingOperationsComplete · object | SyncCommandManufacturingOperationsPause · object | SyncCommandManufacturingOperationsStart · object | SyncCommandPurchasingOrdersReceive · object | SyncCommandSalesOrdersShip · object"},"minItems":1,"maxItems":100,"uniqueItems":true,"isRequired":true,"uniqueKey":"commands","typeLabel":"(SyncCommandInventoryCountsAddLine · object | SyncCommandInventoryCountsRecord · object | SyncCommandInventoryReleaseRequestsCreate · object | SyncCommandInventoryStockAdjust · object | SyncCommandInventoryStockChangeStatus · object | SyncCommandInventoryStockMove · object | SyncCommandInventoryStockReverse · object | SyncCommandInventoryStockReverseMove · object | SyncCommandInventoryTransfersCreate · object | SyncCommandInventoryTransfersReceive · object | SyncCommandInventoryTransfersShip · object | SyncCommandInventoryVerificationsCancel · object | SyncCommandInventoryVerificationsCount · object | SyncCommandInventoryVerificationsDecline · object | SyncCommandInventoryVerificationsReject · object | SyncCommandInventoryVerificationsRequest · object | SyncCommandInventoryVerificationsSubmit · object | SyncCommandInventoryVerificationsWitness · object | SyncCommandLabelsSetsPrint · object | SyncCommandManufacturingBuildsComplete · object | SyncCommandManufacturingBuildsIssueParts · object | SyncCommandManufacturingBuildsReportProblem · object | SyncCommandManufacturingOperationsComplete · object | SyncCommandManufacturingOperationsPause · object | SyncCommandManufacturingOperationsStart · object | SyncCommandPurchasingOrdersReceive · object | SyncCommandSalesOrdersShip · object)[]"}},"required":["commands"],"title":"SubmitCommandsRequest","uniqueKey":"","typeLabel":"SubmitCommandsRequest · object"},"examples":{"Example":{"title":"Example","value":{"commands":[{"id":"0199a0d0-0000-7000-8000-00000000f001","name":"inventory.counts.add_line","depends_on":[],"created_at":"2026-11-02T10:00:00+00:00","payload":{"count_id":"0199a0d0-0000-7000-8000-00000000f002","item":"0199a0d0-0000-7000-8000-00000000f003","quantity":"40"}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ff8c6292-58ab-410f-b53c-3015efc24b36":{"description":"`CommandResultsResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"results":{"type":"array","description":"Lo que pasó con cada comando del lote, en el orden en que se enviaron.","items":{"type":"object","properties":{"id":{"type":"string","description":"El id del comando, tal como lo envió el dispositivo.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].id","typeLabel":"string"},"status":{"type":"string","description":"Lo que pasó con el comando: `applied`, `rejected` o `deferred`.","enum":["applied","rejected","deferred"],"isRequired":true,"uniqueKey":"data.results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"replayed":{"type":"boolean","description":"Si este es el resultado almacenado de una solicitud anterior. Un comando reproducido no se ejecutó de nuevo.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].replayed","typeLabel":"boolean"},"result":{"description":"El resultado del comando, solo cuando se ejecutó en esta solicitud; es null para una repetición.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].result","typeLabel":"any"},"result_ids":{"type":"array","description":"Los IDs de lo que el comando creó o cambió. Vacío en un rechazo o un aplazamiento.","items":{"type":"string","uniqueKey":"data.results.items.[INDEX].result_ids.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.results.items.[INDEX].result_ids","typeLabel":"string[]"},"code":{"oneOf":[{"type":"string","description":"El código de un rechazo, como `command_id_reused` o `validation_failed`. Es null en cualquier otro caso.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"El código de un rechazo, como `command_id_reused` o `validation_failed`. Es null en cualquier otro caso.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.results.items.[INDEX].code","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","description":"Qué salió mal con un comando rechazado, para las personas. Es null en otro caso.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Qué salió mal con un comando rechazado, para las personas. Es null en otro caso.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].message.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.results.items.[INDEX].message","typeLabel":"string | null"},"fields":{"type":"object","description":"Los campos no válidos de un rechazo, cada uno con sus mensajes.","additionalProperties":{"type":"array","items":{"type":"string","uniqueKey":"data.results.items.[INDEX].fields.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.results.items.[INDEX].fields.additionalProperties","typeLabel":"string[]"},"isRequired":true,"uniqueKey":"data.results.items.[INDEX].fields","typeLabel":"object"},"retry_after":{"oneOf":[{"type":"integer","description":"Para un comando diferido, cuántos segundos esperar antes de enviarlo otra vez. Es null en los demás casos.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].retry_after.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Para un comando diferido, cuántos segundos esperar antes de enviarlo otra vez. Es null en los demás casos.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].retry_after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.results.items.[INDEX].retry_after","typeLabel":"integer | null"}},"required":["id","status","replayed","result","result_ids","code","message","fields","retry_after"],"title":"CommandResultResource","description":"Lo que pasó con un comando.","uniqueKey":"data.results.items.[INDEX]","typeLabel":"CommandResultResource · object"},"isRequired":true,"uniqueKey":"data.results","typeLabel":"CommandResultResource · object[]"}},"required":["results"],"title":"CommandResultsResource","description":"Lo que pasó con cada comando de un lote, en el orden en que se enviaron.","isRequired":true,"uniqueKey":"data","typeLabel":"CommandResultsResource · object"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"results":[{"id":"\u003cstring>","status":"applied","replayed":true,"result":"\u003cunknown>","result_ids":["\u003cstring>"],"code":"\u003cstring>","message":"\u003cstring>","fields":{},"retry_after":123}]}}}},"exampleType":"generated"}},"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"}}},"exampleType":"generated"},"57d5bd1b-8b0b-4037-8a45-91ca3ea2be13":{"description":"No autenticado","content":{"application/json":{"schema":{"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.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"El texto de estado HTTP.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El código de estado HTTP.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Un nombre estable legible por máquina, como validation_failed.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Qué salió mal, para las personas.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"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","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"},"feature":{"type":"string","description":"La función del plan que se necesita. Solo en plan_upgrade_required.","uniqueKey":"feature","typeLabel":"string"},"reason":{"type":"string","description":"Por qué un dispositivo debe descargar un feed de nuevo. Solo en resync_required.","uniqueKey":"reason","typeLabel":"string"},"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.","uniqueKey":"attempts_left","typeLabel":"integer"},"rule_ids":{"type":"array","description":"Las reglas de testigo que cubren las existencias. Solo en verification_required.","items":{"type":"string","uniqueKey":"rule_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rule_ids","typeLabel":"string[]"},"witness":{"type":"string","description":"Dónde firma el testigo: same_device, remote o either. Solo en verification_required.","uniqueKey":"witness","typeLabel":"string"},"blind_recount":{"type":"boolean","description":"Si el testigo vuelve a contar antes de ver la cantidad. Solo en verification_required.","uniqueKey":"blind_recount","typeLabel":"boolean"},"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.","isRequired":true,"uniqueKey":"flags.items.[INDEX].flag","typeLabel":"string"},"facts":{"type":"object","description":"Los hechos de la marca, como en la vista previa masiva; los demás son null.","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"array","items":{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"string"},"uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2","typeLabel":"string[]"},{"type":"null","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"flags.items.[INDEX].facts.additionalProperties","typeLabel":"string | integer | string[] | null"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].facts","typeLabel":"object"},"choices":{"type":"array","description":"Las decisiones que resolverían la marca, tal como las nombra la vista previa masiva.","items":{"type":"string","uniqueKey":"flags.items.[INDEX].choices.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].choices","typeLabel":"string[]"}},"required":["flag","facts","choices"],"uniqueKey":"flags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"flags","typeLabel":"object[]"}},"required":["type","title","status","code","detail"],"title":"ProblemDetails","uniqueKey":"","typeLabel":"ProblemDetails · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","errors":{},"feature":"\u003cstring>","reason":"\u003cstring>","attempts_left":123,"rule_ids":["\u003cstring>"],"witness":"\u003cstring>","blind_recount":true,"flags":[{"flag":"\u003cstring>","facts":{},"choices":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"a885ff9c-851f-4f06-8b4a-1b853d15528a":{"description":"Se requiere un dispositivo","content":{"application/json":{"schema":{"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.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"El texto de estado HTTP.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El código de estado HTTP.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Un nombre estable legible por máquina, como validation_failed.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Qué salió mal, para las personas.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"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","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"},"feature":{"type":"string","description":"La función del plan que se necesita. Solo en plan_upgrade_required.","uniqueKey":"feature","typeLabel":"string"},"reason":{"type":"string","description":"Por qué un dispositivo debe descargar un feed de nuevo. Solo en resync_required.","uniqueKey":"reason","typeLabel":"string"},"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.","uniqueKey":"attempts_left","typeLabel":"integer"},"rule_ids":{"type":"array","description":"Las reglas de testigo que cubren las existencias. Solo en verification_required.","items":{"type":"string","uniqueKey":"rule_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rule_ids","typeLabel":"string[]"},"witness":{"type":"string","description":"Dónde firma el testigo: same_device, remote o either. Solo en verification_required.","uniqueKey":"witness","typeLabel":"string"},"blind_recount":{"type":"boolean","description":"Si el testigo vuelve a contar antes de ver la cantidad. Solo en verification_required.","uniqueKey":"blind_recount","typeLabel":"boolean"},"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.","isRequired":true,"uniqueKey":"flags.items.[INDEX].flag","typeLabel":"string"},"facts":{"type":"object","description":"Los hechos de la marca, como en la vista previa masiva; los demás son null.","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"array","items":{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"string"},"uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2","typeLabel":"string[]"},{"type":"null","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"flags.items.[INDEX].facts.additionalProperties","typeLabel":"string | integer | string[] | null"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].facts","typeLabel":"object"},"choices":{"type":"array","description":"Las decisiones que resolverían la marca, tal como las nombra la vista previa masiva.","items":{"type":"string","uniqueKey":"flags.items.[INDEX].choices.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].choices","typeLabel":"string[]"}},"required":["flag","facts","choices"],"uniqueKey":"flags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"flags","typeLabel":"object[]"}},"required":["type","title","status","code","detail"],"title":"ProblemDetails","uniqueKey":"","typeLabel":"ProblemDetails · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","errors":{},"feature":"\u003cstring>","reason":"\u003cstring>","attempts_left":123,"rule_ids":["\u003cstring>"],"witness":"\u003cstring>","blind_recount":true,"flags":[{"flag":"\u003cstring>","facts":{},"choices":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"2515c3db-f40a-4a01-8383-b1e26839f1c1":{"description":"Lote demasiado grande","content":{"application/json":{"schema":{"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.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"El texto de estado HTTP.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El código de estado HTTP.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Un nombre estable legible por máquina, como validation_failed.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Qué salió mal, para las personas.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"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","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"},"feature":{"type":"string","description":"La función del plan que se necesita. Solo en plan_upgrade_required.","uniqueKey":"feature","typeLabel":"string"},"reason":{"type":"string","description":"Por qué un dispositivo debe descargar un feed de nuevo. Solo en resync_required.","uniqueKey":"reason","typeLabel":"string"},"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.","uniqueKey":"attempts_left","typeLabel":"integer"},"rule_ids":{"type":"array","description":"Las reglas de testigo que cubren las existencias. Solo en verification_required.","items":{"type":"string","uniqueKey":"rule_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rule_ids","typeLabel":"string[]"},"witness":{"type":"string","description":"Dónde firma el testigo: same_device, remote o either. Solo en verification_required.","uniqueKey":"witness","typeLabel":"string"},"blind_recount":{"type":"boolean","description":"Si el testigo vuelve a contar antes de ver la cantidad. Solo en verification_required.","uniqueKey":"blind_recount","typeLabel":"boolean"},"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.","isRequired":true,"uniqueKey":"flags.items.[INDEX].flag","typeLabel":"string"},"facts":{"type":"object","description":"Los hechos de la marca, como en la vista previa masiva; los demás son null.","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"array","items":{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"string"},"uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2","typeLabel":"string[]"},{"type":"null","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"flags.items.[INDEX].facts.additionalProperties","typeLabel":"string | integer | string[] | null"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].facts","typeLabel":"object"},"choices":{"type":"array","description":"Las decisiones que resolverían la marca, tal como las nombra la vista previa masiva.","items":{"type":"string","uniqueKey":"flags.items.[INDEX].choices.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].choices","typeLabel":"string[]"}},"required":["flag","facts","choices"],"uniqueKey":"flags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"flags","typeLabel":"object[]"}},"required":["type","title","status","code","detail"],"title":"ProblemDetails","uniqueKey":"","typeLabel":"ProblemDetails · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","errors":{},"feature":"\u003cstring>","reason":"\u003cstring>","attempts_left":123,"rule_ids":["\u003cstring>"],"witness":"\u003cstring>","blind_recount":true,"flags":[{"flag":"\u003cstring>","facts":{},"choices":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"3b9eb8cb-9125-44b8-b76d-fb507fe16d48":{"description":"Error de validación","content":{"application/json":{"schema":{"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.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"El texto de estado HTTP.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El código de estado HTTP.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Un nombre estable legible por máquina, como validation_failed.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Qué salió mal, para las personas.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"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","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"},"feature":{"type":"string","description":"La función del plan que se necesita. Solo en plan_upgrade_required.","uniqueKey":"feature","typeLabel":"string"},"reason":{"type":"string","description":"Por qué un dispositivo debe descargar un feed de nuevo. Solo en resync_required.","uniqueKey":"reason","typeLabel":"string"},"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.","uniqueKey":"attempts_left","typeLabel":"integer"},"rule_ids":{"type":"array","description":"Las reglas de testigo que cubren las existencias. Solo en verification_required.","items":{"type":"string","uniqueKey":"rule_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rule_ids","typeLabel":"string[]"},"witness":{"type":"string","description":"Dónde firma el testigo: same_device, remote o either. Solo en verification_required.","uniqueKey":"witness","typeLabel":"string"},"blind_recount":{"type":"boolean","description":"Si el testigo vuelve a contar antes de ver la cantidad. Solo en verification_required.","uniqueKey":"blind_recount","typeLabel":"boolean"},"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.","isRequired":true,"uniqueKey":"flags.items.[INDEX].flag","typeLabel":"string"},"facts":{"type":"object","description":"Los hechos de la marca, como en la vista previa masiva; los demás son null.","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"array","items":{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"string"},"uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2","typeLabel":"string[]"},{"type":"null","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"flags.items.[INDEX].facts.additionalProperties","typeLabel":"string | integer | string[] | null"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].facts","typeLabel":"object"},"choices":{"type":"array","description":"Las decisiones que resolverían la marca, tal como las nombra la vista previa masiva.","items":{"type":"string","uniqueKey":"flags.items.[INDEX].choices.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].choices","typeLabel":"string[]"}},"required":["flag","facts","choices"],"uniqueKey":"flags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"flags","typeLabel":"object[]"}},"required":["type","title","status","code","detail"],"title":"ProblemDetails","uniqueKey":"","typeLabel":"ProblemDetails · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","errors":{},"feature":"\u003cstring>","reason":"\u003cstring>","attempts_left":123,"rule_ids":["\u003cstring>"],"witness":"\u003cstring>","blind_recount":true,"flags":[{"flag":"\u003cstring>","facts":{},"choices":["\u003cstring>"]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"e0a788d9-5317-479a-958c-27d70789ea09":{"description":"Demasiadas solicitudes","content":{"application/json":{"schema":{"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.","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","description":"El texto de estado HTTP.","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","description":"El código de estado HTTP.","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Un nombre estable legible por máquina, como validation_failed.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Qué salió mal, para las personas.","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"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","uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"errors.additionalProperties","typeLabel":"string[]"},"uniqueKey":"errors","typeLabel":"object"},"feature":{"type":"string","description":"La función del plan que se necesita. Solo en plan_upgrade_required.","uniqueKey":"feature","typeLabel":"string"},"reason":{"type":"string","description":"Por qué un dispositivo debe descargar un feed de nuevo. Solo en resync_required.","uniqueKey":"reason","typeLabel":"string"},"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.","uniqueKey":"attempts_left","typeLabel":"integer"},"rule_ids":{"type":"array","description":"Las reglas de testigo que cubren las existencias. Solo en verification_required.","items":{"type":"string","uniqueKey":"rule_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"rule_ids","typeLabel":"string[]"},"witness":{"type":"string","description":"Dónde firma el testigo: same_device, remote o either. Solo en verification_required.","uniqueKey":"witness","typeLabel":"string"},"blind_recount":{"type":"boolean","description":"Si el testigo vuelve a contar antes de ver la cantidad. Solo en verification_required.","uniqueKey":"blind_recount","typeLabel":"boolean"},"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.","isRequired":true,"uniqueKey":"flags.items.[INDEX].flag","typeLabel":"string"},"facts":{"type":"object","description":"Los hechos de la marca, como en la vista previa masiva; los demás son null.","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"array","items":{"type":"string","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2.items.[INDEX]","typeLabel":"string"},"uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.2","typeLabel":"string[]"},{"type":"null","uniqueKey":"flags.items.[INDEX].facts.additionalProperties.oneOf.3","typeLabel":"null"}],"uniqueKey":"flags.items.[INDEX].facts.additionalProperties","typeLabel":"string | integer | string[] | null"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].facts","typeLabel":"object"},"choices":{"type":"array","description":"Las decisiones que resolverían la marca, tal como las nombra la vista previa masiva.","items":{"type":"string","uniqueKey":"flags.items.[INDEX].choices.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"flags.items.[INDEX].choices","typeLabel":"string[]"}},"required":["flag","facts","choices"],"uniqueKey":"flags.items.[INDEX]","typeLabel":"object"},"uniqueKey":"flags","typeLabel":"object[]"}},"required":["type","title","status","code","detail"],"title":"ProblemDetails","uniqueKey":"","typeLabel":"ProblemDetails · object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","errors":{},"feature":"\u003cstring>","reason":"\u003cstring>","attempts_left":123,"rule_ids":["\u003cstring>"],"witness":"\u003cstring>","blind_recount":true,"flags":[{"flag":"\u003cstring>","facts":{},"choices":["\u003cstring>"]}]}}},"exampleType":"generated"}},"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"}}},"exampleType":"generated"}},"security":{"9fa34b8d-13a7-49c9-ba00-1159189674d6":{"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 \u003ckey>`. 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","scopes":[],"schemeName":"apiKey"}},"d5827afa-ff80-44a4-b3a4-bc94d3c29a94":{"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 \u003ctoken>`, 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"}}},"scopes":[],"schemeName":"oauth2"}}},"servers":{"b8bced36-2570-45cc-867e-6fa023822a4a":{"url":"https://app.stockshift.io/api/v1","description":"Producción"},"24306c1e-bb6a-47f2-b229-0b70108174f9":{"url":"https://app.beta.stockshift.io/api/v1","description":"Beta"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"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 \u003ckey>`. 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","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"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 \u003ckey>`. 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.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"},{"schemes":[{"scheme":{"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 \u003ctoken>`, 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"}}},"scopes":[],"schemeName":"oauth2"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"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 \u003ctoken>`, 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.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauth2","name":"Authorization"}],"title":"oauth2"}]},"originalFileLocation":"openapi.es.json"},"subdomain":"stock-shift","siteName":"StockShift Developers","title":"Envía comandos sin conexión - StockShift Developers","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/","matchLevel":4},"es":{"href":"/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión","matchLevel":0},"fr-CA":{"href":"/fr-ca","matchLevel":4}}},"lastModified":"2026-11-11T03:59:22.979Z","originalFileLocation":"es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde applied, rejected o deferred. applied viene con el resultado. rejected es definitivo y viene con un code, un message y los fields inválidos. deferred significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de retry_after segundos. Un comando enviado otra vez devuelve su resultado almacenado con replayed: true y no ejecuta nada. El mismo id con otro payload se rechaza con command_id_reused. Un comando cuya dependencia fue rechazada se rechaza con dependency_rejected. Un comando creado hace más de 90 días se rechaza con command_expired, y uno que el servidor no conoce con unknown_command. Requiere un token de un dispositivo registrado con sync:write, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.\">\u003cmeta data-mint-head name=\"application-name\" content=\"StockShift Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Envía comandos sin conexión - StockShift Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde applied, rejected o deferred. applied viene con el resultado. rejected es definitivo y viene con un code, un message y los fields inválidos. deferred significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de retry_after segundos. Un comando enviado otra vez devuelve su resultado almacenado con replayed: true y no ejecuta nada. El mismo id con otro payload se rechaza con command_id_reused. Un comando cuya dependencia fue rechazada se rechaza con dependency_rejected. Un comando creado hace más de 90 días se rechaza con command_expired, y uno que el servidor no conoce con unknown_command. Requiere un token de un dispositivo registrado con sync:write, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"StockShift Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://stock-shift.mintlify.site/_mintlify/api/og/v2?division=Comandos+de+sincronizaci%C3%B3n\u0026amp;title=Env%C3%ADa+comandos+sin+conexi%C3%B3n\u0026amp;description=Aplica+hasta+100+comandos+%28m%C3%A1ximo+1+MB+en+total%29+como+el+miembro%2C+en+el+orden+enviado.+Cada+uno+se+aplica+exactamente+igual+que+el+mismo+cambio+hecho+en+la+app.\u0026amp;theme=14e6ddc52e6b5f7c7f3a5e98\u0026amp;signature=80d6dcfd9378cd31b4bcffcb0ec55cea683549782a7c3e0db05609044ada063b\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Envía comandos sin conexión - StockShift Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde applied, rejected o deferred. applied viene con el resultado. rejected es definitivo y viene con un code, un message y los fields inválidos. deferred significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de retry_after segundos. Un comando enviado otra vez devuelve su resultado almacenado con replayed: true y no ejecuta nada. El mismo id con otro payload se rechaza con command_id_reused. Un comando cuya dependencia fue rechazada se rechaza con dependency_rejected. Un comando creado hace más de 90 días se rechaza con command_expired, y uno que el servidor no conoce con unknown_command. Requiere un token de un dispositivo registrado con sync:write, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://stock-shift.mintlify.site/_mintlify/api/og/v2?division=Comandos+de+sincronizaci%C3%B3n\u0026amp;title=Env%C3%ADa+comandos+sin+conexi%C3%B3n\u0026amp;description=Aplica+hasta+100+comandos+%28m%C3%A1ximo+1+MB+en+total%29+como+el+miembro%2C+en+el+orden+enviado.+Cada+uno+se+aplica+exactamente+igual+que+el+mismo+cambio+hecho+en+la+app.\u0026amp;theme=14e6ddc52e6b5f7c7f3a5e98\u0026amp;signature=80d6dcfd9378cd31b4bcffcb0ec55cea683549782a7c3e0db05609044ada063b\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/stock-shift/8prymB6WP5nWwl8n/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"StockShift Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#c4400e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.stockshift.io/#organization\",\"name\":\"StockShift Developers\",\"url\":\"https://docs.stockshift.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/stock-shift/veECiA638KjVgilP/logo/light.svg?fit=max\u0026auto=format\u0026n=veECiA638KjVgilP\u0026q=85\u0026s=c33bd50768974f62f8e61a994cd1d200\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.stockshift.io#website\",\"name\":\"StockShift Developers\",\"url\":\"https://docs.stockshift.io\",\"publisher\":{\"@id\":\"https://docs.stockshift.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n#webpage\",\"url\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n\",\"name\":\"Envía comandos sin conexión\",\"description\":\"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde applied, rejected o deferred. applied viene con el resultado. rejected es definitivo y viene con un code, un message y los fields inválidos. deferred significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de retry_after segundos. Un comando enviado otra vez devuelve su resultado almacenado con replayed: true y no ejecuta nada. El mismo id con otro payload se rechaza con command_id_reused. Un comando cuya dependencia fue rechazada se rechaza con dependency_rejected. Un comando creado hace más de 90 días se rechaza con command_expired, y uno que el servidor no conoce con unknown_command. Requiere un token de un dispositivo registrado con sync:write, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.\",\"dateModified\":\"2026-11-11T03:59:22.979Z\",\"isPartOf\":{\"@id\":\"https://docs.stockshift.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sincronización\",\"item\":\"https://docs.stockshift.io/es/api-reference/feeds-de-sincronizaci%C3%B3n/lista-los-feeds-de-sincronizaci%C3%B3n\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Envía comandos sin conexión\",\"item\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n#apireference\",\"headline\":\"Envía comandos sin conexión\",\"name\":\"Envía comandos sin conexión\",\"description\":\"Aplica hasta 100 comandos (máximo 1 MB en total) como el miembro, en el orden enviado. Cada uno se aplica exactamente igual que el mismo cambio hecho en la app. Cada comando responde applied, rejected o deferred. applied viene con el resultado. rejected es definitivo y viene con un code, un message y los fields inválidos. deferred significa que el comando no se ejecutó: una dependencia está sin terminar en otro lote, el mismo comando se está ejecutando en otra solicitud, o el lote agotó su presupuesto de 20 segundos. Envía de nuevo un comando diferido después de retry_after segundos. Un comando enviado otra vez devuelve su resultado almacenado con replayed: true y no ejecuta nada. El mismo id con otro payload se rechaza con command_id_reused. Un comando cuya dependencia fue rechazada se rechaza con dependency_rejected. Un comando creado hace más de 90 días se rechaza con command_expired, y uno que el servidor no conoce con unknown_command. Requiere un token de un dispositivo registrado con sync:write, y cada comando necesita su propio permiso, función del plan y alcance cuando se aplica.\",\"url\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n\",\"mainEntityOfPage\":{\"@id\":\"https://docs.stockshift.io/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n#webpage\"},\"dateModified\":\"2026-11-11T03:59:22.979Z\",\"publisher\":{\"@id\":\"https://docs.stockshift.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.stockshift.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"StockShift Developers\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"StockShift Developers\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/es/api-reference/comandos-de-sincronizaci%C3%B3n/env%C3%ADa-comandos-sin-conexi%C3%B3n.md","siteName":"StockShift Developers","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/"}]},{"language":"es","footer":{"links":[{"header":"StockShift","items":[{"label":"Sitio web","href":"https://stockshift.io"},{"label":"Centro de ayuda","href":"https://knowledge.stockshift.io"},{"label":"Iniciar sesión","href":"https://app.stockshift.io"}]}]},"navbar":{"links":[{"href":"https://knowledge.stockshift.io","label":"Centro de ayuda"}],"primary":{"type":"button","label":"Abrir StockShift","href":"https://app.stockshift.io"}},"tabs":[{"tab":"Guías","pages":[{"title":"Guías","href":"/es"}]},{"tab":"Referencia de la API","groups":[{"group":"Resumen","pages":[{"title":"Referencia de la API","sidebarTitle":"Introducción","icon":"book-open","href":"/es/api-reference/introduction"}]},{"group":"Inventario","pages":[{"group":"Acciones de existencias con testigo","pages":[{"title":"Pide un testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/notify","href":"/es/api-reference/acciones-de-existencias-con-testigo/pide-un-testigo"},{"title":"Muestra una verificación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/verifications/{verification}","href":"/es/api-reference/acciones-de-existencias-con-testigo/muestra-una-verificación"},{"title":"Cancela una verificación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/cancel","href":"/es/api-reference/acciones-de-existencias-con-testigo/cancela-una-verificación"},{"title":"Escribe tu reconteo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/counts","href":"/es/api-reference/acciones-de-existencias-con-testigo/escribe-tu-reconteo"},{"title":"Rechaza ser testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/decline","href":"/es/api-reference/acciones-de-existencias-con-testigo/rechaza-ser-testigo"},{"title":"Pide un testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/notify","href":"/es/api-reference/acciones-de-existencias-con-testigo/pide-un-testigo"},{"title":"Rechaza una verificación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/reject","href":"/es/api-reference/acciones-de-existencias-con-testigo/rechaza-una-verificación"},{"title":"Firma como testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/{verification}/witness","href":"/es/api-reference/acciones-de-existencias-con-testigo/firma-como-testigo"},{"title":"Lista los testigos de turno","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/verifications/{verification}/witnesses","href":"/es/api-reference/acciones-de-existencias-con-testigo/lista-los-testigos-de-turno"},{"title":"Previsualiza una acción de existencias con testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verifications/preview","href":"/es/api-reference/acciones-de-existencias-con-testigo/previsualiza-una-acción-de-existencias-con-testigo"}]},{"group":"Existencias del artículo","pages":[{"title":"Obtén las existencias de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/items/{item}","href":"/es/api-reference/existencias-del-artículo/obtén-las-existencias-de-un-artículo"},{"title":"Define las reglas de picking de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/items/{item}/allocation","href":"/es/api-reference/existencias-del-artículo/define-las-reglas-de-picking-de-un-artículo"},{"title":"Imprime etiquetas para un artículo sin seguimiento","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/items/{item}/labels","href":"/es/api-reference/existencias-del-artículo/imprime-etiquetas-para-un-artículo-sin-seguimiento"},{"title":"Obtén la disponibilidad prometida","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/items/{item}/reservations","href":"/es/api-reference/existencias-del-artículo/obtén-la-disponibilidad-prometida"},{"title":"Define la clasificación de sustancia controlada de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/items/{item}/schedule","href":"/es/api-reference/existencias-del-artículo/define-la-clasificación-de-sustancia-controlada-de-un-artículo"},{"title":"Imprime etiquetas para los números de serie de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/items/{item}/serial-labels","href":"/es/api-reference/existencias-del-artículo/imprime-etiquetas-para-los-números-de-serie-de-un-artículo"},{"title":"Define el costo estándar de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/items/{item}/standard-cost","href":"/es/api-reference/existencias-del-artículo/define-el-costo-estándar-de-un-artículo"},{"title":"Define cómo se rastrea un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/items/{item}/tracking","href":"/es/api-reference/existencias-del-artículo/define-cómo-se-rastrea-un-artículo"}]},{"group":"Transferencias","pages":[{"title":"Lista las transferencias","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/transfers","href":"/es/api-reference/transferencias/lista-las-transferencias"},{"title":"Crea una transferencia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/transfers","href":"/es/api-reference/transferencias/crea-una-transferencia"},{"title":"Obtén una transferencia","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/transfers/{transfer}","href":"/es/api-reference/transferencias/obtén-una-transferencia"},{"title":"Actualiza una transferencia en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/transfers/{transfer}","href":"/es/api-reference/transferencias/actualiza-una-transferencia-en-borrador"},{"title":"Cancela una transferencia en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/transfers/{transfer}/cancel","href":"/es/api-reference/transferencias/cancela-una-transferencia-en-borrador"},{"title":"Recibe una transferencia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/transfers/{transfer}/receive","href":"/es/api-reference/transferencias/recibe-una-transferencia"},{"title":"Deshaz un envío de transferencia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/transfers/{transfer}/reverse","href":"/es/api-reference/transferencias/deshaz-un-envío-de-transferencia"},{"title":"Envía una transferencia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/transfers/{transfer}/ship","href":"/es/api-reference/transferencias/envía-una-transferencia"}]},{"group":"Costos de importación","pages":[{"title":"Lista los costos de importación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/landed-costs","href":"/es/api-reference/costos-de-importación/lista-los-costos-de-importación"},{"title":"Crea un borrador de costo de importación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/landed-costs","href":"/es/api-reference/costos-de-importación/crea-un-borrador-de-costo-de-importación"},{"title":"Muestra un costo de importación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/landed-costs/{landedCost}","href":"/es/api-reference/costos-de-importación/muestra-un-costo-de-importación"},{"title":"Actualiza un borrador de costo de importación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/landed-costs/{landedCost}","href":"/es/api-reference/costos-de-importación/actualiza-un-borrador-de-costo-de-importación"},{"title":"Cancela un borrador de costo de importación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/landed-costs/{landedCost}/cancel","href":"/es/api-reference/costos-de-importación/cancela-un-borrador-de-costo-de-importación"},{"title":"Contabiliza un borrador de costo de importación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/landed-costs/{landedCost}/post","href":"/es/api-reference/costos-de-importación/contabiliza-un-borrador-de-costo-de-importación"},{"title":"Revierte un costo de importación contabilizado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/landed-costs/{landedCost}/reverse","href":"/es/api-reference/costos-de-importación/revierte-un-costo-de-importación-contabilizado"}]},{"group":"Conteos de existencias","pages":[{"title":"Lista los conteos de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/counts","href":"/es/api-reference/conteos-de-existencias/lista-los-conteos-de-existencias"},{"title":"Inicia un conteo de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/counts","href":"/es/api-reference/conteos-de-existencias/inicia-un-conteo-de-existencias"},{"title":"Obtén un conteo de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/counts/{count}","href":"/es/api-reference/conteos-de-existencias/obtén-un-conteo-de-existencias"},{"title":"Aprueba un conteo de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/counts/{count}/approve","href":"/es/api-reference/conteos-de-existencias/aprueba-un-conteo-de-existencias"},{"title":"Cancela un conteo de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/counts/{count}/cancel","href":"/es/api-reference/conteos-de-existencias/cancela-un-conteo-de-existencias"},{"title":"Registra las cantidades contadas","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/counts/{count}/lines","href":"/es/api-reference/conteos-de-existencias/registra-las-cantidades-contadas"},{"title":"Agrega una línea inesperada a un conteo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/counts/{count}/lines","href":"/es/api-reference/conteos-de-existencias/agrega-una-línea-inesperada-a-un-conteo"}]},{"group":"Ubicaciones","pages":[{"title":"Lista las ubicaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/locations","href":"/es/api-reference/ubicaciones/lista-las-ubicaciones"},{"title":"Crea una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/locations","href":"/es/api-reference/ubicaciones/crea-una-ubicación"},{"title":"Obtén una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/locations/{location}","href":"/es/api-reference/ubicaciones/obtén-una-ubicación"},{"title":"Actualiza una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/locations/{location}","href":"/es/api-reference/ubicaciones/actualiza-una-ubicación"},{"title":"Archiva una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/locations/{location}/archive","href":"/es/api-reference/ubicaciones/archiva-una-ubicación"},{"title":"Restaura una ubicación archivada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/locations/{location}/restore","href":"/es/api-reference/ubicaciones/restaura-una-ubicación-archivada"}]},{"group":"Periodos","pages":[{"title":"Lista los periodos de inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/periods","href":"/es/api-reference/periodos/lista-los-periodos-de-inventario"},{"title":"Muestra un periodo de inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/periods/{period}","href":"/es/api-reference/periodos/muestra-un-periodo-de-inventario"},{"title":"Cierra un período de inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/periods/{period}/close","href":"/es/api-reference/periodos/cierra-un-período-de-inventario"},{"title":"Empieza a cerrar un periodo de inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/periods/{period}/closing","href":"/es/api-reference/periodos/empieza-a-cerrar-un-periodo-de-inventario"},{"title":"Reabre un periodo de inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/periods/{period}/reopen","href":"/es/api-reference/periodos/reabre-un-periodo-de-inventario"},{"title":"Define el calendario fiscal","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/periods/calendar","href":"/es/api-reference/periodos/define-el-calendario-fiscal"}]},{"group":"Importaciones de inventario","pages":[{"title":"Sube un CSV de existencias iniciales","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/imports","href":"/es/api-reference/importaciones-de-inventario/sube-un-csv-de-existencias-iniciales"},{"title":"Muestra una importación de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/imports/{import}","href":"/es/api-reference/importaciones-de-inventario/muestra-una-importación-de-existencias"},{"title":"Asigna las columnas de una importación y obtén una vista previa","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/imports/{import}/mapping","href":"/es/api-reference/importaciones-de-inventario/asigna-las-columnas-de-una-importación-y-obtén-una-vista-previa"},{"title":"Ejecuta una importación con vista previa","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/imports/{import}/run","href":"/es/api-reference/importaciones-de-inventario/ejecuta-una-importación-con-vista-previa"},{"title":"Lista las asignaciones de importación guardadas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/imports/mappings","href":"/es/api-reference/importaciones-de-inventario/lista-las-asignaciones-de-importación-guardadas"}]},{"group":"Solicitudes de liberación","pages":[{"title":"Lista las solicitudes de liberación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/release-requests","href":"/es/api-reference/solicitudes-de-liberación/lista-las-solicitudes-de-liberación"},{"title":"Pide liberar existencias retenidas","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/release-requests","href":"/es/api-reference/solicitudes-de-liberación/pide-liberar-existencias-retenidas"},{"title":"Rechaza una solicitud de liberación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/release-requests/{releaseRequest}/decline","href":"/es/api-reference/solicitudes-de-liberación/rechaza-una-solicitud-de-liberación"},{"title":"Retira una solicitud de liberación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/release-requests/{releaseRequest}/withdraw","href":"/es/api-reference/solicitudes-de-liberación/retira-una-solicitud-de-liberación"}]},{"group":"Firmantes","pages":[{"title":"Acepta la declaración de firma","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/signature-statement/acceptance","href":"/es/api-reference/firmantes/acepta-la-declaración-de-firma"},{"title":"Muestra quién puede firmar acciones de existencias con testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/signers","href":"/es/api-reference/firmantes/muestra-quién-puede-firmar-acciones-de-existencias-con-testigo"},{"title":"Inscribe a un firmante","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/signers","href":"/es/api-reference/firmantes/inscribe-a-un-firmante"},{"title":"Retira la inscripción de un firmante","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/signers/{enrollment}/withdrawal","href":"/es/api-reference/firmantes/retira-la-inscripción-de-un-firmante"}]},{"group":"Existencias","pages":[{"title":"Lista las existencias disponibles","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/stock","href":"/es/api-reference/existencias/lista-las-existencias-disponibles"},{"title":"Ajusta las existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/stock/adjustments","href":"/es/api-reference/existencias/ajusta-las-existencias"},{"title":"Exporta existencias como CSV","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/stock/export","href":"/es/api-reference/existencias/exporta-existencias-como-csv"},{"title":"Cambia el estado de las existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/stock/status-changes","href":"/es/api-reference/existencias/cambia-el-estado-de-las-existencias"}]},{"group":"Reglas de testigo","pages":[{"title":"Muestra las reglas de testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/verification-policies","href":"/es/api-reference/reglas-de-testigo/muestra-las-reglas-de-testigo"},{"title":"Reemplaza las reglas de testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/verification-policies","href":"/es/api-reference/reglas-de-testigo/reemplaza-las-reglas-de-testigo"},{"title":"Agrega el preajuste de sustancias controladas de EE. UU. a las reglas de testigo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/verification-policies/preset","href":"/es/api-reference/reglas-de-testigo/agrega-el-preajuste-de-sustancias-controladas-de-ee-uu-a-las-reglas-de-testigo"}]},{"group":"Reglas de asignación","pages":[{"title":"Muestra las reglas de asignación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/allocation-rules","href":"/es/api-reference/reglas-de-asignación/muestra-las-reglas-de-asignación"},{"title":"Actualiza las reglas de asignación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/allocation-rules","href":"/es/api-reference/reglas-de-asignación/actualiza-las-reglas-de-asignación"}]},{"group":"Configuración de inventario","pages":[{"title":"Muestra la configuración de Inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/settings","href":"/es/api-reference/configuración-de-inventario/muestra-la-configuración-de-inventario"},{"title":"Actualiza la configuración de Inventario","deprecated":null,"version":null,"openapi":"/openapi.es.json put /inventory/settings","href":"/es/api-reference/configuración-de-inventario/actualiza-la-configuración-de-inventario"}]},{"group":"Lotes","pages":[{"title":"Muestra un lote","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/lots/{lot}","href":"/es/api-reference/lotes/muestra-un-lote"},{"title":"Imprime etiquetas para las existencias disponibles de un lote","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/lots/{lot}/labels","href":"/es/api-reference/lotes/imprime-etiquetas-para-las-existencias-disponibles-de-un-lote"}]},{"group":"Movimientos","pages":[{"title":"Lista los movimientos de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/movements","href":"/es/api-reference/movimientos/lista-los-movimientos-de-existencias"},{"title":"Revierte un movimiento de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/movements/{movement}/reverse","href":"/es/api-reference/movimientos/revierte-un-movimiento-de-existencias"}]},{"group":"Números de serie","pages":[{"title":"Muestra un número de serie","deprecated":null,"version":null,"openapi":"/openapi.es.json get /inventory/serials/{serial}","href":"/es/api-reference/números-de-serie/muestra-un-número-de-serie"},{"title":"Imprime la etiqueta de un número de serie disponible","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/serials/{serial}/labels","href":"/es/api-reference/números-de-serie/imprime-la-etiqueta-de-un-número-de-serie-disponible"}]},{"group":"Movimientos de existencias","pages":[{"title":"Mueve existencias entre ubicaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/stock-moves","href":"/es/api-reference/movimientos-de-existencias/mueve-existencias-entre-ubicaciones"},{"title":"Deshaz un movimiento de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/stock-moves/{move}/reversal","href":"/es/api-reference/movimientos-de-existencias/deshaz-un-movimiento-de-existencias"}]},{"group":"Vistas previas masivas","pages":[{"title":"Previsualiza una acción masiva de existencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/bulk-previews","href":"/es/api-reference/vistas-previas-masivas/previsualiza-una-acción-masiva-de-existencias"}]}]},{"group":"Catálogo","pages":[{"group":"Artículos","pages":[{"title":"Lista los artículos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items","href":"/es/api-reference/artículos/lista-los-artículos"},{"title":"Crea un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/items","href":"/es/api-reference/artículos/crea-un-artículo"},{"title":"Obtén un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/{item}","href":"/es/api-reference/artículos/obtén-un-artículo"},{"title":"Actualiza un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/items/{item}","href":"/es/api-reference/artículos/actualiza-un-artículo"},{"title":"Archiva un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/items/{item}/archive","href":"/es/api-reference/artículos/archiva-un-artículo"},{"title":"Lista los archivos adjuntos de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/{item}/attachments","href":"/es/api-reference/artículos/lista-los-archivos-adjuntos-de-un-artículo"},{"title":"Sube un adjunto de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/items/{item}/attachments","href":"/es/api-reference/artículos/sube-un-adjunto-de-un-artículo"},{"title":"Elimina un adjunto de artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /catalog/items/{item}/attachments/{attachment}","href":"/es/api-reference/artículos/elimina-un-adjunto-de-artículo"},{"title":"Define la imagen principal de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/items/{item}/attachments/{attachment}/primary","href":"/es/api-reference/artículos/define-la-imagen-principal-de-un-artículo"},{"title":"Lista los códigos de barras de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/{item}/barcodes","href":"/es/api-reference/artículos/lista-los-códigos-de-barras-de-un-artículo"},{"title":"Agrega un código de barras","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/items/{item}/barcodes","href":"/es/api-reference/artículos/agrega-un-código-de-barras"},{"title":"Elimina un código de barras","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /catalog/items/{item}/barcodes/{barcode}","href":"/es/api-reference/artículos/elimina-un-código-de-barras"},{"title":"Define la unidad base de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/items/{item}/base-unit","href":"/es/api-reference/artículos/define-la-unidad-base-de-un-artículo"},{"title":"Define la clasificación de datos de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/items/{item}/classification","href":"/es/api-reference/artículos/define-la-clasificación-de-datos-de-un-artículo"},{"title":"Define una conversión de unidades","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/items/{item}/conversions","href":"/es/api-reference/artículos/define-una-conversión-de-unidades"},{"title":"Elimina una conversión de unidad","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /catalog/items/{item}/conversions/{unit}","href":"/es/api-reference/artículos/elimina-una-conversión-de-unidad"},{"title":"Convierte entre las unidades de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/{item}/convert","href":"/es/api-reference/artículos/convierte-entre-las-unidades-de-un-artículo"},{"title":"Obtén el kit de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/{item}/kit","href":"/es/api-reference/artículos/obtén-el-kit-de-un-artículo"},{"title":"Agrega o cambia un componente de un kit","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/items/{item}/kit/components","href":"/es/api-reference/artículos/agrega-o-cambia-un-componente-de-un-kit"},{"title":"Elimina un componente de un kit","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /catalog/items/{item}/kit/components/{component}","href":"/es/api-reference/artículos/elimina-un-componente-de-un-kit"},{"title":"Restaura un artículo archivado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/items/{item}/restore","href":"/es/api-reference/artículos/restaura-un-artículo-archivado"},{"title":"Obtén las unidades de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/{item}/units","href":"/es/api-reference/artículos/obtén-las-unidades-de-un-artículo"},{"title":"Exporta artículos como CSV","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/items/export","href":"/es/api-reference/artículos/exporta-artículos-como-csv"}]},{"group":"Familias","pages":[{"title":"Lista las familias de variantes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/families","href":"/es/api-reference/familias/lista-las-familias-de-variantes"},{"title":"Crea una familia de variantes","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/families","href":"/es/api-reference/familias/crea-una-familia-de-variantes"},{"title":"Muestra una familia de variantes y sus variantes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/families/{family}","href":"/es/api-reference/familias/muestra-una-familia-de-variantes-y-sus-variantes"},{"title":"Actualiza una familia de variantes","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/families/{family}","href":"/es/api-reference/familias/actualiza-una-familia-de-variantes"},{"title":"Genera las variantes de una familia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/families/{family}/variants","href":"/es/api-reference/familias/genera-las-variantes-de-una-familia"},{"title":"Previsualiza las variantes de una familia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/families/{family}/variants/preview","href":"/es/api-reference/familias/previsualiza-las-variantes-de-una-familia"}]},{"group":"Importaciones de catálogo","pages":[{"title":"Sube un CSV de artículos para importar","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/imports","href":"/es/api-reference/importaciones-de-catálogo/sube-un-csv-de-artículos-para-importar"},{"title":"Muestra una importación de artículos y su reporte","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/imports/{import}","href":"/es/api-reference/importaciones-de-catálogo/muestra-una-importación-de-artículos-y-su-reporte"},{"title":"Asigna las columnas de una importación y obtén una vista previa","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/imports/{import}/mapping","href":"/es/api-reference/importaciones-de-catálogo/asigna-las-columnas-de-una-importación-y-obtén-una-vista-previa"},{"title":"Ejecuta una importación con vista previa","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/imports/{import}/run","href":"/es/api-reference/importaciones-de-catálogo/ejecuta-una-importación-con-vista-previa"},{"title":"Lista las asignaciones de importación guardadas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/imports/mappings","href":"/es/api-reference/importaciones-de-catálogo/lista-las-asignaciones-de-importación-guardadas"}]},{"group":"Campos personalizados","pages":[{"title":"Lista los campos personalizados para los que los artículos pueden guardar valores","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/fields","href":"/es/api-reference/campos-personalizados/lista-los-campos-personalizados-para-los-que-los-artículos-pueden-guardar-valores"},{"title":"Define un campo personalizado para artículos","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/fields","href":"/es/api-reference/campos-personalizados/define-un-campo-personalizado-para-artículos"},{"title":"Cambia un campo personalizado de artículos","deprecated":null,"version":null,"openapi":"/openapi.es.json put /catalog/fields/{field}","href":"/es/api-reference/campos-personalizados/cambia-un-campo-personalizado-de-artículos"},{"title":"Elimina un campo personalizado de artículos","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /catalog/fields/{field}","href":"/es/api-reference/campos-personalizados/elimina-un-campo-personalizado-de-artículos"}]},{"group":"Biblioteca de productos","pages":[{"title":"Lista los productos de la biblioteca para importar como artículos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/library","href":"/es/api-reference/biblioteca-de-productos/lista-los-productos-de-la-biblioteca-para-importar-como-artículos"},{"title":"Importa productos de la biblioteca como artículos","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/library/imports","href":"/es/api-reference/biblioteca-de-productos/importa-productos-de-la-biblioteca-como-artículos"},{"title":"Busca en la biblioteca","deprecated":null,"version":null,"openapi":"/openapi.es.json get /library/products","href":"/es/api-reference/biblioteca-de-productos/busca-en-la-biblioteca"},{"title":"Busca un producto en la biblioteca","deprecated":null,"version":null,"openapi":"/openapi.es.json get /library/products/{code}","href":"/es/api-reference/biblioteca-de-productos/busca-un-producto-en-la-biblioteca"}]},{"group":"Unidades","pages":[{"title":"Lista las unidades de medida: las estándar y las propias de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/units","href":"/es/api-reference/unidades/lista-las-unidades-de-medida:-las-estándar-y-las-propias-de-la-organización"},{"title":"Agrega una unidad propia de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /catalog/units","href":"/es/api-reference/unidades/agrega-una-unidad-propia-de-la-organización"},{"title":"Elimina una unidad propia de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /catalog/units/{unit}","href":"/es/api-reference/unidades/elimina-una-unidad-propia-de-la-organización"}]},{"group":"Escaneo","pages":[{"title":"Busca un código escaneado","deprecated":null,"version":null,"openapi":"/openapi.es.json get /catalog/scan/{code}","href":"/es/api-reference/escaneo/busca-un-código-escaneado"}]}]},{"group":"Compras","pages":[{"group":"Proveedores","pages":[{"title":"Lista los proveedores","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/suppliers","href":"/es/api-reference/proveedores/lista-los-proveedores"},{"title":"Agrega un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/suppliers","href":"/es/api-reference/proveedores/agrega-un-proveedor"},{"title":"Obtén un proveedor con sus contactos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/suppliers/{supplier}","href":"/es/api-reference/proveedores/obtén-un-proveedor-con-sus-contactos"},{"title":"Cambia el código, el nombre, los términos, la dirección o las notas de un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/suppliers/{supplier}","href":"/es/api-reference/proveedores/cambia-el-código-el-nombre-los-términos-la-dirección-o-las-notas-de-un-proveedor"},{"title":"Archiva un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/suppliers/{supplier}/archive","href":"/es/api-reference/proveedores/archiva-un-proveedor"},{"title":"Lista los certificados de un proveedor, los que vencen antes primero","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/suppliers/{supplier}/certificates","href":"/es/api-reference/proveedores/lista-los-certificados-de-un-proveedor-los-que-vencen-antes-primero"},{"title":"Sube un certificado de proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/suppliers/{supplier}/certificates","href":"/es/api-reference/proveedores/sube-un-certificado-de-proveedor"},{"title":"Elimina un certificado de proveedor y su archivo","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /purchasing/suppliers/{supplier}/certificates/{certificate}","href":"/es/api-reference/proveedores/elimina-un-certificado-de-proveedor-y-su-archivo"},{"title":"Define las recepciones que cubre un certificado","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/suppliers/{supplier}/certificates/{certificate}/receipts","href":"/es/api-reference/proveedores/define-las-recepciones-que-cubre-un-certificado"},{"title":"Agrega una persona a un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/suppliers/{supplier}/contacts","href":"/es/api-reference/proveedores/agrega-una-persona-a-un-proveedor"},{"title":"Cambia los datos de un contacto de proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/suppliers/{supplier}/contacts/{contact}","href":"/es/api-reference/proveedores/cambia-los-datos-de-un-contacto-de-proveedor"},{"title":"Elimina a una persona de un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /purchasing/suppliers/{supplier}/contacts/{contact}","href":"/es/api-reference/proveedores/elimina-a-una-persona-de-un-proveedor"},{"title":"Define el idioma de documentos y las plantillas de un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/suppliers/{supplier}/documents","href":"/es/api-reference/proveedores/define-el-idioma-de-documentos-y-las-plantillas-de-un-proveedor"},{"title":"Lista lo que vende un proveedor, con sus escalas de precio","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/suppliers/{supplier}/items","href":"/es/api-reference/proveedores/lista-lo-que-vende-un-proveedor-con-sus-escalas-de-precio"},{"title":"Agrega un artículo al catálogo de un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/suppliers/{supplier}/items","href":"/es/api-reference/proveedores/agrega-un-artículo-al-catálogo-de-un-proveedor"},{"title":"Cambia un artículo del catálogo de un proveedor, reemplazando sus escalas de precio","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/suppliers/{supplier}/items/{supplierItem}","href":"/es/api-reference/proveedores/cambia-un-artículo-del-catálogo-de-un-proveedor-reemplazando-sus-escalas-de-precio"},{"title":"Quita un artículo del catálogo de un proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /purchasing/suppliers/{supplier}/items/{supplierItem}","href":"/es/api-reference/proveedores/quita-un-artículo-del-catálogo-de-un-proveedor"},{"title":"Calcula el precio de un proveedor para una cantidad en una fecha","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/suppliers/{supplier}/items/{supplierItem}/price","href":"/es/api-reference/proveedores/calcula-el-precio-de-un-proveedor-para-una-cantidad-en-una-fecha"},{"title":"Restaura un proveedor archivado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/suppliers/{supplier}/restore","href":"/es/api-reference/proveedores/restaura-un-proveedor-archivado"}]},{"group":"Órdenes de compra","pages":[{"title":"Lista las órdenes de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/orders","href":"/es/api-reference/órdenes-de-compra/lista-las-órdenes-de-compra"},{"title":"Crea una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders","href":"/es/api-reference/órdenes-de-compra/crea-una-orden-de-compra"},{"title":"Obtén una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/orders/{order}","href":"/es/api-reference/órdenes-de-compra/obtén-una-orden-de-compra"},{"title":"Actualiza una orden de compra en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/orders/{order}","href":"/es/api-reference/órdenes-de-compra/actualiza-una-orden-de-compra-en-borrador"},{"title":"Aprueba una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/approve","href":"/es/api-reference/órdenes-de-compra/aprueba-una-orden-de-compra"},{"title":"Cancela una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/cancel","href":"/es/api-reference/órdenes-de-compra/cancela-una-orden-de-compra"},{"title":"Cierra una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/close","href":"/es/api-reference/órdenes-de-compra/cierra-una-orden-de-compra"},{"title":"Descarga una orden de compra como PDF","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/orders/{order}/pdf","href":"/es/api-reference/órdenes-de-compra/descarga-una-orden-de-compra-como-pdf"},{"title":"Lista las recepciones de una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/orders/{order}/receipts","href":"/es/api-reference/órdenes-de-compra/lista-las-recepciones-de-una-orden-de-compra"},{"title":"Recibe mercancía contra una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/receipts","href":"/es/api-reference/órdenes-de-compra/recibe-mercancía-contra-una-orden-de-compra"},{"title":"Rechaza una orden de compra que pidió aprobación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/reject","href":"/es/api-reference/órdenes-de-compra/rechaza-una-orden-de-compra-que-pidió-aprobación"},{"title":"Pide la aprobación de una orden de compra","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/request-approval","href":"/es/api-reference/órdenes-de-compra/pide-la-aprobación-de-una-orden-de-compra"},{"title":"Envía una orden de compra al proveedor por correo electrónico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/orders/{order}/send","href":"/es/api-reference/órdenes-de-compra/envía-una-orden-de-compra-al-proveedor-por-correo-electrónico"}]},{"group":"Importaciones de compras","pages":[{"title":"Obtén una importación de proveedores o de catálogo de proveedores","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/imports/{import}","href":"/es/api-reference/importaciones-de-compras/obtén-una-importación-de-proveedores-o-de-catálogo-de-proveedores"},{"title":"Asigna las columnas de una importación y revisa cada fila","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/imports/{import}/mapping","href":"/es/api-reference/importaciones-de-compras/asigna-las-columnas-de-una-importación-y-revisa-cada-fila"},{"title":"Ejecuta una importación con vista previa","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/imports/{import}/run","href":"/es/api-reference/importaciones-de-compras/ejecuta-una-importación-con-vista-previa"},{"title":"Sube un archivo de proveedores o catálogos de proveedores para importar","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/imports/{kind}","href":"/es/api-reference/importaciones-de-compras/sube-un-archivo-de-proveedores-o-catálogos-de-proveedores-para-importar"},{"title":"Lista las asignaciones guardadas para un tipo de importación, por nombre","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/imports/mappings/{kind}","href":"/es/api-reference/importaciones-de-compras/lista-las-asignaciones-guardadas-para-un-tipo-de-importación-por-nombre"}]},{"group":"Configuración de compras","pages":[{"title":"Obtén la configuración de compras de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/settings","href":"/es/api-reference/configuración-de-compras/obtén-la-configuración-de-compras-de-la-organización"},{"title":"Cambia la configuración de compras de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /purchasing/settings","href":"/es/api-reference/configuración-de-compras/cambia-la-configuración-de-compras-de-la-organización"}]},{"group":"Recepciones","pages":[{"title":"Imprime etiquetas para una línea de recepción","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/receipts/{receipt}/labels","href":"/es/api-reference/recepciones/imprime-etiquetas-para-una-línea-de-recepción"},{"title":"Revierte una recepción","deprecated":null,"version":null,"openapi":"/openapi.es.json post /purchasing/receipts/{receipt}/reverse","href":"/es/api-reference/recepciones/revierte-una-recepción"}]},{"group":"Proveedores del artículo","pages":[{"title":"Lista quién vende un artículo, el proveedor preferido primero","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/items/{item}/suppliers","href":"/es/api-reference/proveedores-del-artículo/lista-quién-vende-un-artículo-el-proveedor-preferido-primero"}]},{"group":"Exportaciones de compras","pages":[{"title":"Exporta los proveedores activos, o sus catálogos, como CSV","deprecated":null,"version":null,"openapi":"/openapi.es.json get /purchasing/exports/{kind}","href":"/es/api-reference/exportaciones-de-compras/exporta-los-proveedores-activos-o-sus-catálogos-como-csv"}]}]},{"group":"Ventas","pages":[{"group":"Pedidos de venta","pages":[{"title":"Lista los pedidos de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/orders","href":"/es/api-reference/pedidos-de-venta/lista-los-pedidos-de-venta"},{"title":"Crea un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders","href":"/es/api-reference/pedidos-de-venta/crea-un-pedido-de-venta"},{"title":"Obtén un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/orders/{order}","href":"/es/api-reference/pedidos-de-venta/obtén-un-pedido-de-venta"},{"title":"Actualiza un pedido de venta en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/orders/{order}","href":"/es/api-reference/pedidos-de-venta/actualiza-un-pedido-de-venta-en-borrador"},{"title":"Modifica un pedido de venta confirmado","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/orders/{order}/amendment","href":"/es/api-reference/pedidos-de-venta/modifica-un-pedido-de-venta-confirmado"},{"title":"Cancela un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/cancel","href":"/es/api-reference/pedidos-de-venta/cancela-un-pedido-de-venta"},{"title":"Lista los certificados de conformidad de un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/orders/{order}/certificates","href":"/es/api-reference/pedidos-de-venta/lista-los-certificados-de-conformidad-de-un-pedido-de-venta"},{"title":"Envía un pedido de venta con un certificado de conformidad","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/certified-shipments","href":"/es/api-reference/pedidos-de-venta/envía-un-pedido-de-venta-con-un-certificado-de-conformidad"},{"title":"Confirma un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/confirm","href":"/es/api-reference/pedidos-de-venta/confirma-un-pedido-de-venta"},{"title":"Factura un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/invoices","href":"/es/api-reference/pedidos-de-venta/factura-un-pedido-de-venta"},{"title":"Reserva existencias para un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/reservation","href":"/es/api-reference/pedidos-de-venta/reserva-existencias-para-un-pedido-de-venta"},{"title":"Lista las devoluciones de un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/orders/{order}/returns","href":"/es/api-reference/pedidos-de-venta/lista-las-devoluciones-de-un-pedido-de-venta"},{"title":"Autoriza una devolución","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/returns","href":"/es/api-reference/pedidos-de-venta/autoriza-una-devolución"},{"title":"Lista los envíos de un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/orders/{order}/shipments","href":"/es/api-reference/pedidos-de-venta/lista-los-envíos-de-un-pedido-de-venta"},{"title":"Envía un pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/orders/{order}/shipments","href":"/es/api-reference/pedidos-de-venta/envía-un-pedido-de-venta"}]},{"group":"Clientes","pages":[{"title":"Lista los clientes por código, activos o archivados, con una consulta opcional","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/customers","href":"/es/api-reference/clientes/lista-los-clientes-por-código-activos-o-archivados-con-una-consulta-opcional"},{"title":"Agrega un cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/customers","href":"/es/api-reference/clientes/agrega-un-cliente"},{"title":"Muestra un cliente con sus contactos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/customers/{customer}","href":"/es/api-reference/clientes/muestra-un-cliente-con-sus-contactos"},{"title":"Cambia el código, el nombre, los términos, la dirección o las notas de un cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/customers/{customer}","href":"/es/api-reference/clientes/cambia-el-código-el-nombre-los-términos-la-dirección-o-las-notas-de-un-cliente"},{"title":"Archiva un cliente. Se conserva, junto con todos los pedidos y facturas que lo nombran","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/customers/{customer}/archive","href":"/es/api-reference/clientes/archiva-un-cliente-se-conserva-junto-con-todos-los-pedidos-y-facturas-que-lo-nombran"},{"title":"Define qué pide un cliente de sus certificados de conformidad","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/customers/{customer}/certificates","href":"/es/api-reference/clientes/define-qué-pide-un-cliente-de-sus-certificados-de-conformidad"},{"title":"Agrega una persona a un cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/customers/{customer}/contacts","href":"/es/api-reference/clientes/agrega-una-persona-a-un-cliente"},{"title":"Cambia los datos de un contacto de cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/customers/{customer}/contacts/{contact}","href":"/es/api-reference/clientes/cambia-los-datos-de-un-contacto-de-cliente"},{"title":"Elimina a una persona de un cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /sales/customers/{customer}/contacts/{contact}","href":"/es/api-reference/clientes/elimina-a-una-persona-de-un-cliente"},{"title":"Define el idioma de documentos y las plantillas de un cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/customers/{customer}/documents","href":"/es/api-reference/clientes/define-el-idioma-de-documentos-y-las-plantillas-de-un-cliente"},{"title":"Restaura un cliente archivado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/customers/{customer}/restore","href":"/es/api-reference/clientes/restaura-un-cliente-archivado"}]},{"group":"Facturas","pages":[{"title":"Lista las facturas, las más recientes primero, por estado, cliente o pedido","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/invoices","href":"/es/api-reference/facturas/lista-las-facturas-las-más-recientes-primero-por-estado-cliente-o-pedido"},{"title":"Muestra una factura con sus líneas, pagos y nota de crédito","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/invoices/{invoice}","href":"/es/api-reference/facturas/muestra-una-factura-con-sus-líneas-pagos-y-nota-de-crédito"},{"title":"Cambia la fecha de emisión y la nota de una factura en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/invoices/{invoice}","href":"/es/api-reference/facturas/cambia-la-fecha-de-emisión-y-la-nota-de-una-factura-en-borrador"},{"title":"Emite una factura en borrador, lo que la bloquea","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/invoices/{invoice}/issue","href":"/es/api-reference/facturas/emite-una-factura-en-borrador-lo-que-la-bloquea"},{"title":"Quita una línea de una factura en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /sales/invoices/{invoice}/lines/{line}","href":"/es/api-reference/facturas/quita-una-línea-de-una-factura-en-borrador"},{"title":"Registra un pago hecho en otro lugar contra una factura emitida","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/invoices/{invoice}/payments","href":"/es/api-reference/facturas/registra-un-pago-hecho-en-otro-lugar-contra-una-factura-emitida"},{"title":"Elimina un pago registrado por error","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /sales/invoices/{invoice}/payments/{payment}","href":"/es/api-reference/facturas/elimina-un-pago-registrado-por-error"},{"title":"Descarga una factura como PDF","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/invoices/{invoice}/pdf","href":"/es/api-reference/facturas/descarga-una-factura-como-pdf"},{"title":"Vuelve a calcular los impuestos de una factura en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/invoices/{invoice}/recalculate-tax","href":"/es/api-reference/facturas/vuelve-a-calcular-los-impuestos-de-una-factura-en-borrador"},{"title":"Envía una factura emitida por correo electrónico a uno de los contactos del cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/invoices/{invoice}/send","href":"/es/api-reference/facturas/envía-una-factura-emitida-por-correo-electrónico-a-uno-de-los-contactos-del-cliente"},{"title":"Anula una factura","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/invoices/{invoice}/void","href":"/es/api-reference/facturas/anula-una-factura"}]},{"group":"Listas de precios","pages":[{"title":"Lista las listas de precios de la organización, la predeterminada primero","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/price-lists","href":"/es/api-reference/listas-de-precios/lista-las-listas-de-precios-de-la-organización-la-predeterminada-primero"},{"title":"Agrega una lista de precios","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/price-lists","href":"/es/api-reference/listas-de-precios/agrega-una-lista-de-precios"},{"title":"Muestra una lista de precios con una página de sus precios","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/price-lists/{priceList}","href":"/es/api-reference/listas-de-precios/muestra-una-lista-de-precios-con-una-página-de-sus-precios"},{"title":"Cambia el nombre de una lista de precios o su descripción","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/price-lists/{priceList}","href":"/es/api-reference/listas-de-precios/cambia-el-nombre-de-una-lista-de-precios-o-su-descripción"},{"title":"Archiva una lista de precios. Sus clientes pasan a la lista predeterminada; la lista predeterminada no se puede archivar","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/price-lists/{priceList}/archive","href":"/es/api-reference/listas-de-precios/archiva-una-lista-de-precios-sus-clientes-pasan-a-la-lista-predeterminada;-la-lista-predeterminada-no-se-puede-archivar"},{"title":"Haz que una lista de precios sea la predeterminada de la organización, en lugar de la anterior","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/price-lists/{priceList}/default","href":"/es/api-reference/listas-de-precios/haz-que-una-lista-de-precios-sea-la-predeterminada-de-la-organización-en-lugar-de-la-anterior"},{"title":"Fija el precio de un artículo en una lista de precios","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/price-lists/{priceList}/items","href":"/es/api-reference/listas-de-precios/fija-el-precio-de-un-artículo-en-una-lista-de-precios"},{"title":"Cambia el precio de un artículo en una lista de precios","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/price-lists/{priceList}/items/{priceListItem}","href":"/es/api-reference/listas-de-precios/cambia-el-precio-de-un-artículo-en-una-lista-de-precios"},{"title":"Quita el precio de un artículo de una lista de precios","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /sales/price-lists/{priceList}/items/{priceListItem}","href":"/es/api-reference/listas-de-precios/quita-el-precio-de-un-artículo-de-una-lista-de-precios"},{"title":"Restaura una lista de precios archivada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/price-lists/{priceList}/restore","href":"/es/api-reference/listas-de-precios/restaura-una-lista-de-precios-archivada"}]},{"group":"Cotizaciones","pages":[{"title":"Lista las cotizaciones, las más recientes primero, por estado o cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/quotes","href":"/es/api-reference/cotizaciones/lista-las-cotizaciones-las-más-recientes-primero-por-estado-o-cliente"},{"title":"Toma una cotización como borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/quotes","href":"/es/api-reference/cotizaciones/toma-una-cotización-como-borrador"},{"title":"Muestra una cotización con sus líneas y el pedido en el que se aceptó","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/quotes/{quote}","href":"/es/api-reference/cotizaciones/muestra-una-cotización-con-sus-líneas-y-el-pedido-en-el-que-se-aceptó"},{"title":"Cambia una cotización en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/quotes/{quote}","href":"/es/api-reference/cotizaciones/cambia-una-cotización-en-borrador"},{"title":"Acepta una cotización enviada como pedido de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/quotes/{quote}/accept","href":"/es/api-reference/cotizaciones/acepta-una-cotización-enviada-como-pedido-de-venta"},{"title":"Registra que el cliente rechazó una cotización enviada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/quotes/{quote}/decline","href":"/es/api-reference/cotizaciones/registra-que-el-cliente-rechazó-una-cotización-enviada"},{"title":"Descarga una cotización como PDF","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/quotes/{quote}/pdf","href":"/es/api-reference/cotizaciones/descarga-una-cotización-como-pdf"},{"title":"Envía una cotización por correo electrónico a uno de los contactos del cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/quotes/{quote}/send","href":"/es/api-reference/cotizaciones/envía-una-cotización-por-correo-electrónico-a-uno-de-los-contactos-del-cliente"}]},{"group":"Tasas de impuestos","pages":[{"title":"Lista las tasas de impuesto de la organización, las activas primero","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/tax-rates","href":"/es/api-reference/tasas-de-impuestos/lista-las-tasas-de-impuesto-de-la-organización-las-activas-primero"},{"title":"Agrega una tasa de impuesto con nombre","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/tax-rates","href":"/es/api-reference/tasas-de-impuestos/agrega-una-tasa-de-impuesto-con-nombre"},{"title":"Cambia el nombre de una tasa de impuesto o su porcentaje","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/tax-rates/{taxRate}","href":"/es/api-reference/tasas-de-impuestos/cambia-el-nombre-de-una-tasa-de-impuesto-o-su-porcentaje"},{"title":"Archiva una tasa de impuesto que no es la predeterminada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/tax-rates/{taxRate}/archive","href":"/es/api-reference/tasas-de-impuestos/archiva-una-tasa-de-impuesto-que-no-es-la-predeterminada"},{"title":"Haz que una tasa de impuesto sea la predeterminada de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/tax-rates/{taxRate}/default","href":"/es/api-reference/tasas-de-impuestos/haz-que-una-tasa-de-impuesto-sea-la-predeterminada-de-la-organización"},{"title":"Vuelve a poner en uso una tasa de impuesto archivada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/tax-rates/{taxRate}/restore","href":"/es/api-reference/tasas-de-impuestos/vuelve-a-poner-en-uso-una-tasa-de-impuesto-archivada"}]},{"group":"Importaciones de ventas","pages":[{"title":"Sube un archivo de clientes o listas de precios para importar","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/imports/{kind}","href":"/es/api-reference/importaciones-de-ventas/sube-un-archivo-de-clientes-o-listas-de-precios-para-importar"},{"title":"Muestra una importación de clientes o listas de precios, con un reporte de cada fila","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/imports/{kind}/{import}","href":"/es/api-reference/importaciones-de-ventas/muestra-una-importación-de-clientes-o-listas-de-precios-con-un-reporte-de-cada-fila"},{"title":"Asigna las columnas de una importación y revisa cada fila","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/imports/{kind}/{import}/mapping","href":"/es/api-reference/importaciones-de-ventas/asigna-las-columnas-de-una-importación-y-revisa-cada-fila"},{"title":"Ejecuta en la cola una importación comprobada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/imports/{kind}/{import}/run","href":"/es/api-reference/importaciones-de-ventas/ejecuta-en-la-cola-una-importación-comprobada"},{"title":"Lista las asignaciones guardadas para un tipo de importación, por nombre","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/imports/{kind}/mappings","href":"/es/api-reference/importaciones-de-ventas/lista-las-asignaciones-guardadas-para-un-tipo-de-importación-por-nombre"}]},{"group":"Devoluciones","pages":[{"title":"Lista las devoluciones, las más recientes primero, por estado o pedido","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/returns","href":"/es/api-reference/devoluciones/lista-las-devoluciones-las-más-recientes-primero-por-estado-o-pedido"},{"title":"Muestra una devolución con sus líneas y las notas de crédito que generó","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/returns/{salesReturn}","href":"/es/api-reference/devoluciones/muestra-una-devolución-con-sus-líneas-y-las-notas-de-crédito-que-generó"},{"title":"Cancela una devolución autorizada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/returns/{salesReturn}/cancel","href":"/es/api-reference/devoluciones/cancela-una-devolución-autorizada"},{"title":"Recibe una devolución autorizada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/returns/{salesReturn}/receive","href":"/es/api-reference/devoluciones/recibe-una-devolución-autorizada"}]},{"group":"Envíos","pages":[{"title":"Firma un certificado de conformidad de un envío","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/shipments/{shipment}/certificates","href":"/es/api-reference/envíos/firma-un-certificado-de-conformidad-de-un-envío"},{"title":"Descarga una lista de empaque como PDF","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/shipments/{shipment}/packing-slip/pdf","href":"/es/api-reference/envíos/descarga-una-lista-de-empaque-como-pdf"},{"title":"Revierte un envío","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sales/shipments/{shipment}/reverse","href":"/es/api-reference/envíos/revierte-un-envío"},{"title":"Registra el número de seguimiento de un envío","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/shipments/{shipment}/tracking","href":"/es/api-reference/envíos/registra-el-número-de-seguimiento-de-un-envío"}]},{"group":"Configuración de ventas","pages":[{"title":"Muestra la configuración de ventas de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/settings","href":"/es/api-reference/configuración-de-ventas/muestra-la-configuración-de-ventas-de-la-organización"},{"title":"Cambia la configuración de ventas de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /sales/settings","href":"/es/api-reference/configuración-de-ventas/cambia-la-configuración-de-ventas-de-la-organización"}]},{"group":"Certificados de conformidad","pages":[{"title":"Obtén un certificado de conformidad","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/certificates/{certificate}","href":"/es/api-reference/certificados-de-conformidad/obtén-un-certificado-de-conformidad"}]},{"group":"Precios","pages":[{"title":"Calcula lo que paga un cliente por un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/prices/quote","href":"/es/api-reference/precios/calcula-lo-que-paga-un-cliente-por-un-artículo"}]},{"group":"Exportaciones de ventas","pages":[{"title":"Exporta los clientes activos, o los precios de las listas de precios activas, como CSV","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sales/exports/{kind}","href":"/es/api-reference/exportaciones-de-ventas/exporta-los-clientes-activos-o-los-precios-de-las-listas-de-precios-activas-como-csv"}]}]},{"group":"Fabricación","pages":[{"group":"Órdenes de fabricación","pages":[{"title":"Lista las órdenes de fabricación, las más recientes primero, con un estado opcional","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/builds","href":"/es/api-reference/órdenes-de-fabricación/lista-las-órdenes-de-fabricación-las-más-recientes-primero-con-un-estado-opcional"},{"title":"Crea el borrador de una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds","href":"/es/api-reference/órdenes-de-fabricación/crea-el-borrador-de-una-orden-de-fabricación"},{"title":"Muestra una orden de fabricación con su lista de piezas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/builds/{build}","href":"/es/api-reference/órdenes-de-fabricación/muestra-una-orden-de-fabricación-con-su-lista-de-piezas"},{"title":"Cambia una orden de fabricación en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/builds/{build}","href":"/es/api-reference/órdenes-de-fabricación/cambia-una-orden-de-fabricación-en-borrador"},{"title":"Cancela una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/cancel","href":"/es/api-reference/órdenes-de-fabricación/cancela-una-orden-de-fabricación"},{"title":"Completa una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/complete","href":"/es/api-reference/órdenes-de-fabricación/completa-una-orden-de-fabricación"},{"title":"Consume un paso de piezas en una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/issues","href":"/es/api-reference/órdenes-de-fabricación/consume-un-paso-de-piezas-en-una-orden-de-fabricación"},{"title":"Imprime etiquetas para las unidades de una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/labels","href":"/es/api-reference/órdenes-de-fabricación/imprime-etiquetas-para-las-unidades-de-una-orden-de-fabricación"},{"title":"Devuelve las piezas de una operación subcontratada desde su proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/operations/{operation}/bring-back","href":"/es/api-reference/órdenes-de-fabricación/devuelve-las-piezas-de-una-operación-subcontratada-desde-su-proveedor"},{"title":"Termina una operación de una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/operations/{operation}/complete","href":"/es/api-reference/órdenes-de-fabricación/termina-una-operación-de-una-orden-de-fabricación"},{"title":"Pausa una operación en curso de una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/operations/{operation}/pause","href":"/es/api-reference/órdenes-de-fabricación/pausa-una-operación-en-curso-de-una-orden-de-fabricación"},{"title":"Genera una nueva orden de compra para una operación subcontratada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/operations/{operation}/reorder","href":"/es/api-reference/órdenes-de-fabricación/genera-una-nueva-orden-de-compra-para-una-operación-subcontratada"},{"title":"Envía las piezas de una operación subcontratada a su proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/operations/{operation}/send","href":"/es/api-reference/órdenes-de-fabricación/envía-las-piezas-de-una-operación-subcontratada-a-su-proveedor"},{"title":"Inicia o reanuda una operación de una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/operations/{operation}/start","href":"/es/api-reference/órdenes-de-fabricación/inicia-o-reanuda-una-operación-de-una-orden-de-fabricación"},{"title":"Informa un problema en una orden de fabricación o en una de sus operaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/problems","href":"/es/api-reference/órdenes-de-fabricación/informa-un-problema-en-una-orden-de-fabricación-o-en-una-de-sus-operaciones"},{"title":"Cierra un problema en una orden de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/problems/{problem}/close","href":"/es/api-reference/órdenes-de-fabricación/cierra-un-problema-en-una-orden-de-fabricación"},{"title":"Obtén un enlace de descarga de la foto de un problema","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/builds/{build}/problems/{problem}/photo","href":"/es/api-reference/órdenes-de-fabricación/obtén-un-enlace-de-descarga-de-la-foto-de-un-problema"},{"title":"Libera una orden de fabricación en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/release","href":"/es/api-reference/órdenes-de-fabricación/libera-una-orden-de-fabricación-en-borrador"},{"title":"Revierte una orden de fabricación completada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/reverse","href":"/es/api-reference/órdenes-de-fabricación/revierte-una-orden-de-fabricación-completada"},{"title":"Corrige los minutos de un registro de tiempo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/builds/{build}/time-records/{record}/correct","href":"/es/api-reference/órdenes-de-fabricación/corrige-los-minutos-de-un-registro-de-tiempo"}]},{"group":"Reparaciones","pages":[{"title":"Lista las reparaciones, las más recientes primero","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/repairs","href":"/es/api-reference/reparaciones/lista-las-reparaciones-las-más-recientes-primero"},{"title":"Abre una reparación para la unidad de un cliente","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/repairs","href":"/es/api-reference/reparaciones/abre-una-reparación-para-la-unidad-de-un-cliente"},{"title":"Muestra una reparación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/repairs/{repair}","href":"/es/api-reference/reparaciones/muestra-una-reparación"},{"title":"Actualiza una reparación abierta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/repairs/{repair}","href":"/es/api-reference/reparaciones/actualiza-una-reparación-abierta"},{"title":"Cancela una reparación abierta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/repairs/{repair}/cancel","href":"/es/api-reference/reparaciones/cancela-una-reparación-abierta"},{"title":"Completa una reparación abierta con su resultado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/repairs/{repair}/complete","href":"/es/api-reference/reparaciones/completa-una-reparación-abierta-con-su-resultado"},{"title":"Factura una reparación pagada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/repairs/{repair}/invoice","href":"/es/api-reference/reparaciones/factura-una-reparación-pagada"},{"title":"Registra una pieza usada o retirada en una reparación abierta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/repairs/{repair}/parts","href":"/es/api-reference/reparaciones/registra-una-pieza-usada-o-retirada-en-una-reparación-abierta"}]},{"group":"Rutas","pages":[{"title":"Obtén el enrutamiento de una revisión de BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/routings/{revision}","href":"/es/api-reference/rutas/obtén-el-enrutamiento-de-una-revisión-de-bom"},{"title":"Agrega una operación a una ruta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/routings/{revision}/operations","href":"/es/api-reference/rutas/agrega-una-operación-a-una-ruta"},{"title":"Cambia una operación de una ruta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/routings/{revision}/operations/{operation}","href":"/es/api-reference/rutas/cambia-una-operación-de-una-ruta"},{"title":"Elimina una operación de una ruta","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /manufacturing/routings/{revision}/operations/{operation}","href":"/es/api-reference/rutas/elimina-una-operación-de-una-ruta"},{"title":"Agrega un archivo a las instrucciones de trabajo de una operación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/routings/{revision}/operations/{operation}/files","href":"/es/api-reference/rutas/agrega-un-archivo-a-las-instrucciones-de-trabajo-de-una-operación"},{"title":"Obtén un enlace de descarga de un archivo de instrucciones de trabajo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/routings/{revision}/operations/{operation}/files/{file}","href":"/es/api-reference/rutas/obtén-un-enlace-de-descarga-de-un-archivo-de-instrucciones-de-trabajo"},{"title":"Elimina un archivo de las instrucciones de trabajo de una operación","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /manufacturing/routings/{revision}/operations/{operation}/files/{file}","href":"/es/api-reference/rutas/elimina-un-archivo-de-las-instrucciones-de-trabajo-de-una-operación"},{"title":"Subcontrata una operación de una ruta, o tráela de vuelta a la planta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/routings/{revision}/operations/{operation}/subcontract","href":"/es/api-reference/rutas/subcontrata-una-operación-de-una-ruta-o-tráela-de-vuelta-a-la-planta"}]},{"group":"Centros de trabajo","pages":[{"title":"Lista los centros de trabajo por código","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/work-centers","href":"/es/api-reference/centros-de-trabajo/lista-los-centros-de-trabajo-por-código"},{"title":"Agrega un centro de trabajo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/work-centers","href":"/es/api-reference/centros-de-trabajo/agrega-un-centro-de-trabajo"},{"title":"Obtén un centro de trabajo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/work-centers/{workCenter}","href":"/es/api-reference/centros-de-trabajo/obtén-un-centro-de-trabajo"},{"title":"Cambia un centro de trabajo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/work-centers/{workCenter}","href":"/es/api-reference/centros-de-trabajo/cambia-un-centro-de-trabajo"},{"title":"Archiva un centro de trabajo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/work-centers/{workCenter}/archive","href":"/es/api-reference/centros-de-trabajo/archiva-un-centro-de-trabajo"},{"title":"Obtén la carga de un centro de trabajo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/work-centers/{workCenter}/load","href":"/es/api-reference/centros-de-trabajo/obtén-la-carga-de-un-centro-de-trabajo"},{"title":"Restaura un centro de trabajo archivado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/work-centers/{workCenter}/restore","href":"/es/api-reference/centros-de-trabajo/restaura-un-centro-de-trabajo-archivado"}]},{"group":"Plazos de garantía","pages":[{"title":"Lista las condiciones de garantía","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/warranty-terms","href":"/es/api-reference/plazos-de-garantía/lista-las-condiciones-de-garantía"},{"title":"Define un plazo de garantía","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/warranty-terms","href":"/es/api-reference/plazos-de-garantía/define-un-plazo-de-garantía"},{"title":"Elimina una condición de garantía","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /manufacturing/warranty-terms/{term}","href":"/es/api-reference/plazos-de-garantía/elimina-una-condición-de-garantía"}]},{"group":"Trazabilidad","pages":[{"title":"Consulta la trazabilidad de un lote o número de serie","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/genealogy/{direction}","href":"/es/api-reference/trazabilidad/consulta-la-trazabilidad-de-un-lote-o-número-de-serie"},{"title":"Exporta la trazabilidad de un lote o número de serie como CSV","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/genealogy/{direction}/export","href":"/es/api-reference/trazabilidad/exporta-la-trazabilidad-de-un-lote-o-número-de-serie-como-csv"}]},{"group":"Configuración de fabricación","pages":[{"title":"Muestra la configuración de Fabricación de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/settings","href":"/es/api-reference/configuración-de-fabricación/muestra-la-configuración-de-fabricación-de-la-organización"},{"title":"Cambia la configuración de Manufactura de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /manufacturing/settings","href":"/es/api-reference/configuración-de-fabricación/cambia-la-configuración-de-manufactura-de-la-organización"}]},{"group":"Programación","pages":[{"title":"Lista las órdenes de fabricación abiertas con sus días planificados","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/schedule","href":"/es/api-reference/programación/lista-las-órdenes-de-fabricación-abiertas-con-sus-días-planificados"},{"title":"Programa órdenes de fabricación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /manufacturing/schedule","href":"/es/api-reference/programación/programa-órdenes-de-fabricación"}]},{"group":"Variaciones de costo","pages":[{"title":"Lista las variaciones de costo de las órdenes de fabricación completadas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /manufacturing/cost-variances","href":"/es/api-reference/variaciones-de-costo/lista-las-variaciones-de-costo-de-las-órdenes-de-fabricación-completadas"}]}]},{"group":"Ingeniería","pages":[{"group":"BOM","pages":[{"title":"Lista las BOM por el SKU de su artículo, activas o archivadas, con una consulta opcional","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms","href":"/es/api-reference/bom/lista-las-bom-por-el-sku-de-su-artículo-activas-o-archivadas-con-una-consulta-opcional"},{"title":"Crea la BOM de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms","href":"/es/api-reference/bom/crea-la-bom-de-un-artículo"},{"title":"Muestra una BOM con sus líneas por posición","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms/{bom}","href":"/es/api-reference/bom/muestra-una-bom-con-sus-líneas-por-posición"},{"title":"Cambia cuánto de su artículo produce una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json put /engineering/boms/{bom}","href":"/es/api-reference/bom/cambia-cuánto-de-su-artículo-produce-una-bom"},{"title":"Archiva una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/archive","href":"/es/api-reference/bom/archiva-una-bom"},{"title":"Compara dos revisiones de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms/{bom}/compare","href":"/es/api-reference/bom/compara-dos-revisiones-de-una-bom"},{"title":"Acumula el costo de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms/{bom}/cost","href":"/es/api-reference/bom/acumula-el-costo-de-una-bom"},{"title":"Desglosa una BOM en todos los niveles","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms/{bom}/explosion","href":"/es/api-reference/bom/desglosa-una-bom-en-todos-los-niveles"},{"title":"Agrega un componente a una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/lines","href":"/es/api-reference/bom/agrega-un-componente-a-una-bom"},{"title":"Cambia una línea de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json put /engineering/boms/{bom}/lines/{line}","href":"/es/api-reference/bom/cambia-una-línea-de-una-bom"},{"title":"Elimina una línea de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /engineering/boms/{bom}/lines/{line}","href":"/es/api-reference/bom/elimina-una-línea-de-una-bom"},{"title":"Define los alternativos de una línea de BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json put /engineering/boms/{bom}/lines/{line}/alternates","href":"/es/api-reference/bom/define-los-alternativos-de-una-línea-de-bom"},{"title":"Restaura una BOM archivada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/restore","href":"/es/api-reference/bom/restaura-una-bom-archivada"},{"title":"Crea la siguiente revisión de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/revisions","href":"/es/api-reference/bom/crea-la-siguiente-revisión-de-una-bom"},{"title":"Lista los planos de una revisión de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms/{bom}/revisions/{revision}/drawings","href":"/es/api-reference/bom/lista-los-planos-de-una-revisión-de-una-bom"},{"title":"Sube un plano a una revisión de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/revisions/{revision}/drawings","href":"/es/api-reference/bom/sube-un-plano-a-una-revisión-de-una-bom"},{"title":"Elimina un plano de una revisión de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /engineering/boms/{bom}/revisions/{revision}/drawings/{drawing}","href":"/es/api-reference/bom/elimina-un-plano-de-una-revisión-de-una-bom"},{"title":"Obtén un enlace de descarga de un plano","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/boms/{bom}/revisions/{revision}/drawings/{drawing}/download","href":"/es/api-reference/bom/obtén-un-enlace-de-descarga-de-un-plano"},{"title":"Reemplaza el archivo de un plano en una revisión de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/revisions/{revision}/drawings/{drawing}/replace","href":"/es/api-reference/bom/reemplaza-el-archivo-de-un-plano-en-una-revisión-de-una-bom"},{"title":"Libera una revisión en borrador de una BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/boms/{bom}/revisions/{revision}/release","href":"/es/api-reference/bom/libera-una-revisión-en-borrador-de-una-bom"}]},{"group":"Cambios de ingeniería","pages":[{"title":"Lista las órdenes de cambio de ingeniería, las más recientes primero, con un estado opcional","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/ecos","href":"/es/api-reference/cambios-de-ingeniería/lista-las-órdenes-de-cambio-de-ingeniería-las-más-recientes-primero-con-un-estado-opcional"},{"title":"Genera una orden de cambio de ingeniería","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/ecos","href":"/es/api-reference/cambios-de-ingeniería/genera-una-orden-de-cambio-de-ingeniería"},{"title":"Muestra una orden de cambio de ingeniería con sus marcas de revisión y aprobaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/ecos/{eco}","href":"/es/api-reference/cambios-de-ingeniería/muestra-una-orden-de-cambio-de-ingeniería-con-sus-marcas-de-revisión-y-aprobaciones"},{"title":"Cambia una orden de cambio de ingeniería en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json put /engineering/ecos/{eco}","href":"/es/api-reference/cambios-de-ingeniería/cambia-una-orden-de-cambio-de-ingeniería-en-borrador"},{"title":"Aprueba con una firma electrónica una orden de cambio de ingeniería enviada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/ecos/{eco}/approve","href":"/es/api-reference/cambios-de-ingeniería/aprueba-con-una-firma-electrónica-una-orden-de-cambio-de-ingeniería-enviada"},{"title":"Cancela una orden de cambio de ingeniería abierta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/ecos/{eco}/cancel","href":"/es/api-reference/cambios-de-ingeniería/cancela-una-orden-de-cambio-de-ingeniería-abierta"},{"title":"Muestra cómo afecta una orden de cambio de ingeniería a los costos de sus BOM","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/ecos/{eco}/cost-impact","href":"/es/api-reference/cambios-de-ingeniería/muestra-cómo-afecta-una-orden-de-cambio-de-ingeniería-a-los-costos-de-sus-bom"},{"title":"Implementa una orden de cambio de ingeniería aprobada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/ecos/{eco}/implement","href":"/es/api-reference/cambios-de-ingeniería/implementa-una-orden-de-cambio-de-ingeniería-aprobada"},{"title":"Rechaza una orden de cambio de ingeniería enviada o aprobada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/ecos/{eco}/reject","href":"/es/api-reference/cambios-de-ingeniería/rechaza-una-orden-de-cambio-de-ingeniería-enviada-o-aprobada"},{"title":"Envía a aprobación una orden de cambio de ingeniería en borrador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/ecos/{eco}/submit","href":"/es/api-reference/cambios-de-ingeniería/envía-a-aprobación-una-orden-de-cambio-de-ingeniería-en-borrador"}]},{"group":"Importaciones de ingeniería","pages":[{"title":"Sube un archivo de líneas de BOM, o una BOM de CAD, para importar","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/imports","href":"/es/api-reference/importaciones-de-ingeniería/sube-un-archivo-de-líneas-de-bom-o-una-bom-de-cad-para-importar"},{"title":"Muestra una importación de BOM, con un reporte de cada fila","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/imports/{import}","href":"/es/api-reference/importaciones-de-ingeniería/muestra-una-importación-de-bom-con-un-reporte-de-cada-fila"},{"title":"Asigna las columnas de una importación de BOM y revisa cada fila","deprecated":null,"version":null,"openapi":"/openapi.es.json put /engineering/imports/{import}/mapping","href":"/es/api-reference/importaciones-de-ingeniería/asigna-las-columnas-de-una-importación-de-bom-y-revisa-cada-fila"},{"title":"Ejecuta en la cola una importación de BOM comprobada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /engineering/imports/{import}/run","href":"/es/api-reference/importaciones-de-ingeniería/ejecuta-en-la-cola-una-importación-de-bom-comprobada"},{"title":"Lista las asignaciones guardadas para importaciones de BOM, por nombre","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/imports/mappings","href":"/es/api-reference/importaciones-de-ingeniería/lista-las-asignaciones-guardadas-para-importaciones-de-bom-por-nombre"}]},{"group":"Configuración de Ingeniería","pages":[{"title":"Muestra la configuración de Ingeniería de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/settings","href":"/es/api-reference/configuración-de-ingeniería/muestra-la-configuración-de-ingeniería-de-la-organización"},{"title":"Cambia la configuración de Ingeniería de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /engineering/settings","href":"/es/api-reference/configuración-de-ingeniería/cambia-la-configuración-de-ingeniería-de-la-organización"}]},{"group":"Exportaciones de ingeniería","pages":[{"title":"Exporta las BOM activas como CSV","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/exports/boms","href":"/es/api-reference/exportaciones-de-ingeniería/exporta-las-bom-activas-como-csv"}]},{"group":"Dónde se usa","pages":[{"title":"Muestra dónde se usa un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /engineering/items/{item}/where-used","href":"/es/api-reference/dónde-se-usa/muestra-dónde-se-usa-un-artículo"}]}]},{"group":"Calidad","pages":[{"group":"Planes de inspección","pages":[{"title":"Lista los planes de inspección por nombre, con un punto de inspección opcional","deprecated":null,"version":null,"openapi":"/openapi.es.json get /quality/plans","href":"/es/api-reference/planes-de-inspección/lista-los-planes-de-inspección-por-nombre-con-un-punto-de-inspección-opcional"},{"title":"Crea un plan de inspección","deprecated":null,"version":null,"openapi":"/openapi.es.json post /quality/plans","href":"/es/api-reference/planes-de-inspección/crea-un-plan-de-inspección"},{"title":"Muestra un plan de inspección con sus características","deprecated":null,"version":null,"openapi":"/openapi.es.json get /quality/plans/{plan}","href":"/es/api-reference/planes-de-inspección/muestra-un-plan-de-inspección-con-sus-características"},{"title":"Reemplaza un plan de inspección","deprecated":null,"version":null,"openapi":"/openapi.es.json put /quality/plans/{plan}","href":"/es/api-reference/planes-de-inspección/reemplaza-un-plan-de-inspección"},{"title":"Archiva un plan de inspección, para que ya no abra inspecciones","deprecated":null,"version":null,"openapi":"/openapi.es.json post /quality/plans/{plan}/archive","href":"/es/api-reference/planes-de-inspección/archiva-un-plan-de-inspección-para-que-ya-no-abra-inspecciones"},{"title":"Restaura un plan de inspección archivado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /quality/plans/{plan}/restore","href":"/es/api-reference/planes-de-inspección/restaura-un-plan-de-inspección-archivado"}]},{"group":"Inspecciones","pages":[{"title":"Lista las inspecciones, las más recientes primero","deprecated":null,"version":null,"openapi":"/openapi.es.json get /quality/inspections","href":"/es/api-reference/inspecciones/lista-las-inspecciones-las-más-recientes-primero"},{"title":"Muestra una inspección con sus características y los resultados registrados","deprecated":null,"version":null,"openapi":"/openapi.es.json get /quality/inspections/{inspection}","href":"/es/api-reference/inspecciones/muestra-una-inspección-con-sus-características-y-los-resultados-registrados"},{"title":"Obtén un enlace de descarga de la foto o el documento registrado para una característica","deprecated":null,"version":null,"openapi":"/openapi.es.json get /quality/inspections/{inspection}/files/{characteristic}","href":"/es/api-reference/inspecciones/obtén-un-enlace-de-descarga-de-la-foto-o-el-documento-registrado-para-una-característica"},{"title":"Sube la foto o el documento que pide una característica de una inspección abierta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /quality/inspections/{inspection}/files/{characteristic}","href":"/es/api-reference/inspecciones/sube-la-foto-o-el-documento-que-pide-una-característica-de-una-inspección-abierta"},{"title":"Abre una reinspección de una inspección registrada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /quality/inspections/{inspection}/reinspect","href":"/es/api-reference/inspecciones/abre-una-reinspección-de-una-inspección-registrada"},{"title":"Registra los resultados de una inspección abierta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /quality/inspections/{inspection}/results","href":"/es/api-reference/inspecciones/registra-los-resultados-de-una-inspección-abierta"}]}]},{"group":"Planificación","pages":[{"group":"Pronósticos","pages":[{"title":"Lista los pronósticos más recientes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/forecasts","href":"/es/api-reference/pronósticos/lista-los-pronósticos-más-recientes"},{"title":"Muestra el pronóstico de un artículo en una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/forecasts/{item}/{location}","href":"/es/api-reference/pronósticos/muestra-el-pronóstico-de-un-artículo-en-una-ubicación"},{"title":"Muestra la precisión del pronóstico","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/forecasts/accuracy","href":"/es/api-reference/pronósticos/muestra-la-precisión-del-pronóstico"},{"title":"Ajusta el pronóstico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/forecasts/adjustments","href":"/es/api-reference/pronósticos/ajusta-el-pronóstico"},{"title":"Deshaz un ajuste","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /planning/forecasts/adjustments/{adjustment}","href":"/es/api-reference/pronósticos/deshaz-un-ajuste"},{"title":"Lista las excepciones de pronóstico","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/forecasts/exceptions","href":"/es/api-reference/pronósticos/lista-las-excepciones-de-pronóstico"},{"title":"Inicia una ejecución de pronóstico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/forecasts/runs","href":"/es/api-reference/pronósticos/inicia-una-ejecución-de-pronóstico"}]},{"group":"Escenarios","pages":[{"title":"Lista los escenarios","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/scenarios","href":"/es/api-reference/escenarios/lista-los-escenarios"},{"title":"Crea un escenario","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/scenarios","href":"/es/api-reference/escenarios/crea-un-escenario"},{"title":"Muestra un escenario","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/scenarios/{scenario}","href":"/es/api-reference/escenarios/muestra-un-escenario"},{"title":"Elimina un escenario","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /planning/scenarios/{scenario}","href":"/es/api-reference/escenarios/elimina-un-escenario"},{"title":"Encuentra clientes para un escenario","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/scenarios/customers","href":"/es/api-reference/escenarios/encuentra-clientes-para-un-escenario"},{"title":"Encuentra artículos para un escenario","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/scenarios/items","href":"/es/api-reference/escenarios/encuentra-artículos-para-un-escenario"}]},{"group":"Demanda","pages":[{"title":"Lista la demanda por artículo y ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/demand","href":"/es/api-reference/demanda/lista-la-demanda-por-artículo-y-ubicación"},{"title":"Muestra la demanda de un artículo en una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/demand/{item}/{location}","href":"/es/api-reference/demanda/muestra-la-demanda-de-un-artículo-en-una-ubicación"},{"title":"Marca un pedido como no recurrente","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/demand/{item}/{location}/one-off","href":"/es/api-reference/demanda/marca-un-pedido-como-no-recurrente"},{"title":"Vuelve a contar un pedido único como demanda","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /planning/demand/{item}/{location}/one-off/{reference}","href":"/es/api-reference/demanda/vuelve-a-contar-un-pedido-único-como-demanda"},{"title":"Deja fuera de los pronósticos las semanas atípicas de un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /planning/demand/{item}/{location}/outliers","href":"/es/api-reference/demanda/deja-fuera-de-los-pronósticos-las-semanas-atípicas-de-un-artículo"}]},{"group":"Sugerencias","pages":[{"title":"Lista las sugerencias de reorden","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/suggestions","href":"/es/api-reference/sugerencias/lista-las-sugerencias-de-reorden"},{"title":"Acepta una sugerencia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/suggestions/{suggestion}/accept","href":"/es/api-reference/sugerencias/acepta-una-sugerencia"},{"title":"Descarta una sugerencia","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/suggestions/{suggestion}/dismiss","href":"/es/api-reference/sugerencias/descarta-una-sugerencia"},{"title":"Vuelve a calcular las sugerencias","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/suggestions/refresh","href":"/es/api-reference/sugerencias/vuelve-a-calcular-las-sugerencias"}]},{"group":"Reabastecimiento","pages":[{"title":"Muestra el reabastecimiento de un artículo en una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/replenishment/{item}/{location}","href":"/es/api-reference/reabastecimiento/muestra-el-reabastecimiento-de-un-artículo-en-una-ubicación"},{"title":"Define la política de un artículo en una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /planning/replenishment/{item}/{location}/policy","href":"/es/api-reference/reabastecimiento/define-la-política-de-un-artículo-en-una-ubicación"},{"title":"Elimina la política de un artículo en una ubicación","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /planning/replenishment/{item}/{location}/policy","href":"/es/api-reference/reabastecimiento/elimina-la-política-de-un-artículo-en-una-ubicación"}]},{"group":"Días festivos","pages":[{"title":"Agrega un feriado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /planning/holidays","href":"/es/api-reference/días-festivos/agrega-un-feriado"},{"title":"Elimina un día festivo","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /planning/holidays/{holiday}","href":"/es/api-reference/días-festivos/elimina-un-día-festivo"}]},{"group":"Configuración de planificación","pages":[{"title":"Muestra la configuración de Planificación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /planning/settings","href":"/es/api-reference/configuración-de-planificación/muestra-la-configuración-de-planificación"},{"title":"Cambia la configuración de Planificación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /planning/settings","href":"/es/api-reference/configuración-de-planificación/cambia-la-configuración-de-planificación"}]}]},{"group":"Automatización","pages":[{"group":"Automatizaciones","pages":[{"title":"Lista las automatizaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/automations","href":"/es/api-reference/automatizaciones/lista-las-automatizaciones"},{"title":"Crea una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations","href":"/es/api-reference/automatizaciones/crea-una-automatización"},{"title":"Muestra una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/automations/{automation}","href":"/es/api-reference/automatizaciones/muestra-una-automatización"},{"title":"Cambia una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /automation/automations/{automation}","href":"/es/api-reference/automatizaciones/cambia-una-automatización"},{"title":"Archiva una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/archive","href":"/es/api-reference/automatizaciones/archiva-una-automatización"},{"title":"Guarda el borrador de una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /automation/automations/{automation}/draft","href":"/es/api-reference/automatizaciones/guarda-el-borrador-de-una-automatización"},{"title":"Publica el borrador de una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/draft/publish","href":"/es/api-reference/automatizaciones/publica-el-borrador-de-una-automatización"},{"title":"Restaura una automatización archivada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/restore","href":"/es/api-reference/automatizaciones/restaura-una-automatización-archivada"},{"title":"Ejecuta una automatización ahora","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/runs","href":"/es/api-reference/automatizaciones/ejecuta-una-automatización-ahora"},{"title":"Crea el secreto de firma de un paso de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/steps/{step}/secret","href":"/es/api-reference/automatizaciones/crea-el-secreto-de-firma-de-un-paso-de-webhook"},{"title":"Prueba una automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/test","href":"/es/api-reference/automatizaciones/prueba-una-automatización"},{"title":"Muestra una versión publicada","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/automations/{automation}/versions/{number}","href":"/es/api-reference/automatizaciones/muestra-una-versión-publicada"},{"title":"Vuelve a publicar una versión anterior","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/automations/{automation}/versions/{number}/publish","href":"/es/api-reference/automatizaciones/vuelve-a-publicar-una-versión-anterior"}]},{"group":"Ejecuciones","pages":[{"title":"Lista las ejecuciones de automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/runs","href":"/es/api-reference/ejecuciones/lista-las-ejecuciones-de-automatización"},{"title":"Muestra una ejecución de automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/runs/{run}","href":"/es/api-reference/ejecuciones/muestra-una-ejecución-de-automatización"},{"title":"Cancela una ejecución de automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/runs/{run}/cancel","href":"/es/api-reference/ejecuciones/cancela-una-ejecución-de-automatización"},{"title":"Repite una ejecución de automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/runs/{run}/replay","href":"/es/api-reference/ejecuciones/repite-una-ejecución-de-automatización"},{"title":"Reintenta una ejecución de automatización fallida","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/runs/{run}/retry","href":"/es/api-reference/ejecuciones/reintenta-una-ejecución-de-automatización-fallida"}]},{"group":"Aprobaciones","pages":[{"title":"Lista las aprobaciones que te esperan","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/approvals","href":"/es/api-reference/aprobaciones/lista-las-aprobaciones-que-te-esperan"},{"title":"Aprueba una ejecución de automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/approvals/{approval}/approve","href":"/es/api-reference/aprobaciones/aprueba-una-ejecución-de-automatización"},{"title":"Rechaza una ejecución de automatización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/approvals/{approval}/reject","href":"/es/api-reference/aprobaciones/rechaza-una-ejecución-de-automatización"}]},{"group":"Configuración de automatización","pages":[{"title":"Muestra la configuración de automatización de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/settings","href":"/es/api-reference/configuración-de-automatización/muestra-la-configuración-de-automatización-de-la-organización"},{"title":"Cambia la configuración de automatización de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /automation/settings","href":"/es/api-reference/configuración-de-automatización/cambia-la-configuración-de-automatización-de-la-organización"},{"title":"Cambia los hosts a los que pueden llamar los pasos de webhook en el entorno federal","deprecated":null,"version":null,"openapi":"/openapi.es.json put /automation/settings/webhook-hosts","href":"/es/api-reference/configuración-de-automatización/cambia-los-hosts-a-los-que-pueden-llamar-los-pasos-de-webhook-en-el-entorno-federal"}]},{"group":"Plantillas de automatización","pages":[{"title":"Lista las plantillas iniciales","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/templates","href":"/es/api-reference/plantillas-de-automatización/lista-las-plantillas-iniciales"},{"title":"Crea una automatización a partir de una plantilla","deprecated":null,"version":null,"openapi":"/openapi.es.json post /automation/templates/{template}/use","href":"/es/api-reference/plantillas-de-automatización/crea-una-automatización-a-partir-de-una-plantilla"}]},{"group":"Eventos","pages":[{"title":"Lista los eventos que una automatización puede esperar","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/events","href":"/es/api-reference/eventos/lista-los-eventos-que-una-automatización-puede-esperar"}]},{"group":"Catálogo de pasos","pages":[{"title":"Lista el catálogo de pasos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /automation/steps","href":"/es/api-reference/catálogo-de-pasos/lista-el-catálogo-de-pasos"}]}]},{"group":"Insights","pages":[{"group":"Vistas","pages":[{"title":"Lista las vistas guardadas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/views","href":"/es/api-reference/vistas/lista-las-vistas-guardadas"},{"title":"Guarda una vista","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/views/{view}","href":"/es/api-reference/vistas/guarda-una-vista"},{"title":"Lee una vista guardada","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/views/{view}","href":"/es/api-reference/vistas/lee-una-vista-guardada"},{"title":"Guarda una vista","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/views/{view}","href":"/es/api-reference/vistas/guarda-una-vista"},{"title":"Elimina una vista","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/views/{view}","href":"/es/api-reference/vistas/elimina-una-vista"},{"title":"Agrega una nota a un gráfico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/views/{view}/annotations","href":"/es/api-reference/vistas/agrega-una-nota-a-un-gráfico"},{"title":"Elimina una nota de un gráfico","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/views/{view}/annotations/{annotation}","href":"/es/api-reference/vistas/elimina-una-nota-de-un-gráfico"},{"title":"Duplica una vista","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/views/{view}/duplicate","href":"/es/api-reference/vistas/duplica-una-vista"},{"title":"Marca un favorito","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/views/{view}/favorite","href":"/es/api-reference/vistas/marca-un-favorito"},{"title":"Quita la marca de favorito","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/views/{view}/favorite","href":"/es/api-reference/vistas/quita-la-marca-de-favorito"},{"title":"Comparte una vista","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/views/{view}/sharing","href":"/es/api-reference/vistas/comparte-una-vista"},{"title":"Restaura una versión de una vista","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/views/{view}/versions/{version}/restore","href":"/es/api-reference/vistas/restaura-una-versión-de-una-vista"}]},{"group":"Paneles","pages":[{"title":"Lista los paneles","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/dashboards","href":"/es/api-reference/paneles/lista-los-paneles"},{"title":"Guarda un panel","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/dashboards/{dashboard}","href":"/es/api-reference/paneles/guarda-un-panel"},{"title":"Lee un panel","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/dashboards/{dashboard}","href":"/es/api-reference/paneles/lee-un-panel"},{"title":"Guarda un panel","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/dashboards/{dashboard}","href":"/es/api-reference/paneles/guarda-un-panel"},{"title":"Elimina un panel","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/dashboards/{dashboard}","href":"/es/api-reference/paneles/elimina-un-panel"},{"title":"Comparte un panel","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/dashboards/{dashboard}/sharing","href":"/es/api-reference/paneles/comparte-un-panel"},{"title":"Ejecuta un widget de panel","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/dashboards/{dashboard}/widgets/{widget}/run","href":"/es/api-reference/paneles/ejecuta-un-widget-de-panel"},{"title":"Elige un panel de inicio","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/dashboards/home","href":"/es/api-reference/paneles/elige-un-panel-de-inicio"}]},{"group":"Conjuntos de datos","pages":[{"title":"Lista los conjuntos de datos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/datasets","href":"/es/api-reference/conjuntos-de-datos/lista-los-conjuntos-de-datos"},{"title":"Muestra un conjunto de datos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/datasets/{dataset}","href":"/es/api-reference/conjuntos-de-datos/muestra-un-conjunto-de-datos"},{"title":"Guarda un campo calculado","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/datasets/{dataset}/calculated-fields/{field}","href":"/es/api-reference/conjuntos-de-datos/guarda-un-campo-calculado"},{"title":"Guarda un campo calculado","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/datasets/{dataset}/calculated-fields/{field}","href":"/es/api-reference/conjuntos-de-datos/guarda-un-campo-calculado"},{"title":"Elimina un campo calculado","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/datasets/{dataset}/calculated-fields/{field}","href":"/es/api-reference/conjuntos-de-datos/elimina-un-campo-calculado"}]},{"group":"Programaciones","pages":[{"title":"Lista los reportes programados y las alertas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/schedules","href":"/es/api-reference/programaciones/lista-los-reportes-programados-y-las-alertas"},{"title":"Guarda un reporte programado o una alerta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/schedules/{schedule}","href":"/es/api-reference/programaciones/guarda-un-reporte-programado-o-una-alerta"},{"title":"Guarda un reporte programado o una alerta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/schedules/{schedule}","href":"/es/api-reference/programaciones/guarda-un-reporte-programado-o-una-alerta"},{"title":"Elimina un reporte programado o una alerta","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/schedules/{schedule}","href":"/es/api-reference/programaciones/elimina-un-reporte-programado-o-una-alerta"},{"title":"Pausa o reanuda un reporte programado o una alerta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/schedules/{schedule}/pause","href":"/es/api-reference/programaciones/pausa-o-reanuda-un-reporte-programado-o-una-alerta"}]},{"group":"KPI","pages":[{"title":"Lista los KPI","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/kpis","href":"/es/api-reference/kpi/lista-los-kpi"},{"title":"Guarda un KPI","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/kpis/{kpi}","href":"/es/api-reference/kpi/guarda-un-kpi"},{"title":"Guarda un KPI","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/kpis/{kpi}","href":"/es/api-reference/kpi/guarda-un-kpi"},{"title":"Elimina un KPI","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/kpis/{kpi}","href":"/es/api-reference/kpi/elimina-un-kpi"}]},{"group":"Panel","pages":[{"title":"Muestra los primeros pasos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /dashboard/first-steps","href":"/es/api-reference/panel/muestra-los-primeros-pasos"},{"title":"Oculta o muestra los primeros pasos","deprecated":null,"version":null,"openapi":"/openapi.es.json put /dashboard/first-steps","href":"/es/api-reference/panel/oculta-o-muestra-los-primeros-pasos"},{"title":"Muestra el panel","deprecated":null,"version":null,"openapi":"/openapi.es.json get /dashboard/overview","href":"/es/api-reference/panel/muestra-el-panel"}]},{"group":"Carpetas de vistas","pages":[{"title":"Guarda una carpeta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/view-folders/{folder}","href":"/es/api-reference/carpetas-de-vistas/guarda-una-carpeta"},{"title":"Guarda una carpeta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /insights/view-folders/{folder}","href":"/es/api-reference/carpetas-de-vistas/guarda-una-carpeta"},{"title":"Elimina una carpeta","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /insights/view-folders/{folder}","href":"/es/api-reference/carpetas-de-vistas/elimina-una-carpeta"}]},{"group":"Exportaciones de Insights","pages":[{"title":"Exporta un informe","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/exports","href":"/es/api-reference/exportaciones-de-insights/exporta-un-informe"},{"title":"Lee una exportación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/exports/{export}","href":"/es/api-reference/exportaciones-de-insights/lee-una-exportación"}]},{"group":"Plantillas de reportes","pages":[{"title":"Lista las plantillas de reportes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /insights/templates","href":"/es/api-reference/plantillas-de-reportes/lista-las-plantillas-de-reportes"},{"title":"Crea una vista a partir de una plantilla","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/templates/{template}/views","href":"/es/api-reference/plantillas-de-reportes/crea-una-vista-a-partir-de-una-plantilla"}]},{"group":"Reportes","pages":[{"title":"Dibuja un informe como gráfico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/reports/chart","href":"/es/api-reference/reportes/dibuja-un-informe-como-gráfico"},{"title":"Ejecuta un reporte","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/reports/run","href":"/es/api-reference/reportes/ejecuta-un-reporte"}]},{"group":"Plantillas de panel","pages":[{"title":"Crea un panel a partir de una plantilla","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/dashboard-templates/{template}/dashboards","href":"/es/api-reference/plantillas-de-panel/crea-un-panel-a-partir-de-una-plantilla"}]},{"group":"Fórmulas","pages":[{"title":"Comprueba una fórmula","deprecated":null,"version":null,"openapi":"/openapi.es.json post /insights/formulas/validate","href":"/es/api-reference/fórmulas/comprueba-una-fórmula"}]}]},{"group":"Integraciones","pages":[{"group":"Conexiones","pages":[{"title":"Lista las conexiones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections","href":"/es/api-reference/conexiones/lista-las-conexiones"},{"title":"Muestra una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}","href":"/es/api-reference/conexiones/muestra-una-conexión"},{"title":"Cambia el nombre de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json patch /integrations/connections/{connection}","href":"/es/api-reference/conexiones/cambia-el-nombre-de-una-conexión"},{"title":"Desconecta una integración","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /integrations/connections/{connection}","href":"/es/api-reference/conexiones/desconecta-una-integración"},{"title":"Lista los avisos de entrada de una conexión 3PL","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/3pl/notices","href":"/es/api-reference/conexiones/lista-los-avisos-de-entrada-de-una-conexión-3pl"},{"title":"Reenvía un aviso de entrada","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/3pl/notices/{notice}/resend","href":"/es/api-reference/conexiones/reenvía-un-aviso-de-entrada"},{"title":"Lista las solicitudes de cumplimiento de una conexión 3PL","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/3pl/requests","href":"/es/api-reference/conexiones/lista-las-solicitudes-de-cumplimiento-de-una-conexión-3pl"},{"title":"Reenvía una solicitud de cumplimiento","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/3pl/requests/{fulfillmentRequest}/resend","href":"/es/api-reference/conexiones/reenvía-una-solicitud-de-cumplimiento"},{"title":"Muestra la configuración de una conexión de 3PL","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/3pl/settings","href":"/es/api-reference/conexiones/muestra-la-configuración-de-una-conexión-de-3pl"},{"title":"Actualiza la configuración de una conexión 3PL","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/3pl/settings","href":"/es/api-reference/conexiones/actualiza-la-configuración-de-una-conexión-3pl"},{"title":"Lista las instantáneas de existencias de una conexión 3PL","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/3pl/snapshots","href":"/es/api-reference/conexiones/lista-las-instantáneas-de-existencias-de-una-conexión-3pl"},{"title":"Compara las existencias actuales de un 3PL","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/3pl/snapshots","href":"/es/api-reference/conexiones/compara-las-existencias-actuales-de-un-3pl"},{"title":"Mueve una conexión a otra cuenta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/account","href":"/es/api-reference/conexiones/mueve-una-conexión-a-otra-cuenta"},{"title":"Previsualiza el asiento del valor de inventario de un día","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/accounting/journal-preview","href":"/es/api-reference/conexiones/previsualiza-el-asiento-del-valor-de-inventario-de-un-día"},{"title":"Lista lo que contabilizó una conexión contable","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/accounting/postings","href":"/es/api-reference/conexiones/lista-lo-que-contabilizó-una-conexión-contable"},{"title":"Muestra la configuración de una conexión contable","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/accounting/setup","href":"/es/api-reference/conexiones/muestra-la-configuración-de-una-conexión-contable"},{"title":"Actualiza la configuración de una conexión contable","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/accounting/setup","href":"/es/api-reference/conexiones/actualiza-la-configuración-de-una-conexión-contable"},{"title":"Lista las cuentas que una conexión puede abrir","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/accounts","href":"/es/api-reference/conexiones/lista-las-cuentas-que-una-conexión-puede-abrir"},{"title":"Muestra el inventario FBA de una conexión de Amazon","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/amazon/fba","href":"/es/api-reference/conexiones/muestra-el-inventario-fba-de-una-conexión-de-amazon"},{"title":"Lista los listados de un canal de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/channel/listings","href":"/es/api-reference/conexiones/lista-los-listados-de-un-canal-de-venta"},{"title":"Define el margen de seguridad de una publicación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/channel/listings/{listing}/buffer","href":"/es/api-reference/conexiones/define-el-margen-de-seguridad-de-una-publicación"},{"title":"Ignora un listado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/channel/listings/{listing}/ignore","href":"/es/api-reference/conexiones/ignora-un-listado"},{"title":"Vincula un listado con un artículo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/channel/listings/{listing}/match","href":"/es/api-reference/conexiones/vincula-un-listado-con-un-artículo"},{"title":"Crea artículos a partir de listados","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/channel/listings/items","href":"/es/api-reference/conexiones/crea-artículos-a-partir-de-listados"},{"title":"Muestra la configuración de un canal de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/channel/settings","href":"/es/api-reference/conexiones/muestra-la-configuración-de-un-canal-de-venta"},{"title":"Actualiza la configuración de un canal de ventas","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/channel/settings","href":"/es/api-reference/conexiones/actualiza-la-configuración-de-un-canal-de-ventas"},{"title":"Previsualiza las existencias de un canal de venta","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/channel/stock","href":"/es/api-reference/conexiones/previsualiza-las-existencias-de-un-canal-de-venta"},{"title":"Envía las existencias ahora","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/channel/stock/push","href":"/es/api-reference/conexiones/envía-las-existencias-ahora"},{"title":"Lista los canales de una conexión de chat","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/chat-channels","href":"/es/api-reference/conexiones/lista-los-canales-de-una-conexión-de-chat"},{"title":"Elige dónde publica alertas una conexión de chat","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/chat-settings","href":"/es/api-reference/conexiones/elige-dónde-publica-alertas-una-conexión-de-chat"},{"title":"Envía un mensaje de prueba al canal de alertas","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/chat-test","href":"/es/api-reference/conexiones/envía-un-mensaje-de-prueba-al-canal-de-alertas"},{"title":"Resuelve un conflicto de sincronización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/conflicts/{item}","href":"/es/api-reference/conexiones/resuelve-un-conflicto-de-sincronización"},{"title":"Crea los campos de StockShift en un CRM","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/crm-fields","href":"/es/api-reference/conexiones/crea-los-campos-de-stockshift-en-un-crm"},{"title":"Reintenta un registro fallido","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/items/{item}/retry","href":"/es/api-reference/conexiones/reintenta-un-registro-fallido"},{"title":"Omite un registro fallido","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/items/{item}/skip","href":"/es/api-reference/conexiones/omite-un-registro-fallido"},{"title":"Reintenta todos los registros fallidos de un tipo de problema","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/items/retry","href":"/es/api-reference/conexiones/reintenta-todos-los-registros-fallidos-de-un-tipo-de-problema"},{"title":"Lista los vínculos de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/links","href":"/es/api-reference/conexiones/lista-los-vínculos-de-una-conexión"},{"title":"Desvincula un registro","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /integrations/connections/{connection}/links/{link}","href":"/es/api-reference/conexiones/desvincula-un-registro"},{"title":"Muestra las asignaciones de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/mappings","href":"/es/api-reference/conexiones/muestra-las-asignaciones-de-una-conexión"},{"title":"Guarda las asignaciones de un tipo de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/mappings/{kind}","href":"/es/api-reference/conexiones/guarda-las-asignaciones-de-un-tipo-de-una-conexión"},{"title":"Sugiere asignaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/mappings/{kind}/suggest","href":"/es/api-reference/conexiones/sugiere-asignaciones"},{"title":"Muestra el resumen de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/overview","href":"/es/api-reference/conexiones/muestra-el-resumen-de-una-conexión"},{"title":"Pausa una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/pause","href":"/es/api-reference/conexiones/pausa-una-conexión"},{"title":"Lista los problemas de sincronización de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/problems","href":"/es/api-reference/conexiones/lista-los-problemas-de-sincronización-de-una-conexión"},{"title":"Muestra la configuración del Web Connector de una conexión de QuickBooks Desktop","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/quickbooks-desktop","href":"/es/api-reference/conexiones/muestra-la-configuración-del-web-connector-de-una-conexión-de-quickbooks-desktop"},{"title":"Emite una contraseña nueva de QuickBooks Web Connector","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/quickbooks-desktop/password","href":"/es/api-reference/conexiones/emite-una-contraseña-nueva-de-quickbooks-web-connector"},{"title":"Lista las llamadas de una conexión a su proveedor","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/requests","href":"/es/api-reference/conexiones/lista-las-llamadas-de-una-conexión-a-su-proveedor"},{"title":"Muestra una llamada al proveedor con sus cuerpos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/requests/{log}","href":"/es/api-reference/conexiones/muestra-una-llamada-al-proveedor-con-sus-cuerpos"},{"title":"Reanuda una conexión en pausa","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/resume","href":"/es/api-reference/conexiones/reanuda-una-conexión-en-pausa"},{"title":"Lista las ejecuciones de sincronización de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/runs","href":"/es/api-reference/conexiones/lista-las-ejecuciones-de-sincronización-de-una-conexión"},{"title":"Muestra una ejecución de sincronización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/runs/{run}","href":"/es/api-reference/conexiones/muestra-una-ejecución-de-sincronización"},{"title":"Cancela una ejecución de sincronización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/runs/{run}/cancel","href":"/es/api-reference/conexiones/cancela-una-ejecución-de-sincronización"},{"title":"Cambia la configuración de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/settings","href":"/es/api-reference/conexiones/cambia-la-configuración-de-una-conexión"},{"title":"Lista los flujos de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/streams","href":"/es/api-reference/conexiones/lista-los-flujos-de-una-conexión"},{"title":"Define cada cuánto se sincroniza un flujo","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/connections/{connection}/streams/{stream}","href":"/es/api-reference/conexiones/define-cada-cuánto-se-sincroniza-un-flujo"},{"title":"Vuelve a sincronizar un flujo desde una fecha","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/streams/{stream}/backfill","href":"/es/api-reference/conexiones/vuelve-a-sincronizar-un-flujo-desde-una-fecha"},{"title":"Pausa un flujo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/streams/{stream}/pause","href":"/es/api-reference/conexiones/pausa-un-flujo"},{"title":"Reanuda un flujo en pausa","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/streams/{stream}/resume","href":"/es/api-reference/conexiones/reanuda-un-flujo-en-pausa"},{"title":"Sincroniza un flujo ahora","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/streams/{stream}/sync","href":"/es/api-reference/conexiones/sincroniza-un-flujo-ahora"},{"title":"Lista los webhooks de una conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connections/{connection}/webhooks","href":"/es/api-reference/conexiones/lista-los-webhooks-de-una-conexión"},{"title":"Procesa de nuevo un webhook guardado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{connection}/webhooks/{receipt}/replay","href":"/es/api-reference/conexiones/procesa-de-nuevo-un-webhook-guardado"},{"title":"Conecta una integración con una clave de API","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{vendor}/api-key","href":"/es/api-reference/conexiones/conecta-una-integración-con-una-clave-de-api"},{"title":"Inicia una conexión OAuth","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{vendor}/oauth","href":"/es/api-reference/conexiones/inicia-una-conexión-oauth"},{"title":"Empieza a registrar una cuenta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{vendor}/registration","href":"/es/api-reference/conexiones/empieza-a-registrar-una-cuenta"},{"title":"Envía un PIN de registro","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{vendor}/registration/{connection}/pin","href":"/es/api-reference/conexiones/envía-un-pin-de-registro"},{"title":"Termina de registrar una cuenta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/connections/{vendor}/registration/{connection}/verify","href":"/es/api-reference/conexiones/termina-de-registrar-una-cuenta"}]},{"group":"Envío","pages":[{"title":"Valida una dirección de envío","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/shipping/addresses/validate","href":"/es/api-reference/envío/valida-una-dirección-de-envío"},{"title":"Compra etiquetas de envío","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/shipping/labels","href":"/es/api-reference/envío/compra-etiquetas-de-envío"},{"title":"Anula una etiqueta de envío","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/shipping/labels/{label}/void","href":"/es/api-reference/envío/anula-una-etiqueta-de-envío"},{"title":"Muestra el envío de un pedido","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/shipping/orders/{order}","href":"/es/api-reference/envío/muestra-el-envío-de-un-pedido"},{"title":"Lista los preajustes de paquete","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/shipping/presets","href":"/es/api-reference/envío/lista-los-preajustes-de-paquete"},{"title":"Crea un preajuste de paquete","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/shipping/presets","href":"/es/api-reference/envío/crea-un-preajuste-de-paquete"},{"title":"Actualiza un preajuste de paquete","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/shipping/presets/{preset}","href":"/es/api-reference/envío/actualiza-un-preajuste-de-paquete"},{"title":"Elimina un preajuste de paquete","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /integrations/shipping/presets/{preset}","href":"/es/api-reference/envío/elimina-un-preajuste-de-paquete"},{"title":"Cotiza tarifas de envío","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/shipping/rates","href":"/es/api-reference/envío/cotiza-tarifas-de-envío"},{"title":"Compra una etiqueta de devolución","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/shipping/return-labels","href":"/es/api-reference/envío/compra-una-etiqueta-de-devolución"},{"title":"Muestra la configuración de envíos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/shipping/settings","href":"/es/api-reference/envío/muestra-la-configuración-de-envíos"},{"title":"Actualiza la configuración de envíos","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/shipping/settings","href":"/es/api-reference/envío/actualiza-la-configuración-de-envíos"}]},{"group":"Migraciones","pages":[{"title":"Lista las migraciones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/migrations","href":"/es/api-reference/migraciones/lista-las-migraciones"},{"title":"Inicia una migración","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/migrations","href":"/es/api-reference/migraciones/inicia-una-migración"},{"title":"Muestra una migración","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/migrations/{migration}","href":"/es/api-reference/migraciones/muestra-una-migración"},{"title":"Revisa una migración","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/migrations/{migration}/check","href":"/es/api-reference/migraciones/revisa-una-migración"},{"title":"Asigna las columnas de una entidad","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/migrations/{migration}/columns/{entity}","href":"/es/api-reference/migraciones/asigna-las-columnas-de-una-entidad"},{"title":"Sugiere asignaciones de columnas con IA","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/migrations/{migration}/columns/{entity}/suggest","href":"/es/api-reference/migraciones/sugiere-asignaciones-de-columnas-con-ia"},{"title":"Confirma una migración","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/migrations/{migration}/commit","href":"/es/api-reference/migraciones/confirma-una-migración"},{"title":"Lista las filas de una migración","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/migrations/{migration}/rows","href":"/es/api-reference/migraciones/lista-las-filas-de-una-migración"},{"title":"Deshaz una migración","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/migrations/{migration}/undo","href":"/es/api-reference/migraciones/deshaz-una-migración"},{"title":"Actualiza la configuración de migración","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/migrations/settings","href":"/es/api-reference/migraciones/actualiza-la-configuración-de-migración"},{"title":"Lista lo que una migración puede traer","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/migrations/sources","href":"/es/api-reference/migraciones/lista-lo-que-una-migración-puede-traer"}]},{"group":"Abastecimiento","pages":[{"title":"Cotiza una revisión de BOM con los distribuidores","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/sourcing/boms/{revision}","href":"/es/api-reference/abastecimiento/cotiza-una-revisión-de-bom-con-los-distribuidores"},{"title":"Muestra los artículos vinculados de una conexión de distribuidor","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/sourcing/connections/{connection}","href":"/es/api-reference/abastecimiento/muestra-los-artículos-vinculados-de-una-conexión-de-distribuidor"},{"title":"Vincula un artículo con una pieza de distribuidor","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/sourcing/connections/{connection}/links","href":"/es/api-reference/abastecimiento/vincula-un-artículo-con-una-pieza-de-distribuidor"},{"title":"Desvincula un artículo de una parte del distribuidor","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /integrations/sourcing/connections/{connection}/links/{item}","href":"/es/api-reference/abastecimiento/desvincula-un-artículo-de-una-parte-del-distribuidor"},{"title":"Busca una pieza en un distribuidor","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/sourcing/connections/{connection}/parts","href":"/es/api-reference/abastecimiento/busca-una-pieza-en-un-distribuidor"}]},{"group":"CAD","pages":[{"title":"Lista los ensambles de una conexión CAD","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/cad/connections/{connection}/assemblies","href":"/es/api-reference/cad/lista-los-ensambles-de-una-conexión-cad"},{"title":"Vigila un ensamble CAD","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/cad/connections/{connection}/watched","href":"/es/api-reference/cad/vigila-un-ensamble-cad"},{"title":"Deja de vigilar un ensamble de CAD","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /integrations/cad/connections/{connection}/watched","href":"/es/api-reference/cad/deja-de-vigilar-un-ensamble-de-cad"}]},{"group":"Exportación de datos","pages":[{"title":"Lista las exportaciones de datos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/data-export","href":"/es/api-reference/exportación-de-datos/lista-las-exportaciones-de-datos"},{"title":"Exporta todos los datos de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/data-export","href":"/es/api-reference/exportación-de-datos/exporta-todos-los-datos-de-la-organización"},{"title":"Descarga una exportación de datos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/data-export/{export}/download","href":"/es/api-reference/exportación-de-datos/descarga-una-exportación-de-datos"}]},{"group":"Direcciones fiscales","pages":[{"title":"Lista las direcciones fiscales","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/tax/addresses","href":"/es/api-reference/direcciones-fiscales/lista-las-direcciones-fiscales"},{"title":"Guarda una dirección fiscal","deprecated":null,"version":null,"openapi":"/openapi.es.json put /integrations/tax/addresses","href":"/es/api-reference/direcciones-fiscales/guarda-una-dirección-fiscal"},{"title":"Resuelve una dirección fiscal","deprecated":null,"version":null,"openapi":"/openapi.es.json post /integrations/tax/addresses/resolve","href":"/es/api-reference/direcciones-fiscales/resuelve-una-dirección-fiscal"}]},{"group":"Conectores","pages":[{"title":"Muestra lo que se necesita para conectar una integración","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/connectors/{vendor}","href":"/es/api-reference/conectores/muestra-lo-que-se-necesita-para-conectar-una-integración"},{"title":"Muestra el directorio de integraciones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /integrations/directory","href":"/es/api-reference/conectores/muestra-el-directorio-de-integraciones"}]}]},{"group":"Etiquetas","pages":[{"group":"Conjuntos de etiquetas","pages":[{"title":"Imprime etiquetas para una lista de existencias disponibles","deprecated":null,"version":null,"openapi":"/openapi.es.json post /inventory/label-sets","href":"/es/api-reference/conjuntos-de-etiquetas/imprime-etiquetas-para-una-lista-de-existencias-disponibles"},{"title":"Lista los conjuntos de etiquetas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /labels/sets","href":"/es/api-reference/conjuntos-de-etiquetas/lista-los-conjuntos-de-etiquetas"},{"title":"Obtén un conjunto de etiquetas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /labels/sets/{set}","href":"/es/api-reference/conjuntos-de-etiquetas/obtén-un-conjunto-de-etiquetas"},{"title":"Previsualiza la etiqueta de una pieza como SVG","deprecated":null,"version":null,"openapi":"/openapi.es.json get /labels/sets/{set}/pieces/{number}/preview","href":"/es/api-reference/conjuntos-de-etiquetas/previsualiza-la-etiqueta-de-una-pieza-como-svg"},{"title":"Reimprime etiquetas como PDF","deprecated":null,"version":null,"openapi":"/openapi.es.json post /labels/sets/{set}/reprints","href":"/es/api-reference/conjuntos-de-etiquetas/reimprime-etiquetas-como-pdf"}]},{"group":"Plantillas de etiquetas","pages":[{"title":"Lista las plantillas de etiquetas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /labels/templates","href":"/es/api-reference/plantillas-de-etiquetas/lista-las-plantillas-de-etiquetas"},{"title":"Cambia una plantilla de etiqueta","deprecated":null,"version":null,"openapi":"/openapi.es.json put /labels/templates/{source}","href":"/es/api-reference/plantillas-de-etiquetas/cambia-una-plantilla-de-etiqueta"},{"title":"Previsualiza una plantilla de etiqueta como SVG","deprecated":null,"version":null,"openapi":"/openapi.es.json post /labels/templates/{source}/preview","href":"/es/api-reference/plantillas-de-etiquetas/previsualiza-una-plantilla-de-etiqueta-como-svg"}]},{"group":"Piezas","pages":[{"title":"Obtén una pieza por su ID de pieza","deprecated":null,"version":null,"openapi":"/openapi.es.json get /labels/pieces/{code}","href":"/es/api-reference/piezas/obtén-una-pieza-por-su-id-de-pieza"}]}]},{"group":"Documentos","pages":[{"group":"Marca y plantillas","pages":[{"title":"Muestra la marca y las plantillas de los documentos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /documents","href":"/es/api-reference/marca-y-plantillas/muestra-la-marca-y-las-plantillas-de-los-documentos"},{"title":"Cambia la marca de los documentos","deprecated":null,"version":null,"openapi":"/openapi.es.json post /documents/branding","href":"/es/api-reference/marca-y-plantillas/cambia-la-marca-de-los-documentos"},{"title":"Descarga un documento enviado","deprecated":null,"version":null,"openapi":"/openapi.es.json get /documents/sent/{sent}","href":"/es/api-reference/marca-y-plantillas/descarga-un-documento-enviado"},{"title":"Crea una plantilla de documento","deprecated":null,"version":null,"openapi":"/openapi.es.json post /documents/templates","href":"/es/api-reference/marca-y-plantillas/crea-una-plantilla-de-documento"},{"title":"Cambia una plantilla de documento","deprecated":null,"version":null,"openapi":"/openapi.es.json put /documents/templates/{template}","href":"/es/api-reference/marca-y-plantillas/cambia-una-plantilla-de-documento"},{"title":"Archiva una plantilla de documento","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /documents/templates/{template}","href":"/es/api-reference/marca-y-plantillas/archiva-una-plantilla-de-documento"}]}]},{"group":"Dispositivos","pages":[{"group":"Apps móviles","pages":[{"title":"Consulta en qué estado está un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /apps/device","href":"/es/api-reference/apps-móviles/consulta-en-qué-estado-está-un-dispositivo"},{"title":"Inscribe un dispositivo compartido o quiosco","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/enroll","href":"/es/api-reference/apps-móviles/inscribe-un-dispositivo-compartido-o-quiosco"},{"title":"Informa que un dispositivo bloqueó a un miembro para firmar","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/pin-locks","href":"/es/api-reference/apps-móviles/informa-que-un-dispositivo-bloqueó-a-un-miembro-para-firmar"},{"title":"Registra el token push de la app que llama","deprecated":null,"version":null,"openapi":"/openapi.es.json put /apps/push-token","href":"/es/api-reference/apps-móviles/registra-el-token-push-de-la-app-que-llama"},{"title":"Elimina el token push de la app que llama","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /apps/push-token","href":"/es/api-reference/apps-móviles/elimina-el-token-push-de-la-app-que-llama"},{"title":"Cierra la sesión de la app que llama","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/revoke","href":"/es/api-reference/apps-móviles/cierra-la-sesión-de-la-app-que-llama"},{"title":"Lista las apps en las que el miembro tiene la sesión iniciada","deprecated":null,"version":null,"openapi":"/openapi.es.json get /apps/sessions","href":"/es/api-reference/apps-móviles/lista-las-apps-en-las-que-el-miembro-tiene-la-sesión-iniciada"},{"title":"Cierra la sesión de una de las apps del miembro","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /apps/sessions/{session}","href":"/es/api-reference/apps-móviles/cierra-la-sesión-de-una-de-las-apps-del-miembro"},{"title":"Firma con un PIN en un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/signatures","href":"/es/api-reference/apps-móviles/firma-con-un-pin-en-un-dispositivo"},{"title":"Intercambia un código de firma","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/signatures/exchange","href":"/es/api-reference/apps-móviles/intercambia-un-código-de-firma"},{"title":"Inicia sesión en una app o actualiza su sesión","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/token","href":"/es/api-reference/apps-móviles/inicia-sesión-en-una-app-o-actualiza-su-sesión"},{"title":"Consulta qué versiones de la app atiende la API","deprecated":null,"version":null,"openapi":"/openapi.es.json get /apps/version-policy","href":"/es/api-reference/apps-móviles/consulta-qué-versiones-de-la-app-atiende-la-api"},{"title":"Informa que un dispositivo se borró solo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /apps/wipe-receipts","href":"/es/api-reference/apps-móviles/informa-que-un-dispositivo-se-borró-solo"}]},{"group":"Dispositivos","pages":[{"title":"Lista los dispositivos","deprecated":null,"version":null,"openapi":"/openapi.es.json get /devices","href":"/es/api-reference/dispositivos/lista-los-dispositivos"},{"title":"Muestra un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json get /devices/{device}","href":"/es/api-reference/dispositivos/muestra-un-dispositivo"},{"title":"Cambia el nombre de un dispositivo, o define dónde trabaja","deprecated":null,"version":null,"openapi":"/openapi.es.json patch /devices/{device}","href":"/es/api-reference/dispositivos/cambia-el-nombre-de-un-dispositivo-o-define-dónde-trabaja"},{"title":"Bloquea un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/{device}/lock","href":"/es/api-reference/dispositivos/bloquea-un-dispositivo"},{"title":"Haz que un dispositivo compartido olvide a un miembro","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/{device}/members/{member}/forget","href":"/es/api-reference/dispositivos/haz-que-un-dispositivo-compartido-olvide-a-un-miembro"},{"title":"Retira un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/{device}/retire","href":"/es/api-reference/dispositivos/retira-un-dispositivo"},{"title":"Desbloquea un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/{device}/unlock","href":"/es/api-reference/dispositivos/desbloquea-un-dispositivo"},{"title":"Borra un dispositivo","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/{device}/wipe","href":"/es/api-reference/dispositivos/borra-un-dispositivo"},{"title":"Cierra un borrado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/{device}/wipe/close","href":"/es/api-reference/dispositivos/cierra-un-borrado"}]},{"group":"Configuración del escáner","pages":[{"title":"Obtén tus preferencias de escáner","deprecated":null,"version":null,"openapi":"/openapi.es.json get /me/scanner-preferences","href":"/es/api-reference/configuración-del-escáner/obtén-tus-preferencias-de-escáner"},{"title":"Cambia tus preferencias de escáner","deprecated":null,"version":null,"openapi":"/openapi.es.json put /me/scanner-preferences","href":"/es/api-reference/configuración-del-escáner/cambia-tus-preferencias-de-escáner"},{"title":"Obtén los códigos de barras de configuración de un escáner","deprecated":null,"version":null,"openapi":"/openapi.es.json get /scanning/setup-sheets/{brand}/{family}","href":"/es/api-reference/configuración-del-escáner/obtén-los-códigos-de-barras-de-configuración-de-un-escáner"}]},{"group":"Inscripciones","pages":[{"title":"Crea un código de inscripción","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/enrollments","href":"/es/api-reference/inscripciones/crea-un-código-de-inscripción"},{"title":"Revoca un código de inscripción","deprecated":null,"version":null,"openapi":"/openapi.es.json post /devices/enrollments/{enrollment}/revoke","href":"/es/api-reference/inscripciones/revoca-un-código-de-inscripción"}]}]},{"group":"Sincronización","pages":[{"group":"Feeds de sincronización","pages":[{"title":"Lista los feeds de sincronización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sync/feeds","href":"/es/api-reference/feeds-de-sincronización/lista-los-feeds-de-sincronización"},{"title":"Obtén los cambios de un feed","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sync/feeds/{feed}/changes","href":"/es/api-reference/feeds-de-sincronización/obtén-los-cambios-de-un-feed"},{"title":"Descarga la instantánea de un feed","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sync/feeds/{feed}/snapshot","href":"/es/api-reference/feeds-de-sincronización/descarga-la-instantánea-de-un-feed"},{"title":"Consulta qué tiene que hacer un dispositivo que consulta periódicamente","description":"Para dispositivos que no reciben notificaciones push, como los dispositivos Android sin Google Play Services. Consulta cada 60 segundos en primer plano y cada 15 minutos en segundo plano. Devuelve el cursor al inicio de cada feed que este miembro, plan y dispositivo pueden usar, y el bloqueo o borrado que espera al dispositivo. Un feed cuyo cursor difiere del que tiene el dispositivo tiene cambios por obtener. La respuesta lleva un `ETag`: envíalo de vuelta como `If-None-Match`, y una respuesta sin cambios es `304` sin cuerpo.\n\nNombra el dispositivo en el encabezado `StockShift-Device` y firma una prueba DPoP (RFC 9449) con la clave del dispositivo para `GET` y esta dirección. Así, un dispositivo bloqueado o borrado igual recibe una respuesta, con cualquier versión de la app. Para conocer los feeds, agrega el token de acceso del miembro como token bearer. Debe tener `sync:read` y haberse emitido en este dispositivo. Limitado a 30 solicitudes por minuto por clave.","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sync/pending","href":"/es/api-reference/feeds-de-sincronización/consulta-qué-tiene-que-hacer-un-dispositivo-que-consulta-periódicamente"}]},{"group":"Comandos de sincronización","pages":[{"title":"Envía comandos sin conexión","deprecated":null,"version":null,"openapi":"/openapi.es.json post /sync/commands","href":"/es/api-reference/comandos-de-sincronización/envía-comandos-sin-conexión"},{"title":"Muestra el resultado almacenado de un comando","description":"Devuelve qué pasó con un comando que envió este miembro: `applied` o\n`rejected`, con los ids de lo que creó o cambió y, si se rechazó,\nsu `code` y `message`. `{id}` es el id del comando, el UUIDv7 que creó el\ndispositivo. Los resultados se conservan 90 días. Un comando que nunca se ejecutó, se\naplazó o lo envió otro miembro responde `404`. La respuesta siempre\ntiene `replayed` en `true`.\n\nRequiere un token de un dispositivo registrado con `sync:read`.","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sync/commands/{id}","href":"/es/api-reference/comandos-de-sincronización/muestra-el-resultado-almacenado-de-un-comando"}]},{"group":"Archivos de sincronización","pages":[{"title":"Descarga un archivo al que remite un feed","deprecated":null,"version":null,"openapi":"/openapi.es.json get /sync/files/{file}","href":"/es/api-reference/archivos-de-sincronización/descarga-un-archivo-al-que-remite-un-feed"}]}]},{"group":"Acceso","pages":[{"group":"Perfil","pages":[{"title":"Obtén tu perfil","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/profile","href":"/es/api-reference/perfil/obtén-tu-perfil"},{"title":"Actualiza tu perfil","deprecated":null,"version":null,"openapi":"/openapi.es.json patch /access/profile","href":"/es/api-reference/perfil/actualiza-tu-perfil"},{"title":"Borra la cuenta a la que pertenece el token","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/erasure","href":"/es/api-reference/perfil/borra-la-cuenta-a-la-que-pertenece-el-token"},{"title":"Define tu idioma","deprecated":null,"version":null,"openapi":"/openapi.es.json put /access/profile/locale","href":"/es/api-reference/perfil/define-tu-idioma"},{"title":"Empieza a configurar un autenticador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/mfa","href":"/es/api-reference/perfil/empieza-a-configurar-un-autenticador"},{"title":"Elimina el segundo factor","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/profile/mfa","href":"/es/api-reference/perfil/elimina-el-segundo-factor"},{"title":"Confirma el autenticador","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/mfa/confirmation","href":"/es/api-reference/perfil/confirma-el-autenticador"},{"title":"Reemplaza los códigos de recuperación","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/mfa/recovery-codes","href":"/es/api-reference/perfil/reemplaza-los-códigos-de-recuperación"},{"title":"Lista tus llaves de acceso","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/profile/passkeys","href":"/es/api-reference/perfil/lista-tus-llaves-de-acceso"},{"title":"Agrega una llave de acceso","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/passkeys","href":"/es/api-reference/perfil/agrega-una-llave-de-acceso"},{"title":"Elimina una llave de acceso","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/profile/passkeys/{passkey}","href":"/es/api-reference/perfil/elimina-una-llave-de-acceso"},{"title":"Informa que se perdió una llave de seguridad","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/passkeys/{passkey}/lost","href":"/es/api-reference/perfil/informa-que-se-perdió-una-llave-de-seguridad"},{"title":"Empieza a agregar una llave de acceso","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/profile/passkeys/options","href":"/es/api-reference/perfil/empieza-a-agregar-una-llave-de-acceso"},{"title":"Cambia tu contraseña","deprecated":null,"version":null,"openapi":"/openapi.es.json put /access/profile/password","href":"/es/api-reference/perfil/cambia-tu-contraseña"},{"title":"Lista los navegadores en los que tienes la sesión iniciada","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/profile/sessions","href":"/es/api-reference/perfil/lista-los-navegadores-en-los-que-tienes-la-sesión-iniciada"},{"title":"Cierra sesión en todos los navegadores","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/profile/sessions","href":"/es/api-reference/perfil/cierra-sesión-en-todos-los-navegadores"}]},{"group":"Notificaciones","pages":[{"title":"Lista tus notificaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json get /notifications","href":"/es/api-reference/notificaciones/lista-tus-notificaciones"},{"title":"Marca una notificación como leída","deprecated":null,"version":null,"openapi":"/openapi.es.json post /notifications/{notification}/read","href":"/es/api-reference/notificaciones/marca-una-notificación-como-leída"},{"title":"Cambia los valores predeterminados de notificaciones de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json put /notifications/defaults","href":"/es/api-reference/notificaciones/cambia-los-valores-predeterminados-de-notificaciones-de-la-organización"},{"title":"Muestra tus preferencias de notificación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /notifications/preferences","href":"/es/api-reference/notificaciones/muestra-tus-preferencias-de-notificación"},{"title":"Cambia tus preferencias de notificaciones","deprecated":null,"version":null,"openapi":"/openapi.es.json put /notifications/preferences","href":"/es/api-reference/notificaciones/cambia-tus-preferencias-de-notificaciones"},{"title":"Marca todas tus notificaciones como leídas","deprecated":null,"version":null,"openapi":"/openapi.es.json post /notifications/read","href":"/es/api-reference/notificaciones/marca-todas-tus-notificaciones-como-leídas"},{"title":"Cuenta tus notificaciones sin leer","deprecated":null,"version":null,"openapi":"/openapi.es.json get /notifications/unread-count","href":"/es/api-reference/notificaciones/cuenta-tus-notificaciones-sin-leer"}]},{"group":"Invitaciones","pages":[{"title":"Lista las invitaciones pendientes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/invitations","href":"/es/api-reference/invitaciones/lista-las-invitaciones-pendientes"},{"title":"Invita a alguien a la organización por correo electrónico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/invitations","href":"/es/api-reference/invitaciones/invita-a-alguien-a-la-organización-por-correo-electrónico"},{"title":"Revoca una invitación pendiente","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/invitations/{invitation}","href":"/es/api-reference/invitaciones/revoca-una-invitación-pendiente"},{"title":"Acepta una invitación enviada a tu dirección de correo electrónico","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/invitations/accept","href":"/es/api-reference/invitaciones/acepta-una-invitación-enviada-a-tu-dirección-de-correo-electrónico"},{"title":"Busca una invitación por el token de su correo electrónico","deprecated":null,"version":null,"openapi":"/openapi.es.json get /invitations/{token}","href":"/es/api-reference/invitaciones/busca-una-invitación-por-el-token-de-su-correo-electrónico"},{"title":"Regístrate mediante una invitación y únete a su organización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /invitations/registrations","href":"/es/api-reference/invitaciones/regístrate-mediante-una-invitación-y-únete-a-su-organización"}]},{"group":"Roles","pages":[{"title":"Lista los roles de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/roles","href":"/es/api-reference/roles/lista-los-roles-de-la-organización"},{"title":"Crea un rol personalizado","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/roles","href":"/es/api-reference/roles/crea-un-rol-personalizado"},{"title":"Cambia el nombre de un rol personalizado o lo que contiene","deprecated":null,"version":null,"openapi":"/openapi.es.json put /access/roles/{role}","href":"/es/api-reference/roles/cambia-el-nombre-de-un-rol-personalizado-o-lo-que-contiene"},{"title":"Elimina un rol personalizado","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/roles/{role}","href":"/es/api-reference/roles/elimina-un-rol-personalizado"},{"title":"Lista los permisos que puede tener un rol personalizado","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/roles/permissions","href":"/es/api-reference/roles/lista-los-permisos-que-puede-tener-un-rol-personalizado"}]},{"group":"Acceso del personal","pages":[{"title":"Lista el acceso del personal a la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/staff-access","href":"/es/api-reference/acceso-del-personal/lista-el-acceso-del-personal-a-la-organización"},{"title":"Revoca el acceso de un miembro del personal","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/staff-access/{grant}","href":"/es/api-reference/acceso-del-personal/revoca-el-acceso-de-un-miembro-del-personal"},{"title":"Aprueba el acceso de un miembro del personal","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/staff-access/{grant}/approval","href":"/es/api-reference/acceso-del-personal/aprueba-el-acceso-de-un-miembro-del-personal"},{"title":"Deniega el acceso de un miembro del personal","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/staff-access/{grant}/denial","href":"/es/api-reference/acceso-del-personal/deniega-el-acceso-de-un-miembro-del-personal"}]},{"group":"Equipo","pages":[{"title":"Lista los miembros de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/team","href":"/es/api-reference/equipo/lista-los-miembros-de-la-organización"},{"title":"Borra a un miembro y sus datos personales","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/team/{user}","href":"/es/api-reference/equipo/borra-a-un-miembro-y-sus-datos-personales"},{"title":"Elimina a un miembro de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/team/{user}/membership","href":"/es/api-reference/equipo/elimina-a-un-miembro-de-la-organización"},{"title":"Asigna otro rol a un miembro","deprecated":null,"version":null,"openapi":"/openapi.es.json put /access/team/{user}/role","href":"/es/api-reference/equipo/asigna-otro-rol-a-un-miembro"}]},{"group":"Claves de API","pages":[{"title":"Lista las claves de API","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/api-keys","href":"/es/api-reference/claves-de-api/lista-las-claves-de-api"},{"title":"Crea una clave de API","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/api-keys","href":"/es/api-reference/claves-de-api/crea-una-clave-de-api"},{"title":"Revoca una clave de API","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /access/api-keys/{apiKey}","href":"/es/api-reference/claves-de-api/revoca-una-clave-de-api"}]},{"group":"Organizaciones","pages":[{"title":"Lista las organizaciones a las que perteneces","deprecated":null,"version":null,"openapi":"/openapi.es.json get /access/organizations","href":"/es/api-reference/organizaciones/lista-las-organizaciones-a-las-que-perteneces"},{"title":"Crea otra organización de la que seas propietario","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/organizations","href":"/es/api-reference/organizaciones/crea-otra-organización-de-la-que-seas-propietario"},{"title":"Elige la organización en la que se abre la app web","deprecated":null,"version":null,"openapi":"/openapi.es.json put /access/organizations/current","href":"/es/api-reference/organizaciones/elige-la-organización-en-la-que-se-abre-la-app-web"}]},{"group":"Firmas","pages":[{"title":"Firma","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/signatures","href":"/es/api-reference/firmas/firma"},{"title":"Inicia una firma","deprecated":null,"version":null,"openapi":"/openapi.es.json post /access/signatures/start","href":"/es/api-reference/firmas/inicia-una-firma"}]},{"group":"Registro","pages":[{"title":"Registra una organización nueva y a su propietario, e inicia una prueba","deprecated":null,"version":null,"openapi":"/openapi.es.json post /registrations","href":"/es/api-reference/registro/registra-una-organización-nueva-y-a-su-propietario-e-inicia-una-prueba"}]}]},{"group":"Organización","pages":[{"group":"Organización","pages":[{"title":"Muestra el calendario de destrucción","deprecated":null,"version":null,"openapi":"/openapi.es.json get /organization/destruction","href":"/es/api-reference/organización/muestra-el-calendario-de-destrucción"},{"title":"Programa la destrucción de la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json post /organization/destruction","href":"/es/api-reference/organización/programa-la-destrucción-de-la-organización"},{"title":"Cancela la destrucción","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /organization/destruction","href":"/es/api-reference/organización/cancela-la-destrucción"},{"title":"Aplica una retención legal","deprecated":null,"version":null,"openapi":"/openapi.es.json post /organization/legal-hold","href":"/es/api-reference/organización/aplica-una-retención-legal"},{"title":"Libera la retención legal","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /organization/legal-hold","href":"/es/api-reference/organización/libera-la-retención-legal"},{"title":"Muestra la retención legal y la retención de auditoría","deprecated":null,"version":null,"openapi":"/openapi.es.json get /organization/retention","href":"/es/api-reference/organización/muestra-la-retención-legal-y-la-retención-de-auditoría"},{"title":"Elige la retención de auditoría","deprecated":null,"version":null,"openapi":"/openapi.es.json put /organization/retention","href":"/es/api-reference/organización/elige-la-retención-de-auditoría"},{"title":"Muestra qué llaves de seguridad firman","deprecated":null,"version":null,"openapi":"/openapi.es.json get /organization/security-key-policy","href":"/es/api-reference/organización/muestra-qué-llaves-de-seguridad-firman"},{"title":"Elige qué llaves de seguridad firman","deprecated":null,"version":null,"openapi":"/openapi.es.json put /organization/security-key-policy","href":"/es/api-reference/organización/elige-qué-llaves-de-seguridad-firman"},{"title":"Muestra los límites de sesión","deprecated":null,"version":null,"openapi":"/openapi.es.json get /organization/session-policy","href":"/es/api-reference/organización/muestra-los-límites-de-sesión"},{"title":"Acorta los límites de sesión","deprecated":null,"version":null,"openapi":"/openapi.es.json put /organization/session-policy","href":"/es/api-reference/organización/acorta-los-límites-de-sesión"}]},{"group":"Aceptaciones legales","pages":[{"title":"Lista los términos que aceptó la organización","deprecated":null,"version":null,"openapi":"/openapi.es.json get /legal/acceptances","href":"/es/api-reference/aceptaciones-legales/lista-los-términos-que-aceptó-la-organización"},{"title":"Acepta una versión nueva de los términos","deprecated":null,"version":null,"openapi":"/openapi.es.json post /legal/acceptances","href":"/es/api-reference/aceptaciones-legales/acepta-una-versión-nueva-de-los-términos"},{"title":"Descarga un certificado de aceptación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /legal/acceptances/{acceptance}/certificate","href":"/es/api-reference/aceptaciones-legales/descarga-un-certificado-de-aceptación"}]},{"group":"Dirección","pages":[{"title":"Muestra la dirección de facturación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /address/billing-address","href":"/es/api-reference/dirección/muestra-la-dirección-de-facturación"},{"title":"Reemplaza la dirección de facturación","deprecated":null,"version":null,"openapi":"/openapi.es.json put /address/billing-address","href":"/es/api-reference/dirección/reemplaza-la-dirección-de-facturación"}]},{"group":"Historial","pages":[{"title":"Obtén el historial de campos de un registro","deprecated":null,"version":null,"openapi":"/openapi.es.json get /history/{type}/{id}","href":"/es/api-reference/historial/obtén-el-historial-de-campos-de-un-registro"},{"title":"Obtén el historial de campos de un registro","deprecated":null,"version":null,"openapi":"/openapi.es.json get /history/{type}/{id}","href":"/es/api-reference/historial/obtén-el-historial-de-campos-de-un-registro"}]},{"group":"Certificados de destrucción","pages":[{"title":"Obtén un certificado de destrucción","deprecated":null,"version":null,"openapi":"/openapi.es.json get /destruction-certificates/{certificate}","href":"/es/api-reference/certificados-de-destrucción/obtén-un-certificado-de-destrucción"}]}]},{"group":"Facturación","pages":[{"group":"Facturación","pages":[{"title":"Lista las facturas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /billing/invoices","href":"/es/api-reference/facturación/lista-las-facturas"},{"title":"Muestra el resumen de facturación","deprecated":null,"version":null,"openapi":"/openapi.es.json get /billing/overview","href":"/es/api-reference/facturación/muestra-el-resumen-de-facturación"},{"title":"Reemplaza el método de pago","deprecated":null,"version":null,"openapi":"/openapi.es.json put /billing/payment-method","href":"/es/api-reference/facturación/reemplaza-el-método-de-pago"},{"title":"Cambia a facturación anual","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/plan/annual","href":"/es/api-reference/facturación/cambia-a-facturación-anual"},{"title":"Programa un cambio a un plan inferior","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/plan/downgrade","href":"/es/api-reference/facturación/programa-un-cambio-a-un-plan-inferior"},{"title":"Cancela la reducción programada","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /billing/plan/downgrade","href":"/es/api-reference/facturación/cancela-la-reducción-programada"},{"title":"Programa la facturación mensual","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/plan/monthly","href":"/es/api-reference/facturación/programa-la-facturación-mensual"},{"title":"Cancela el cambio a facturación mensual","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /billing/plan/monthly","href":"/es/api-reference/facturación/cancela-el-cambio-a-facturación-mensual"},{"title":"Mejora el plan","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/plan/upgrade","href":"/es/api-reference/facturación/mejora-el-plan"},{"title":"Lista los planes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /billing/plans","href":"/es/api-reference/facturación/lista-los-planes"},{"title":"Compra un paquete de ejecuciones","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/run-packs","href":"/es/api-reference/facturación/compra-un-paquete-de-ejecuciones"},{"title":"Elimina un paquete de ejecuciones","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /billing/run-packs","href":"/es/api-reference/facturación/elimina-un-paquete-de-ejecuciones"},{"title":"Cambia los paquetes de ejecuciones automáticos","deprecated":null,"version":null,"openapi":"/openapi.es.json put /billing/run-packs/settings","href":"/es/api-reference/facturación/cambia-los-paquetes-de-ejecuciones-automáticos"},{"title":"Empieza a agregar una tarjeta","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/setup-intents","href":"/es/api-reference/facturación/empieza-a-agregar-una-tarjeta"},{"title":"Cancela el plan","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/subscription/cancel","href":"/es/api-reference/facturación/cancela-el-plan"},{"title":"Reanuda el plan","deprecated":null,"version":null,"openapi":"/openapi.es.json post /billing/subscription/resume","href":"/es/api-reference/facturación/reanuda-el-plan"}]}]},{"group":"Desarrollador","pages":[{"group":"Webhooks","pages":[{"title":"Lista los endpoints de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json get /developer/webhooks","href":"/es/api-reference/webhooks/lista-los-endpoints-de-webhook"},{"title":"Crea un endpoint de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json post /developer/webhooks","href":"/es/api-reference/webhooks/crea-un-endpoint-de-webhook"},{"title":"Obtén un endpoint de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json get /developer/webhooks/{endpoint}","href":"/es/api-reference/webhooks/obtén-un-endpoint-de-webhook"},{"title":"Actualiza un endpoint de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json put /developer/webhooks/{endpoint}","href":"/es/api-reference/webhooks/actualiza-un-endpoint-de-webhook"},{"title":"Elimina un endpoint de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /developer/webhooks/{endpoint}","href":"/es/api-reference/webhooks/elimina-un-endpoint-de-webhook"},{"title":"Reintenta una entrega de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json post /developer/webhooks/{endpoint}/deliveries/{delivery}/retry","href":"/es/api-reference/webhooks/reintenta-una-entrega-de-webhook"},{"title":"Envía un ping a un endpoint de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json post /developer/webhooks/{endpoint}/ping","href":"/es/api-reference/webhooks/envía-un-ping-a-un-endpoint-de-webhook"},{"title":"Rota un secreto de firma de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json post /developer/webhooks/{endpoint}/rotate","href":"/es/api-reference/webhooks/rota-un-secreto-de-firma-de-webhook"}]},{"group":"Apps OAuth","pages":[{"title":"Lista las aplicaciones conectadas","deprecated":null,"version":null,"openapi":"/openapi.es.json get /developer/apps","href":"/es/api-reference/apps-oauth/lista-las-aplicaciones-conectadas"},{"title":"Revoca una aplicación conectada","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /developer/apps/{grant}","href":"/es/api-reference/apps-oauth/revoca-una-aplicación-conectada"}]},{"group":"Hooks REST","pages":[{"title":"Suscribe un REST hook","deprecated":null,"version":null,"openapi":"/openapi.es.json post /developer/hooks","href":"/es/api-reference/hooks-rest/suscribe-un-rest-hook"},{"title":"Cancela la suscripción de un REST hook","deprecated":null,"version":null,"openapi":"/openapi.es.json delete /developer/hooks/{hook}","href":"/es/api-reference/hooks-rest/cancela-la-suscripción-de-un-rest-hook"}]},{"group":"Servidor MCP","pages":[{"title":"Llama al servidor MCP","deprecated":null,"version":null,"openapi":"/openapi.es.json post /mcp","href":"/es/api-reference/servidor-mcp/llama-al-servidor-mcp"}]},{"group":"Eventos recientes","pages":[{"title":"Lista los eventos recientes","deprecated":null,"version":null,"openapi":"/openapi.es.json get /developer/events","href":"/es/api-reference/eventos-recientes/lista-los-eventos-recientes"}]},{"group":"Eventos de webhook","pages":[{"title":"Lista los eventos de webhook","deprecated":null,"version":null,"openapi":"/openapi.es.json get /developer/webhook-events","href":"/es/api-reference/eventos-de-webhook/lista-los-eventos-de-webhook"}]}]},{"group":"Eventos de webhook","pages":[{"title":"Eventos de webhook","sidebarTitle":"Acerca de los eventos","icon":"webhook","href":"/es/api-reference/webhook-events"},{"title":"Automationapprovalrequested","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook automation.approval.requested","href":"/es/api-reference/automationapprovalrequested"},{"title":"Automationrunfailed","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook automation.run.failed","href":"/es/api-reference/automationrunfailed"},{"title":"Catalogitemarchived","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook catalog.item.archived","href":"/es/api-reference/catalogitemarchived"},{"title":"Catalogitemcreated","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook catalog.item.created","href":"/es/api-reference/catalogitemcreated"},{"title":"Catalogitemrestored","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook catalog.item.restored","href":"/es/api-reference/catalogitemrestored"},{"title":"Catalogitemupdated","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook catalog.item.updated","href":"/es/api-reference/catalogitemupdated"},{"title":"Catalogvariantsgenerated","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook catalog.variants.generated","href":"/es/api-reference/catalogvariantsgenerated"},{"title":"Engineeringbomchanged","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook engineering.bom.changed","href":"/es/api-reference/engineeringbomchanged"},{"title":"Engineeringbomreleased","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook engineering.bom.released","href":"/es/api-reference/engineeringbomreleased"},{"title":"Engineeringecoapproved","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook engineering.eco.approved","href":"/es/api-reference/engineeringecoapproved"},{"title":"Engineeringecoimplemented","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook engineering.eco.implemented","href":"/es/api-reference/engineeringecoimplemented"},{"title":"Insightsexportready","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook insights.export.ready","href":"/es/api-reference/insightsexportready"},{"title":"Insightskpithreshold crossed","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook insights.kpi.threshold-crossed","href":"/es/api-reference/insightskpithreshold-crossed"},{"title":"Integrationsconnectionconnected","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook integrations.connection.connected","href":"/es/api-reference/integrationsconnectionconnected"},{"title":"Integrationsconnectiondisconnected","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook integrations.connection.disconnected","href":"/es/api-reference/integrationsconnectiondisconnected"},{"title":"Integrationsconnectionneeds attention","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook integrations.connection.needs_attention","href":"/es/api-reference/integrationsconnectionneeds_attention"},{"title":"Integrationsorderimported","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook integrations.order.imported","href":"/es/api-reference/integrationsorderimported"},{"title":"Integrationssyncfailed","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook integrations.sync.failed","href":"/es/api-reference/integrationssyncfailed"},{"title":"Inventoryperiodclosed","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.period.closed","href":"/es/api-reference/inventoryperiodclosed"},{"title":"Inventoryperiodreopened","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.period.reopened","href":"/es/api-reference/inventoryperiodreopened"},{"title":"Inventorystockadjusted","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.stock.adjusted","href":"/es/api-reference/inventorystockadjusted"},{"title":"Inventorystockbelow reorder point","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.stock.below-reorder-point","href":"/es/api-reference/inventorystockbelow-reorder-point"},{"title":"Inventorystockmoved","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.stock.moved","href":"/es/api-reference/inventorystockmoved"},{"title":"Inventorystockreversed","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.stock.reversed","href":"/es/api-reference/inventorystockreversed"},{"title":"Inventorytransferreceived","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.transfer.received","href":"/es/api-reference/inventorytransferreceived"},{"title":"Inventorytransfershipped","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook inventory.transfer.shipped","href":"/es/api-reference/inventorytransfershipped"},{"title":"Manufacturingbuildcompleted","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook manufacturing.build.completed","href":"/es/api-reference/manufacturingbuildcompleted"},{"title":"Manufacturingbuildreleased","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook manufacturing.build.released","href":"/es/api-reference/manufacturingbuildreleased"},{"title":"Manufacturingproblemreported","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook manufacturing.problem.reported","href":"/es/api-reference/manufacturingproblemreported"},{"title":"Purchasingcertificatesexpiring","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook purchasing.certificates.expiring","href":"/es/api-reference/purchasingcertificatesexpiring"},{"title":"Purchasingorderapproved","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook purchasing.order.approved","href":"/es/api-reference/purchasingorderapproved"},{"title":"Purchasingordersent","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook purchasing.order.sent","href":"/es/api-reference/purchasingordersent"},{"title":"Purchasingreceiptposted","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook purchasing.receipt.posted","href":"/es/api-reference/purchasingreceiptposted"},{"title":"Qualityinspectionrecorded","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook quality.inspection.recorded","href":"/es/api-reference/qualityinspectionrecorded"},{"title":"Salesinvoiceissued","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.invoice.issued","href":"/es/api-reference/salesinvoiceissued"},{"title":"Salesinvoicepaid","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.invoice.paid","href":"/es/api-reference/salesinvoicepaid"},{"title":"Salesinvoicevoided","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.invoice.voided","href":"/es/api-reference/salesinvoicevoided"},{"title":"Salesordercancelled","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.order.cancelled","href":"/es/api-reference/salesordercancelled"},{"title":"Salesorderconfirmed","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.order.confirmed","href":"/es/api-reference/salesorderconfirmed"},{"title":"Salesordercreated","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.order.created","href":"/es/api-reference/salesordercreated"},{"title":"Salesreturnreceived","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.return.received","href":"/es/api-reference/salesreturnreceived"},{"title":"Salesshipmentdelivered","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.shipment.delivered","href":"/es/api-reference/salesshipmentdelivered"},{"title":"Salesshipmentposted","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook sales.shipment.posted","href":"/es/api-reference/salesshipmentposted"},{"title":"Webhookping","version":null,"deprecated":null,"openapi":"/openapi.es.json webhook webhook.ping","href":"/es/api-reference/webhookping"}]}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/es/sdks"}]}]},{"language":"fr-CA","footer":{"links":[{"header":"StockShift","items":[{"label":"Site Web","href":"https://stockshift.io"},{"label":"Centre d'aide","href":"https://knowledge.stockshift.io"},{"label":"Se connecter","href":"https://app.stockshift.io"}]}]},"navbar":{"links":[{"href":"https://knowledge.stockshift.io","label":"Centre d'aide"}],"primary":{"type":"button","label":"Ouvrir StockShift","href":"https://app.stockshift.io"}},"pages":[{"title":"fr-CA","href":"/fr-ca"}]}]},"basePath":"","title":"Envía comandos sin conexión - StockShift Developers","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}