Übersicht
Die Invovate Rechnungs-API ermöglicht Entwicklern die automatisierte Erstellung professioneller Rechnungen über einen einfachen HTTP-POST-Aufruf. Sie können zwischen einer strukturierten JSON-Antwort mit allen Berechnungen oder einem direkten PDF-Download wählen. Die API unterstützt 11 Sprachen, mehr als 20 Währungen und 5 Designvorlagen — ideal für deutsche Freiberufler, SaaS-Unternehmen und Buchhaltungsanwendungen.
Kostenlos starten
40 Anfragen/Stunde, keine Kreditkarte
JSON oder PDF
Wählen Sie Ihr Ausgabeformat
MwSt.-Berechnung
Pro Position oder global (19%/7%)
Mehrsprachig
de, en, fr, nl, es und mehr
https://invovate.com/api
Schnellstart
Ihre erste Rechnung in drei Schritten erstellen:
Registrieren Sie sich kostenlos auf invovate.com und verifizieren Sie Ihre E-Mail-Adresse.
Öffnen Sie das Dashboard und klicken Sie auf "API-Schlüssel generieren". Ihr Schlüssel beginnt mit
inv_.
Authentifizierung
Die API unterstützt drei Authentifizierungsmethoden:
1. API-Schlüssel (empfohlen für serverseitige Nutzung)
2. Sitzungs-Cookie (für Webanwendungen)
Wenn Sie über den Browser eingeloggt sind, wird das Sitzungs-Cookie inv_session automatisch mitgesendet.
3. Anonym (ohne Authentifizierung)
Aufrufe ohne Authentifizierung sind möglich, aber auf JSON-Ausgabe beschränkt und werden per IP-Adresse limitiert. Geeignet zum Testen der API.
Limits & Tarife
| Tarif | Preis | Pro Stunde | Pro Woche |
|---|---|---|---|
| Kostenlos | 0 € | 40 | 400 |
| Starter | 9 €/Monat | 200 | 4.000 |
| Pro | 29 €/Monat | 1.000 | 40.000 |
| Enterprise | Auf Anfrage | Unbegrenzt | Unbegrenzt |
Die Limits werden über die Antwort-Header zurückgegeben:
Rechnung erstellen
Erstellt eine Rechnung und gibt entweder JSON mit allen Berechnungen oder eine binäre PDF-Datei zurück.
Anforderungsformat
Absender (from)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| from.name | string | Ja | Ihr Unternehmensname |
| from.address | string | Nein | Ihre Unternehmensadresse |
| from.email | string | Nein | Ihre E-Mail-Adresse |
| from.tax_id | string | Nein | USt-IdNr. (z.B. DE123456789) |
Empfänger (to)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| to.name | string | Ja | Name des Kunden oder Unternehmens |
| to.address | string | Nein | Adresse des Kunden |
| to.email | string | Nein | E-Mail-Adresse des Kunden |
Rechnungsdaten (invoice)
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
| invoice.number | string | Auto | Rechnungsnummer |
| invoice.date | string | Heute | Rechnungsdatum (JJJJ-MM-TT) |
| invoice.due_date | string | — | Fälligkeitsdatum (JJJJ-MM-TT) |
| invoice.currency | string | USD | Währungscode (z.B. EUR) |
| invoice.language | string | en | Sprachcode (z.B. de) |
| invoice.terms | string | — | Zahlungsbedingungen |
| invoice.po_number | string | — | Bestellnummer |
Positionen (items-Array)
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| description | string | Ja | Beschreibung der Leistung oder des Produkts |
| quantity | number | Ja | Anzahl der Einheiten |
| unit_price | number | Ja | Preis pro Einheit (netto) |
| discount | number | Nein | Rabatt (Prozent oder Betrag) |
| discount_type | string | percent | "percent" oder "amount" |
| tax_rate | number | Nein | MwSt.-Satz pro Position (z.B. 19) |
Weitere Felder
| Feld | Typ | Beschreibung |
|---|---|---|
| global_tax | number | Globaler MwSt.-Satz (gilt wenn kein positionsspezifischer Satz gesetzt) |
| global_discount | number | Rabatt auf den Gesamtbetrag |
| global_discount_type | string | "percent" oder "amount" |
| amount_paid | number | Bereits bezahlter Betrag (für Teilzahlung) |
| notes | string | Anmerkungen am Ende der Rechnung |
| refund_policy | string | Rückerstattungsrichtlinie |
| template | string | Vorlagenname: classic, modern, bold, minimal, navy |
| output | string | "json" (Standard) oder "pdf" |
Antwortformat
JSON-Antwort (output: "json")
PDF-Antwort (output: "pdf")
Gibt eine binäre PDF-Datei mit folgenden Headern zurück:
Fehlercodes
| HTTP-Status | Bedeutung |
|---|---|
| 400 | Validierungsfehler — prüfen Sie Ihr Anforderungsformat |
| 401 | Authentifizierung erforderlich oder API-Schlüssel ungültig |
| 403 | E-Mail-Adresse nicht verifiziert |
| 429 | Ratenlimit überschritten |
| 500 | Interner Serverfehler |
Authentifizierungs-Endpoints
| Methode | Pfad | Beschreibung |
|---|---|---|
| POST | /api/auth/register | Konto mit E-Mail und Passwort erstellen |
| POST | /api/auth/login | Einloggen, gibt Sitzungs-Cookie zurück |
| POST | /api/auth/logout | Ausloggen |
| GET | /api/auth/me | Aktuelle Benutzerinfos und API-Schlüssel abrufen |
| POST | /api/auth/generate-api-key | Neuen API-Schlüssel generieren (verifizierte E-Mail erforderlich) |
Codebeispiele
cURL — PDF-Rechnung mit MwSt.
JavaScript (Node.js)
Python
Unterstützte Sprachen
| Code | Sprache | Schreibrichtung |
|---|---|---|
de | Deutsch | LTR |
en | Englisch | LTR |
nl | Niederländisch | LTR |
fr | Französisch | LTR |
es | Spanisch | LTR |
it | Italienisch | LTR |
pt | Portugiesisch | LTR |
ru | Russisch | LTR |
hi | Hindi | LTR |
ja | Japanisch | LTR |
ar | Arabisch | RTL |
PDF-Vorlagen
| Name | Stil |
|---|---|
classic | Blauer Akzent, abwechselnde graue Zeilen (Standard) |
modern | Teal/Cyan, klares modernes Design |
bold | Dunkle Anthrazit-Kopfzeile, hoher Kontrast |
minimal | Hellgrau, randlos |
navy | Tiefblaue Kopfzeile mit goldenem Akzentstreifen |
Unterstützte Währungen
EUR, USD, GBP, JPY, CAD, AUD, CHF, CNY, INR, AED, SAR, SGD, NZD, KRW, BRL, MXN, ZAR, SEK, NOK, DKK