Rechnung mit berechneten Summen und Steuern erstellen
Wandeln Sie grundlegende Abrechnungsdaten in ein einheitliches Rechnungsdokument um, ohne Berechnungsregeln in jeder Anwendung neu zu implementieren.
Im Browser ausführen – kostenlos
Geben Sie Verkäufer, Käufer, Positionen, Mengen, Einzelpreise und einen prozentualen Steuersatz an. Der Generator berechnet Positionssummen, Zwischensumme, Steuer und Gesamtbetrag und gibt Eingabe- und Rechenwerte als verlässliches Objekt zurück, das Sie speichern, prüfen, darstellen oder an einen weiteren Ablauf übergeben können.
Bereiten Sie vollständige Rechnungsdaten vor
Beginnen Sie mit den beiden Parteien des Geschäfts. Die Felder für Verkäufer und Käufer können neben den Namen auch Anschrift, Registrierungsangaben oder Kontaktdaten enthalten, die nachgelagerte Prozesse bewahren sollen. Fügen Sie anschließend mindestens eine Position hinzu. Jede Zeile benötigt eine eindeutige Beschreibung, eine numerische Menge und einen numerischen Einzelpreis. Der Steuersatz wird als Prozentwert angegeben: Tragen Sie 8.25 für 8.25 Prozent ein, nicht 0.0825. Bruchmengen eignen sich für Leistungen nach Stunden, Gewicht, Entfernung oder einer anderen teilbaren Einheit; auch Einzelpreise dürfen Dezimalstellen enthalten. Negative Mengen und Preise werden abgelehnt, da sie meist auf eine fehlerhafte Rechnung oder eine Gutschrift hindeuten, die in einem eigenen Gutschriftenprozess abgebildet werden sollte. Verwenden Sie null nur, wenn eine tatsächlich kostenlose Position auf der Rechnung erscheinen muss. Präzise Beschreibungen erleichtern den Abgleich mit Bestellungen, Liefernachweisen und Verträgen. Die Anfrage enthält weder Datum noch erzeugte Kennung, daher liefern identische Eingaben stets dieselbe Ausgabe.
Verstehen Sie die Berechnung der Beträge
Für jede Position multipliziert der Generator Menge und Einzelpreis und rundet die entstehende Positionssumme auf zwei Dezimalstellen. Anschließend addiert er diese bereits gerundeten Positionssummen zur Zwischensumme. Die Steuer ergibt sich aus der Zwischensumme multipliziert mit dem angegebenen prozentualen Steuersatz und wird ebenfalls auf zwei Dezimalstellen gerundet. Zuletzt wird die gerundete Steuer zur Zwischensumme addiert, um den Gesamtbetrag zu bilden. Diese Reihenfolge ist ausdrücklich festgelegt und deterministisch, denn Buchhaltungssysteme können bei Rundung in einer anderen Phase abweichende Ergebnisse liefern. Die Ausgabe bewahrt Beschreibungen und Mengen, stellt Einzelpreise als Geldbeträge dar und ergänzt jede Position um line_total. Auf Dokumentebene enthält sie subtotal, tax_rate, tax und grand_total sowie Verkäufer und Käufer. Eine Währungsumrechnung oder automatische Währungserkennung findet nicht statt: Sämtliche Preise müssen dieselbe, vom Aufrufer gewählte Währung verwenden. Die strukturierte Antwort ist ein Daten- und Berechnungsbeleg für Vorlage, Datenbank, Freigabe oder API-Integration, kein PDF und kein Bild.
Binden Sie die Rechnung sicher ein
Setzen Sie diese Fähigkeit dort ein, wo bearbeitbare Bestelldaten zu einem Rechnungsdatensatz werden. Prüfen Sie zunächst Parteien, Währung, Steuergebiet und ob Rabatte, Quellensteuern, mehrere Steuersätze oder Gutschriften erforderlich sind. Übermitteln Sie danach die normalisierten Positionen und speichern Sie das zurückgegebene Objekt als Berechnungsergebnis. Da der Algorithmus weder Netzwerk noch Zufallswerte, Uhrzeit oder versteckten Zustand nutzt, lässt sich dieselbe Anfrage sicher wiederholen und bei Prüfungen vergleichen. Fehlende Pflichtfelder, nicht numerische Beträge, leere oder zu lange Listen, negative Steuersätze und insbesondere negative Mengen oder Preise führen zu Fehlern. Beheben Sie diese, bevor Sie eine Rechnungsnummer vergeben oder etwas an Kunden senden. Das Ergebnis kann eine HTML-Vorlage, einen Buchhaltungsimport, einen Anhanggenerator oder eine Freigabewarteschlange speisen; diese Aktionen bleiben jedoch getrennt. Dadurch bleibt die Arithmetik testbar und die Darstellung verändert keine Summen. API-Aufrufe kosten $0.002; im Browser läuft dieselbe reine Logik, sodass interaktive und automatisierte Ergebnisse übereinstimmen.
Anwendungsfälle
Freigegebene Aufträge abrechnen
Wandeln Sie normalisierte Bestellpositionen in einen strukturierten Beleg mit konsistenten Beträgen und Steuern um.
Ein Rechnungsformular betreiben
Berechnen Sie Summen während der Eingabe von Parteien, Positionen und Steuer und übergeben Sie das Ergebnis an die Darstellung.
Abrechnungsschnittstellen vereinheitlichen
Geben Sie mehreren Anwendungen einen deterministischen Berechnungsvertrag vor der Buchung oder Freigabe.
Häufige Fragen
Was kostet ein Aufruf?
Jeder API-Aufruf kostet $0.002.
Wie gebe ich den Steuersatz an?
Geben Sie eine Prozentzahl an. Verwenden Sie beispielsweise 8.25 für einen Steuersatz von 8.25 Prozent.
Wie werden Geldbeträge gerundet?
Jede Positionssumme wird auf zwei Dezimalstellen gerundet; daraus entsteht die Zwischensumme, anschließend wird die Steuer berechnet und gerundet.
Kann ich negative Werte für Gutschriften verwenden?
Nein. Negative Mengen oder Einzelpreise erzeugen einen Eingabefehler. Verwenden Sie einen eigenen Gutschriftenprozess.
Enthält das Ergebnis ein PDF oder eine Rechnungsnummer?
Nein. Es liefert strukturierte Rechnungsdaten mit Summen. Darstellung, Nummerierung, Währungsangabe und Versand erfolgen getrennt.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/doc/invoice-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"seller":"Northwind Studio","buyer":"Contoso Retail","line_items":[{"description":"Design consultation","quantity":2,"unit_price":125},{"description":"Style guide","quantity":1,"unit_price":80.5}],"tax_rate":8.25}'const res = await fetch("https://api.kit.forhosting.com/doc/invoice-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"seller": "Northwind Studio",
"buyer": "Contoso Retail",
"line_items": [
{
"description": "Design consultation",
"quantity": 2,
"unit_price": 125
},
{
"description": "Style guide",
"quantity": 1,
"unit_price": 80.5
}
],
"tax_rate": 8.25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/invoice-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"seller": "Northwind Studio",
"buyer": "Contoso Retail",
"line_items": [
{
"description": "Design consultation",
"quantity": 2,
"unit_price": 125
},
{
"description": "Style guide",
"quantity": 1,
"unit_price": 80.5
}
],
"tax_rate": 8.25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/invoice-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"seller":"Northwind Studio","buyer":"Contoso Retail","line_items":[{"description":"Design consultation","quantity":2,"unit_price":125},{"description":"Style guide","quantity":1,"unit_price":80.5}],"tax_rate":8.25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"seller":"Northwind Studio","buyer":"Contoso Retail","line_items":[{"description":"Design consultation","quantity":2,"unit_price":125},{"description":"Style guide","quantity":1,"unit_price":80.5}],"tax_rate":8.25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/invoice-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"seller": "Northwind Studio",
"buyer": "Contoso Retail",
"line_items": [
{
"description": "Design consultation",
"quantity": 2,
"unit_price": 125
},
{
"description": "Style guide",
"quantity": 1,
"unit_price": 80.5
}
],
"tax_rate": 8.25
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.invoice_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
max_pages | 200 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |