Skip to main content
ARCA autoriza la Factura E (19) y las notas E (20 y 21) por WSFEX, nunca por WSFE. No hay un método aparte: issue() recibe una factura de exportación cuando el input trae export, y issueCreditNote() o issueDebitNote() emiten notas E cuando for apunta a un comprobante 19, 20 o 21. La clase no depende de la condición del emisor, así que el input no lleva issuer. El receptor está en el exterior: en lugar de una condición de IVA lleva un país de destino, un nombre, un domicilio y su identificación.

Servicios

to necesita taxId, countryTaxId o los dos. countryTaxId es la CUIT que ARCA asigna al país del receptor, de arca.wsfex.getCountryTaxIds(). En servicios, paymentDate es obligatoria y no puede ser anterior a la fecha del comprobante. La fecha de una exportación de servicios no puede pasar del mes en curso.

Bienes

incoterms es obligatorio. Omití permits mientras la mercadería no tenga permiso de embarque: ARCA registra que todavía no existe. Cuando lo tiene, cada permiso va con su país de destino. Para emitir bienes el contribuyente tiene que estar inscripto como exportador. Si no lo está, ARCA rechaza con el código 1668.

Ítems

Cada ítem lleva description, unit y amount, el total de la línea en centavos. Salvo con las unidades 0, 97 y 99, también lleva quantity y unitPrice, y amount tiene que ser quantity por unitPrice menos discount. La unidad 99 es una bonificación, con amount negativo, y la 97 una seña. No hay IVA: el total de la factura es la suma de los ítems.

Moneda y cotización

Para cualquier moneda que no sea ARS, exchangeRate es obligatorio y ARCA lo compara con su propia cotización. Tomalo de WSFEX en el momento de emitir:
En servicios la cotización tiene que ser la del día hábil anterior. Si la usás de otra fuente, por ejemplo la del BCRA, ARCA rechaza con el código 2053. En homologación esa consulta devuelve una cotización de prueba, así que esa regla solo se puede verificar en producción. paidInForeignCurrency: true informa que el receptor paga en la misma moneda extranjera de la factura. Solo vale para facturas, nunca para notas.

Notas E

El SDK consulta el original y toma de ahí el tipo de exportación, el receptor, el destino, la moneda, la cotización y el idioma. all: true acredita todas las líneas del original. Una nota de crédito puede apuntar a una factura o a una nota de débito E, y una nota de débito a una factura E. En servicios la nota mantiene la cotización del original.

Comprobantes duplicados

Con idempotencyKey y un store, la emisión usa el Id de requerimiento de WSFEX: el SDK lo reserva junto con el número y, si la respuesta se pierde, reenvía el mismo Id. ARCA contesta el comprobante que ya autorizó en lugar de emitir otro. El Id es único por CUIT, así que el SDK lee el Id y el número y emite bajo un mismo lock por CUIT. Un Id reservado no se vuelve a usar, aunque su pedido nunca haya llegado a ARCA. recover() también resuelve una reserva de exportación: consulta el número reservado y reconoce el comprobante por su Id y por todos los campos fiscales que ARCA devuelve, sin reenviarlo. Si otro pedido tomó ese número, el resultado es conflict y hace falta una clave nueva. El resultado tiene los mismos kind que en una factura nacional: authorized, rejected, indeterminate y conflict. voucher.requestId es el Id con el que ARCA guardó el comprobante.

Errores de configuración

Estos códigos llegan como errores o rechazos, no como algo que el SDK configure: arca.wsfex.getSalesPoints() lista solo los puntos de venta de exportación.

Consultas

lookup() y lastAuthorized() usan WSFEX cuando el tipo es 19, 20 o 21. Si voucherType es un number cualquiera, lookup() puede devolver un resumen de exportación: se distingue por voucherClass: "E". Lo mismo pasa con issueCreditNote() e issueDebitNote() cuando for.voucherType es un number cualquiera: el resultado puede ser de exportación y se distingue con "service" in resultado. Con un tipo literal, como voucherType: 6 o voucherType: 19, el tipo del resultado ya es el que corresponde. arca.wsfex expone las tablas de referencia: países, CUIT de países, monedas, Incoterms, unidades, idiomas, actividades, puntos de venta y cotizaciones.
Last modified on October 3, 2026