WSMTXCA

ARCA MTXCA

@ramiidv/arca-mtxca@0.8.2

SDK para facturación electrónica con detalle de ítems (código MTX/GTIN, es decir, el código de barras del producto; cantidad, precio unitario e IVA por línea), con CAE y con CAEA. Requests fieles al XSD y validación local de las reglas excluyentes del manual v0.25.8.

npm install @ramiidv/arca-mtxca@0.8.2
TypeScript
import { readFileSync } from "node:fs";
import { ArcaMtxca, CbteTipo, Concepto, CodigoCondicionIVA, Moneda } from "@ramiidv/arca-mtxca";

const mtxca = new ArcaMtxca({
  cuit: "20-12345678-6",
  // certs/ en el .gitignore: nunca subas la clave
  cert: readFileSync("./certs/certificado.crt", "utf-8"),
  key: readFileSync("./certs/clave.key", "utf-8"),
});

// Factura A: 1 producto a $100 + IVA 21%
const res = await mtxca.autorizar({
  codigoTipoComprobante: CbteTipo.FACTURA_A,
  numeroPuntoVenta: 4000,
  fechaEmision: new Date(),
  codigoTipoDocumento: 80,
  numeroDocumento: "30-00000000-7",
  condicionIVAReceptor: 1,
  importeGravado: 100,
  importeNoGravado: 0,
  importeExento: 0,
  importeSubtotal: 100,
  importeTotal: 121,
  codigoMoneda: Moneda.PESOS,
  cotizacionMoneda: 1,
  codigoConcepto: Concepto.PRODUCTOS,
  items: [{
    unidadesMtx: 1,
    codigoMtx: "7790001000012",
    descripcion: "Producto de ejemplo",
    cantidad: 1,
    codigoUnidadMedida: 7,
    precioUnitario: 100, // clase A: sin IVA
    codigoCondicionIVA: CodigoCondicionIVA.IVA_21,
    importeIVA: 21,
    importeItem: 121,
  }],
  subtotalesIVA: [{ codigo: CodigoCondicionIVA.IVA_21, importe: 21 }],
});

console.log(res.comprobante.cae); // un rechazo lanza ArcaRechazoError

Características

Qué incluye MTXCA

Detalle por ítem

Código MTX/GTIN (código de barras), descripción, cantidad, unidad de medida, precio unitario, bonificaciones e IVA por línea.

Numeración automática

autorizar() usa el último autorizado + 1, o el número que le indiques.

Validación de importes

Fórmulas por ítem, subtotales de IVA por alícuota (21%, 10,5%, 27%, 5% y 2,5%) y totales con el margen de error del manual, redondeo Round Half Even (mitades al par más cercano), antes de enviar.

CAEA

solicitarCAEA, consultarCAEA, informarComprobanteCAEA, informarCAEANoUtilizado y más, con las reglas y la numeración de errores propias de CAEA.

Condición IVA del receptor

condicionIVAReceptor (RG 5616) obligatoria y getCondicionesIVAReceptor().

FCE MiPyME y QR

Datos adicionales, comprobantes asociados y compradores de las Facturas de Crédito (201-208) según el manual, y urlQR(comprobante, resultado) con la URL oficial del QR.

Emisión segura

Las emisiones nunca se reintentan: devuelven un comprobante autorizado, un rechazo lanza ArcaRechazoError y los errores con resultado desconocido se marcan como uncertain (incierto: no se sabe si ARCA lo autorizó).

Instalá @ramiidv/arca-mtxca

TypeScript nativo, Node.js 22.12+, sin librerías SOAP: las únicas dependencias externas son fast-xml-parser y node-forge (vía arca-common). Gratis, open source, MIT.