Facturación electrónica para TypeScript
El SDK para emitir facturas, notas de crédito y notas de débito con CAE. Sin SOAP, sin XML y sin intermediarios entre tu servidor y ARCA.
Lo resaltado sale de resultado.voucher. El resto del PDF lo arma tu sistema con los datos de la venta.
El cliente lee el CUIT, el certificado, la clave y el entorno de las variables ARCA_*. Para emitir no hace falta base de datos ni ningún servicio externo.
Sin SOAP ni XML
Pasás los datos de tu venta en centavos. El SDK deriva la clase, el tipo de comprobante, el IVA y el pedido para ARCA.
Habilitación guiada
npx facturas init genera la clave y el CSR y te dice qué abrir en ARCA. npx facturas check nombra la capa que falta.
Sin duplicados al reintentar
ARCA no recibe claves de idempotencia. Con un store y una clave tuya, un reintento consulta el número reservado en vez de emitir otro.
Directo a ARCA
Sin proxy ni servicio alojado de por medio. La clave privada nunca sale de tu servidor.
Nació facturando ventas reales
facturas es el SDK con el que La Pyme factura las ventas de sus clientes, pymes argentinas que venden en el local y online. La API salió de lo que necesita un ERP en producción. Lo publicamos para que no tengas que resolver ARCA desde cero.
Mostrador y tienda online
Una venta entra por el local, Tiendanube o Mercado Libre, a veces al mismo tiempo. Con un store, cada una recibe su número y un reintento no emite otra factura.
Cambios y devoluciones
Se corrigen con una nota de crédito sobre la factura original. issueCreditNote() toma de ahí la clase y el receptor.
Clientes que piden factura A
Con el CUIT o el DNI, el Padrón trae la condición de IVA del cliente en el formato que acepta issue().
Cuatro resultados, ninguno escondido
Los resultados fiscales se devuelven, no se lanzan, y tu código trata los cuatro. Los errores de input y de configuración sí se lanzan, antes de escribir en ARCA.
ARCA autorizó el comprobante. Guardá el número, el CAE, su vencimiento y el QR.
ARCA lo rechazó de forma definitiva. Revisá los motivos. No cambies el input ligado a la clave.
Todavía no se puede demostrar si ARCA lo autorizó. Conciliá antes de reintentar.
El número reservado pertenece a otro comprobante. Detené el flujo e investigá.
indeterminate existe porque ARCA no recibe una clave de idempotencia. Si la conexión se corta después del envío, nadie sabe si el comprobante quedó emitido. Cómo evitar duplicados
Una API para emitir y recuperar
Cada método recibe datos de tu negocio y devuelve el resultado fiscal ya normalizado.
Emite una factura A, B o C y devuelve uno de los cuatro resultados.
Muestra el pedido que enviaría issue(), sin I/O. Sirve para revisar y para tests.
Concilia una reserva que quedó incierta. Nunca emite otra vez.
Acredita líneas, importes o el comprobante entero. La clase y el receptor salen del original.
Suma a la cuenta de un comprobante autorizado, con líneas explícitas.
Consulta la condición de IVA de un CUIT, en el formato que acepta issue().
Del primer comprobante a producción
Habilitá ARCA
Conseguí el certificado, autorizalo para Facturación Electrónica y habilitá un punto de venta. El CLI te guía.
Emití en homologación
Configurá las variables de entorno, corré npx facturas check y emití tu primera factura de prueba.
Pasá a producción
Sumá un store, claves de idempotencia y el tratamiento de cada resultado.
Emití tu primera factura hoy
El inicio rápido te lleva de cero a un CAE en homologación.
facturas está antes de la versión 1.0. Fijá la versión exacta y revisá el changelog antes de actualizar.