Invovate← Zurück zum Rechnungsgenerator

Rechnungsgenerator API

Erstellen Sie professionelle PDF-Rechnungen mit einfachen API-Aufrufen

v1.0.0

Übersicht

Die Rechnungsgenerator-API ermöglicht Ihnen die Erstellung professioneller PDF-Rechnungen mit Unterstützung für mehrere Sprachen, RTL-Layouts und verschiedene Designvorlagen. Jeder API-Aufruf verbraucht 1 Credit.

Einfache Preisgestaltung

1 Credit pro Rechnungserstellung

Mehrsprachig

Englisch, Arabisch, Französisch, Spanisch und mehr

RTL-Unterstützung

Vollständiges Rechts-nach-Links Layout für Arabisch

Professionelle Vorlagen

Mehrere Designoptionen

Basis-URL:
https://invovate.com/api

Schnellstart

Erstellen Sie Ihre erste Rechnung in 3 einfachen Schritten:

Schritt 1: Holen Sie sich Ihren API-Schlüssel
Registrieren Sie sich auf invovate.comund generieren Sie Ihren API-Schlüssel im Dashboard
Schritt 2: Erstellen Sie eine Rechnungs-JSON-Datei
Speichern Sie Ihre Rechnungsdaten als JSON-Datei (siehe Beispiele unten)
Schritt 3: Führen Sie API-Aufruf durch
curl -X POST https://invovate.com/api/render -H "Content-Type: application/json" -H "Authorization: inv_sk_your_api_key_here" -d "@invoice.json"

Authentifizierung

Alle API-Anfragen erfordern einen API-Schlüssel zur Authentifizierung. Fügen Sie Ihren API-Schlüssel im Authorization-Header hinzu.

Authorization: inv_sk_your_api_key_here
API-Schlüssel-Format:Ihr API-Schlüssel beginnt mit inv_sk_gefolgt von einer eindeutigen Kennung.
Wichtig:Bewahren Sie Ihren API-Schlüssel sicher auf und geben Sie ihn niemals in clientseitigem Code preis. Ihr API-Schlüssel gewährt vollen Zugriff auf Ihre Account-Credits.

Credit-System

Jede erfolgreiche PDF-Generierung verbraucht 1 Credit von Ihrem Kontostand.

Einfache Preisgestaltung:1 Credit = 1 generierte Rechnung

Überprüfen Sie Ihren Credit-Saldo

Jede API-Antwort enthält Ihren aktuellen Credit-Saldo:

{ "credits": { "remaining": 95, "used": 1, "userType": "api", "verified": true } }

Credits kaufen

Um zusätzliche Credits zu erwerben, besuchen Sie invovate.comund navigieren Sie zum Abrechnungsbereich.

Hinweis:API-Aufrufe schlagen fehl, wenn Sie nicht genügend Credits haben. Überprüfen Sie immer Ihren Saldo in der API-Antwort.

PDF-Rechnung generieren

POST
/api/render

Generieren Sie eine PDF-Rechnung aus JSON-Daten. Verbraucht 1 Credit bei Erfolg.

Anfrage-Header

Content-Type: application/json Authorization: inv_sk_your_api_key_here

Anfrage-Body

Senden Sie Ihre Rechnungsdaten als JSON-Datei oder inline JSON-Objekt.

Anfrageformat

Erforderliche Felder

FeldTypErforderlichBeschreibung
titlestringJaIhr Firmenname
invnostringJaRechnungsnummer
datestringJaRechnungsdatum (YYYY-MM-DD)
tostringJaKundenadresse (mehrzeilig)
currencystringJaWährungscode (USD, EUR, AED, etc.)
langstringJaSprachcode (de, en, ar, fr, es, etc.)
templatestringJaVorlagenname (neat-pro, etc.)
rowsarrayJaArray von Positionen

Positionsfelder

FeldTypErforderlichBeschreibung
descstringJaArtikelbeschreibung
qtynumber/stringJaMenge
ratenumber/stringJaStückpreis
discnumber/stringNeinRabattprozentsatz
taxnumber/stringNeinSteuerprozentsatz

Optionale Felder

FeldTypBeschreibung
duestringFälligkeitsdatum (YYYY-MM-DD)
postringBestellnummer
termsstringZahlungsbedingungen
shipstringLieferadresse
notesstringZusätzliche Notizen
refundstringRückgaberecht
logostringBase64-kodiertes Logo-Bild
sigstringBase64-kodiertes Unterschriftsbild
customLabelsobjectBenutzerdefinierte Textbeschriftungen für verschiedene Sprachen

Antwortformat

Erfolgsantwort

{ "success": true, "pdf": "base64_encoded_pdf_string_here", "credits": { "remaining": 95, "used": 1, "userType": "api", "verified": true }, "mode": "api", "metadata": { "template": "neat-pro", "language": "de", "direction": "ltr", "fileSize": 15432, "creditsRemaining": 95, "itemsCount": 3, "hasLogo": true, "hasSignature": false } }

Antwortfelder

FeldTypBeschreibung
successbooleanAnfrage-Erfolgsstatus
pdfstringBase64-kodierte PDF-Datei
credits.remainingnumberIhr verbleibender Credit-Saldo
credits.usednumberIn diesem Aufruf verwendete Credits (immer 1)
credits.userTypestringImmer "api" für API-Aufrufe
modestringImmer "api" für API-Aufrufe
metadataobjectZusätzliche Informationen zur generierten PDF

Fehlerbehandlung

Fehlerantwortformat

