Skip to content
BotServBotServ
Invoice NinjaFacturasContabilidadSelf-HostingOpen SourceRegistro de tiempo

Invoice Ninja self-hosted: Facturas y registro de tiempo

Alojar Invoice Ninja: software de facturación open-source. Instalación, configuración, integración de API y flujos de trabajo con IA.

S

schutzgeist

4 min read
Invoice Ninja self-hosted: Facturas y registro de tiempo

Invoice Ninja auto-hospedado: facturas y control de tiempo

Qué cubre este artículo

  • Qué es Invoice Ninja: software de facturación de código abierto para freelancers y pymes.
  • Configuración e instalación con Docker.
  • Facturas, presupuestos, control de tiempo, portal del cliente.
  • REST API para automatización: generar facturas desde flujos de trabajo.
  • Integración con IA: textos de presupuestos, gestión de recordatorios, reportes.

Introducción

Invoice Ninja es la solución de código abierto más conocida para facturación, presupuestos y control de tiempo. Se mantiene desde hace años, está en desarrollo activo y cuenta con portal de cliente donde los clientes ven sus facturas y pagan en línea. Para freelancers y pequeñas empresas que no quieren entregar sus datos a Lexoffice o sevDesk, es la opción estándar.

Su REST API la convierte en un componente de automatización: traslada deals desde Twenty a facturas en Invoice Ninja; convierte proyectos completados en registros de tiempo y después en facturas.

Casos de uso típicos

  • Facturas de freelancer: presupuestos → facturas → seguimiento de pagos recibidos.
  • Control de tiempo: registra horas por proyecto y conviértelas directamente en líneas de factura.
  • Facturas recurrentes: genera automáticamente facturas periódicas (retainers, suscripciones).
  • Portal del cliente: los clientes ven su historial, descargan PDFs y pagan en línea.
  • Automatización: deal ganado en CRM → creación automática de factura.

Instalación: Docker

services:
  invoiceninja:
    image: invoiceninja/invoiceninja:5
    ports:
      - "127.0.0.1:8082:80"
    environment:
      - APP_URL=https://rechnungen.deine-domain.de
      - APP_KEY=base64:generierter-key
      - DB_HOST=db
      - DB_DATABASE=invoiceninja
      - DB_USERNAME=ninja
      - DB_PASSWORD=geheim
      - MAIL_MAILER=smtp
      - MAIL_HOST=smtp.dein-server.de
      - MAIL_PORT=587
      - MAIL_USERNAME=...
      - MAIL_PASSWORD=...
      - MAIL_FROM_ADDRESS=rechnung@deine-domain.de
    volumes:
      - ninja_public:/var/www/app/public
      - ninja_storage:/var/www/app/storage
    depends_on: [db]
    restart: always

  db:
    image: mysql:8
    environment:
      MYSQL_DATABASE: invoiceninja
      MYSQL_USER: ninja
      MYSQL_PASSWORD: geheim
      MYSQL_ROOT_PASSWORD: root-geheim
    volumes: [db_data:/var/lib/mysql]
    restart: always

volumes:
  ninja_public:
  ninja_storage:
  db_data:

Genera APP_KEY con: docker run --rm invoiceninja/invoiceninja:5 php artisan key:generate --show

Configuración básica

Después del inicio, ejecuta el asistente de configuración: crea la empresa, carga el logo, define tasas de impuesto (19% y 7% para Alemania), selecciona la plantilla de factura y configura métodos de pago como transferencia bancaria, Stripe y PayPal.

Notas para Alemania: Invoice Ninja puede generar facturas conformes a RGPD con campos obligatorios como número de IVA, número de impuesto y número de factura secuencial. Verifica la conformidad GoBD; el software lo facilita, pero la responsabilidad recae en ti.

REST API: facturas programáticamente

import requests

IN = "https://rechnungen.deine-domain.de"
HEADERS = {"X-API-TOKEN": "dein-api-token",
           "X-Requested-With": "XMLHttpRequest",
           "Content-Type": "application/json"}

# Crear cliente
requests.post(f"{IN}/api/v1/clients", headers=HEADERS, json={
    "name": "Musterfirma GmbH",
    "contacts": [{"email": "buchhaltung@muster.de"}]
})

# Crear factura
requests.post(f"{IN}/api/v1/invoices", headers=HEADERS, json={
    "client_id": "CLIENT_ID",
    "line_items": [{
        "product_key": "Beratung",
        "notes": "KI-Consulting März",
        "quantity": 8,
        "unit_cost": 120.00,
    }]
})

Flujo n8n: CRM → Factura

Webhook Twenty: Deal ganado
    │
    ▼
Mapear datos (Empresa → Cliente, Monto → Líneas)
    │
    ▼
API Invoice Ninja: buscar/crear cliente → crear factura
    │
    ▼
Opcional: Ollama genera texto personalizado de factura/notas
    │
    ▼
Enviar factura por email al cliente (Invoice Ninja lo hace automáticamente)

Integración con IA

  • Textos de presupuestos: Ollama genera textos personalizados basándose en el brief del proyecto.
  • Gestión de recordatorios: la IA redacta recordatorios de pago educados, ajustando el tono según el nivel de escalada.
  • Comentarios de control de tiempo: la IA resume logs de trabajo en líneas de factura limpias y claras.
  • Categorización: clasificación automática de documentos entrantes mediante OCR con Stirling-PDF.

Seguridad y consideraciones legales

  • GoBD: las facturas deben archivarse de forma inmutable. Invoice Ninja lo facilita con numeraciones secuenciales y archivo PDF, pero consulta con tu asesor fiscal.
  • HTTPS + Autenticación: datos financieros requieren TLS obligatorio y contraseñas fuertes con 2FA.
  • Backups: respalda la base de datos y el almacenamiento, consulta Backup.
  • Acceso: solo desde la red interna o por VPN. No expongas el software de facturación directamente a internet.

Enlaces útiles

Puntos clave:

  • Invoice Ninja es facturación de código abierto más control de tiempo más portal del cliente.
  • La REST API la convierte en un componente de automatización (CRM → factura).
  • Respeta GoBD y RGPD; usa TLS, realiza backups y restringe el acceso.
  • Para freelancers y pymes, es la alternativa estándar a Lexoffice y sevDesk.
  • Integración con IA: textos personalizados, recordatorios de pago, clasificación automática de documentos.

FAQ

¿Es Invoice Ninja conforme a GoBD?

Parcialmente: numeración secuencial e inmutabilidad mediante archivo PDF. La responsabilidad recae en el usuario. Consulta a tu asesor fiscal y asegura la seguridad de revisión mediante backups de base de datos y sin modificaciones posteriores.

¿Incluye control de tiempo?

Sí: tareas y marcas de tiempo por proyecto o cliente que se convierten directamente en líneas de factura. Además incluye interfaz de cronómetro y reportes.

¿Pagos en línea?

Sí: Stripe, PayPal y SEPA (a través de gateways de pago) se pueden integrar en el portal del cliente. Para transferencias bancarias puras basta con la factura en PDF.

¿Invoice Ninja o Lexoffice?

Lexoffice es alemán, GoBD-certificado pero en la nube con suscripción. Invoice Ninja auto-hospedado ofrece soberanía de datos y sin costos mensuales, pero la responsabilidad GoBD recae en ti.

¿Varios usuarios?

Sí: usuarios con roles como administrador, usuario y contabilidad. Suficiente para equipos pequeños.

Fuentes y lecturas complementarias

Volver al blog
Share:

Entradas relacionadas