Automatizar facturas no consiste en añadir un nodo que copie líneas y pulse “crear”. Una factura tiene numeración, impuestos, identidad del cliente, fecha, estado, posibles rectificaciones y consecuencias contables. El objetivo sensato es eliminar trabajo mecánico sin quitar los controles que evitan emitir un documento incorrecto.
En esta guía construimos el diseño de un flujo con Holded y n8n que puede preparar o crear una factura, recuperar el PDF, guardarlo, avisar al equipo y dejar trazabilidad. No publicamos un JSON para importar a ciegas porque los campos, impuestos, series y permisos cambian entre empresas. Explicamos las decisiones que permiten construirlo y auditarlo.
La guía está pensada para empresas que ya usan Holded y reciben pedidos, servicios completados o cuotas desde otra herramienta. Si todavía no está claro qué proceso conviene abordar, empieza por la guía de automatizaciones para empresas en Madrid.
Qué parte de la facturación se puede automatizar
Hay tareas con poco criterio y mucho trabajo repetido: localizar al cliente, trasladar conceptos aprobados, recuperar el PDF, guardarlo con un nombre consistente o avisar de que falta un dato. También hay decisiones que no deberían quedar ocultas dentro del flujo: elegir un impuesto dudoso, cambiar una serie, corregir una factura emitida o decidir si un servicio está realmente completado.
Un alcance inicial prudente puede ser este:
- Recibir un evento de pedido aprobado.
- Validar que existe cliente, NIF cuando corresponda, correo y líneas.
- Buscar o crear el contacto según una regla acordada.
- Preparar el documento en el estado definido por contabilidad.
- Guardar el ID de Holded junto al pedido.
- Recuperar y archivar el PDF.
- Enviar un aviso interno o solicitar aprobación.
- Registrar éxito o motivo del fallo.
La emisión y el envío al cliente pueden añadirse después. Separar fases permite probar datos sin convertir cada error en un documento definitivo.
Arquitectura recomendada
El flujo necesita una fuente de verdad para cada entidad. El pedido puede vivir en una tienda, CRM o aplicación interna. El cliente y la factura viven en Holded. El archivo PDF puede guardarse en Holded y, si existe una razón operativa, replicarse en un repositorio documental.
| Capa | Responsabilidad |
|---|---|
| Sistema de origen | Confirma que el trabajo o pedido permite facturar |
| n8n | Coordina validaciones, llamadas, estados y errores |
| Holded | Mantiene contacto, documento e identificador contable |
| Archivo | Conserva una copia accesible según política de la empresa |
| Cola humana | Resuelve datos dudosos o excepciones |
No conviene usar el PDF como prueba principal de que la factura existe. La referencia válida es el identificador y estado del documento en Holded. El PDF es una representación que puede recuperarse de nuevo.
La API oficial de Holded incluye operaciones para crear documentos, consultar documentos, obtener el PDF y enviar documentos. Antes de programar, hay que comprobar en la cuenta real qué endpoints, tipos y permisos están disponibles.
Paso 1: define el evento que autoriza a facturar
“Cuando llegue un pedido” es demasiado ambiguo. Puede llegar sin pago, ser cancelado o requerir una comprobación. El evento debe representar una decisión de negocio, por ejemplo servicio_aprobado_para_facturar, con un identificador inmutable.
El payload mínimo contiene la clave del pedido, cliente, moneda, fecha de operación, conceptos y referencias. No debería transportar claves secretas ni depender de textos como “listo” escritos de varias formas.
Una buena práctica es versionar el contrato del evento. Si mañana se añade un descuento o cambia la estructura de direcciones, el flujo puede distinguir version: 1 de version: 2 y rechazar una entrada desconocida en lugar de interpretarla mal.
También hay que decidir quién puede producir el evento. Un webhook público sin firma permite que cualquiera intente crear documentos. La autenticación puede usar una firma HMAC, token rotatorio, red privada u otro mecanismo adecuado al sistema de origen.
Paso 2: valida antes de llamar a Holded
La validación debe ocurrir al principio y devolver errores comprensibles. Conviene comprobar tipos, campos obligatorios, importes no negativos, moneda permitida, suma de líneas y formato de identificadores.
Los impuestos no deben deducirse a partir del nombre del producto ni improvisarse con IA. El sistema de origen debe proporcionar un código previamente acordado o el flujo debe consultar una tabla mantenida por quien tenga responsabilidad contable.
Tampoco basta con comprobar que hay un correo. Para enviar un documento hay que saber si corresponde a la persona o dirección de facturación correcta. Cuando el dato es nuevo o ha cambiado, el flujo puede detener el envío y solicitar revisión.
Si una validación falla, se guarda la causa asociada al pedido y se avisa con contexto. No se crea un contacto incompleto para “seguir avanzando”, porque ese atajo contamina Holded y complica todos los procesos posteriores.
Paso 3: localiza al cliente sin multiplicar contactos
Buscar solo por nombre produce duplicados. Las empresas cambian su nombre comercial, aparecen tildes y varias personas pueden compartir denominación. La clave de búsqueda debe definirse según el negocio: ID de Holded guardado en el CRM, identificador fiscal cuando proceda o correo normalizado con revisión.
El patrón más sólido es conservar el ID de Holded en el sistema de origen después de la primera vinculación. En operaciones posteriores se consulta directamente. Si no existe, se buscan coincidencias y, ante más de una, se envía a revisión.
Crear automáticamente un contacto puede ser válido cuando todos los campos necesarios están presentes y las reglas están aprobadas. Si el flujo recibe un nombre y un teléfono, quizá solo deba crear una tarea para completar la ficha.
Cada decisión debe quedar registrada: contacto reutilizado, contacto creado o revisión solicitada. Así se puede medir cuántos pedidos llegan con datos insuficientes y arreglar el origen.
Paso 4: idempotencia antes de crear el documento
Este es el control que separa una demostración de una automatización operable. Los webhooks se repiten, las redes fallan y un usuario puede reenviar una acción. Sin idempotencia, cada reintento puede crear otra factura.
Construye una clave estable, por ejemplo factura:pedido:482:v1. Antes de crear el documento, consulta una tabla de operaciones. Los estados mínimos pueden ser recibida, validada, creando, creada, archivada, enviada y error_revisable.
Cuando Holded devuelve el documento, guarda su ID antes de continuar con PDF o envío. Si el archivo falla después, el reintento parte del ID existente. Nunca vuelve a crear la factura.
Hay una situación delicada: la API puede procesar la petición y la conexión cortarse antes de entregar la respuesta. El flujo no sabe si se creó. Antes de reintentar, debe buscar el documento por una referencia única incluida en la operación o enviar el caso a revisión. Repetir sin comprobar es la peor opción.
La tabla de idempotencia no necesita ser compleja, pero sí persistente y respaldada. Puede vivir en PostgreSQL o en el sistema de origen si admite estados transaccionales. Una variable dentro de la ejecución no sirve para el siguiente intento.
Paso 5: crea primero el estado más seguro
La API permite crear documentos, pero el tipo y estado exactos deben probarse en un entorno o serie adecuada. Durante el piloto, conviene que el resultado sea revisable antes de enviarse al cliente.
El flujo registra el request sin secretos y la respuesta esencial: ID, tipo, fecha y total. No hace falta guardar indefinidamente el payload completo con todos los datos personales. La trazabilidad se diseña con minimización.
Si el total que devuelve Holded no coincide con el esperado, el proceso se detiene. La tolerancia debe ser explícita, especialmente cuando hay redondeos. Una diferencia no se “corrige” modificando la factura después sin intervención.
La numeración y las series se configuran con el criterio de la empresa. No deben generarse concatenando el año y un contador de n8n. Holded y el sistema de facturación son quienes mantienen esa responsabilidad.
Paso 6: recupera y guarda el PDF
Después de confirmar el documento, el flujo solicita el PDF mediante la API correspondiente. Antes de archivarlo comprueba código de respuesta, tipo de contenido y tamaño mínimo. Guardar una página de error con extensión .pdf es un fallo más común de lo que parece.
El nombre puede incluir fecha, ID de Holded y una referencia interna, evitando datos personales innecesarios. Ejemplo: 2026-07-23_HOL-9382_PED-482.pdf. El ID evita colisiones aunque cambie el nombre del cliente.
La carpeta se construye con reglas estables y permisos. No conviene repartir documentos entre unidades personales de Drive. Una unidad compartida o repositorio gestionado permite retirar a un usuario sin perder el archivo.
Si el archivo ya existe con la misma clave y hash, el reintento lo considera completado. Si existe con contenido distinto, genera una alerta. Sobrescribir en silencio elimina evidencia de una posible modificación.
Paso 7: envío al cliente y aviso interno
Holded dispone de una operación oficial para enviar documentos. También puede utilizarse un proveedor de correo transaccional cuando el diseño lo requiera. La elección debe considerar trazabilidad, remitente, rebotes y plantillas.
Antes de enviar se comprueban destinatario, documento y estado de aprobación. El correo no necesita lenguaje grandilocuente. Debe indicar qué se adjunta, referencia y canal de contacto para incidencias.
El aviso interno es distinto. Incluye pedido, cliente, total, enlace a Holded y resultado. Si existe una excepción, muestra la acción concreta. Evita reenviar el PDF a canales internos que no lo necesitan.
Para WhatsApp, primero revisa si el cliente espera ese canal y si la cuenta utiliza la plataforma adecuada. La guía de automatización de WhatsApp para empresas contempla plantillas, baja, traspaso a persona y límites del canal. Nunca se envía un documento sensible a un número solo porque apareció en un formulario sin verificar.
Qué hacer cuando algo falla
Los errores se agrupan por su posible recuperación:
- Datos incompletos: requiere corregir el origen.
- Autenticación: pausa el flujo y avisa al responsable técnico.
- Límite temporal o servicio no disponible: reintento con espera y máximo definido.
- Duplicado o coincidencia dudosa: revisión humana.
- Documento creado, PDF fallido: reanudar desde el ID guardado.
- Total incoherente: bloqueo contable, sin envío.
La documentación de ejecuciones de n8n permite revisar ejecuciones y reintentar las fallidas. Eso no sustituye una política: el flujo debe saber desde qué punto es seguro continuar.
Las alertas necesitan un responsable y un plazo. Una bandeja con cien errores antiguos es otra forma de trabajo manual. Durante el piloto se revisan diariamente y se eliminan causas recurrentes.
VERI*FACTU: el límite que no hay que maquillar
Automatizar datos alrededor de Holded no equivale a certificar el cumplimiento del Reglamento de sistemas informáticos de facturación. La empresa debe comprobar si está dentro del ámbito, qué modalidad usa, si su software está adaptado y qué configuración corresponde.
La Agencia Tributaria informa de los plazos ampliados: antes del 1 de enero de 2027 para entidades que presentan Impuesto sobre Sociedades y antes del 1 de julio de 2027 para el resto de obligados afectados. La nota oficial de ampliación y las preguntas frecuentes deben revisarse porque la normativa y sus aclaraciones evolucionan.
VERI*FACTU es una de las modalidades contempladas, no un nombre exacto para cualquier obligación. El flujo de n8n no debe alterar registros, numeraciones o huellas por su cuenta. Su función puede ser transportar datos validados, activar operaciones soportadas y guardar referencias.
Antes de producción, el asesor contable o fiscal valida el circuito. Esta guía es técnica y no sustituye ese criterio.
Pruebas que deben pasar antes del piloto
No basta con probar una factura correcta. Prepara una matriz con cliente existente y nuevo, correo ausente, impuesto no reconocido, línea a cero, descuento, moneda inesperada, webhook repetido, timeout de Holded, PDF no disponible y envío rechazado.
Para cada caso define resultado esperado y evidencia. Un webhook repetido debe devolver el mismo ID. Un impuesto desconocido debe quedar bloqueado. Un PDF fallido no debe crear otra factura. Una credencial caducada debe avisar sin exponerla.
Prueba también permisos. La cuenta técnica solo necesita las capacidades del flujo. La persona que revisa excepciones no tiene por qué administrar integraciones.
Finalmente, simula recuperación: restaura la tabla de idempotencia, rota una credencial y reanuda una ejecución. Si nadie sabe hacerlo, la automatización depende todavía de quien la construyó.
Modelo de datos mínimo para que el flujo sea mantenible
Aunque n8n muestre los pasos de forma visual, el proceso necesita nombres estables. Un registro de operación puede contener event_key, source_id, holded_document_id, status, attempts, last_error_code, created_at y updated_at. Los datos completos del cliente permanecen en sus sistemas, no se duplican sin motivo en esta tabla.
event_key impide repetir el efecto. source_id permite volver al pedido. holded_document_id confirma qué documento se creó. status señala el punto desde el que reanudar. last_error_code usa una categoría controlada, no todo el mensaje de la API. Las fechas sirven para detectar operaciones estancadas.
Los estados deben avanzar en una dirección definida. No se pasa de enviada a creando porque alguien pulse reintentar. Para corregir una operación finalizada se abre un procedimiento distinto y se conserva la historia anterior.
Las líneas de factura también necesitan una referencia al concepto de origen. Si el nombre comercial cambia, esa referencia permite investigar de dónde salió el importe. El texto visible puede guardarse con el documento, pero el catálogo o pedido sigue siendo la fuente.
Seguridad operativa y gestión de credenciales
La clave de API de Holded no se pega en un nodo de código ni se envía dentro del webhook. Se configura como credencial protegida, con acceso limitado al workflow y a las personas responsables. Si la plataforma permite permisos más granulares, se conceden solo los necesarios.
Las credenciales tienen propietario, fecha de revisión y procedimiento de rotación. El sistema debe diferenciar una clave revocada de un dato inválido. En el primer caso se pausa el proceso para evitar cientos de intentos; en el segundo se aísla la operación concreta.
Los logs no muestran cabeceras de autorización, PDFs ni payloads completos. Para depurar suele bastar el ID, endpoint, código de respuesta y categoría del fallo. Si hace falta conservar una muestra, se anonimiza y se elimina al cerrar la incidencia.
El acceso al archivo documental se revisa por función. Ventas puede necesitar saber que la factura se generó, pero no descargar todas las facturas históricas. La comodidad no justifica compartir una carpeta general con toda la organización.
Mantenimiento mensual: qué hay que revisar
Una automatización no se abandona después del lanzamiento. Cada mes conviene revisar ejecuciones fallidas, tiempos de respuesta, cambios en la API, uso del servidor, copias y operaciones que siguen esperando a una persona.
También se compara una muestra de pedidos y facturas. Si aparecen correcciones repetidas por el mismo campo, se arregla la fuente o la validación. Añadir otra excepción dentro de n8n puede ocultar un problema del proceso.
Cuando Holded, el sistema de origen o n8n publican una actualización, se prueba primero en un entorno controlado. Las versiones se registran junto al flujo. Actualizar automáticamente una pieza crítica sin prueba puede ahorrar mantenimiento hasta el día que cambia un comportamiento.
Al menos una vez al trimestre, alguien distinto de quien construyó el sistema debe seguir el procedimiento de recuperación. La documentación que solo entiende su autor no es una garantía operativa.
El mantenimiento incluye revisar si el flujo sigue aportando valor. Si el ERP incorpora una función nativa más fiable, puede ser razonable retirar una parte de n8n. Una buena arquitectura permite simplificar. Conservar una integración solo porque costó construirla convierte el coste pasado en mantenimiento futuro.
También se revisan destinatarios y responsables. Las alertas enviadas a personas que ya no participan en el proceso equivalen a no tener alertas. La automatización debe reflejar la organización actual, no el organigrama del día de lanzamiento.
Métricas para saber si compensa
Mide tiempo desde aprobación hasta documento preparado, porcentaje sin intervención, errores por causa, duplicados evitados y tiempo de resolución. Añade calidad: documentos corregidos después de emitir y consultas de clientes por datos incorrectos.
Durante el primer mes revisa una muestra contra el pedido original. El ahorro de minutos no compensa un aumento de rectificaciones.
El coste incluye diseño, implementación, servidor o plataforma, mantenimiento y supervisión. Si el volumen es pequeño y Holded ya ofrece una función nativa suficiente, esa opción puede ser mejor que n8n. La recomendación honesta puede ser no construir nada.
Cómo ampliar el flujo sin convertirlo en un laberinto
Una vez estable, puede conectarse con conciliación de pagos, recordatorios, renovaciones o informes. Cada ampliación conserva la misma clave de negocio y estados claros.
No metas toda la empresa en un workflow gigante. Separa recepción, facturación, archivo y comunicación, con contratos entre ellos. Así se puede cambiar el proveedor de correo sin tocar la creación del documento.
La IA puede extraer líneas de un pedido no estructurado o preparar un resumen, pero su salida se valida antes de llegar a importes. Para facturación, las reglas deterministas deben mandar.
También puede conectarse con el flujo de presupuestos. Cuando el cliente acepta, el presupuesto genera el evento aprobado. Para revisar cómo elegir la capa de orquestación, consulta Zapier, Make o n8n para empresas.
Un alcance inicial razonable
Para empezar, elige un tipo de factura, una serie, un origen y una persona revisora. Trabaja con datos de prueba, después con un grupo limitado y solo entonces amplía volumen.
En automatizaciones para empresas en Madrid revisamos el proceso actual, accesos y excepciones antes de proponer tecnología. El resultado inicial debe decir qué se automatiza, qué se valida, qué queda en manos del equipo y cómo se recupera un fallo.
Un buen proyecto no promete que nadie volverá a tocar una factura. Consigue que las facturas ordinarias recorran un camino consistente y que las extraordinarias lleguen rápido a la persona adecuada, con toda la información para decidir.
Ese control es el verdadero ahorro operativo.
Fuentes y revisión
Contenido revisado el 23 de julio de 2026 con la documentación oficial de la API de Holded, la documentación de ejecuciones de n8n y la sede de la Agencia Tributaria. Las capacidades de la cuenta, endpoints, normativa y plazos deben verificarse de nuevo antes de cada implantación.
Respuesta directa
Preguntas frecuentes sobre este tema
¿Puede n8n crear facturas en Holded?
Sí. Holded dispone de API para crear documentos y n8n puede llamar a esa API. La implementación debe validar cliente, conceptos, impuestos, numeración y estado antes de crear el documento, y guardar el identificador devuelto para impedir duplicados.
¿Conviene crear una factura final o un borrador?
Para el primer piloto suele ser más prudente preparar un borrador o una operación pendiente de revisión. La emisión definitiva puede automatizarse cuando las reglas estén probadas y el responsable contable haya validado el circuito.
¿Cómo se evita generar dos veces la misma factura?
Se asigna una clave única al evento de negocio, se consulta si ya existe antes de crear el documento y se registra el ID de Holded al terminar. Un reintento con la misma clave debe recuperar el resultado anterior, no emitir otro documento.
¿Automatizar Holded garantiza cumplir VERI*FACTU?
No. VERI*FACTU y el Reglamento de sistemas informáticos de facturación afectan al sistema de facturación y a sus registros. Un flujo auxiliar no debe presentarse como garantía de cumplimiento. Hay que verificar la versión y configuración del software, el sujeto obligado y el criterio del asesor.
¿Se puede guardar automáticamente el PDF de cada factura?
Sí. Después de crear o localizar el documento, el flujo puede solicitar su PDF, comprobar que el archivo es válido y guardarlo en una ruta construida con el ID interno. El archivo debe respetar permisos, conservación y una convención estable.
¿Puede enviarse la factura por correo o WhatsApp?
Puede enviarse por un canal autorizado después de comprobar destinatario, estado y documento. Para correo puede usarse el envío de Holded o un proveedor transaccional. En WhatsApp hay que respetar permisos, reglas de la plataforma y evitar exponer documentos a un número incorrecto.
