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.2import { 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 ArcaRechazoErrorCaracterí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.