Le pregunta a ARCA qué pasó con un comprobante que quedó en PENDING o UNKNOWN —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta.
Es el camino de salida. Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa).
Scope de API key:invoice:write. Una key sin ese scope recibe 403 API_KEY_INSUFFICIENT_SCOPE, aunque el rol de quien la creó lo permita: el permiso efectivo es la intersección de los dos.
POST
/
v1
/
invoices
/
{id}
/
reconcile
Reconciliar un comprobante sin resolver
curl --request POST \
--url https://api.emissa.com.ar/v1/invoices/{id}/reconcile \
--header 'X-API-Key: <api-key>'
El producto que origina el pedido (inmos, por ejemplo). Opcional, sólo con API key. Formato ^[a-z0-9-]{1,32}$; otro valor da 400 INVALID_INPUT. Queda en el comprobante, en el consumo y en el registro de pedidos.
Con una key sin producto es sólo atribución: no autoriza ni restringe nada. Con una key atada a un producto el pedido se etiqueta con el de la key aunque no mandes la cabecera, y si mandás otro valor la respuesta es 403 API_KEY_PRODUCTO_DISTINTO.
La referencia de tu sistema, tal como la mandaste al emitir. (5.7) null si no mandaste ninguna, que es el caso de todo lo emitido desde el panel y de todo lo anterior a la 5.7.
Es única por contribuyente y ambiente: reusarla al emitir devuelve 409 EXTERNAL_REFERENCE_ALREADY_USED, con el id del comprobante que ya existe en details. Se busca con GET /v1/invoices/search?externalReference=.
Por dónde entró el comprobante: API lo emitió una integración con API key, PANEL se cargó a mano desde el panel. Se estampa al emitir y no cambia.
null en los comprobantes emitidos antes de que se registrara el origen. No quiere decir PANEL: quiere decir que no se sabe, y ponerles un valor sería inventar el dato.
El producto que originó el pedido, de la cabecera X-Emissa-Producto que mandó quien emitió. Se estampa al emitir y no cambia: un reintento idempotente con otra etiqueta no lo reescribe.
null si no se mandó la cabecera, si se emitió desde el panel o si el comprobante es anterior a la etiqueta.
El tipo de comprobante según ARCA: 1 factura A, 6 factura B, 3 nota de crédito A, 8 nota de crédito B. Es el campo autoritativo; cbteTipoNombre y letra se derivan de él.
La letra, que sale de cbteTipo. Depende de la condición frente al IVA de emisor y receptor: entre responsables inscriptos es A, a consumidor final es B.
Fecha del comprobante, YYYY-MM-DD. ARCA no acepta cualquier fecha: tiene una ventana alrededor del día de hoy y exige que la numeración sea cronológica dentro del punto de venta.
La etiqueta de saleCondition, que es la que va impresa en el comprobante. null cuando no se informó, y también cuando el valor guardado no está en el catálogo.
En qué quedó. AUTHORIZED es el único con validez fiscal.REJECTED: ARCA lo rechazó y no hay CAE. PENDING y UNKNOWN: no se sabe si ARCA lo autorizó —se cortó la comunicación— y hay que reconciliar con POST /v1/invoices/{id}/reconcile antes de reintentar, o se emite dos veces. CANCELLED: se anuló con una nota de crédito.
Hasta cuándo vale el CAE, YYYY-MM-DD. Es la fecha límite para entregar el comprobante al receptor, no para emitirlo: pasada esa fecha el comprobante sigue siendo válido pero se entregó tarde.
Por qué ARCA rechazó el comprobante. Sólo si status es REJECTED; null en cualquier otro estado. Es un rechazo fiscal, no un error de Emissa: ARCA contestó y dijo que no. Los textos son los de ARCA, literales, y sirven para que quien emite corrija el dato y reintente.
Con la misma forma que details.arca del error ARCA_WSFEV1_REJECTED y que data.rechazoArca de invoice.resolved. Un REJECTED con las dos listas vacías es un comprobante que el reconciliar no encontró en ARCA.
Crudo de la respuesta de ARCA. Diagnóstico, no contractual.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Emissa","description":"Infraestructura de emisión de comprobantes electrónicos ARCA.","colors":{"primary":"#0c0cc8","light":"#f6f6f9","dark":"#0c0cc8"},"logo":{"light":"https://mintcdn.com/emissa/54zD7qivv8TCTuUU/images/marca/navigation-positive-on-white.svg?fit=max\u0026auto=format\u0026n=54zD7qivv8TCTuUU\u0026q=85\u0026s=31720f0a4e045e64fd37cff5a02df0d4","dark":"https://mintcdn.com/emissa/54zD7qivv8TCTuUU/images/marca/navigation-inverse-on-blue.svg?fit=max\u0026auto=format\u0026n=54zD7qivv8TCTuUU\u0026q=85\u0026s=94c73488d90524c9d870ce2e88cc0f09","href":"https://www.emissa.com.ar"},"favicon":"https://mintcdn.com/emissa/54zD7qivv8TCTuUU/images/marca/isotipo-small-positive.svg?fit=max\u0026auto=format\u0026n=54zD7qivv8TCTuUU\u0026q=85\u0026s=a94dd93de76510c2799744fe81825e31","appearance":{"default":"light","strict":false},"navbar":{"links":[{"href":"https://www.emissa.com.ar/panel","label":"Panel"}],"primary":{"type":"button","label":"Empezar gratis","href":"https://www.emissa.com.ar/register"}},"footer":{"socials":{"website":"https://www.emissa.com.ar"}},"search":{"prompt":"Buscar en la documentación…"},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"emissa","hasAudioNarration":false,"actualSubdomain":"emissa","customDomains":["www.emissa.com.ar"],"gitSource":{"type":"github","owner":"defineit-ar","repo":"emissa","deployBranch":"master","contentDirectory":"apps/web/src/content","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad7da6b81a20d9693c12bb3","collectionId":"6fe54883-a619-4bdc-8c5e-d410543096e4","liveDeploymentHistoryId":"6ad7da6b81a20d9693c12bb3","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ad7da6b81a20d9693c12bb3","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Referencia de la API","count":20},{"language":"default","tag":"Guías","count":14},{"language":"default","tag":"Comprobantes","count":8},{"language":"default","tag":"Contribuyentes","count":7},{"language":"default","tag":"Empezar","count":5},{"language":"default","tag":"Integrar","count":4},{"language":"default","tag":"Credenciales ARCA","count":3},{"language":"default","tag":"Planes y cobro","count":2},{"language":"default","tag":"Referencia de consulta","count":2},{"language":"default","tag":"Usar el panel","count":1}],"searchSettings":{"showContentSnippets":true,"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar>div,div:has(>#sidebar){max-width:none}#content,#header{max-width:1100px}.dgm{margin:1.75rem 0;width:100%}.dgm img{border-radius:14px;height:auto;width:100%}.dgm-cap{color:#5a6072;font-size:.8125rem;line-height:1.45;margin:.75rem 0 0;text-align:center}.dgm img.dgm-claro{display:block}.dark .dgm img.dgm-claro,.dgm img.dgm-oscuro{display:none}.dark .dgm-cap{color:#9aa0b0}.dark .dgm img.dgm-oscuro{display:block}"}],"page":{"pagePath":"api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver","slug":"/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver","pageMetadata":{"title":"Reconciliar un comprobante sin resolver","description":"Le pregunta a ARCA qué pasó con un comprobante que quedó en `PENDING` o `UNKNOWN` —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta.\n\n**Es el camino de salida.** Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa).\n\n**Scope de API key:** `invoice:write`. Una key sin ese scope recibe `403 API_KEY_INSUFFICIENT_SCOPE`, aunque el rol de quien la creó lo permita: el permiso efectivo es la **intersección** de los dos.","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/invoices/{id}/reconcile","href":"/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver","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 strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Le pregunta a ARCA qué pasó con un comprobante que quedó en \", _jsx(_components.code, {\n children: \"PENDING\"\n }), \" o \", _jsx(_components.code, {\n children: \"UNKNOWN\"\n }), \" —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Es el camino de salida.\"\n }), \" Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Scope de API key:\"\n }), \" \", _jsx(_components.code, {\n children: \"invoice:write\"\n }), \". Una key sin ese scope recibe \", _jsx(_components.code, {\n children: \"403 API_KEY_INSUFFICIENT_SCOPE\"\n }), \", aunque el rol de quien la creó lo permita: el permiso efectivo es la \", _jsx(_components.strong, {\n children: \"intersección\"\n }), \" de los dos.\"]\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":"Reconciliar un comprobante sin resolver","description":"Le pregunta a ARCA qué pasó con un comprobante que quedó en `PENDING` o `UNKNOWN` —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta.\n\n**Es el camino de salida.** Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa).\n\n**Scope de API key:** `invoice:write`. Una key sin ese scope recibe `403 API_KEY_INSUFFICIENT_SCOPE`, aunque el rol de quien la creó lo permita: el permiso efectivo es la **intersección** de los dos.","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/invoices/{id}/reconcile","href":"/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Le pregunta a ARCA qué pasó con un comprobante que quedó en `PENDING` o `UNKNOWN` —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta.\n\n**Es el camino de salida.** Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa).\n\n**Scope de API key:** `invoice:write`. Una key sin ese scope recibe `403 API_KEY_INSUFFICIENT_SCOPE`, aunque el rol de quien la creó lo permita: el permiso efectivo es la **intersección** de los dos.","operationId":"InvoicesController_reconcile","parameters":["806aaa03-e781-4007-b91e-366f17525ac2","161dfccb-6bf3-4357-b6a3-ef82908a39b0"],"responses":{"200":"512b98c7-16de-4bb8-b713-c789c8592d1d","400":"223f430b-1d0c-41ce-a2fc-8dad8b37f9da","401":"b9e18df0-0c08-42ac-a006-d698c7271a8e","403":"d8bdc811-398c-4dd5-b05a-391eaffa61cd","404":"cf6de3da-8cdb-4cfc-8d34-1713bf6f70e9","409":"b20d300a-fb16-480b-998d-68fb21902f09","429":"b62e854d-ce73-4911-ab2c-6d3005521c51","500":"5e9c09e2-098c-4c9a-b44f-168f086f5a41","502":"4e444e50-2de1-4358-b719-09f39fe48961"},"security":["459fff98-d161-49ec-8ee9-27bc85449d39","a3ffbd5d-81f1-4398-823c-1fbbf7cf131d"],"summary":"Reconciliar un comprobante sin resolver","tags":["Comprobantes"],"x-scopes":["invoice:write"],"method":"post","type":"path","servers":["4c3ac454-1611-42e6-9972-fdce75c66d95","59c0321e-fc8e-4fd2-8484-7481e01419e1"],"path":"/v1/invoices/{id}/reconcile","baseUrlOptions":["https://api.emissa.com.ar","http://localhost:3001"],"title":"Reconciliar un comprobante sin resolver","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"806aaa03-e781-4007-b91e-366f17525ac2":{"name":"id","required":true,"in":"path","description":"Id del comprobante sin resolver.","schema":{"type":"string","isRequired":true,"description":"Id del comprobante sin resolver.","uniqueKey":"","typeLabel":"string"}},"161dfccb-6bf3-4357-b6a3-ef82908a39b0":{"name":"X-Emissa-Producto","in":"header","description":"El producto que origina el pedido (`inmos`, por ejemplo). Opcional, sólo con API key. Formato `^[a-z0-9-]{1,32}$`; otro valor da `400 INVALID_INPUT`. Queda en el comprobante, en el consumo y en el registro de pedidos.\n\nCon una key **sin** producto es sólo atribución: no autoriza ni restringe nada. Con una key **atada a un producto** el pedido se etiqueta con el de la key aunque no mandes la cabecera, y si mandás otro valor la respuesta es `403 API_KEY_PRODUCTO_DISTINTO`.","required":false,"schema":{"type":"string","pattern":"^[a-z0-9-]{1,32}$","example":"inmos","isRequired":false,"description":"El producto que origina el pedido (`inmos`, por ejemplo). Opcional, sólo con API key. Formato `^[a-z0-9-]{1,32}$`; otro valor da `400 INVALID_INPUT`. Queda en el comprobante, en el consumo y en el registro de pedidos.\n\nCon una key **sin** producto es sólo atribución: no autoriza ni restringe nada. Con una key **atada a un producto** el pedido se etiqueta con el de la key aunque no mandes la cabecera, y si mandás otro valor la respuesta es `403 API_KEY_PRODUCTO_DISTINTO`.","uniqueKey":"","typeLabel":"string"}}},"responses":{"512b98c7-16de-4bb8-b713-c789c8592d1d":{"description":"El comprobante con su estado ya resuelto.","headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"cmft8x2k30001","description":"Id interno de Emissa. **No es el número del comprobante**: es lo que se usa en `GET /v1/invoices/{id}` y en la anulación.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"taxpayerId":{"type":"string","example":"cmfa1b2c30000","description":"Bajo qué contribuyente se emitió.","isRequired":true,"uniqueKey":"taxpayerId","typeLabel":"string"},"externalReference":{"oneOf":[{"type":"string","example":"COBRO-8842","description":"La referencia de **tu** sistema, tal como la mandaste al emitir. (5.7) `null` si no mandaste ninguna, que es el caso de todo lo emitido desde el panel y de todo lo anterior a la 5.7.\n\nEs **única por contribuyente y ambiente**: reusarla al emitir devuelve 409 `EXTERNAL_REFERENCE_ALREADY_USED`, con el id del comprobante que ya existe en `details`. Se busca con `GET /v1/invoices/search?externalReference=`.","isRequired":true,"uniqueKey":"externalReference.oneOf.0","typeLabel":"string"},{"type":"null","example":"COBRO-8842","description":"La referencia de **tu** sistema, tal como la mandaste al emitir. (5.7) `null` si no mandaste ninguna, que es el caso de todo lo emitido desde el panel y de todo lo anterior a la 5.7.\n\nEs **única por contribuyente y ambiente**: reusarla al emitir devuelve 409 `EXTERNAL_REFERENCE_ALREADY_USED`, con el id del comprobante que ya existe en `details`. Se busca con `GET /v1/invoices/search?externalReference=`.","isRequired":true,"uniqueKey":"externalReference.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"externalReference","typeLabel":"string | null"},"environment":{"type":"string","enum":["HOMOLOGACION","PRODUCCION"],"example":"HOMOLOGACION","description":"Contra qué ambiente de ARCA se emitió. Un comprobante de `HOMOLOGACION` **no tiene validez fiscal**, aunque traiga CAE.","isRequired":true,"uniqueKey":"environment","typeLabel":"enum\u003cstring>"},"origin":{"oneOf":[{"type":"string","enum":["API","PANEL"],"example":"API","description":"Por dónde entró el comprobante: `API` lo emitió una integración con API key, `PANEL` se cargó a mano desde el panel. Se estampa al emitir y no cambia.\n\n`null` en los comprobantes emitidos antes de que se registrara el origen. **No quiere decir `PANEL`**: quiere decir que no se sabe, y ponerles un valor sería inventar el dato.","isRequired":true,"uniqueKey":"origin.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["API","PANEL"],"example":"API","description":"Por dónde entró el comprobante: `API` lo emitió una integración con API key, `PANEL` se cargó a mano desde el panel. Se estampa al emitir y no cambia.\n\n`null` en los comprobantes emitidos antes de que se registrara el origen. **No quiere decir `PANEL`**: quiere decir que no se sabe, y ponerles un valor sería inventar el dato.","isRequired":true,"uniqueKey":"origin.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"origin","typeLabel":"enum\u003cstring> | null"},"producto":{"oneOf":[{"type":"string","example":"inmos","description":"El producto que originó el pedido, de la cabecera `X-Emissa-Producto` que mandó quien emitió. Se estampa al emitir y **no cambia**: un reintento idempotente con otra etiqueta no lo reescribe.\n\n`null` si no se mandó la cabecera, si se emitió desde el panel o si el comprobante es anterior a la etiqueta.","isRequired":true,"uniqueKey":"producto.oneOf.0","typeLabel":"string"},{"type":"null","example":"inmos","description":"El producto que originó el pedido, de la cabecera `X-Emissa-Producto` que mandó quien emitió. Se estampa al emitir y **no cambia**: un reintento idempotente con otra etiqueta no lo reescribe.\n\n`null` si no se mandó la cabecera, si se emitió desde el panel o si el comprobante es anterior a la etiqueta.","isRequired":true,"uniqueKey":"producto.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"producto","typeLabel":"string | null"},"cbteTipo":{"type":"number","example":1,"description":"El tipo de comprobante según ARCA: `1` factura A, `6` factura B, `3` nota de crédito A, `8` nota de crédito B. **Es el campo autoritativo**; `cbteTipoNombre` y `letra` se derivan de él.","isRequired":true,"uniqueKey":"cbteTipo","typeLabel":"number"},"cbteTipoNombre":{"oneOf":[{"type":"string","example":"FACTURA_A","description":"La etiqueta de `cbteTipo`. `null` si el código no está en el catálogo local — el número igual es correcto.","isRequired":true,"uniqueKey":"cbteTipoNombre.oneOf.0","typeLabel":"string"},{"type":"null","example":"FACTURA_A","description":"La etiqueta de `cbteTipo`. `null` si el código no está en el catálogo local — el número igual es correcto.","isRequired":true,"uniqueKey":"cbteTipoNombre.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cbteTipoNombre","typeLabel":"string | null"},"letra":{"oneOf":[{"type":"string","example":"A","description":"La letra, que sale de `cbteTipo`. Depende de la condición frente al IVA de emisor y receptor: entre responsables inscriptos es A, a consumidor final es B.","isRequired":true,"uniqueKey":"letra.oneOf.0","typeLabel":"string"},{"type":"null","example":"A","description":"La letra, que sale de `cbteTipo`. Depende de la condición frente al IVA de emisor y receptor: entre responsables inscriptos es A, a consumidor final es B.","isRequired":true,"uniqueKey":"letra.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"letra","typeLabel":"string | null"},"concepto":{"type":"number","example":1,"description":"Qué se factura: `1` productos, `2` servicios, `3` ambos. **Con 2 o 3 ARCA exige `servicePeriod`**, y con 1 lo rechaza.","isRequired":true,"uniqueKey":"concepto","typeLabel":"number"},"conceptoNombre":{"oneOf":[{"type":"string","example":"PRODUCTOS","description":"La etiqueta de `concepto`.","isRequired":true,"uniqueKey":"conceptoNombre.oneOf.0","typeLabel":"string"},{"type":"null","example":"PRODUCTOS","description":"La etiqueta de `concepto`.","isRequired":true,"uniqueKey":"conceptoNombre.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"conceptoNombre","typeLabel":"string | null"},"salePoint":{"type":"number","example":1,"description":"El punto de venta con el que se emitió. Cada punto de venta lleva su propia numeración correlativa.","isRequired":true,"uniqueKey":"salePoint","typeLabel":"number"},"number":{"type":"number","example":7,"description":"El número correlativo dentro del punto de venta. Lo asigna Emissa pidiéndole a ARCA el último autorizado: **no lo elige el cliente**.","isRequired":true,"uniqueKey":"number","typeLabel":"number"},"comprobante":{"type":"string","example":"0001-00000007","description":"Punto de venta y número, como se lee un comprobante argentino","isRequired":true,"uniqueKey":"comprobante","typeLabel":"string"},"issueDate":{"oneOf":[{"type":"string","example":"2026-07-26","description":"Fecha del comprobante, `YYYY-MM-DD`. **ARCA no acepta cualquier fecha**: tiene una ventana alrededor del día de hoy y exige que la numeración sea cronológica dentro del punto de venta.","isRequired":true,"uniqueKey":"issueDate.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-07-26","description":"Fecha del comprobante, `YYYY-MM-DD`. **ARCA no acepta cualquier fecha**: tiene una ventana alrededor del día de hoy y exige que la numeración sea cronológica dentro del punto de venta.","isRequired":true,"uniqueKey":"issueDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"issueDate","typeLabel":"string | null"},"emitter":{"type":"object","description":"Quién emite, congelado al momento de emitir.","required":["cuit","name","vatStatus","address","grossIncomeTax","activityStartDate"],"properties":{"cuit":{"type":"string","example":"20437136697","description":"El CUIT que emite, sin guiones.","isRequired":true,"uniqueKey":"emitter.cuit","typeLabel":"string"},"name":{"type":"string","example":"Estudio Contable SRL","description":"Razón social, como va impresa.","isRequired":true,"uniqueKey":"emitter.name","typeLabel":"string"},"vatStatus":{"type":"string","example":"RESPONSABLE_INSCRIPTO","description":"Condición frente al IVA del emisor. Junto con la del receptor decide qué letra de comprobante corresponde.","isRequired":true,"uniqueKey":"emitter.vatStatus","typeLabel":"string"},"address":{"oneOf":[{"type":"string","example":"Av. Corrientes 1234, CABA","description":"Domicilio comercial. `null` si el contribuyente no lo tenía cargado al emitir: el comprobante sale igual pero **incompleto para la RG 1415**.","isRequired":true,"uniqueKey":"emitter.address.oneOf.0","typeLabel":"string"},{"type":"null","example":"Av. Corrientes 1234, CABA","description":"Domicilio comercial. `null` si el contribuyente no lo tenía cargado al emitir: el comprobante sale igual pero **incompleto para la RG 1415**.","isRequired":true,"uniqueKey":"emitter.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"emitter.address","typeLabel":"string | null"},"grossIncomeTax":{"oneOf":[{"type":"string","example":"901-123456-01","description":"Ingresos Brutos. Obligatorio en el papel (RG 1415).","isRequired":true,"uniqueKey":"emitter.grossIncomeTax.oneOf.0","typeLabel":"string"},{"type":"null","example":"901-123456-01","description":"Ingresos Brutos. Obligatorio en el papel (RG 1415).","isRequired":true,"uniqueKey":"emitter.grossIncomeTax.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"emitter.grossIncomeTax","typeLabel":"string | null"},"activityStartDate":{"oneOf":[{"type":"string","example":"2020-03-01","description":"Inicio de actividades. Obligatorio en el papel (RG 1415).","isRequired":true,"uniqueKey":"emitter.activityStartDate.oneOf.0","typeLabel":"string"},{"type":"null","example":"2020-03-01","description":"Inicio de actividades. Obligatorio en el papel (RG 1415).","isRequired":true,"uniqueKey":"emitter.activityStartDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"emitter.activityStartDate","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"emitter","typeLabel":"object"},"receiver":{"type":"object","description":"A quién se le factura, congelado al momento de emitir.","required":["docTipo","docTipoNombre","docNro","name","vatConditionId","vatConditionNombre","address"],"properties":{"docTipo":{"type":"number","example":80,"description":"80 CUIT, 86 CUIL, 96 DNI, 99 CF","isRequired":true,"uniqueKey":"receiver.docTipo","typeLabel":"number"},"docTipoNombre":{"oneOf":[{"type":"string","example":"CUIT","description":"La etiqueta de `docTipo`, para no mantener la tabla afuera.","isRequired":true,"uniqueKey":"receiver.docTipoNombre.oneOf.0","typeLabel":"string"},{"type":"null","example":"CUIT","description":"La etiqueta de `docTipo`, para no mantener la tabla afuera.","isRequired":true,"uniqueKey":"receiver.docTipoNombre.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"receiver.docTipoNombre","typeLabel":"string | null"},"docNro":{"type":"string","example":"30500010912","description":"El número del documento, sin guiones. Con `docTipo` 99 (consumidor final) va `0`.","isRequired":true,"uniqueKey":"receiver.docNro","typeLabel":"string"},"name":{"type":"string","example":"Cliente SA","description":"Nombre o razón social del receptor, como va impreso.","isRequired":true,"uniqueKey":"receiver.name","typeLabel":"string"},"vatConditionId":{"type":"number","example":1,"description":"La condición frente al IVA **del receptor**, según el catálogo de ARCA. Es lo que decide si corresponde factura A o B: a un responsable inscripto se le emite A, a un consumidor final o monotributista, B.","isRequired":true,"uniqueKey":"receiver.vatConditionId","typeLabel":"number"},"vatConditionNombre":{"oneOf":[{"type":"string","example":"IVA Responsable Inscripto","description":"La etiqueta de `vatConditionId`.","isRequired":true,"uniqueKey":"receiver.vatConditionNombre.oneOf.0","typeLabel":"string"},{"type":"null","example":"IVA Responsable Inscripto","description":"La etiqueta de `vatConditionId`.","isRequired":true,"uniqueKey":"receiver.vatConditionNombre.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"receiver.vatConditionNombre","typeLabel":"string | null"},"address":{"oneOf":[{"type":"string","example":"Av. Rivadavia 500, CABA","description":"Domicilio del receptor. Opcional.","isRequired":true,"uniqueKey":"receiver.address.oneOf.0","typeLabel":"string"},{"type":"null","example":"Av. Rivadavia 500, CABA","description":"Domicilio del receptor. Opcional.","isRequired":true,"uniqueKey":"receiver.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"receiver.address","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"receiver","typeLabel":"object"},"currency":{"oneOf":[{"type":"string","example":"PES","description":"Moneda según ARCA: `PES` pesos, `DOL` dólares. Con una moneda distinta de `PES` hace falta `exchangeRate`.","isRequired":true,"uniqueKey":"currency.oneOf.0","typeLabel":"string"},{"type":"null","example":"PES","description":"Moneda según ARCA: `PES` pesos, `DOL` dólares. Con una moneda distinta de `PES` hace falta `exchangeRate`.","isRequired":true,"uniqueKey":"currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"currency","typeLabel":"string | null"},"exchangeRate":{"type":"string","example":"1","description":"Cotización de la moneda contra el peso. **`1` cuando es `PES`**; con otra moneda es la que ARCA va a usar para convertir.","isRequired":true,"uniqueKey":"exchangeRate","typeLabel":"string"},"totals":{"type":"object","description":"Los totales. `totalAmount` tiene que cerrar exacto.","required":["netAmount","nonTaxedAmount","exemptAmount","vatAmount","otherTaxesAmount","totalAmount"],"properties":{"netAmount":{"type":"string","example":"1000.00","description":"Lo que paga IVA, **antes** del IVA. Es la base sobre la que se calcula el desglose.","isRequired":true,"uniqueKey":"totals.netAmount","typeLabel":"string"},"nonTaxedAmount":{"type":"string","example":"0.00","description":"Conceptos que **no** están alcanzados por el IVA, como una percepción que se traslada. No confundir con exento.","isRequired":true,"uniqueKey":"totals.nonTaxedAmount","typeLabel":"string"},"exemptAmount":{"type":"string","example":"0.00","description":"Lo alcanzado por el IVA pero con **exención**: libros, leche, ciertos servicios de salud. Está gravado a tasa cero, que no es lo mismo que no gravado.","isRequired":true,"uniqueKey":"totals.exemptAmount","typeLabel":"string"},"vatAmount":{"type":"string","example":"210.00","description":"El IVA total. Igual a la suma de `vatBreakdown[].vatAmount`.","isRequired":true,"uniqueKey":"totals.vatAmount","typeLabel":"string"},"otherTaxesAmount":{"type":"string","example":"0.00","description":"Todo lo que no es IVA: Ingresos Brutos, internos, tasas. Igual a la suma de `taxes[].amount`.","isRequired":true,"uniqueKey":"totals.otherTaxesAmount","typeLabel":"string"},"totalAmount":{"type":"string","example":"1210.00","description":"Lo que el receptor paga. **Suma exacta de los cinco anteriores**, y ARCA lo verifica.","isRequired":true,"uniqueKey":"totals.totalAmount","typeLabel":"string"}},"isRequired":true,"uniqueKey":"totals","typeLabel":"object"},"vatBreakdown":{"description":"El IVA por alícuota. Vacío en los comprobantes sin IVA discriminado (letra B o C).","type":"array","items":{"type":"object","properties":{"vatRateId":{"type":"number","example":5,"description":"El **id** de alícuota de ARCA, no el porcentaje: `5` es 21 %, `4` es 10,5 %, `3` es 0 %. Mandar `21` acá es el error más común, y ARCA lo rechaza porque `21` no existe como id.","isRequired":true,"uniqueKey":"vatBreakdown.items.[INDEX].vatRateId","typeLabel":"number"},"vatRatePercent":{"oneOf":[{"type":"number","example":21,"description":"El porcentaje que corresponde a ese id, para no tener que mantener la tabla del lado del cliente. `null` si el id no está en el catálogo local — el id igual es válido.","isRequired":true,"uniqueKey":"vatBreakdown.items.[INDEX].vatRatePercent.oneOf.0","typeLabel":"number"},{"type":"null","example":21,"description":"El porcentaje que corresponde a ese id, para no tener que mantener la tabla del lado del cliente. `null` si el id no está en el catálogo local — el id igual es válido.","isRequired":true,"uniqueKey":"vatBreakdown.items.[INDEX].vatRatePercent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"vatBreakdown.items.[INDEX].vatRatePercent","typeLabel":"number | null"},"baseAmount":{"type":"string","example":"1000.00","description":"Sobre cuánto se calculó el IVA de esta alícuota.","isRequired":true,"uniqueKey":"vatBreakdown.items.[INDEX].baseAmount","typeLabel":"string"},"vatAmount":{"type":"string","example":"210.00","description":"El IVA de esta alícuota. La suma de todas da `totals.vatAmount`.","isRequired":true,"uniqueKey":"vatBreakdown.items.[INDEX].vatAmount","typeLabel":"string"}},"required":["vatRateId","vatRatePercent","baseAmount","vatAmount"],"uniqueKey":"vatBreakdown.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"vatBreakdown","typeLabel":"object[]"},"taxes":{"description":"Los tributos que no son IVA. Vacío si no hay ninguno.","type":"array","items":{"type":"object","properties":{"taxId":{"type":"number","example":2,"description":"El código de tributo de ARCA. `1` nacional, `2` provincial, `3` municipal, `4` interno, `99` otro.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].taxId","typeLabel":"number"},"description":{"oneOf":[{"type":"string","example":"Ingresos Brutos CABA","description":"Texto libre para identificarlo en el comprobante impreso.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","example":"Ingresos Brutos CABA","description":"Texto libre para identificarlo en el comprobante impreso.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"taxes.items.[INDEX].description","typeLabel":"string | null"},"baseAmount":{"type":"string","example":"1000.00","description":"Sobre cuánto se calculó.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].baseAmount","typeLabel":"string"},"rate":{"oneOf":[{"type":"string","example":"3.0000","description":"La alícuota aplicada, en porcentaje y con hasta 4 decimales. `null` cuando el tributo es un monto fijo y no sale de un porcentaje.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].rate.oneOf.0","typeLabel":"string"},{"type":"null","example":"3.0000","description":"La alícuota aplicada, en porcentaje y con hasta 4 decimales. `null` cuando el tributo es un monto fijo y no sale de un porcentaje.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].rate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"taxes.items.[INDEX].rate","typeLabel":"string | null"},"amount":{"type":"string","example":"30.00","description":"El importe del tributo. Suma a `totals.otherTaxesAmount`.","isRequired":true,"uniqueKey":"taxes.items.[INDEX].amount","typeLabel":"string"}},"required":["taxId","description","baseAmount","rate","amount"],"uniqueKey":"taxes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"taxes","typeLabel":"object[]"},"servicePeriod":{"oneOf":[{"type":"object","description":"`null` en los comprobantes de productos (`concepto` 1).","required":["from","to","paymentDueDate"],"properties":{"from":{"oneOf":[{"type":"string","example":"2026-07-01","description":"Desde cuándo se prestó el servicio, `YYYY-MM-DD`.","isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.from.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-07-01","description":"Desde cuándo se prestó el servicio, `YYYY-MM-DD`.","isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.from.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.from","typeLabel":"string | null"},"to":{"oneOf":[{"type":"string","example":"2026-07-31","description":"Hasta cuándo, `YYYY-MM-DD`. No puede ser anterior a `from`.","isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.to.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-07-31","description":"Hasta cuándo, `YYYY-MM-DD`. No puede ser anterior a `from`.","isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.to.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.to","typeLabel":"string | null"},"paymentDueDate":{"oneOf":[{"type":"string","example":"2026-08-10","description":"Vencimiento del pago, `YYYY-MM-DD`. Es un dato del comprobante, no una condición que el sistema controle: nadie se entera si se paga después.","isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.paymentDueDate.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-08-10","description":"Vencimiento del pago, `YYYY-MM-DD`. Es un dato del comprobante, no una condición que el sistema controle: nadie se entera si se paga después.","isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.paymentDueDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"servicePeriod.oneOf.0.paymentDueDate","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"servicePeriod.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"servicePeriod.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"servicePeriod","typeLabel":"object | null"},"saleCondition":{"oneOf":[{"type":"string","example":"CUENTA_CORRIENTE","description":"La condición de venta tal como se mandó al emitir. `null` en los comprobantes emitidos sin informarla — **no se supone `CONTADO`**.","isRequired":true,"uniqueKey":"saleCondition.oneOf.0","typeLabel":"string"},{"type":"null","example":"CUENTA_CORRIENTE","description":"La condición de venta tal como se mandó al emitir. `null` en los comprobantes emitidos sin informarla — **no se supone `CONTADO`**.","isRequired":true,"uniqueKey":"saleCondition.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"saleCondition","typeLabel":"string | null"},"saleConditionNombre":{"oneOf":[{"type":"string","example":"Cuenta corriente","description":"La etiqueta de `saleCondition`, que es la que va impresa en el comprobante. `null` cuando no se informó, y también cuando el valor guardado no está en el catálogo.","isRequired":true,"uniqueKey":"saleConditionNombre.oneOf.0","typeLabel":"string"},{"type":"null","example":"Cuenta corriente","description":"La etiqueta de `saleCondition`, que es la que va impresa en el comprobante. `null` cuando no se informó, y también cuando el valor guardado no está en el catálogo.","isRequired":true,"uniqueKey":"saleConditionNombre.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"saleConditionNombre","typeLabel":"string | null"},"status":{"type":"string","enum":["AUTHORIZED","REJECTED","PENDING","UNKNOWN","CANCELLED"],"example":"AUTHORIZED","description":"En qué quedó. **`AUTHORIZED` es el único con validez fiscal.** `REJECTED`: ARCA lo rechazó y no hay CAE. `PENDING` y `UNKNOWN`: no se sabe si ARCA lo autorizó —se cortó la comunicación— y hay que reconciliar con `POST /v1/invoices/{id}/reconcile` antes de reintentar, o se emite dos veces. `CANCELLED`: se anuló con una nota de crédito.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"cae":{"oneOf":[{"type":"string","example":"75123456789012","description":"El CAE. `null` mientras el comprobante no esté autorizado.","isRequired":true,"uniqueKey":"cae.oneOf.0","typeLabel":"string"},{"type":"null","example":"75123456789012","description":"El CAE. `null` mientras el comprobante no esté autorizado.","isRequired":true,"uniqueKey":"cae.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cae","typeLabel":"string | null"},"caeExpiresAt":{"oneOf":[{"type":"string","example":"2026-08-05","description":"Hasta cuándo vale el CAE, `YYYY-MM-DD`. **Es la fecha límite para entregar el comprobante al receptor**, no para emitirlo: pasada esa fecha el comprobante sigue siendo válido pero se entregó tarde.","isRequired":true,"uniqueKey":"caeExpiresAt.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-08-05","description":"Hasta cuándo vale el CAE, `YYYY-MM-DD`. **Es la fecha límite para entregar el comprobante al receptor**, no para emitirlo: pasada esa fecha el comprobante sigue siendo válido pero se entregó tarde.","isRequired":true,"uniqueKey":"caeExpiresAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"caeExpiresAt","typeLabel":"string | null"},"cancelledByInvoiceId":{"oneOf":[{"type":"string","description":"Id de la nota de crédito que anuló este comprobante.","isRequired":true,"uniqueKey":"cancelledByInvoiceId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Id de la nota de crédito que anuló este comprobante.","isRequired":true,"uniqueKey":"cancelledByInvoiceId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cancelledByInvoiceId","typeLabel":"string | null"},"associations":{"description":"A qué comprobantes hace referencia. **Una nota de crédito sin esto no anula nada.** Vacío en una factura.","type":"array","items":{"type":"object","properties":{"cbteTipo":{"type":"number","example":1,"description":"El `CbteTipo` del comprobante asociado (`1` factura A, etc.).","isRequired":true,"uniqueKey":"associations.items.[INDEX].cbteTipo","typeLabel":"number"},"salePoint":{"type":"number","example":1,"description":"El punto de venta del comprobante asociado.","isRequired":true,"uniqueKey":"associations.items.[INDEX].salePoint","typeLabel":"number"},"number":{"type":"number","example":7,"description":"Su número correlativo, sin el punto de venta adelante.","isRequired":true,"uniqueKey":"associations.items.[INDEX].number","typeLabel":"number"},"cuit":{"oneOf":[{"type":"string","example":"20437136697","description":"El CUIT del emisor del comprobante asociado. Sólo hace falta cuando no es el mismo que emite este.","isRequired":true,"uniqueKey":"associations.items.[INDEX].cuit.oneOf.0","typeLabel":"string"},{"type":"null","example":"20437136697","description":"El CUIT del emisor del comprobante asociado. Sólo hace falta cuando no es el mismo que emite este.","isRequired":true,"uniqueKey":"associations.items.[INDEX].cuit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"associations.items.[INDEX].cuit","typeLabel":"string | null"},"issueDate":{"oneOf":[{"type":"string","example":"2026-07-20","description":"Fecha del comprobante asociado, `YYYY-MM-DD`.","isRequired":true,"uniqueKey":"associations.items.[INDEX].issueDate.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-07-20","description":"Fecha del comprobante asociado, `YYYY-MM-DD`.","isRequired":true,"uniqueKey":"associations.items.[INDEX].issueDate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"associations.items.[INDEX].issueDate","typeLabel":"string | null"}},"required":["cbteTipo","salePoint","number","cuit","issueDate"],"uniqueKey":"associations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"associations","typeLabel":"object[]"},"optionals":{"description":"Campos opcionales de ARCA, que dependen del régimen. Vacío en el caso corriente.","type":"array","items":{"type":"object","properties":{"optionalId":{"type":"string","example":"2","description":"El Id es texto: lo define el WSDL","isRequired":true,"uniqueKey":"optionals.items.[INDEX].optionalId","typeLabel":"string"},"value":{"type":"string","example":"20437136697","description":"El valor, **siempre como texto**, aunque represente un número o una fecha. Lo define el WSDL de ARCA para cada `optionalId`.","isRequired":true,"uniqueKey":"optionals.items.[INDEX].value","typeLabel":"string"}},"required":["optionalId","value"],"uniqueKey":"optionals.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"optionals","typeLabel":"object[]"},"observations":{"description":"Lo que ARCA observó **junto con el CAE**. No son errores: el comprobante se autorizó igual. Tratarlas como fallo hace creer que la emisión no salió.","type":"array","items":{"type":"object","properties":{"code":{"type":"number","example":10048,"description":"El código de observación de ARCA. Es lo estable para ramificar; el texto cambia sin aviso.","isRequired":true,"uniqueKey":"observations.items.[INDEX].code","typeLabel":"number"},"message":{"type":"string","example":"El campo Condicion Frente al IVA...","description":"Qué observó ARCA, en sus palabras. **No es un error**: el comprobante ya tiene CAE.","isRequired":true,"uniqueKey":"observations.items.[INDEX].message","typeLabel":"string"}},"required":["code","message"],"uniqueKey":"observations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"observations","typeLabel":"object[]"},"rechazoArca":{"oneOf":[{"type":"object","description":"**Por qué ARCA rechazó el comprobante.** Sólo si `status` es `REJECTED`; `null` en cualquier otro estado. Es un **rechazo fiscal**, no un error de Emissa: ARCA contestó y dijo que no. Los textos son los de ARCA, literales, y sirven para que quien emite corrija el dato y reintente.\n\nCon la misma forma que `details.arca` del error `ARCA_WSFEV1_REJECTED` y que `data.rechazoArca` de `invoice.resolved`. Un `REJECTED` con las dos listas vacías es un comprobante que el reconciliar no encontró en ARCA.","required":["errores","observaciones"],"properties":{"errores":{"description":"Los `Errors` de WSFEv1: **por qué ARCA no autorizó**. Hasta 20. Puede venir vacío: cuando ARCA no manda `Errors`, el motivo está en `observaciones`.","type":"array","items":{"type":"object","properties":{"codigo":{"type":"number","example":10016,"description":"El código de ARCA. Es lo estable para ramificar; el texto cambia sin aviso.","isRequired":true,"uniqueKey":"rechazoArca.oneOf.0.errores.items.[INDEX].codigo","typeLabel":"number"},"mensaje":{"type":"string","example":"El campo DocNro es incorrecto. Debe ser mayor o igual a 0 y menor o igual a 99999999999.","description":"**El texto de ARCA, literal.** Emissa no lo traduce ni lo reescribe; sólo lo recorta a 500 caracteres.","isRequired":true,"uniqueKey":"rechazoArca.oneOf.0.errores.items.[INDEX].mensaje","typeLabel":"string"}},"required":["codigo","mensaje"],"uniqueKey":"rechazoArca.oneOf.0.errores.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rechazoArca.oneOf.0.errores","typeLabel":"object[]"},"observaciones":{"description":"Las `Observaciones` de ARCA sobre este comprobante. Hasta 20. **No son lo mismo que `errores`**: en un comprobante autorizado son avisos, y en uno rechazado a veces son el único motivo.","type":"array","items":{"type":"object","properties":{"codigo":{"type":"number","example":10016,"description":"El código de ARCA. Es lo estable para ramificar; el texto cambia sin aviso.","isRequired":true,"uniqueKey":"rechazoArca.oneOf.0.observaciones.items.[INDEX].codigo","typeLabel":"number"},"mensaje":{"type":"string","example":"El campo DocNro es incorrecto. Debe ser mayor o igual a 0 y menor o igual a 99999999999.","description":"**El texto de ARCA, literal.** Emissa no lo traduce ni lo reescribe; sólo lo recorta a 500 caracteres.","isRequired":true,"uniqueKey":"rechazoArca.oneOf.0.observaciones.items.[INDEX].mensaje","typeLabel":"string"}},"required":["codigo","mensaje"],"uniqueKey":"rechazoArca.oneOf.0.observaciones.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rechazoArca.oneOf.0.observaciones","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"rechazoArca.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"rechazoArca.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rechazoArca","typeLabel":"object | null"},"items":{"description":"El detalle. **No viaja a ARCA**: se guarda para imprimir y para que el integrador recupere lo que mandó.","type":"array","items":{"type":"object","properties":{"position":{"type":"number","example":1,"description":"El orden en que va impreso. Arranca en 1.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].position","typeLabel":"number"},"description":{"type":"string","example":"Servicio de consultoría","description":"Qué se vendió, como va impreso.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].description","typeLabel":"string"},"unit":{"type":"string","example":"UNIDADES","description":"Unidad de medida: `UNIDADES`, `HORAS`, `KILOGRAMOS`, etc.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].unit","typeLabel":"string"},"quantity":{"type":"string","example":"1","description":"Cantidad, como **string** para no perder precisión al parsear. Admite hasta 6 decimales.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"string"},"unitPrice":{"type":"string","example":"1000","description":"Precio unitario **sin IVA**, como string.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].unitPrice","typeLabel":"string"},"tratamiento":{"type":"string","example":"GRAVADO","description":"Cómo trata el IVA esta línea: `GRAVADO`, `NO_GRAVADO` o `EXENTO`. Es lo que decide a qué total de `totals` suma.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].tratamiento","typeLabel":"string"},"vatRateId":{"oneOf":[{"type":"number","example":5,"description":"El id de alícuota de ARCA. `null` en las líneas no gravadas o exentas, donde no hay alícuota que aplicar.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatRateId.oneOf.0","typeLabel":"number"},{"type":"null","example":5,"description":"El id de alícuota de ARCA. `null` en las líneas no gravadas o exentas, donde no hay alícuota que aplicar.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatRateId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatRateId","typeLabel":"number | null"},"vatRatePercent":{"oneOf":[{"type":"number","example":21,"description":"El porcentaje de `vatRateId`, para no mantener la tabla afuera.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatRatePercent.oneOf.0","typeLabel":"number"},{"type":"null","example":21,"description":"El porcentaje de `vatRateId`, para no mantener la tabla afuera.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatRatePercent.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatRatePercent","typeLabel":"number | null"},"netAmount":{"type":"string","example":"1000.00","description":"Neto de la línea: `quantity × unitPrice`, sin IVA.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].netAmount","typeLabel":"string"},"vatAmount":{"type":"string","example":"210.00","description":"El IVA de esta línea. `0.00` si no está gravada.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].vatAmount","typeLabel":"string"}},"required":["position","description","unit","quantity","unitPrice","tratamiento","vatRateId","vatRatePercent","netAmount","vatAmount"],"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"createdAt":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo se creó el registro en Emissa, en UTC. **No es `issueDate`**: la fecha del comprobante es un dato fiscal y ésta es de auditoría.","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"customer":{"type":"object","description":"La ficha del cliente guardada, con su estado **actual**. Difiere de `receiver` si el cliente cambió después de emitir.","required":["id","documentType","documentNumber","name","vatCondition"],"properties":{"id":{"type":"string","example":"cms5182zy00hkurgsa6512cha","description":"Id del cliente guardado, para reusarlo en otra emisión.","isRequired":true,"uniqueKey":"customer.id","typeLabel":"string"},"documentType":{"type":"string","example":"80","description":"Tipo de documento: `80` CUIT, `86` CUIL, `96` DNI, `99` CF.","isRequired":true,"uniqueKey":"customer.documentType","typeLabel":"string"},"documentNumber":{"type":"string","example":"30500010912","description":"El número, sin guiones.","isRequired":true,"uniqueKey":"customer.documentNumber","typeLabel":"string"},"name":{"type":"string","example":"Cliente SA","description":"Nombre o razón social, con el último valor conocido.","isRequired":true,"uniqueKey":"customer.name","typeLabel":"string"},"vatCondition":{"oneOf":[{"type":"string","example":"IVA Responsable Inscripto","description":"Su condición frente al IVA. `null` si nunca se validó contra el padrón ni se declaró.","isRequired":true,"uniqueKey":"customer.vatCondition.oneOf.0","typeLabel":"string"},{"type":"null","example":"IVA Responsable Inscripto","description":"Su condición frente al IVA. `null` si nunca se validó contra el padrón ni se declaró.","isRequired":true,"uniqueKey":"customer.vatCondition.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.vatCondition","typeLabel":"string | null"}},"uniqueKey":"customer","typeLabel":"object"},"arcaMetadata":{"type":"object","additionalProperties":true,"description":"Crudo de la respuesta de ARCA. Diagnóstico, no contractual.","uniqueKey":"arcaMetadata","typeLabel":"object"}},"required":["id","taxpayerId","externalReference","environment","origin","producto","cbteTipo","cbteTipoNombre","letra","concepto","conceptoNombre","salePoint","number","comprobante","issueDate","emitter","receiver","currency","exchangeRate","totals","vatBreakdown","taxes","servicePeriod","saleCondition","saleConditionNombre","status","cae","caeExpiresAt","cancelledByInvoiceId","associations","optionals","observations","rechazoArca","items","createdAt"],"uniqueKey":"","typeLabel":"object"},"example":{"id":"cmt42xc1t001ouri4evkjusrs","taxpayerId":"cmt42x6jb000curi4sz1gyeij","environment":"HOMOLOGACION","origin":"API","externalReference":null,"cbteTipo":1,"cbteTipoNombre":"FACTURA_A","letra":"A","concepto":1,"conceptoNombre":"PRODUCTOS","salePoint":1,"number":2,"comprobante":"0001-00000002","issueDate":"2026-08-22","emitter":{"cuit":"20000000001","name":"Estudio Contable SRL","vatStatus":"Responsable Inscripto","address":"Av. Corrientes 1234, CABA","grossIncomeTax":"901-123456-01","activityStartDate":"2020-03-01"},"receiver":{"docTipo":80,"docTipoNombre":"CUIT","docNro":"30000000007","name":"Cliente Mayorista SA","vatConditionId":1,"vatConditionNombre":"IVA_RESPONSABLE_INSCRIPTO","address":null},"currency":"PES","exchangeRate":"1","totals":{"netAmount":"1000.00","nonTaxedAmount":"0.00","exemptAmount":"0.00","vatAmount":"210.00","otherTaxesAmount":"0.00","totalAmount":"1210.00"},"vatBreakdown":[{"vatRateId":5,"vatRatePercent":21,"baseAmount":"1000.00","vatAmount":"210.00"}],"taxes":[],"saleCondition":null,"saleConditionNombre":null,"servicePeriod":null,"status":"REJECTED","cae":null,"caeExpiresAt":null,"cancelledByInvoiceId":null,"associations":[],"optionals":[],"observations":[],"rechazoArca":null,"items":[{"position":1,"description":"Servicio de consultoría","unit":"UNIDADES","quantity":"1","unitPrice":"1000","tratamiento":"GRAVADO","vatRateId":5,"vatRatePercent":21,"netAmount":"1000.00","vatAmount":"210.00"}],"customer":{"id":"cmt42x8pf000ruri4bt2gjtai","documentType":"CUIT","documentNumber":"30000000007","name":"Cliente Mayorista SA","vatCondition":"IVA_RESPONSABLE_INSCRIPTO"},"arcaMetadata":{"service":"wsfev1","resultado":"no existe en ARCA","authorized":false,"reconciliado":true},"createdAt":"2026-08-22T07:51:17.058Z"},"examples":{"Example":{"title":"Example","value":{"id":"cmt42xc1t001ouri4evkjusrs","taxpayerId":"cmt42x6jb000curi4sz1gyeij","environment":"HOMOLOGACION","origin":"API","externalReference":null,"cbteTipo":1,"cbteTipoNombre":"FACTURA_A","letra":"A","concepto":1,"conceptoNombre":"PRODUCTOS","salePoint":1,"number":2,"comprobante":"0001-00000002","issueDate":"2026-08-22","emitter":{"cuit":"20000000001","name":"Estudio Contable SRL","vatStatus":"Responsable Inscripto","address":"Av. Corrientes 1234, CABA","grossIncomeTax":"901-123456-01","activityStartDate":"2020-03-01"},"receiver":{"docTipo":80,"docTipoNombre":"CUIT","docNro":"30000000007","name":"Cliente Mayorista SA","vatConditionId":1,"vatConditionNombre":"IVA_RESPONSABLE_INSCRIPTO","address":null},"currency":"PES","exchangeRate":"1","totals":{"netAmount":"1000.00","nonTaxedAmount":"0.00","exemptAmount":"0.00","vatAmount":"210.00","otherTaxesAmount":"0.00","totalAmount":"1210.00"},"vatBreakdown":[{"vatRateId":5,"vatRatePercent":21,"baseAmount":"1000.00","vatAmount":"210.00"}],"taxes":[],"saleCondition":null,"saleConditionNombre":null,"servicePeriod":null,"status":"REJECTED","cae":null,"caeExpiresAt":null,"cancelledByInvoiceId":null,"associations":[],"optionals":[],"observations":[],"rechazoArca":null,"items":[{"position":1,"description":"Servicio de consultoría","unit":"UNIDADES","quantity":"1","unitPrice":"1000","tratamiento":"GRAVADO","vatRateId":5,"vatRatePercent":21,"netAmount":"1000.00","vatAmount":"210.00"}],"customer":{"id":"cmt42x8pf000ruri4bt2gjtai","documentType":"CUIT","documentNumber":"30000000007","name":"Cliente Mayorista SA","vatCondition":"IVA_RESPONSABLE_INSCRIPTO"},"arcaMetadata":{"service":"wsfev1","resultado":"no existe en ARCA","authorized":false,"reconciliado":true},"createdAt":"2026-08-22T07:51:17.058Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"223f430b-1d0c-41ce-a2fc-8dad8b37f9da":{"description":"Pedido mal formado o inválido.\n\n`errorCode`: `INVALID_INPUT`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["INVALID_INPUT"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"b9e18df0-0c08-42ac-a006-d698c7271a8e":{"description":"Falta la credencial o no es válida.\n\n`errorCode`: `UNAUTHORIZED`, `INVALID_API_KEY`, `API_KEY_WRONG_HEADER`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["UNAUTHORIZED","INVALID_API_KEY","API_KEY_WRONG_HEADER"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"d8bdc811-398c-4dd5-b05a-391eaffa61cd":{"description":"La credencial es válida pero no alcanza. Con API key, también: el **modo de la key no coincide con el ambiente del contribuyente**. Una `emi_test_` contra un contribuyente de `PRODUCCION` nunca emite.\n\n`errorCode`: `FORBIDDEN`, `API_KEY_INSUFFICIENT_PERMISSIONS`, `API_KEY_INSUFFICIENT_SCOPE`, `API_KEY_WRONG_MODE`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["FORBIDDEN","API_KEY_INSUFFICIENT_PERMISSIONS","API_KEY_INSUFFICIENT_SCOPE","API_KEY_WRONG_MODE"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"cf6de3da-8cdb-4cfc-8d34-1713bf6f70e9":{"description":"No existe ese comprobante.\n\n`errorCode`: `INVOICE_NOT_FOUND`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["INVOICE_NOT_FOUND"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"b20d300a-fb16-480b-998d-68fb21902f09":{"description":"El comprobante **no está irresuelto**: ya tiene estado final, así que no hay nada que reconciliar.\n\n`errorCode`: `INVOICE_NOTHING_TO_RECONCILE`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["INVOICE_NOTHING_TO_RECONCILE"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"b62e854d-ce73-4911-ab2c-6d3005521c51":{"description":"Se excedió el límite de peticiones. **Reintentá con backoff.**\n\n`errorCode`: `RATE_LIMIT_EXCEEDED`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["RATE_LIMIT_EXCEEDED"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"5e9c09e2-098c-4c9a-b44f-168f086f5a41":{"description":"Error interno. Citá el `requestId` al reportarlo.\n\n`errorCode`: `INTERNAL_ERROR`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["INTERNAL_ERROR"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"},"4e444e50-2de1-4358-b719-09f39fe48961":{"description":"ARCA no está disponible para consultarle. Reintentá.\n\n`errorCode`: `ARCA_WSFEV1_UNAVAILABLE`, `ARCA_INVALID_RESPONSE`","content":{"application/json":{"schema":{"type":"object","required":["statusCode","errorCode","message","timestamp","path"],"properties":{"statusCode":{"type":"number","example":401,"description":"El mismo código HTTP de la respuesta. Va repetido en el cuerpo para que un cliente que sólo loguea el JSON no pierda el dato.","isRequired":true,"uniqueKey":"statusCode","typeLabel":"number"},"errorCode":{"type":"string","description":"Siempre una entrada del catálogo de errores. Es el campo por el que se ramifica.","enum":["ARCA_WSFEV1_UNAVAILABLE","ARCA_INVALID_RESPONSE"],"example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"errorCode","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"No autorizado","description":"**Siempre un string**, nunca un arreglo.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"timestamp":{"type":"string","example":"2026-07-26T18:30:00.000Z","description":"Cuándo falló, en UTC. Sirve para ubicarlo en los logs.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string"},"path":{"type":"string","example":"/v1/invoices/authorize","description":"La ruta que se pidió, sin el host ni la query.","isRequired":true,"uniqueKey":"path","typeLabel":"string"},"details":{"oneOf":[{"type":"string","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","uniqueKey":"details.oneOf.0","typeLabel":"string"},{"type":"object","description":"Detalle adicional. Lo contractual viaja siempre; lo de diagnóstico **no viaja en producción**. No ramifiques por este campo.","additionalProperties":true,"uniqueKey":"details.oneOf.1","typeLabel":"object"}],"uniqueKey":"details","typeLabel":"string | object"},"retryable":{"type":"boolean","example":false,"description":"**¿Tiene sentido reintentar?** Si viene, le gana a cualquier heurística basada en el status.\n\nExiste porque el status no alcanza: `ARCA_TICKET_ALREADY_ISSUED` es un 409 que **se resuelve esperando**, y `ARCA_COMPUTER_NOT_AUTHORIZED` es un 502 que **no se arregla nunca esperando** — hay que autorizar el certificado en ARCA. Un cliente que ramifique sólo por 4xx/5xx acierta al revés en los dos.\n\n**Ausente significa \"no lo sabemos\"**, y es distinto de `false`: ahí corresponde la heurística de siempre. Sólo se declara donde la respuesta es certera.","uniqueKey":"retryable","typeLabel":"boolean"},"retryAfterSeconds":{"type":"number","example":43200,"description":"Cuántos segundos esperar antes de reintentar. **Sólo cuando el número es real** —el vencimiento de un ticket, la ventana de un límite—, nunca una estimación.\n\nEl 429 y el bloqueo del segundo factor ya lo mandaban como `details.reintentarEnSegundos`, en castellano y anidado. Sigue ahí para no romper a nadie, y ahora **también arriba**, con el nombre del resto del sobre.","uniqueKey":"retryAfterSeconds","typeLabel":"number"},"requestId":{"type":"string","example":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e","description":"El mismo valor de la cabecera `X-Request-Id`. Es lo que hay que pegar en un ticket.","uniqueKey":"requestId","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"errorCode":"UNAUTHORIZED","message":"No autorizado","timestamp":"2026-07-26T18:30:00.000Z","path":"/v1/invoices/authorize","details":"\u003cstring>","retryable":false,"retryAfterSeconds":43200,"requestId":"0f2c1a5e-1d9b-4c7a-9a55-7f1a2b3c4d5e"}}},"exampleType":"generated"}},"headers":{"X-Request-Id":{"description":"Identificador del pedido. Va en TODA respuesta. Si lo mandás en el pedido y respeta `[A-Za-z0-9._:-]{1,128}`, se te devuelve el mismo; si no, se genera uno. Es lo que hay que citar en un ticket.","schema":{"type":"string"}},"X-Emissa-Mode":{"description":"`test` o `live`. **Va en toda respuesta autenticada con API key**, y es la forma más barata de verificar que no estás emitiendo contra el ambiente equivocado. No aparece cuando se entra con sesión de panel: ahí el ambiente lo decide cada contribuyente, no la credencial.","schema":{"type":"string","enum":["test","live"]}}},"exampleType":"generated"}},"security":{"459fff98-d161-49ec-8ee9-27bc85449d39":{"api-key":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key de integración. **El modo va en el prefijo**: `emi_test_` opera contra homologación, `emi_live_` contra producción. Después, 64 hexadecimales.","scopes":[],"schemeName":"api-key"}},"a3ffbd5d-81f1-4398-823c-1fbbf7cf131d":{"panel-jwt":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Sesión del panel. **No** es donde va la API key.","scopes":[],"schemeName":"panel-jwt"}}},"servers":{"4c3ac454-1611-42e6-9972-fdce75c66d95":{"url":"https://api.emissa.com.ar","description":"Producción"},"59c0321e-fc8e-4fd2-8484-7481e01419e1":{"url":"http://localhost:3001","description":"Local"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key de integración. **El modo va en el prefijo**: `emi_test_` opera contra homologación, `emi_live_` contra producción. Después, 64 hexadecimales.","scopes":[],"schemeName":"api-key"},"schema":{"title":"X-API-Key","type":"string","description":"API key de integración. **El modo va en el prefijo**: `emi_test_` opera contra homologación, `emi_live_` contra producción. Después, 64 hexadecimales.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api-key","name":"X-API-Key"}],"title":"api-key"},{"schemes":[{"scheme":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Sesión del panel. **No** es donde va la API key.","scopes":[],"schemeName":"panel-jwt"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Sesión del panel. **No** es donde va la API key.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"panel-jwt","name":"Authorization"}],"title":"panel-jwt"}]},"originalFileLocation":"https://api.emissa.com.ar/openapi.json"},"subdomain":"emissa","siteName":"Emissa","title":"Reconciliar un comprobante sin resolver - Emissa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T17:08:37.610Z","originalFileLocation":"api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver.mdx"},"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=\"light\"}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=\"Le pregunta a ARCA qué pasó con un comprobante que quedó en PENDING o UNKNOWN —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta. Es el camino de salida. Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa). Scope de API key: invoice:write. Una key sin ese scope recibe 403 API_KEY_INSUFFICIENT_SCOPE, aunque el rol de quien la creó lo permita: el permiso efectivo es la intersección de los dos.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Emissa\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_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=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Reconciliar un comprobante sin resolver - Emissa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Le pregunta a ARCA qué pasó con un comprobante que quedó en PENDING o UNKNOWN —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta. Es el camino de salida. Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa). Scope de API key: invoice:write. Una key sin ese scope recibe 403 API_KEY_INSUFFICIENT_SCOPE, aunque el rol de quien la creó lo permita: el permiso efectivo es la intersección de los dos.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Emissa\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://emissa.mintlify.app/_mintlify/api/og/v2?division=Comprobantes\u0026amp;title=Reconciliar+un+comprobante+sin+resolver\u0026amp;description=Le+pregunta+a+ARCA+qu%C3%A9+pas%C3%B3+con+un+comprobante+que+qued%C3%B3+en+%60PENDING%60+o+%60UNKNOWN%60+%E2%80%94t%C3%ADpicamente+por+un+corte+durante+la+autorizaci%C3%B3n%E2%80%94+y+actualiza+el+estado+con+l\u0026amp;theme=86e15709e365c8147b74cd50\u0026amp;signature=b72969905484f4cca3d63049755ad4c7ee58cfc48247be98dd2d44f9b3a0a6b2\">\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=\"Reconciliar un comprobante sin resolver - Emissa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Le pregunta a ARCA qué pasó con un comprobante que quedó en PENDING o UNKNOWN —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta. Es el camino de salida. Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa). Scope de API key: invoice:write. Una key sin ese scope recibe 403 API_KEY_INSUFFICIENT_SCOPE, aunque el rol de quien la creó lo permita: el permiso efectivo es la intersección de los dos.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://emissa.mintlify.app/_mintlify/api/og/v2?division=Comprobantes\u0026amp;title=Reconciliar+un+comprobante+sin+resolver\u0026amp;description=Le+pregunta+a+ARCA+qu%C3%A9+pas%C3%B3+con+un+comprobante+que+qued%C3%B3+en+%60PENDING%60+o+%60UNKNOWN%60+%E2%80%94t%C3%ADpicamente+por+un+corte+durante+la+autorizaci%C3%B3n%E2%80%94+y+actualiza+el+estado+con+l\u0026amp;theme=86e15709e365c8147b74cd50\u0026amp;signature=b72969905484f4cca3d63049755ad4c7ee58cfc48247be98dd2d44f9b3a0a6b2\">\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=\"/docs/mintlify-assets/_mintlify/favicons/emissa/WZ2UJ_VM2VRN59-L/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Emissa\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0c0cc8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.emissa.com.ar/#organization\",\"name\":\"Emissa\",\"url\":\"https://www.emissa.com.ar\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/emissa/54zD7qivv8TCTuUU/images/marca/navigation-positive-on-white.svg?fit=max\u0026auto=format\u0026n=54zD7qivv8TCTuUU\u0026q=85\u0026s=31720f0a4e045e64fd37cff5a02df0d4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.emissa.com.ar/docs#website\",\"name\":\"Emissa\",\"url\":\"https://www.emissa.com.ar/docs\",\"publisher\":{\"@id\":\"https://www.emissa.com.ar/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver#webpage\",\"url\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver\",\"name\":\"Reconciliar un comprobante sin resolver\",\"description\":\"Le pregunta a ARCA qué pasó con un comprobante que quedó en PENDING o UNKNOWN —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta. Es el camino de salida. Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa). Scope de API key: invoice:write. Una key sin ese scope recibe 403 API_KEY_INSUFFICIENT_SCOPE, aunque el rol de quien la creó lo permita: el permiso efectivo es la intersección de los dos.\",\"dateModified\":\"2026-10-20T17:08:37.610Z\",\"isPartOf\":{\"@id\":\"https://www.emissa.com.ar/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Comprobantes\",\"item\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/emitir-un-comprobante\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reconciliar un comprobante sin resolver\",\"item\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver#apireference\",\"headline\":\"Reconciliar un comprobante sin resolver\",\"name\":\"Reconciliar un comprobante sin resolver\",\"description\":\"Le pregunta a ARCA qué pasó con un comprobante que quedó en PENDING o UNKNOWN —típicamente por un corte durante la autorización— y actualiza el estado con la respuesta. Es el camino de salida. Sin esto un comprobante en ese estado traba la serie: no se puede reintentar (podría duplicar) ni saltear (ARCA exige numeración correlativa). Scope de API key: invoice:write. Una key sin ese scope recibe 403 API_KEY_INSUFFICIENT_SCOPE, aunque el rol de quien la creó lo permita: el permiso efectivo es la intersección de los dos.\",\"url\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver\",\"mainEntityOfPage\":{\"@id\":\"https://www.emissa.com.ar/docs/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver#webpage\"},\"dateModified\":\"2026-10-20T17:08:37.610Z\",\"publisher\":{\"@id\":\"https://www.emissa.com.ar/#organization\"},\"isPartOf\":{\"@id\":\"https://www.emissa.com.ar/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Emissa\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Emissa","nav":{"global":null,"tabs":[{"tab":"Guías","pages":[{"title":"Guías","href":"/guias/inicio"}]},{"tab":"Referencia de la API","groups":[{"group":"Contribuyentes","pages":[{"title":"Listar contribuyentes","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/taxpayers","href":"/api-reference/contribuyentes/listar-contribuyentes"},{"title":"Alta o edición de un contribuyente","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/taxpayers","href":"/api-reference/contribuyentes/alta-o-edición-de-un-contribuyente"},{"title":"Verificar la conexión con ARCA","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/taxpayers/{id}/conexion/verificar","href":"/api-reference/contribuyentes/verificar-la-conexión-con-arca"},{"title":"Descargar el logo del emisor","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/taxpayers/{id}/logo","href":"/api-reference/contribuyentes/descargar-el-logo-del-emisor"},{"title":"Subir o reemplazar el logo del emisor","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json put /v1/taxpayers/{id}/logo","href":"/api-reference/contribuyentes/subir-o-reemplazar-el-logo-del-emisor"},{"title":"Borrar el logo del emisor","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json delete /v1/taxpayers/{id}/logo","href":"/api-reference/contribuyentes/borrar-el-logo-del-emisor"},{"title":"Consultar el padrón de ARCA por CUIT","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/arca/padron/{cuit}","href":"/api-reference/contribuyentes/consultar-el-padrón-de-arca-por-cuit"}]},{"group":"Credenciales ARCA","pages":[{"title":"Historial de credenciales","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/arca/credentials","href":"/api-reference/credenciales-arca/historial-de-credenciales"},{"title":"Cargar el certificado y la clave privada","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/arca/credentials","href":"/api-reference/credenciales-arca/cargar-el-certificado-y-la-clave-privada"},{"title":"Revocar una credencial","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json delete /v1/arca/credentials/{id}","href":"/api-reference/credenciales-arca/revocar-una-credencial"}]},{"group":"Clientes","pages":[{"title":"Validar un receptor contra el padrón de ARCA","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/customers/validate-tax","href":"/api-reference/clientes/validar-un-receptor-contra-el-padrón-de-arca"}]},{"group":"Comprobantes","pages":[{"title":"Emitir un comprobante","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/invoices/authorize","href":"/api-reference/comprobantes/emitir-un-comprobante"},{"title":"Listar comprobantes","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/invoices/search","href":"/api-reference/comprobantes/listar-comprobantes"},{"title":"Exportar el histórico","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/invoices/export","href":"/api-reference/comprobantes/exportar-el-histórico"},{"title":"Anular un comprobante","description":"Emite la **nota de crédito** que anula el comprobante y la deja asociada. No se borra nada: un comprobante fiscal autorizado no se puede deshacer, se compensa.\n\nEs una emisión, así que vale todo lo de `authorize`: `Idempotency-Key` obligatorio, serialización por serie y `503 SERIES_BUSY` reintentable.\n\n**Scope de API key:** `invoice:cancel`. Una key sin ese scope recibe `403 API_KEY_INSUFFICIENT_SCOPE`, aunque el rol de quien la creó lo permita: el permiso efectivo es la **intersección** de los dos.","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/invoices/{id}/cancel","href":"/api-reference/comprobantes/anular-un-comprobante"},{"title":"Reconciliar un comprobante sin resolver","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json post /v1/invoices/{id}/reconcile","href":"/api-reference/comprobantes/reconciliar-un-comprobante-sin-resolver"},{"title":"Comprobantes sin resolver","description":"Los que quedaron en `PENDING` o `UNKNOWN`. Cada uno se destraba con `POST /v1/invoices/{id}/reconcile`.\n\n`taxpayerId` es **obligatorio**: no hay una vista \"de todos mis contribuyentes\". Sin él la respuesta es 400 `MISSING_TAXPAYER_ID`.\n\n**Scope de API key:** `invoice:read`. Una key sin ese scope recibe `403 API_KEY_INSUFFICIENT_SCOPE`, aunque el rol de quien la creó lo permita: el permiso efectivo es la **intersección** de los dos.","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/invoices/unresolved","href":"/api-reference/comprobantes/comprobantes-sin-resolver"},{"title":"Un comprobante por id","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/invoices/{id}","href":"/api-reference/comprobantes/un-comprobante-por-id"},{"title":"PDF del comprobante","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/invoices/{id}/pdf","href":"/api-reference/comprobantes/pdf-del-comprobante"}]},{"group":"Consumo","pages":[{"title":"Consumo del período","deprecated":null,"version":null,"openapi":"https://api.emissa.com.ar/openapi.json get /v1/consumo","href":"/api-reference/consumo/consumo-del-período"}]}]}]},"basePath":"","title":"Reconciliar un comprobante sin resolver - Emissa","buildId":"dpl_6cCEiK8XNNvaLBBkWzcBhdE9QfLC","deploymentId":"dpl_6cCEiK8XNNvaLBBkWzcBhdE9QfLC","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CLz2_Z5D.js","utils-7A5jZhOT.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BVWmkKuv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-4SOfrh0F.js","snippetPresets-CMc8KicP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ba9tX7z3.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Be8krXvv.js","shallow-CBC3K1uB.js","getApiPlaygroundDisplay-4tKcUAYo.js","CodeSnippet-C1Xa06ft.js","CodeSnippets-vqiz27A_.js","Page-DeQN5MDd.js","getPastedJson-NUwRfM32.js","icon-DkIVqWh9.js","MethodPill-qmhT7_wz.js","DuplicateIcon-_gWp1vhn.js","createIcon-NA1p_TVA.js","DynamicMarkdown-Bas9A7wq.js","SectionHeading-a1cS-24U.js","axios-vUo_bRtp.js","Markdown-D3ZTwq_a.js","clsx-BcghKhHb.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-B66mVNPp.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DmooSyTN.js"]}