Skip to content
BotServBotServ
Invoice NinjaRechnungenBuchhaltungSelf-HostingOpen SourceZeiterfassung

Invoice Ninja self-hosted: Rechnungen und Zeiterfassung

Invoice Ninja self-hosten: Open-Source-Rechnungssoftware. Installation, Konfiguration, API-Integration und KI-gestützte Workflows.

S

schutzgeist

3 min read
Invoice Ninja self-hosted

Invoice Ninja self-hosted: Rechnungen und Zeiterfassung

Was dieser Artikel behandelt

  • Was Invoice Ninja ist: Open-Source-Rechnungssoftware für Freelancer und KMU.
  • Docker-Setup und Konfiguration.
  • Rechnungen, Angebote, Zeiterfassung, Kundenportal.
  • REST-API für Automatisierung: Rechnungen aus Workflows generieren.
  • KI-Integration: Angebots-Texte, Mahnwesen, Reporting.

Einleitung

Invoice Ninja ist die bekannteste Open-Source-Lösung für Rechnungen, Angebote und Zeiterfassung, seit Jahren gepflegt, aktiv entwickelt, mit Client-Portal (Kunden sehen Rechnungen und zahlen online). Für Freelancer und kleine Firmen, die keine Daten an Lexoffice/sevDesk geben wollen, die Standard-Option.

Die REST-API macht es zum Automatisierungs-Baustein: Deals aus Twenty → Rechnung in Invoice Ninja; abgeschlossene Projekte → Zeiterfassung → Rechnung.

Typische Anwendungsszenarien

  • Freelancer-Rechnungen: Angebote → Rechnungen → Zahlungseingänge tracken.
  • Zeiterfassung: Stunden pro Projekt erfassen, direkt in Rechnungen wandeln.
  • Recurring Invoices: Wiederkehrende Rechnungen (Retainer, Abos) automatisch.
  • Kundenportal: Kunden sehen Historie, laden PDFs, zahlen online.
  • Automatisierung: CRM-Deal gewonnen → Rechnung automatisch erstellen.

Installation: 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:

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

Grundkonfiguration

Nach dem Start: Setup-Wizard → Firma anlegen, Logo, Steuersätze (19%/7% für Deutschland), Rechnungs-Template, Zahlungsmethoden (Banküberweisung, Stripe, PayPal).

Deutschland-Hinweise: Invoice Ninja kann DSGVO-konforme Rechnungen mit Pflichtangaben (USt-IdNr, Steuernummer, fortlaufende Rechnungsnummer). GoBD-Konformität prüfen, die Software hilft, aber die Verantwortung liegt bei Dir.

REST-API: Rechnungen programmatisch

import requests

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

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

# Rechnung erstellen
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,
    }]
})

n8n-Workflow: CRM → Rechnung

Twenty-Webhook: Deal won
    │
    ▼
Daten mappen (Company → Client, Betrag → Items)
    │
    ▼
Invoice Ninja API: Client finden/erstellen → Invoice erstellen
    │
    ▼
Optional: Ollama schreibt individuellen Rechnungstext/Notes
    │
    ▼
Rechnung per Mail an Kunden (Invoice Ninja sendet selbst)

KI-Integration

  • Angebots-Texte: Ollama generiert individuelle Angebots-Texte aus Projekt-Briefing.
  • Mahnwesen: KI schreibt höfliche Zahlungserinnerungen mit Ton je nach Eskalationsstufe.
  • Zeiterfassung-Kommentare: KI fasst Arbeits-Logs zu sauberen Rechnungszeilen zusammen.
  • Kategorisierung: Eingehende Belege (OCR via Stirling-PDF) automatisch zuordnen.

Sicherheit und Rechtliches

  • GoBD: Rechnungen müssen unveränderbar archiviert werden: Invoice Ninja hilft (Nummernkreise, PDF-Archiv), aber Steuerberater fragen.
  • HTTPS + Auth: Finanzdaten → unbedingt TLS + starke Passwörter/2FA.
  • Backups: DB + Storage sichern, siehe Backup.
  • Zugriff: Nur intern oder per VPN: Rechnungssoftware nicht offen ins Netz.

Key Takeaways:

  • Invoice Ninja = Open-Source-Rechnungen + Zeiterfassung + Kundenportal.
  • REST-API macht es zum Automatisierungs-Baustein (CRM → Rechnung).
  • GoBD/DSGVO beachten; TLS, Backups, eingeschränkter Zugriff.
  • Für Freelancer/KMU die Standard-Alternative zu Lexoffice/sevDesk.
  • KI-Integration: Angebots-Texte, Mahnwesen, Beleg-Kategorisierung.

FAQ

Ist Invoice Ninja GoBD-konform?

Teilweise, fortlaufende Nummern, Unveränderbarkeit durch PDF-Archivierung. Die Verantwortung liegt beim Nutzer: Steuerberater fragen, Revisionssicherheit sicherstellen (DB-Backups, keine nachträglichen Änderungen).

Zeiterfassung inklusive?

Ja: Tasks und Timestamps pro Projekt/Kunde, die direkt in Rechnungspositionen umgewandelt werden. Plus Timer-UI und Berichte.

Online-Zahlungen?

Ja: Stripe, PayPal, SEPA (über Payment-Gateways) können im Kundenportal integriert werden. Für reine Banküberweisung reicht die PDF-Rechnung.

Invoice Ninja oder Lexoffice?

Lexoffice ist deutscher, GoBD-zertifizierter, aber Cloud + Abo. Invoice Ninja self-hosted = Datenhoheit, keine monatlichen Kosten, aber GoBD-Verantwortung liegt bei Dir.

Mehrere Benutzer?

Ja: Benutzer mit Rollen (Admin, User, Buchhaltung). Für kleine Teams ausreichend.

Quellen und weiterführende Literatur

Zurück zum KI Blog
Share:

Ähnliche Beiträge