{ "success": false, "error": "Fehlermeldungsbeschreibung", "code": "ERROR_CODE" }

Häufige Fehlercodes

FehlercodeHTTP-StatusBeschreibung
API_KEY_REQUIRED401Fehlender API-Schlüssel im Authorization-Header
INVALID_API_KEY401Ungültiger oder abgelaufener API-Schlüssel
EMAIL_VERIFICATION_REQUIRED403Account-E-Mail nicht verifiziert
INVALID_JSON400Ungültiges JSON im Anfrage-Body
INSUFFICIENT_CREDITS402Nicht genügend Credits zum PDF-Generieren
API_SECURITY_LIMIT_EXCEEDED429Ratenbegrenzung überschritten
RENDER_ERROR400PDF-Generierung fehlgeschlagen
INTERNAL_ERROR500Interner Serverfehler

Code-Beispiele

Deutsche Rechnungsbeispiel (invoice_de.json)

{ "title": "Musterfirma GmbH", "invno": "RGN-2025-001", "date": "2025-11-13", "due": "2025-12-13", "currency": "EUR", "lang": "de", "template": "neat-pro", "to": "Kundenfirma\n123 Geschäftsstraße\[email protected]", "ship": "Global Tech Solutions - Lagerhaus\n456 Lieferstraße\nBerlin, 10115", "notes": "Vielen Dank für Ihren Auftrag!", "rows": [ { "desc": "Webseitenentwicklung", "qty": "10", "rate": "75", "disc": "0", "tax": "19" }, { "desc": "Beratungsstunden", "qty": "5", "rate": "120", "disc": "0", "tax": "19" } ] }

Englisches Rechnungsbeispiel (invoice_en.json)

{ "title": "Sample Business Inc.", "invno": "INV-2025-001", "date": "2025-11-13", "due": "2025-12-13", "currency": "USD", "lang": "en", "template": "neat-pro", "to": "Client Company\n123 Business Ave\[email protected]", "ship": "Global Tech Solutions - Warehouse\n456 Shipping Lane\nNew York, NY 10001", "notes": "Thank you for your business!", "rows": [ { "desc": "Website Development", "qty": "10", "rate": "75", "disc": "0", "tax": "20" }, { "desc": "Consulting Hours", "qty": "5", "rate": "120", "disc": "0", "tax": "20" } ] }

cURL-Befehl

# JSON-Datei verwenden curl -X POST https://invovate.com/api/render -H "Content-Type: application/json" -H "Authorization: inv_sk_your_api_key_here" -d "@invoice_de.json" # Antwort in Datei speichern curl -X POST https://invovate.com/api/render -H "Content-Type: application/json" -H "Authorization: inv_sk_your_api_key_here" -d "@invoice_de.json" --output response.json

JavaScript-Beispiel

async function generateInvoice(invoiceData) { const API_KEY = 'inv_sk_your_api_key_here'; try { const response = await fetch('https://invovate.com/api/render', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': API_KEY // Kein "Bearer" Präfix }, body: JSON.stringify(invoiceData) }); const result = await response.json(); if (result.success) { // Base64 PDF dekodieren const pdfBytes = Uint8Array.from(atob(result.pdf), c =>c.charCodeAt(0)); const blob = new Blob([pdfBytes], { type: 'application/pdf' }); // PDF herunterladen const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `rechnung-${invoiceData.invno}.pdf`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); console.log(`PDF generiert! Verbleibende Credits: ${result.credits.remaining}`); } else { console.error('Fehler:', result.error); } } catch (error) { console.error('Anfrage fehlgeschlagen:', error); } } // Verwendung const invoiceData = { title: "Meine Firma", invno: "RGN-001", date: "2024-01-15", currency: "EUR", lang: "de", template: "neat-pro", to: "Kundenname\nKundenadresse", rows: [ { desc: "Webdesign", qty: 1, rate: 1000 } ] }; generateInvoice(invoiceData);

Python-Beispiel

import requests import base64 import json API_KEY = "inv_sk_your_api_key_here" URL = "https://invovate.com/api/render" invoice_data = { "title": "Meine Firma", "invno": "RGN-001", "date": "2024-01-15", "currency": "EUR", "lang": "de", "template": "neat-pro", "to": "Kundenfirma\n123 Kundenstraße", "rows": [ {"desc": "Webdesign", "qty": 1, "rate": 1000} ] } headers = { "Content-Type": "application/json", "Authorization": API_KEY # Kein "Bearer" Präfix } response = requests.post(URL, headers=headers, json=invoice_data) result = response.json() if result["success"]: # PDF in Datei speichern pdf_data = base64.b64decode(result["pdf"]) with open("rechnung.pdf", "wb") as f: f.write(pdf_data) print(f"PDF generiert! Verbleibende Credits: {result['credits']['remaining']}") else: print(f"Fehler: {result['error']}")

Unterstützte Sprachen

SprachcodeSpracheAusrichtung
deDeutschLTR
enEnglischLTR
arArabischRTL
ar-eÖstliches ArabischRTL
frFranzösischLTR
esSpanischLTR
hiHindiLTR
ptPortugiesischLTR

Verfügbare Vorlagen

VorlagennameBeschreibung
neat-proSauberes professionelles Design
modern-rightRechtsbündiges modernes Layout
classic-leftTraditionelles linksbündiges Design
elegant-gray-proElegantes Grau-Farbschema
band-blue-proBlaues Kopfband-Design
cool-waves-proModernes Wellenmuster-Design