Documentation Index
Fetch the complete documentation index at: https://docs.fynn.eu/llms.txt
Use this file to discover all available pages before exploring further.
Diese Funktion ist nur im Enterprise-Plan verfügbar. Kontaktiere unser Sales-Team unter sales@fynn.eu für weitere Informationen.
Übersicht
Mit Custom PDF Rendering kannst du deine eigene PDF-Rendering-Engine verwenden, um Rechnungen, Gutschriften und Stornos nach deinen individuellen Anforderungen zu generieren. Dies ermöglicht:- Vollständige Design-Kontrolle: Gestalte Belege exakt nach deinen Corporate-Design-Vorgaben
- Eigene Template-Engines: Nutze deine bevorzugte Template-Engine (LaTeX, Typst, etc.)
- Komplexe Layouts: Erstelle mehrseitige Dokumente mit komplexen Tabellen und Grafiken
- Integration mit bestehenden Systemen: Binde deine vorhandene Dokumentengenerierung nahtlos ein
Funktionsweise
- Beleg wird finalisiert: Wenn ein Beleg finalisiert wird, wechselt er in den Status
STATUS_FINALIZING - Webhook wird ausgelöst: Fynn sendet den
invoice.pdf.generation_requestedWebhook mit allen Belegdaten - PDF generieren: Dein System generiert das PDF mit deiner eigenen Rendering-Engine
- PDF hochladen: Das fertige PDF wird über die API an Fynn zurückgesendet
- Finalisierung abschließen: Fynn schließt den Finalisierungsprozess ab (ZUGFeRD-Einbettung, Versand, etc.)
Konfiguration
1. Feature aktivieren
Kontaktiere den Fynn-Support, um das Feature für deine Organisation freizuschalten.2. Webhook registrieren
Registriere einen Webhook für das Eventinvoice.pdf.generation_requested:
- Web-App verwenden
- API verwenden
3. Einstellungen konfigurieren
Unter Einstellungen > Abrechnung > Benutzerdefiniertes PDF-Rendering kannst du folgende Optionen konfigurieren:
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Benutzerdefiniertes PDF-Rendering aktivieren | Wenn aktiviert, wird die PDF-Generierung von Belegen über einen Webhook an ein externes System delegiert. | Deaktiviert |
| ZUGFeRD-XML einbetten | ZUGFeRD-XML-Daten automatisch in das hochgeladene PDF einbetten. Deaktiviere dies, wenn dein externer Renderer bereits ZUGFeRD einbettet. | Aktiviert |
| Automatischer Fallback | Automatisch auf den integrierten Renderer zurückfallen, wenn das externe System das PDF nicht innerhalb des Timeout-Zeitraums liefert. | Deaktiviert |
| Timeout | Timeout in Minuten (1-1440) | 30 |
Webhook-Payload
Derinvoice.pdf.generation_requested Webhook enthält alle Belegdaten:
PDF hochladen
Nach der PDF-Generierung muss das Dokument über die API hochgeladen werden:Endpoint-Details
| Methode | Pfad | Beschreibung |
|---|---|---|
POST | /api/invoices/{id}/pdf | PDF für Beleg hochladen |
Request
- Content-Type:
multipart/form-data - Feld:
file- Die PDF-Datei (MIME-Type:application/pdf)
Response
200 OKFehlercodes
| Code | Beschreibung |
|---|---|
404 | Beleg nicht gefunden |
409 | Beleg ist nicht im Status STATUS_FINALIZING |
422 | Ungültige Datei (kein PDF) |
Timeout und Fallback
Wenn das Custom PDF Rendering aktiviert ist, wartet Fynn auf das Hochladen des PDFs. Falls das PDF nicht rechtzeitig hochgeladen wird:- Mit aktiviertem Fallback: Nach Ablauf des Timeouts generiert Fynn das PDF automatisch mit der internen Rendering-Engine
- Ohne Fallback: Der Beleg bleibt im Status
STATUS_FINALIZINGbis das PDF manuell hochgeladen wird
ZUGFeRD-Einbettung
WennembedZugferd aktiviert ist, bettet Fynn automatisch die ZUGFeRD/Factur-X XML-Daten in das hochgeladene PDF ein. Dies gewährleistet die Compliance mit dem deutschen e-Rechnungsstandard.
Best Practices
Webhook-Verarbeitung
- Asynchrone Verarbeitung: Bestätige den Webhook sofort (HTTP 200) und verarbeite die PDF-Generierung asynchron
- Idempotenz: Implementiere Idempotenz, um doppelte Webhook-Aufrufe zu handhaben
- Retry-Logik: Implementiere Retries für den PDF-Upload bei temporären Fehlern
PDF-Anforderungen
- Format: PDF/A-3 wird empfohlen für beste ZUGFeRD-Kompatibilität
- Größe: Maximal 10 MB
- Qualität: Mindestens 150 DPI für eingebettete Bilder
Sicherheit
- Validiere die Webhook-Signatur
- Nutze HTTPS für alle API-Aufrufe
- Speichere API-Tokens sicher
Beispiel-Implementierung (Node.js)
Troubleshooting
PDF wird nicht akzeptiert
- Stelle sicher, dass die Datei ein gültiges PDF ist
- Überprüfe, dass der Beleg im Status
STATUS_FINALIZINGist - Validiere, dass du die richtige Invoice-ID verwendest
Webhook wird nicht empfangen
- Überprüfe, dass der Webhook für
invoice.pdf.generation_requestedregistriert ist - Stelle sicher, dass dein Endpoint erreichbar ist
- Überprüfe die Webhook-Logs in den Fynn-Einstellungen
Timeout-Fehler
- Erhöhe den
timeoutMinutes-Wert - Optimiere deine PDF-Generierung
- Aktiviere den Fallback für kritische Situationen