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