Ir al contenido

Cómo funciona la facturación electrónica en WooCommerce: perspectiva técnica

ARCA, la ex AFIP, expone el webservice WSFE por SOAP sobre HTTPS. Para consumirlo hacen falta un certificado digital y un token que se obtiene autenticándose primero contra el WSAA; recién entonces la tienda puede pedir el CAE de cada comprobante. Este artículo recorre ese flujo completo entre WooCommerce y ARCA, sin intermediarios.

Por el equipo de WebWooCommerceActualizado el 6 min de lectura

Si estás evaluando integrar facturación electrónica en tu tienda WooCommerce y querés entender exactamente qué pasa por detrás — no solo “instalar el plugin y listo” — este artículo es para vos. Explicamos el flujo técnico completo desde WooCommerce hasta AFIP/ARCA, sin simplificar de más.

El webservice de facturación electrónica de AFIP/ARCA

AFIP (actualmente denominada ARCA) expone una serie de webservices SOAP a través de los cuales cualquier sistema puede emitir comprobantes electrónicos de forma programática. El webservice principal para facturación es el WSFE (Webservice de Facturación Electrónica), al que se accede vía HTTPS. La documentación oficial del webservice está publicada por el propio organismo.

Para consumir el WSFE se necesitan dos componentes:

  • WSAA (Webservice de Autenticación y Autorización): es el servicio de autenticación de AFIP. Antes de poder emitir facturas, el sistema debe obtener un token de acceso (TA) presentando un certificado digital válido.
  • WSFE: una vez autenticado con el token, el sistema puede llamar a los métodos de facturación: consultar tipos de comprobante, obtener el último número emitido, solicitar CAE, etc.

El certificado digital: qué es y para qué sirve

El certificado digital es el mecanismo que usa AFIP para verificar que quien se conecta al webservice es realmente el titular del CUIT. Técnicamente es un par de claves criptográficas (pública/privada) en formato X.509.

El proceso para obtenerlo:

  1. Desde el portal de AFIP con clave fiscal, se accede a “Administrador de Relaciones de Clave Fiscal”.
  2. Se genera un CSR (Certificate Signing Request) — básicamente una solicitud de certificado que contiene la clave pública.
  3. AFIP firma ese CSR y devuelve el certificado (.crt). La clave privada queda en tu servidor.
  4. Ese par certificado + clave privada se carga en el plugin para que pueda firmar las peticiones al WSAA.

Vigencia del certificado: los certificados de AFIP tienen una vigencia de 2 años. Al vencerse, hay que renovarlos repitiendo el proceso. El plugin puede configurarse para alertar con anticipación cuando el certificado esté por vencer.

El flujo de autenticación con WSAA

Cada vez que el plugin necesita comunicarse con AFIP, primero verifica si tiene un token de acceso (TA) válido en caché. Si el token expiró o no existe, ejecuta el flujo de autenticación:

  1. El plugin genera un TRA (Ticket de Requerimiento de Acceso): un XML firmado con la clave privada que indica el servicio al que quiere acceder (WSFE) y el período de validez.
  2. El TRA se envía al WSAA junto con el certificado digital. AFIP verifica la firma y la vigencia del certificado.
  3. AFIP devuelve un TA (Token de Acceso) con vigencia de 12 horas: un token firmado por AFIP que incluye el token en sí y un sign.
  4. El plugin almacena el TA en caché. Durante las próximas 12 horas puede emitir todas las facturas que necesite sin volver a autenticarse.

El flujo de emisión de una factura

Con el token válido, la emisión de un comprobante sigue este flujo:

  1. El plugin consulta el último número de comprobante emitido en el punto de venta configurado (método FECompUltimoAutorizado). Esto evita duplicados aunque el servidor se haya reiniciado.
  2. Se construye el request de autorización con los datos del comprobante: tipo (factura A/B/C), número, punto de venta, documento y condición frente al IVA del receptor, concepto, importe neto, IVA, total.
  3. Se envía la solicitud al WSFE con el token de acceso (método FECAESolicitar). AFIP procesa el comprobante y devuelve el CAE (Código de Autorización Electrónico) y su fecha de vencimiento.
  4. El plugin almacena el CAE en el pedido de WooCommerce, genera el PDF con el código de barras bidimensional requerido por AFIP y lo envía al cliente por email.

Cómo se determina el tipo de factura

El tipo de comprobante a emitir depende de dos variables: la condición frente al IVA del emisor (vos) y la del receptor (el cliente).

  • Emisor Responsable Inscripto + Receptor Responsable Inscripto: Factura A (con desglose de IVA).
  • Emisor Responsable Inscripto + Receptor Consumidor Final o Exento: Factura B (IVA incluido en el precio).
  • Emisor Monotributista: Factura C en todos los casos (sin IVA discriminado).

