WSCPE · WSLPG
ARCA Agro
@ramiidv/arca-agro@0.8.2
SDK para los servicios agropecuarios de ARCA: Carta de Porte Electrónica (WSCPE), incluidos los derivados granarios, y Liquidación Primaria y Secundaria de Granos (WSLPG), con requests según el XSD oficial y validación local. No incluye WSCTG (Código de Trazabilidad de Granos): ARCA lo dio de baja en 2021 y la Carta de Porte lo reemplazó.
npm install @ramiidv/arca-agro@0.8.2import { readFileSync } from "node:fs";
import { ArcaAgro, FileTicketStorage, TIPO_CPE } from "@ramiidv/arca-agro";
const agro = new ArcaAgro({
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"),
ticketStorage: new FileTicketStorage("./.arca-tickets"),
});
// Carta de Porte Electrónica automotor (tipo 74)
const sucursal = 1;
const nroOrden = await agro.cpe.siguienteNroOrden(sucursal, TIPO_CPE.AUTOMOTOR);
const cpe = await agro.cpe.autorizarCPEAutomotor({
cabecera: { tipoCP: TIPO_CPE.AUTOMOTOR, cuitSolicitante: "20123456786", sucursal, nroOrden },
origen: { productor: { codProvincia: 1, codLocalidad: 10270 } },
correspondeRetiroProductor: false,
esSolicitanteCampo: true,
datosCarga: { codGrano: 23, cosecha: 2526, pesoBruto: 42000, pesoTara: 12000 },
destino: { cuit: "30500011129", esDestinoCampo: false, codProvincia: 12, codLocalidad: 5244, planta: 1938 },
destinatario: { cuit: "30500011129" },
transporte: {
cuitTransportista: "20999888772",
dominio: ["AB123CD"],
fechaHoraPartida: new Date("2026-11-02T08:00:00-03:00"),
kmRecorrer: 250,
cuitChofer: "27300000008",
tarifa: 1500.5,
cuitPagadorFlete: "30712345671",
mercaderiaFumigada: false,
},
});
console.log(cpe.cabecera?.nroCTG); // número de CTG asignado por WSCPE
// Liquidación Primaria de Granos: consulta por COE
const liq = await agro.lpg.liquidacionXCoeConsultar("330100012345");Características
Qué incluye Agro
Carta de Porte automotor
Tipos 74 (automotor) y 274 (flete corto): autorización, arribo, confirmación definitiva, descarga, rechazo, anulación, desvíos y contingencias.
Carta de Porte ferroviaria
Tipo 75: autorización, consulta, edición, confirmación definitiva, desvíos y consulta por número de operativo.
Derivados granarios
El circuito DG completo: automotor y ferroviaria DG, emitida en destino, ductos, pendientes de emisión y sus consultas (tipos 284 a 287).
Ediciones sin sorpresas
ARCA anula los CUIT que no se informan al editar una CPE: con preservarIntervinientes el SDK consulta la CPE y completa los vigentes.
Liquidación (WSLPG)
Liquidación primaria y secundaria: autorización, consulta por COE (Código de Operación Electrónico) o número de orden, anulación por contradocumento, ajustes (unificado y por contrato), anticipos y asociación a contratos.
Certificación primaria
cgAutorizar, cgInformarCalidad, cgSolicitarAnulacion y cgConfirmarAnulacion, más cgConsultarXNroOrden y cgConsultarXCoe para recuperar una emisión incierta.
PDF sin falsos rechazos
Si ARCA autoriza pero no puede generar el PDF (error 550 de WSCPE, 1021 de WSLPG), el resultado vuelve con advertencias: no parece un rechazo ni se duplica la CPE.
Paramétricas
Provincias, localidades, granos, plantas, puertos, deducciones, retenciones y más: un método por tabla.
Sin WSCTG
Desde el 1/11/2021 la Carta de Porte Electrónica (RG 5017/2021) reemplazó al CTG (Código de Trazabilidad de Granos). El número de CTG ahora lo asigna WSCPE al autorizar la CPE.
Instalá @ramiidv/arca-agro
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.