#Automatiza lo que BeeL. no puede saber
BeeL. ya automatiza la facturación de cobros de Stripe con su integración nativa. Pero hay escenarios donde la factura no viene de un cobro en Stripe — viene de un CRM, de un formulario, de un ERP, de un Google Sheet o de un evento en tu aplicación.
Ahí es donde n8n + la API de BeeL. encaja. n8n es una herramienta de automatización visual (como Zapier, pero open source y self-hosted) que conecta cualquier servicio con nodos arrastrando y soltando. Y la API de BeeL. te da acceso a toda la facturación española con cumplimiento VeriFactu.
El resultado: cualquier evento en cualquier sistema puede generar una factura legal automáticamente. Sin escribir código.
ℹ️¿Cobras con Stripe?
Si tu caso es facturar pagos de Stripe, no necesitas n8n. BeeL. tiene integración nativa con Stripe Connect que genera facturas automáticamente por cada pago. Este artículo cubre los casos donde la factura no viene de Stripe.
#Escenarios donde n8n + BeeL. brilla
| Escenario | Trigger en n8n | Qué hace BeeL. |
|---|---|---|
| Deal cerrado en HubSpot/Pipedrive | CRM webhook | Crea y emite factura |
| Presupuesto aceptado en Typeform | Form submission | Crea factura con los datos del formulario |
| Hoja de cálculo de servicios mensuales | Google Sheets + Schedule | Facturación recurrente desde un Sheet |
| Pedido en WooCommerce/Shopify | E-commerce webhook | Factura B2B con NIF |
| Servicio completado en tu app | HTTP webhook | Factura automática al finalizar |
#Lo que vas a construir
Un workflow de n8n con este flujo (ejemplo: deal cerrado en CRM):
CRM Trigger (deal cerrado)
↓
HTTP Request → POST /v1/customers (crear cliente si no existe)
↓
HTTP Request → POST /v1/invoices (crear borrador)
↓
HTTP Request → POST /v1/invoices/{id}/issue (emitir)
↓
HTTP Request → POST /v1/invoices/{id}/send (enviar email)#Requisitos previos
- Cuenta en BeeL. con API key generada (crear cuenta)
- n8n instalado (self-hosted o n8n.cloud)
#Paso 1: Configurar las credenciales de BeeL. en n8n
En n8n, ve a Settings → Credentials → Add Credential → Header Auth:
- Name:
BeeL. API - Header Name:
Authorization - Header Value:
Bearer beel_sk_live_tu_api_key
Esta credencial se reutiliza en todos los nodos HTTP Request del workflow.
#Paso 2: Elegir el trigger
Según tu caso:
#Opción A: Webhook genérico
Añade un nodo Webhook. Esto te da una URL que puedes llamar desde cualquier sistema cuando ocurre un evento (servicio completado, pedido confirmado, etc.).
#Opción B: CRM trigger
Si usas HubSpot, Pipedrive o Salesforce, n8n tiene nodos nativos. Configura el trigger en el evento “deal won” o “deal closed”.
#Opción C: Google Sheets + Schedule
Para facturación mensual basada en un Sheet: un Schedule Trigger el día 1 de cada mes lee las filas del Sheet y genera una factura por cada una.
#Opción D: Formulario (Typeform, Google Forms)
El cliente acepta un presupuesto rellenando un formulario. El trigger de Typeform/Google Forms dispara la creación de factura.
#Paso 3: Crear el cliente en BeeL. (si no existe)
Antes de facturar, necesitas el cliente en BeeL. Añade un nodo HTTP Request:
- Method:
GET - URL:
https://app.beel.es/api/v1/customers?search=NOMBRE_CLIENTE - Authentication: Header Auth →
BeeL. API
Luego un nodo IF para comprobar si el cliente existe. Si no:
- Method:
POST - URL:
https://app.beel.es/api/v1/customers - Body:
{
"legal_name": "Acme SL",
"nif": "B12345678",
"email": "admin@acme.es",
"address": {
"street": "Calle Mayor",
"number": "1",
"postal_code": "28001",
"city": "Madrid",
"province": "Madrid",
"country": "Spain",
"country_code": "ES"
}
}#Paso 4: Crear la factura
Añade un nodo HTTP Request:
- Method:
POST - URL:
https://app.beel.es/api/v1/invoices - Authentication: Header Auth →
BeeL. API - Body:
{
"type": "STANDARD",
"recipient": {
"customer_id": "uuid-del-cliente"
},
"lines": [
{
"description": "Consultoría estratégica — Abril 2026",
"quantity": 10,
"unit_price": 120,
"discount_percentage": 0
}
]
}Usa expresiones de n8n para mapear los datos del trigger a los campos de la factura. Por ejemplo, si el trigger es un CRM, mapea el nombre del producto, cantidad y precio desde los campos del deal.
⚠️Idempotencia automática
La API de BeeL. genera claves de idempotencia automáticas en cada POST. Si el nodo falla y n8n reintenta, no se crearán facturas duplicadas.
#Paso 5: Emitir la factura
Añade otro nodo HTTP Request:
- Method:
POST - URL:
https://app.beel.es/api/v1/invoices/ID_FACTURA/issue - Authentication: Header Auth →
BeeL. API
Al emitir, BeeL. asigna el número de factura correlativo, genera la firma electrónica VeriFactu y registra el documento en la AEAT. Todo automático.
#Paso 6: Enviar por email
Un tercer nodo HTTP Request:
- Method:
POST - URL:
https://app.beel.es/api/v1/invoices/ID_FACTURA/send - Authentication: Header Auth →
BeeL. API
Si no envías to en el body, BeeL. usa el email del cliente registrado.
#Paso 7: Gestión de errores
Añade un nodo IF después de cada HTTP Request para verificar errores:
| Código | Significado | Acción |
|---|---|---|
| 422 | Datos inválidos | Revisar el payload del trigger |
| 404 | Cliente no existe | Crear el cliente primero |
| 429 | Rate limit | n8n reintenta automáticamente |
| 5xx | Error del servidor | Reintentar en unos minutos |
#Ejemplo completo: Facturación mensual desde Google Sheets
Uno de los casos más prácticos: tienes un Google Sheet con los servicios que facturas cada mes.
| Cliente | NIF | Servicio | Horas | Precio/hora | |
|---|---|---|---|---|---|
| Acme SL | B12345678 | Desarrollo web | 40 | 60 | admin@acme.es |
| Beta Corp | B87654321 | Consultoría | 20 | 90 | info@beta.es |
Workflow:
- Schedule Trigger — Día 1 de cada mes a las 9:00
- Google Sheets — Leer todas las filas de la hoja “Facturación”
- SplitInBatches — Procesar una fila a la vez
- HTTP Request — Buscar cliente por NIF en BeeL
- IF — ¿Existe? Si no, crearlo
- HTTP Request — Crear factura con descripción, horas × precio
- HTTP Request — Emitir
- HTTP Request — Enviar por email
- Google Sheets — Marcar fila como “Facturada” con el número de factura
Resultado: el día 1 de cada mes, todas las facturas se generan, emiten y envían automáticamente.
#Otro ejemplo: Notificar a Slack cuando se paga una factura
n8n también funciona al revés: escuchar webhooks de BeeL. y reaccionar.
- Webhook — Recibir evento de BeeL. (
invoice.paid) - Slack — Enviar mensaje a
#contabilidad: “Factura X cobrada: Y€” - Google Sheets — Registrar el cobro en un Sheet de tesorería
- Notion — Actualizar el estado del proyecto a “Cobrado”
#Preguntas frecuentes
#¿Necesito programar para usar n8n con BeeL.?
No. n8n es una herramienta visual. Solo necesitas configurar nodos HTTP Request con los endpoints y el JSON correcto. Este artículo tiene todos los payloads que necesitas.
#¿Qué diferencia hay entre esto y la integración de Stripe de BeeL.?
La integración de Stripe es nativa y automática: cada pago genera una factura sin configuración. n8n es para los casos donde la factura no viene de un pago de Stripe — viene de un CRM, un formulario, un Sheet o cualquier otro sistema.
#¿Qué pasa si la API de BeeL. falla durante el workflow?
n8n permite configurar reintentos por nodo. Además, la API de BeeL. soporta idempotencia: si el mismo request llega dos veces, no se crean duplicados.
#¿Puedo usar Make (Integromat) en vez de n8n?
Sí. Cualquier herramienta que soporte HTTP Request funciona con la API de BeeL. El proceso es idéntico: configurar URL, headers y body JSON.
#¿Tiene BeeL. un nodo nativo para n8n?
Todavía no, pero está en el roadmap. Mientras tanto, los nodos HTTP Request funcionan perfectamente con la API REST.
¿Listo para automatizar tu facturación? Crea tu cuenta gratuita, genera tu API key y monta tu primer workflow en n8n en minutos. Si prefieres código, el SDK de TypeScript (GitHub) ofrece la misma funcionalidad. Consulta la documentación de la API y la página de SDKs para todos los recursos disponibles.