El plugin determina la condición del receptor a partir del perfil del cliente en WooCommerce. Si el cliente ingresó su CUIT y condición IVA en el checkout (o en su perfil), el plugin lo usa. Con el padrón de ARCA activado, consulta la condición, la razón social y el domicilio oficiales del CUIT. Si no hay datos, asume consumidor final.

La condición IVA del receptor ya no es opcional. Desde la RG 5616, FECAESolicitar lleva el campo CondicionIVAReceptorId y ARCA rechaza el comprobante que no lo informa (error 10246). Muchas integraciones viejas siguen sin mandarlo y empiezan a fallar sin un mensaje claro para el comerciante.

Lo que el comprobante tiene que mostrar además del CAE

El CAE no es lo único que hace válida una factura. En 2026 se sumaron varias exigencias que no pasan por el webservice sino por lo que se imprime:

  • Identificación del consumidor final desde $10.000.000 con DNI, CUIL o CUIT (RG 5866).
  • QR con la URL vigente de ARCA, https://www.arca.gob.ar/fe/qr/.
  • Leyenda de Ingresos Brutos en las provincias adheridas al Régimen de Transparencia Fiscal al Consumidor. No se informa a ARCA: es texto impreso en el comprobante, y cada provincia define el suyo. Lo detallamos en transparencia fiscal de Ingresos Brutos en la factura.

Qué pasa cuando AFIP no responde

El webservice de AFIP tiene mantenimientos programados (generalmente de madrugada) y ocasionalmente caídas no planificadas. Un plugin bien implementado maneja estos escenarios:

  • Reintentos: si ARCA no responde, la facturación automática vuelve a intentar sola a los 2, 10 y 30 minutos. Mientras tanto, el pedido figura como “En curso” en la lista.
  • Recuperación tras un corte: si la respuesta se perdió pero ARCA llegó a autorizar el comprobante, el plugin lo recupera en vez de emitir otro, y verifica que ese número sea de ese pedido y no de otro con el mismo importe.
  • CAEA, solo contingencia: desde la RG 5782, el CAE anticipado (CAEA) quedó reservado para contingencias. El plugin trabaja con CAE y marca los puntos de venta CAEA como no utilizables.

La diferencia entre conexión directa e intermediarios

Con un servicio intermediario, el flujo es:

WooCommerce → API del intermediario → Webservice AFIP → CAE → Intermediario → WooCommerce

Con conexión directa:

WooCommerce → Webservice AFIP → CAE → WooCommerce

El intermediario agrega latencia, un punto de falla adicional y un costo recurrente. En términos técnicos, no aporta nada que no pueda hacer la conexión directa — su valor es simplificar la implementación para quien no quiere lidiar con certificados y SOAP. Pero ese valor tiene un precio mensual.

Fuentes: documentación de los webservices de factura electrónica de ARCA y manual del desarrollador WSFEv1, versión 4.7.

Preguntas frecuentes

¿El plugin de facturación WooCommerce usa SOAP o REST para conectarse a AFIP?

AFIP expone sus webservices en SOAP (XML sobre HTTPS). No hay una API REST oficial de AFIP para facturación electrónica — los servicios que dicen usar REST de AFIP son en realidad intermediarios que exponen una API REST propia y traducen internamente a SOAP.

¿Cuánto tarda AFIP en responder con el CAE al emitir una factura desde WooCommerce?

En condiciones normales, la respuesta del webservice WSFE llega en menos de 2 segundos. En momentos de alta demanda (cierre de mes, por ejemplo) puede subir a 5-10 segundos. El plugin maneja estos tiempos de forma asíncrona para no bloquear la carga de tu tienda.

¿Qué es el CAE en la factura electrónica de AFIP?

El CAE (Código de Autorización Electrónico) es el código que AFIP devuelve al autorizar un comprobante electrónico. Sin CAE, la factura no tiene validez fiscal. Aparece impreso en el PDF de la factura junto con su fecha de vencimiento.

¿Puedo ver los logs de las llamadas al webservice de AFIP desde WooCommerce?

Sí. El plugin mantiene un registro de cada llamada al webservice con el request, la respuesta y el código de resultado de AFIP. Es útil para diagnosticar problemas o verificar el funcionamiento de la integración.

¿El plugin guarda las claves privadas de forma segura?

Sí. El certificado y la clave privada se guardan en una carpeta privada con nombre aleatorio, con el acceso web bloqueado: pedir su URL desde el navegador devuelve un error 403. Igual conviene que el hosting tenga bien configurados los permisos de archivos, como en cualquier WordPress.

¿Tenés un proyecto WooCommerce?

Contanos qué necesitás y te respondemos con un diagnóstico concreto.