Resolución N° 5.616/2024. Más información

Facturar ventas de WooCommerce con ARCA en n8n

Guía práctica para emitir facturas electrónicas de ARCA desde pedidos de WooCommerce usando webhooks, n8n y Afip SDK.


Facturar ventas de WooCommerce con ARCA en n8n

Descargá el workflow woocommerce-arca-invoice.json para importarlo en n8n y adaptarlo a tu cuenta de WooCommerce.


WooCommerce es uno de los casos más directos para n8n: tiene REST API, Webhooks y meta_data para guardar campos fiscales o el resultado de ARCA. El punto delicado es elegir el estado correcto del pedido y no duplicar facturas cuando WooCommerce dispara varios updates.

Documentación útil:

Cómo funciona la integración

  1. WooCommerce dispara un Webhook de pedido.
  2. n8n recibe el evento.
  3. n8n consulta el pedido por REST API.
  4. n8n procesa sólo estados processing o completed.
  5. n8n lee CUIT y condición fiscal desde checkout fields o meta_data.
  6. Afip SDK autoriza la factura.
  7. n8n guarda CAE, número y PDF como meta_data o nota privada.

Paso 1: generar credenciales REST API

En WordPress:

  1. WooCommerce > Settings > Advanced.
  2. REST API.
  3. Add key.
  4. Permisos Read/Write.

Guardá consumer key y consumer secret en credenciales de n8n.

Paso 2: crear Webhook de pedido

En WooCommerce:

  • Topic: Order updated o Order created.
  • Delivery URL: URL del nodo Webhook de n8n.
  • Status: Active.

Si usás Order updated, el evento se dispara muchas veces. Por eso el primer filtro en n8n debe mirar estado e idempotencia.

Paso 3: consultar el pedido completo

Con el id recibido:

GET https://tutienda.com/wp-json/wc/v3/orders/{{ $json.id }}
Authorization: Basic consumer_key:consumer_secret

Revisá:

  • status.
  • billing.
  • line_items.
  • shipping_lines.
  • fee_lines.
  • coupon_lines.
  • tax_lines.
  • meta_data.

Paso 4: campos fiscales en checkout

WooCommerce no trae CUIT argentino estándar. Agregalo con un plugin de checkout fields o código propio y guardalo en meta_data.

Campos recomendados:

  • _billing_cuit.
  • _billing_razon_social.
  • _billing_condicion_iva.
  • _arca_invoice_number.
  • _arca_cae.
  • _arca_pdf_url.

Ejemplo de lectura en n8n:

const order = $json;
const meta = Object.fromEntries((order.meta_data || []).map((entry) => [entry.key, entry.value]));

return [{
  json: {
    externalId: `woocommerce:${order.id}`,
    status: order.status,
    taxId: meta._billing_cuit,
    businessName: meta._billing_razon_social || order.billing.company,
    ivaCondition: meta._billing_condicion_iva,
    alreadyInvoiced: Boolean(meta._arca_invoice_number),
  },
}];

Si alreadyInvoiced es true, terminá el workflow sin llamar a Afip SDK.

Paso 5: mapear importes

WooCommerce puede manejar precios con IVA incluido o excluido. Revisá cómo está configurada la tienda antes de calcular.

Mapeá:

  • line_items: productos.
  • shipping_lines: envío.
  • fee_lines: recargos.
  • coupon_lines: descuentos.
  • tax_lines: impuestos.

No recalcules a ciegas si WooCommerce ya calculó impuestos. Validá contra el total del pedido.

Paso 6: emitir con Afip SDK

Tramo fiscal:

  1. Obtener autorización wsfe.
  2. Consultar último comprobante.
  3. Autorizar con FECAESolicitar.
  4. Generar el PDF con el template de Afip SDK.

Clave de idempotencia:

woocommerce:{order.id}

Paso 7: actualizar el pedido

Usá REST API para escribir meta_data:

PUT https://tutienda.com/wp-json/wc/v3/orders/{{ order.id }}

Payload:

{
  "meta_data": [
    { "key": "_arca_invoice_number", "value": "0001-00001234" },
    { "key": "_arca_cae", "value": "12345678901234" },
    { "key": "_arca_pdf_url", "value": "https://..." }
  ]
}

También podés crear una order note privada para soporte.

Errores comunes

  • Facturar pending o on-hold.
  • No bloquear duplicados en Order updated.
  • No tener campos CUIT/IVA en checkout.
  • Duplicar IVA porque la tienda ya guarda precios con impuestos.
  • No diferenciar refund de nota de crédito.

Cierre

WooCommerce es ideal para este flujo si usás meta_data de forma disciplinada. El Webhook dispara, la REST API confirma el estado y Afip SDK emite sólo una vez.

Conéctate a ARCA hoy mismo

Evitá la complejidad de ARCA. Con Afip SDK integrás tu sistema en minutos y te enfocás en hacer crecer tu negocio.