Open Source · MIT · Gratis

Facturación
electrónica
Argentina

SDK en TypeScript para interactuar con los Web Services de ARCA (ex AFIP). Todos los tipos de comprobante. Cálculo automático de IVA y totales. Una línea para instalar, pocas más para facturar.

npm install @ramiidv/arca-sdk
TypeScript
import { Arca, CbteTipo, IvaTipo } from "@ramiidv/arca-sdk";

const arca = new Arca({
  cuit: 20123456789,
  cert: fs.readFileSync("./cert.crt", "utf-8"),
  key: fs.readFileSync("./key.key", "utf-8"),
});

const result = await arca.facturar({
  ptoVta: 1,
  cbteTipo: CbteTipo.FACTURA_B,
  items: [{ neto: 1000, iva: IvaTipo.IVA_21 }],
});

console.log(result.cae);       // CAE autorizado
console.log(result.cbteNro);   // Número de comprobante

Características

Todo lo que necesitás para facturar

Una API simplificada que abstrae la complejidad de WSFE, WSFEX y WSAA. TypeScript nativo, errores tipados, y cero dependencias innecesarias.

Cálculo automático

IVA, totales, numeración y fecha se calculan automáticamente. Solo definí los items y el SDK hace el resto.

Todos los comprobantes

Facturas A, B, C, E, M. Notas de Crédito y Débito. Recibos. FCE MiPyME. Exportación WSFEX.

Type-safe

TypeScript nativo con enums tipados para comprobantes, IVA, documentos, monedas y más. Errores específicos para catch granular.

Retry automático

Reintentos con backoff exponencial en errores transitorios (timeout, HTTP 5xx). Sin reintentar errores de negocio.

WSFE + WSFEX + Padrón

Facturación nacional, exportación y consulta de contribuyentes. Todo desde una sola instancia.

Eventos y logging

Sistema de eventos para monitoreo: auth, requests, retries, errores. Integrá con tu logger o métricas.

Ejemplos

Pocas líneas, todo el poder

El SDK infiere tipos de comprobante, calcula totales y maneja la autenticación automáticamente.

Nota de Crédito

TypeScript
// El tipo de NC se infiere del comprobante original
const nc = await arca.notaCredito({
  ptoVta: 1,
  comprobanteOriginal: {
    tipo: CbteTipo.FACTURA_B,
    ptoVta: 1,
    nro: 150,
  },
  items: [{ neto: 100, iva: IvaTipo.IVA_21 }],
});

Factura de Exportación

TypeScript
const result = await arca.facturarExpo({
  ptoVta: 1,
  cbteTipo: CbteTipo.FACTURA_E,
  tipoExpo: 1,
  pais: 203,
  cliente: {
    nombre: "ACME Corp",
    cuitPais: 50000000016,
    domicilio: "123 Main St, New York",
    idImpositivo: "12-3456789",
  },
  moneda: "DOL",
  cotizacion: 1200,
  items: [{
    codigo: "SKU001",
    descripcion: "Widget",
    cantidad: 100,
    unidad: 7,
    precioUnitario: 10,
  }],
});

Comprobantes

Todos los tipos de comprobante

Facturas, notas de crédito/débito, recibos y comprobantes especiales. Cada uno con sus validaciones.

AResponsable Inscripto

Factura, Nota de Crédito, Nota de Débito, Recibo

BConsumidor Final

Factura, Nota de Crédito, Nota de Débito, Recibo

CMonotributista

Factura, Nota de Crédito, Nota de Débito, Recibo

EExportación

Factura, Nota de Crédito, Nota de Débito

MFactura M

Factura, Nota de Crédito, Nota de Débito, Recibo

FCEMiPyME

Factura, Nota de Crédito, Nota de Débito, Recibo

+ Comprobantes RG 1415, Liquidaciones, Compra de bienes usados y más. Ver documentación completa.

Full-Stack

También como aplicación web

ARCA Server es un sistema completo de facturación con frontend React, API REST, PostgreSQL, dashboard, gestión de clientes y consultas a AFIP. Listo para deploy con Docker Compose.

Stack

Express 5, React 19, Prisma, PostgreSQL

Seguridad

Helmet, JWT, API keys hasheadas, rate limiting

Deploy

Docker Compose con Nginx

Empezá a facturar hoy

Instalá el SDK, conectá tu certificado de ARCA y emití tu primera factura en minutos. Gratis, open source, MIT.