Necesitás CUIT, certificado y clave privada, la relación del certificado con
el servicio Facturación Electrónica, y un punto de venta habilitado para
web services. Homologación y producción tienen certificados y puntos de venta
propios. El SDK no hace estas habilitaciones por vos, pero el CLI te acompaña:
npx facturas init --cuit 20123456786 --env test
El comando genera la clave privada y el CSR que se sube en ARCA. En homologación,
te deja el CSR en el portapapeles. Después imprime qué página abrir, qué botón
usar y qué servicio autorizar. Cuando ARCA te dé el certificado, pegalo en el
prompt final. El CLI lo guarda en ese mismo directorio como arca-test.crt.
Si saliste antes, npx facturas cert lo toma después. El
paso a paso completo y las referencias oficiales están en
Habilitación en ARCA. Los comandos están en
CLI.
Definí ARCA_TAX_ID, ARCA_CERTIFICATE_PEM, ARCA_PRIVATE_KEY_PEM y
ARCA_ENVIRONMENT=test. Los PEM deben contener el certificado y la clave
completos. No los subas al repositorio. No hay entorno predeterminado: test
apunta a homologación y production a los servidores reales.
Los campos explícitos de createArcaClient() tienen prioridad.
import { createArcaClient } from "facturas";const arca = createArcaClient();
Con eso alcanza para emitir: el cliente lee las variables de entorno y guarda
el ticket WSAA en memoria. No necesitás base de datos ni ningún servicio
externo. El resto de las opciones está en Configuración.Antes de escribir código, confirmá las habilitaciones:
npx facturas check
El comando prueba la configuración, el certificado, WSAA, WSFE y los puntos de
venta en ese orden. Si algo falla, nombra el paso y muestra dónde corregirlo en
ARCA. No
hace falta exportar nada para correrlo: si arca-test.crt y arca-test.key
están en el directorio, los usa, y saca de ahí el entorno y el CUIT. No
escribe nada en ARCA. Guarda el ticket WSAA en el directorio temporal para
poder repetirse. La tabla completa de diagnósticos está en
Comandos del CLI.
Elegí tu condición real de emisor y tu punto de venta habilitado. Este bloque
es examples/primera-factura.ts:
const factura = await arca.issue({ issuer: "monotributo", salesPoint: 3, to: { condition: "consumidor_final" }, items: [{ amount: 150_000 }], // ARS 1.500,00 en centavos});
El importe se expresa en centavos. Para responsables inscriptos usá
issuer: "responsable_inscripto" e ítems como { gross: 12_100, vat: 21 }.
Si preferís probar el circuito antes de escribir código,
npx facturas issue --sales-point 3 --issuer monotributo emite una factura de
ARS 1 en homologación y te imprime la llamada que hizo.
ARCA valida la habilitación fiscal. El SDK no infiere tu condición. Todos los
campos del input están en Emitir facturas.Antes de emitir podés revisar lo que el SDK va a enviar con
arca.preview(input): es sincrónico, no hace ninguna llamada y devuelve la
clase, el tipo de comprobante, los amounts y el request exacto. Compará
preview(input).amounts.sentTotal con el total de tu venta y recién entonces
llamá a issue().
indeterminate: conservá el número y la evidencia. Conciliá o repetí el mismo input con su clave, como explica el paso 6.
conflict: hay otro comprobante en ese número. Detené el flujo e investigá.
La evidencia SOAP y el request enviado no aparecen por defecto. Podés pedirlos
con include: { rawResponse: true, request: true }. La secuencia de llamadas
está en Qué hace issue() al emitir.
Cuando una llamada falla, mirá Errores.
ARCA no acepta una clave de idempotencia. Si se corta la respuesta,
tu aplicación no sabe si ARCA emitió el comprobante. facturas facilita un
mecanismo de deduplicación: guardá el intento en un store y pasá el ID estable
de la venta como idempotencyKey. Al reintentar, el SDK consulta el número
reservado antes de decidir si tiene que emitir.Creá una vez la tabla Postgres y usá:
import { createArcaClient, createPostgresStore } from "facturas";import { Pool } from "pg";const pool = new Pool({ connectionString: process.env.DATABASE_URL });const arca = createArcaClient({ store: createPostgresStore({ query: (text, params) => pool.query(text, params) }),});const factura = await arca.issue(input, { idempotencyKey: venta.id });
Un solo store guarda tickets WSAA y reservas de comprobantes. También hay
adaptadores para Redis, archivos y memoria. La memoria sirve para pruebas y no
sobrevive al reinicio del proceso. Comparalos en
Evitar comprobantes duplicados.Usá de 1 a 255 caracteres, sin CUIT, DNI ni otros datos personales. No generes
una clave nueva por intento. Una clave con un input diferente produce
ARCA_INPUT_IDEMPOTENCY_MISMATCH. No borres ni hagas vencer las reservas:
guardan el número fiscal que el reintento debe consultar.
Habilitá el certificado y punto de venta de producción y cambiá
ARCA_ENVIRONMENT=production. Antes del primer comprobante real, repasá la
lista y la prueba de ARS 1 según la clase del comprobante en
Pasar a producción.
Una factura de prueba en producción es un documento fiscal real y queda registrada en ARCA.
ARCA no anula comprobantes: una corrección es una nota de crédito, que también
es un documento real. Lo habitual es la nota parcial, que acredita las líneas
que elegís:
if (factura.kind === "authorized") { const nota = await arca.issueCreditNote( { for: factura.voucher, items: [{ amount: 50 }], // ARS 0,50 de una factura de ARS 1,00. }, { idempotencyKey: `nc:${venta.id}` }, ); console.log(nota); // También debe tratarse cada resultado de la nota.}
Con all: true en lugar de items acreditás el total del original. El modo es
explícito y obligatorio: sin items ni all: true, el SDK falla antes de
cualquier llamada, así un campo olvidado nunca acredita la factura entera.La nota es una segunda operación. Si falla, la factura sigue pendiente. La
clase, el receptor, la moneda, el concepto y las fechas de servicio salen del
original. Vos aportás las líneas y, como mucho, el punto de venta y la fecha de
la nota. issueDebitNote() emite notas de débito y associatedPeriod permite
emitir notas por período. Está todo
en Notas de crédito.
Last modified on October 1, 2026
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"SDK para ARCA","description":"SDK de TypeScript para facturación electrónica con ARCA.","colors":{"primary":"#1E40AF","light":"#60A5FA","dark":"#3B82F6"},"logo":{"light":"https://mintcdn.com/facturas/pktTzKJc2C5CFjml/logo/light.svg?fit=max\u0026auto=format\u0026n=pktTzKJc2C5CFjml\u0026q=85\u0026s=73bd11ed0082cb7e3baa1eebaa49f52e","dark":"https://mintcdn.com/facturas/pktTzKJc2C5CFjml/logo/dark.svg?fit=max\u0026auto=format\u0026n=pktTzKJc2C5CFjml\u0026q=85\u0026s=b622d0addf3867dadb7e6076d70e8d53","href":"/"},"favicon":"https://mintcdn.com/facturas/XCz-VwVwBjqrsZFc/favicon.svg?fit=max\u0026auto=format\u0026n=XCz-VwVwBjqrsZFc\u0026q=85\u0026s=2088e0a92b52cb6fc0353f597fb9e6b7","appearance":{"default":"system"},"navbar":{"links":[{"icon":"github","href":"https://github.com/LaPyme/facturas","label":""}],"primary":{"type":"button","label":"Inicio rápido","href":"/getting-started/quickstart"}},"footer":{"socials":{"github":"https://github.com/LaPyme/facturas"},"links":[{"header":"Proyecto","items":[{"label":"npm","href":"https://www.npmjs.com/package/facturas"},{"label":"Changelog","href":"https://github.com/LaPyme/facturas/blob/main/packages/arca/CHANGELOG.md"},{"label":"Licencia","href":"https://github.com/LaPyme/facturas/blob/main/LICENSE"},{"label":"La Pyme","href":"https://lapyme.com.ar"}]}]},"search":{"prompt":"Buscar en la documentación..."},"seo":{"indexing":"navigable"},"icons":{"library":"lucide"},"contextual":{"options":["copy","chatgpt","claude","cursor","mcp"],"display":"toc"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"facturas","hasAudioNarration":false,"actualSubdomain":"facturas","customDomains":["facturas-sdk.dev"],"gitSource":{"type":"github","owner":"lapyme","repo":"facturas","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ace78c7cf39668cd3cb84a8","collectionId":"036530cb-f804-4aef-bba8-74a649ae185c","liveDeploymentHistoryId":"6ace78c7cf39668cd3cb84a8","schemaVersion":"v3"},"entitlements":{},"buildId":"6ace78c7cf39668cd3cb84a8","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"Guías","count":8},{"language":"default","tag":"Referencia","count":7},{"language":"default","tag":"Empezar","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (max-width:639px){#emitir pre{font-size:12px;line-height:20px}}@media (max-width:399px){#emitir pre{font-size:11px;line-height:18px}}"}],"page":{"pagePath":"getting-started/quickstart","slug":"/getting-started/quickstart","pageMetadata":{"title":"Inicio rápido","description":"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.","keywords":["inicio rápido","primera factura","ARCA","Node.js"],"href":"/getting-started/quickstart"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`1-habilitá-arca`,children:`1. Habilitá ARCA`}),`\n`,_jsxs(_components.p,{children:[`Necesitás CUIT, certificado y clave privada, la relación del certificado con\nel servicio `,_jsx(_components.strong,{children:`Facturación Electrónica`}),`, y un punto de venta habilitado para\nweb services. Homologación y producción tienen certificados y puntos de venta\npropios. El SDK no hace estas habilitaciones por vos, pero el CLI te acompaña:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` facturas`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --cuit`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 20123456786`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --env`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`El comando genera la clave privada y el CSR que se sube en ARCA. En homologación,\nte deja el CSR en el portapapeles. Después imprime qué página abrir, qué botón\nusar y qué servicio autorizar. Cuando ARCA te dé el certificado, pegalo en el\nprompt final. El CLI lo guarda en ese mismo directorio como `,_jsx(_components.code,{children:`arca-test.crt`}),`.\nSi saliste antes, `,_jsx(_components.code,{children:`npx facturas cert`}),` lo toma después. El\npaso a paso completo y las referencias oficiales están en\n`,_jsx(_components.a,{href:`/getting-started/arca-setup`,children:`Habilitación en ARCA`}),`. Los comandos están en\n`,_jsx(_components.a,{href:`/getting-started/cli`,children:`CLI`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-instalá`,children:`2. Instalá`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`pnpm`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` facturas`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`npm`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` facturas`})]}),`\n`]})})})]}),`\n`,_jsx(_components.p,{children:`Requiere Node.js 22 o superior y módulos ESM.`}),`\n`,_jsx(Heading,{level:`2`,id:`3-configurá-el-cliente`,children:`3. Configurá el cliente`}),`\n`,_jsxs(_components.p,{children:[`Definí `,_jsx(_components.code,{children:`ARCA_TAX_ID`}),`, `,_jsx(_components.code,{children:`ARCA_CERTIFICATE_PEM`}),`, `,_jsx(_components.code,{children:`ARCA_PRIVATE_KEY_PEM`}),` y\n`,_jsx(_components.code,{children:`ARCA_ENVIRONMENT=test`}),`. Los PEM deben contener el certificado y la clave\ncompletos. No los subas al repositorio. No hay entorno predeterminado: `,_jsx(_components.code,{children:`test`}),`\napunta a homologación y `,_jsx(_components.code,{children:`production`}),` a los servidores reales.\nLos campos explícitos de `,_jsx(_components.code,{children:`createArcaClient()`}),` tienen prioridad.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`createArcaClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"facturas\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` arca`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createArcaClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Con eso alcanza para emitir: el cliente lee las variables de entorno y guarda\nel ticket WSAA en memoria. No necesitás base de datos ni ningún servicio\nexterno. El resto de las opciones está en `,_jsx(_components.a,{href:`/reference/configuration`,children:`Configuración`}),`.`]}),`\n`,_jsx(_components.p,{children:`Antes de escribir código, confirmá las habilitaciones:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` facturas`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` check`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`El comando prueba la configuración, el certificado, WSAA, WSFE y los puntos de\nventa en ese orden. Si algo falla, nombra el paso y muestra dónde corregirlo en\nARCA. No\nhace falta exportar nada para correrlo: si `,_jsx(_components.code,{children:`arca-test.crt`}),` y `,_jsx(_components.code,{children:`arca-test.key`}),`\nestán en el directorio, los usa, y saca de ahí el entorno y el CUIT. No\nescribe nada en ARCA. Guarda el ticket WSAA en el directorio temporal para\npoder repetirse. La tabla completa de diagnósticos está en\n`,_jsx(_components.a,{href:`/reference/cli#diagn%C3%B3sticos`,children:`Comandos del CLI`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-emití-la-primera-factura`,children:`4. Emití la primera factura`}),`\n`,_jsxs(_components.p,{children:[`Elegí tu condición real de emisor y tu punto de venta habilitado. Este bloque\nes `,_jsx(_components.a,{href:`https://github.com/LaPyme/facturas/blob/main/examples/primera-factura.ts`,children:`examples/primera-factura.ts`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` factura`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` arca`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`issue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` issuer:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"monotributo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` salesPoint:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` to:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`condition:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"consumidor_final\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` items:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [{ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`amount:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 150_000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ARS 1.500,00 en centavos`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`El importe se expresa en centavos. Para responsables inscriptos usá\n`,_jsx(_components.code,{children:`issuer: \"responsable_inscripto\"`}),` e ítems como `,_jsx(_components.code,{children:`{ gross: 12_100, vat: 21 }`}),`.\nSi preferís probar el circuito antes de escribir código,\n`,_jsx(_components.code,{children:`npx facturas issue --sales-point 3 --issuer monotributo`}),` emite una factura de\nARS 1 en homologación y te imprime la llamada que hizo.\nARCA valida la habilitación fiscal. El SDK no infiere tu condición. Todos los\ncampos del input están en `,_jsx(_components.a,{href:`/guides/invoices#datos-de-la-factura`,children:`Emitir facturas`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Antes de emitir podés revisar lo que el SDK va a enviar con\n`,_jsx(_components.code,{children:`arca.preview(input)`}),`: es sincrónico, no hace ninguna llamada y devuelve la\nclase, el tipo de comprobante, los `,_jsx(_components.code,{children:`amounts`}),` y el request exacto. Compará\n`,_jsx(_components.code,{children:`preview(input).amounts.sentTotal`}),` con el total de tu venta y recién entonces\nllamá a `,_jsx(_components.code,{children:`issue()`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`5-tratá-todos-los-resultados`,children:`5. Tratá todos los resultados`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`authorized`}),`: guardá `,_jsx(_components.code,{children:`factura.voucher`}),` y su CAE.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`rejected`}),`: revisá los errores que devolvió ARCA.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`indeterminate`}),`: conservá el número y la evidencia. Conciliá o repetí el mismo input con su clave, como explica el paso 6.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`conflict`}),`: hay otro comprobante en ese número. Detené el flujo e investigá.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`La evidencia SOAP y el request enviado no aparecen por defecto. Podés pedirlos\ncon `,_jsx(_components.code,{children:`include: { rawResponse: true, request: true }`}),`. La secuencia de llamadas\nestá en `,_jsxs(_components.a,{href:`/guides/invoices#qu%C3%A9-hace-issue-al-emitir`,children:[`Qué hace `,_jsx(_components.code,{children:`issue()`}),` al emitir`]}),`.\nCuando una llamada falla, mirá `,_jsx(_components.a,{href:`/reference/errors`,children:`Errores`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`6-evitá-duplicados-al-reintentar`,children:`6. Evitá duplicados al reintentar`}),`\n`,_jsxs(_components.p,{children:[`ARCA no acepta una clave de idempotencia. Si se corta la respuesta,\ntu aplicación no sabe si ARCA emitió el comprobante. `,_jsx(_components.code,{children:`facturas`}),` facilita un\nmecanismo de deduplicación: guardá el intento en un `,_jsx(_components.code,{children:`store`}),` y pasá el ID estable\nde la venta como `,_jsx(_components.code,{children:`idempotencyKey`}),`. Al reintentar, el SDK consulta el número\nreservado antes de decidir si tiene que emitir.`]}),`\n`,_jsxs(_components.p,{children:[`Creá una vez la tabla `,_jsx(_components.a,{href:`/guides/avoid-duplicates#postgres`,children:`Postgres`}),` y usá:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`createArcaClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`createPostgresStore`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"facturas\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Pool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"pg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` pool`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Pool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`connectionString:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`DATABASE_URL`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` arca`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createArcaClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` store:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createPostgresStore`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`query`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`params`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` pool`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`query`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`params`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) }),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` factura`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` arca`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`issue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`input`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`idempotencyKey:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` venta`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Un solo `,_jsx(_components.code,{children:`store`}),` guarda tickets WSAA y reservas de comprobantes. También hay\nadaptadores para Redis, archivos y memoria. La memoria sirve para pruebas y no\nsobrevive al reinicio del proceso. Comparalos en\n`,_jsx(_components.a,{href:`/guides/avoid-duplicates`,children:`Evitar comprobantes duplicados`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Usá de 1 a 255 caracteres, sin CUIT, DNI ni otros datos personales. No generes\nuna clave nueva por intento. Una clave con un input diferente produce\n`,_jsx(_components.code,{children:`ARCA_INPUT_IDEMPOTENCY_MISMATCH`}),`. No borres ni hagas vencer las reservas:\nguardan el número fiscal que el reintento debe consultar.`]}),`\n`,_jsx(Heading,{level:`2`,id:`7-pasá-a-producción`,children:`7. Pasá a producción`}),`\n`,_jsxs(_components.p,{children:[`Habilitá el certificado y punto de venta de producción y cambiá\n`,_jsx(_components.code,{children:`ARCA_ENVIRONMENT=production`}),`. Antes del primer comprobante real, repasá la\nlista y la prueba de ARS 1 según la clase del comprobante en\n`,_jsx(_components.a,{href:`/guides/production#5-una-prueba-de-humo`,children:`Pasar a producción`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Una factura de prueba en producción es un documento fiscal real y queda registrada en ARCA.`})}),`\n`,_jsx(Heading,{level:`2`,id:`8-emití-una-nota-de-crédito`,children:`8. Emití una nota de crédito`}),`\n`,_jsx(_components.p,{children:`ARCA no anula comprobantes: una corrección es una nota de crédito, que también\nes un documento real. Lo habitual es la nota parcial, que acredita las líneas\nque elegís:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`factura`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`kind`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ===`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"authorized\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` nota`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` arca`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`issueCreditNote`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` for:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` factura`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`voucher`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` items:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [{ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`amount:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 50`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ARS 0,50 de una factura de ARS 1,00.`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`idempotencyKey:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `nc:\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`venta`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` );`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`nota`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// También debe tratarse cada resultado de la nota.`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Con `,_jsx(_components.code,{children:`all: true`}),` en lugar de `,_jsx(_components.code,{children:`items`}),` acreditás el total del original. El modo es\nexplícito y obligatorio: sin `,_jsx(_components.code,{children:`items`}),` ni `,_jsx(_components.code,{children:`all: true`}),`, el SDK falla antes de\ncualquier llamada, así un campo olvidado nunca acredita la factura entera.`]}),`\n`,_jsxs(_components.p,{children:[`La nota es una segunda operación. Si falla, la factura sigue pendiente. La\nclase, el receptor, la moneda, el concepto y las fechas de servicio salen del\noriginal. Vos aportás las líneas y, como mucho, el punto de venta y la fecha de\nla nota. `,_jsx(_components.code,{children:`issueDebitNote()`}),` emite notas de débito y `,_jsx(_components.code,{children:`associatedPeriod`}),` permite\nemitir notas por período. Está todo\nen `,_jsx(_components.a,{href:`/guides/credit-notes`,children:`Notas de crédito`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Inicio rápido","description":"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.","keywords":["inicio rápido","primera factura","ARCA","Node.js"],"href":"/getting-started/quickstart"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Habilitá ARCA","slug":"1-habilitá-arca","depth":2,"children":[]},{"title":"2. Instalá","slug":"2-instalá","depth":2,"children":[]},{"title":"3. Configurá el cliente","slug":"3-configurá-el-cliente","depth":2,"children":[]},{"title":"4. Emití la primera factura","slug":"4-emití-la-primera-factura","depth":2,"children":[]},{"title":"5. Tratá todos los resultados","slug":"5-tratá-todos-los-resultados","depth":2,"children":[]},{"title":"6. Evitá duplicados al reintentar","slug":"6-evitá-duplicados-al-reintentar","depth":2,"children":[]},{"title":"7. Pasá a producción","slug":"7-pasá-a-producción","depth":2,"children":[]},{"title":"8. Emití una nota de crédito","slug":"8-emití-una-nota-de-crédito","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"facturas","siteName":"SDK para ARCA","title":"Inicio rápido - SDK para ARCA","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T14:33:29.115Z","gitLastModified":"2026-10-01T14:33:16.000Z","originalFileLocation":"getting-started/quickstart.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=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SDK para ARCA\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Inicio rápido - SDK para ARCA\">\u003cmeta data-mint-head property=\"og:description\" content=\"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SDK para ARCA\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://facturas-sdk.dev/getting-started/quickstart\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://facturas.mintlify.app/_mintlify/api/og/v2?division=Empezar\u0026amp;title=Inicio+r%C3%A1pido\u0026amp;description=Configur%C3%A1+facturas%2C+valid%C3%A1+el+acceso+a+ARCA+y+emit%C3%AD+tu+primer+comprobante+electr%C3%B3nico.\u0026amp;theme=bd3361c335f91c083057b8c0\u0026amp;signature=1a63406894e11d3b9c3e2d5c5c96fb5d8208b770578bf46cda067aef0c600c77\">\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=\"Inicio rápido - SDK para ARCA\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://facturas.mintlify.app/_mintlify/api/og/v2?division=Empezar\u0026amp;title=Inicio+r%C3%A1pido\u0026amp;description=Configur%C3%A1+facturas%2C+valid%C3%A1+el+acceso+a+ARCA+y+emit%C3%AD+tu+primer+comprobante+electr%C3%B3nico.\u0026amp;theme=bd3361c335f91c083057b8c0\u0026amp;signature=1a63406894e11d3b9c3e2d5c5c96fb5d8208b770578bf46cda067aef0c600c77\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/facturas/82HkJb55y0uN69Rh/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SDK para ARCA\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1E40AF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://facturas-sdk.dev/getting-started/quickstart\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/getting-started/quickstart.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://facturas-sdk.dev/#organization\",\"name\":\"SDK para ARCA\",\"url\":\"https://facturas-sdk.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/facturas/pktTzKJc2C5CFjml/logo/light.svg?fit=max\u0026auto=format\u0026n=pktTzKJc2C5CFjml\u0026q=85\u0026s=73bd11ed0082cb7e3baa1eebaa49f52e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://facturas-sdk.dev#website\",\"name\":\"SDK para ARCA\",\"url\":\"https://facturas-sdk.dev\",\"publisher\":{\"@id\":\"https://facturas-sdk.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://facturas-sdk.dev/getting-started/quickstart#webpage\",\"url\":\"https://facturas-sdk.dev/getting-started/quickstart\",\"name\":\"Inicio rápido\",\"description\":\"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.\",\"dateModified\":\"2026-10-01T14:33:16.000Z\",\"isPartOf\":{\"@id\":\"https://facturas-sdk.dev#website\"},\"breadcrumb\":{\"@id\":\"https://facturas-sdk.dev/getting-started/quickstart#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://facturas-sdk.dev/getting-started/quickstart#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Empezar\",\"item\":\"https://facturas-sdk.dev/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inicio rápido\",\"item\":\"https://facturas-sdk.dev/getting-started/quickstart\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://facturas-sdk.dev/getting-started/quickstart#article\",\"headline\":\"Inicio rápido\",\"name\":\"Inicio rápido\",\"description\":\"Configurá facturas, validá el acceso a ARCA y emití tu primer comprobante electrónico.\",\"url\":\"https://facturas-sdk.dev/getting-started/quickstart\",\"mainEntityOfPage\":{\"@id\":\"https://facturas-sdk.dev/getting-started/quickstart#webpage\"},\"dateModified\":\"2026-10-01T14:33:16.000Z\",\"keywords\":\"inicio rápido, primera factura, ARCA, Node.js\",\"publisher\":{\"@id\":\"https://facturas-sdk.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://facturas-sdk.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SDK para ARCA\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SDK para ARCA","nav":{"global":null,"groups":[{"group":"Empezar","icon":"rocket","pages":[{"title":"Facturación electrónica para TypeScript","sidebarTitle":"Inicio","description":"Emití facturas, notas de crédito y notas de débito en ARCA (ex AFIP) desde TypeScript.","mode":"custom","href":"/index"},{"title":"Inicio rápido","href":"/getting-started/quickstart"},{"title":"Habilitación en ARCA","description":"Prepará el CUIT, certificado, servicios y punto de venta para homologación o producción.","href":"/getting-started/arca-setup"},{"title":"CLI","href":"/getting-started/cli"}]},{"group":"Guías","icon":"book-open","pages":[{"title":"Emitir facturas","href":"/guides/invoices"},{"title":"Notas de crédito y débito","href":"/guides/credit-notes"},{"title":"Comprobante impreso","href":"/guides/printed-voucher"},{"title":"Factura E de exportación","href":"/guides/export"},{"title":"Evitar comprobantes duplicados","href":"/guides/avoid-duplicates"},{"title":"Consultar contribuyentes","sidebarTitle":"Padrón","href":"/guides/taxpayers"},{"title":"Pasar a producción","href":"/guides/production"},{"title":"WSMTXCA para casos requeridos","sidebarTitle":"WSMTXCA","href":"/guides/wsmtxca"}]},{"group":"Referencia","icon":"braces","pages":[{"title":"Cliente","href":"/reference/client"},{"title":"Configuración","href":"/reference/configuration"},{"title":"Errores y diagnóstico","href":"/reference/errors"},{"title":"Comandos del CLI","href":"/reference/cli"},{"title":"Módulos de transporte","href":"/reference/arca-services"},{"title":"API pública y constantes","href":"/reference/public-api"},{"title":"Ejemplos","href":"/reference/examples"}]}]},"title":"Inicio rápido - SDK para ARCA","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":[],"chunks":[]}