Businessplan-API

Erzeugen Sie vollständige Businesspläne direkt aus Ihrer eigenen Software: Angaben übergeben, kostenlose Vorschau prüfen, Plan bestellen, PDF, Word und Excel abholen. Dieselbe Pipeline wie auf businessplanersteller.de, ohne dass Ihre Mandanten den Fragebogen ausfüllen müssen.

Stand: 29.09.2026

Zugang anfragen

Schlüssel vergeben wir von Hand. Schreiben Sie uns kurz, wer Sie sind (Beratung, Bildungsträger, Kammer, Software) und mit wie vielen Plänen im Monat Sie rechnen. Der Zugang steht in der Regel innerhalb eines Werktags.

Zugang anfragen

Überblick

Die API bildet den Ablauf von businessplanersteller.de ab. Ein Plan entsteht in zwei Stufen:

  • Entwurf (kostenlos): Sie legen einen Plan mit den Angaben der Gründerin oder des Gründers an. Nach etwa einer Minute stehen eine Executive Summary und eine Gliederung bereit, zugeschnitten auf das konkrete Vorhaben.
  • Vollständiger Plan (199,00 €): Nach der Bestellung recherchiert das System Markt, Wettbewerb, übliche Preise und passende Förderprogramme, schreibt neun Kapitel und rechnet einen Finanzplan über 36 Monate. Das Ergebnis liegt als PDF, Word-Datei und Excel-Finanzplan vor.

Basis-URL: https://api.businessplanersteller.de/v1. Alle Anfragen laufen über HTTPS, alle Inhalte sind UTF-8-JSON, Zeitangaben ISO 8601, Geldbeträge in Cent.

Für wen die API gedacht ist

  • Gründungsberatungen und Coaches (auch mit AVGS-Gutschein), die für jede Mandantin einen ersten Plan brauchen und ihre Zeit lieber in Beratung als in Formatierung stecken.
  • Bildungsträger mit Gründungsseminaren, die am Ende jedes Kurses einen Plan pro Teilnehmer ausgeben.
  • Steuerberater und Kammern, die vor der fachkundigen Stellungnahme einen vollständigen, einheitlich aufgebauten Plan vorliegen haben wollen.
  • Software für Gründer (Gründungsportale, Buchhaltungs- und Banking-Apps), die einen Businessplan als Funktion anbieten.

Wer einen KI-Assistenten den Plan im Gespräch erarbeiten lassen möchte, nutzt den MCP-Server.

Zugang und Preise

Es gibt keine Grundgebühr. Abgerechnet wird ausschließlich pro bestelltem Plan zum Listenpreis von 199,00 €, gesammelt als Monatsrechnung. Entwürfe (Executive Summary und Gliederung) sind kostenlos.

Ab 20 bestellten Plänen im Monat bieten wir Staffelpreise an; sprechen Sie uns an. Schlüssel vergeben wir von Hand über [email protected], in der Regel innerhalb eines Werktags. Sie erhalten einen Testschlüssel und einen Live-Schlüssel.

Die freiwillige 24-Stunden-Geld-zurück-Garantie aus dem Shop gilt auch hier: Ist ein Plan unbrauchbar, schreiben Sie uns innerhalb von 24 Stunden nach Fertigstellung mit der Plan-ID, und er erscheint nicht auf der Rechnung.

Authentifizierung

Der Schlüssel steht als Bearer-Token im Header Authorization. Schlüssel mit sk_test_ arbeiten im Testmodus, Schlüssel mit sk_live_ erzeugen echte, abrechenbare Pläne.

bash Authorization-Header bei jeder Anfrage
curl https://api.businessplanersteller.de/v1/plans \
  -H "Authorization: Bearer $BPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "branche": "handwerk",
    "gruendungsart": "neugruendung",
    "geschaeftsidee": "Meisterbetrieb für Elektroinstallation mit Schwerpunkt Wallboxen und PV-Anlagen für Privathaushalte",
    "standort": "Heilbronn",
    "einzugsgebiet": "regional",
    "raeumlichkeiten": "gemietet",
    "rechtsform": "einzelunternehmen",
    "team": "allein_mit_mitarbeitern",
    "nebenerwerb": "hauptberuflich",
    "zweck": "gruendungszuschuss",
    "startkapital": "5000_15000",
    "finanzierungsbedarf": "25000_50000"
  }'

Bewahren Sie den Schlüssel nur serverseitig auf, niemals im Browser oder in einer App. Ist er nach außen gelangt, sperren wir ihn auf Zuruf innerhalb weniger Minuten und stellen einen neuen aus.

Schnellstart

Der kürzeste Weg vom Fragebogen Ihrer Software zum fertigen Plan: Entwurf anlegen, Vorschau zeigen, bestellen.

python Python: Entwurf, Vorschau, Bestellung
import os, time, requests

API = "https://api.businessplanersteller.de/v1"
HEAD = {"Authorization": "Bearer " + os.environ["BPE_API_KEY"]}

antworten = {
    "branche": "gastronomie",
    "gruendungsart": "uebernahme",
    "geschaeftsidee": "Übernahme eines Cafés mit 40 Plätzen, Ausbau um Frühstück und Catering für Büros",
    "standort": "Leipzig-Plagwitz",
    "einzugsgebiet": "lokal",
    "raeumlichkeiten": "gemietet",
    "rechtsform": "ug",
    "team": "team",
    "nebenerwerb": "hauptberuflich",
    "gruenderprofil": "Köchin mit 12 Jahren Berufserfahrung, davon 4 als Souschefin",
    "vorname": "Miriam",
    "zweck": "kredit",
    "startkapital": "15000_50000",
    "finanzierungsbedarf": "50000_125000",
    "investitionen": "Kaufpreis Inventar 38.000 €, Siebträgermaschine 9.500 €, Renovierung 12.000 €",
    "angebot_preise": "Frühstück 9 bis 16 €, Kaffee 3,20 bis 4,80 €, Catering ab 14 € pro Person",
    "zielgruppe": "Kreative und Büros im Viertel, Wochenendpublikum",
}

plan = requests.post(f"{API}/plans", headers=HEAD, json=antworten).json()

# Teaser (Executive Summary und Gliederung) ist kostenlos
while plan["teaser"]["status"] != "completed":
    time.sleep(5)
    plan = requests.get(f"{API}/plans/{plan['id']}", headers=HEAD).json()
print(plan["teaser"]["executive_summary"])

# Vollständigen Plan bestellen, ab hier kostenpflichtig
requests.post(f"{API}/plans/{plan['id']}/order", headers=HEAD).raise_for_status()

Statt zu pollen, können Sie auf den Webhook plan.completed warten. Siehe Webhooks.

Endpunkte

MethodePfadZweck
POST/v1/plansEntwurf anlegen. Erzeugt kostenlos Executive Summary und Gliederung.
GET/v1/plans/{id}Plan mit Antworten, Teaser, Bestellstatus und Fortschritt lesen.
GET/v1/plansEigene Pläne auflisten, neueste zuerst.
POST/v1/plans/{id}/orderVollständigen Plan bestellen. Kostenpflichtig.
GET/v1/plans/{id}/chaptersDie neun Kapitel als Markdown, sobald der Plan fertig ist.
GET/v1/plans/{id}/financeDer berechnete Finanzplan als JSON.
GET/v1/plans/{id}/files/{format}PDF, Word-Datei oder Excel-Finanzplan herunterladen.
DELETE/v1/plans/{id}Plan mit allen Angaben und Dateien endgültig löschen.
GET/v1/optionsErlaubte Werte aller Auswahlfelder, mit den Beschriftungen aus dem Fragebogen.
GET/v1/accountPreis, Verbrauch im laufenden Monat und Limits des Schlüssels.

Entwurf anlegen

POST /v1/plans nimmt die Angaben entgegen, die auf businessplanersteller.de im Fragebogen abgefragt werden. Kein Feld ist Pflicht, aber jede fehlende Angabe wird aus Branchenwerten geschätzt. Je genauer geschaeftsidee, investitionen und angebot_preise sind, desto belastbarer wird der Finanzplan.

bash Minimaler Entwurf
curl https://api.businessplanersteller.de/v1/plans \
  -H "Authorization: Bearer $BPE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "branche": "handwerk",
    "gruendungsart": "neugruendung",
    "geschaeftsidee": "Meisterbetrieb für Elektroinstallation mit Schwerpunkt Wallboxen und PV-Anlagen für Privathaushalte",
    "standort": "Heilbronn",
    "einzugsgebiet": "regional",
    "raeumlichkeiten": "gemietet",
    "rechtsform": "einzelunternehmen",
    "team": "allein_mit_mitarbeitern",
    "nebenerwerb": "hauptberuflich",
    "zweck": "gruendungszuschuss",
    "startkapital": "5000_15000",
    "finanzierungsbedarf": "25000_50000"
  }'
FeldTypBedeutung
brancheenumBranche, bestimmt Recherche und Vergleichswerte. Werte siehe unten.
gruendungsartenumNeugründung, Übernahme oder bereits gegründet (Plan wird nachträglich benötigt).
geschaeftsideestringDie Idee in eigenen Worten: was, für wen, wie. Bis 4.000 Zeichen.
standortstringStadt, Stadtteil oder PLZ. Grundlage für die lokale Wettbewerbsrecherche.
einzugsgebietenumLokal, regional oder bundesweit bzw. online.
raeumlichkeitenenumGemietete Räume, von zu Hause, mobil beim Kunden oder noch offen.
rechtsformenumGeplante Rechtsform. Fließt in Kapitel 6 und in die Gründungskosten ein.
teamenumAllein, allein mit geplanten Mitarbeitern oder im Team.
nebenerwerbenumHaupt- oder nebenberuflich. Gründungszuschuss und Einstiegsgeld setzen eine hauptberufliche Gründung voraus.
gruenderprofilstringAusbildung, Berufserfahrung, Qualifikationen. Grundlage für Kapitel 2.
vornamestringVorname für die persönliche Ansprache im Plan.
zweckenumWofür der Plan gebraucht wird. Steuert Schwerpunkt und Tonalität (siehe unten).
startkapitalenumVorhandenes Eigenkapital als Spanne.
finanzierungsbedarfenumZusätzlicher Kapitalbedarf als Spanne.
investitionenstringGeplante Anschaffungen mit Beträgen, soweit bekannt.
angebot_preisestringLeistungen und Preise. Wichtigste Quelle für die Umsatzplanung.
zielgruppestringWer die Kunden sind.
besonderheitenstringWas das Vorhaben von der Konkurrenz unterscheidet, bestehende Kundenkontakte, Zusagen.
metadataobjectBis zu 20 eigene Schlüssel-Wert-Paare, etwa Ihre Mandantennummer. Kommen unverändert in jeder Antwort und jedem Webhook zurück.

Die Antwort ist das Plan-Objekt. teaser.status steht zunächst auf generating und nach etwa einer Minute auf completed.

json Das Plan-Objekt
{
  "id": "bp_7Kx2mQ9tLw",
  "object": "plan",
  "created_at": "2026-09-29T08:12:44Z",
  "livemode": true,
  "answers": {
    "branche": "handwerk",
    "gruendungsart": "neugruendung",
    "standort": "Heilbronn",
    "zweck": "gruendungszuschuss",
    "...": "..."
  },
  "teaser": {
    "status": "completed",
    "executive_summary": "Mit dem Elektromeisterbetrieb ...",
    "outline": [
      "1. Executive Summary: ...",
      "2. Gründerprofil: ...",
      "..."
    ]
  },
  "order": null,
  "pipeline_status": "none",
  "progress": { "chapters_done": 0, "chapters_total": 9, "percent": 0 },
  "metadata": { "mandant": "K-2026-118" }
}

Erlaubte Werte

Auswahlfelder nehmen feste Werte an. Die API verwendet kurze Schlüssel statt der Beschriftungen aus dem Fragebogen; GET /v1/options liefert beides, damit Sie Ihre eigene Oberfläche daraus bauen können.

FeldWerte
branchefriseur_kosmetik, gastronomie, handwerk, einzelhandel, online_shop, coaching_beratung, pflege_gesundheit, it_software, transport_logistik, immobilien, fitness_sport, agentur_marketing, sonstige_dienstleistung, sonstiges_gewerbe
gruendungsartneugruendung, uebernahme, bestehend
einzugsgebietlokal, regional, bundesweit
raeumlichkeitengemietet, zuhause, mobil, offen
rechtsformeinzelunternehmen, freiberuflich, gbr, ug, gmbh, unklar
teamallein, allein_mit_mitarbeitern, team
nebenerwerbhauptberuflich, nebenberuflich
zweckgruendungszuschuss, einstiegsgeld, kredit, investoren, sonstiges
startkapitalkein, unter_5000, 5000_15000, 15000_50000, ueber_50000
finanzierungsbedarfkein, unter_10000, 10000_25000, 25000_50000, 50000_125000, ueber_125000
json Auszug aus GET /v1/options
{
  "object": "options",
  "fields": {
    "branche": [
      { "value": "friseur_kosmetik", "label": "Friseur / Kosmetik / Beauty" },
      { "value": "gastronomie", "label": "Gastronomie / Café / Imbiss" },
      { "value": "handwerk", "label": "Handwerk (Elektro, SHK, Bau, Tischlerei, ...)" }
    ],
    "zweck": [
      { "value": "gruendungszuschuss", "label": "Gründungszuschuss (Agentur für Arbeit)" },
      { "value": "einstiegsgeld", "label": "Einstiegsgeld (Jobcenter)" }
    ]
  }
}

Was zweck bewirkt

  • gruendungszuschuss und einstiegsgeld: Schwerpunkt auf Tragfähigkeit und Lebensunterhalt, so wie Agentur für Arbeit und Jobcenter es prüfen.
  • kredit: Schwerpunkt auf Kapitaldienstfähigkeit, Sicherheiten und Liquiditätsreserve, so wie Hausbank und KfW es prüfen.
  • investoren: Schwerpunkt auf Marktpotenzial, Wachstum und Mittelverwendung.
  • sonstiges: ausgewogener Plan für die eigene Planung.

Plan bestellen

POST /v1/plans/{id}/order startet die Erstellung des vollständigen Plans. Erst dieser Aufruf ist kostenpflichtig. Mit notify_email schicken wir der Gründerin oder dem Gründer zusätzlich die Liefer-E-Mail mit den Dateien; ohne das Feld geht keine E-Mail an Dritte.

bash Bestellung mit Idempotenzschlüssel
curl -X POST https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/order \
  -H "Authorization: Bearer $BPE_API_KEY" \
  -H "Idempotency-Key: 5c1e9a7f-2b44-4f0e-8d3a-9e61c0b7a212" \
  -H "Content-Type: application/json" \
  -d '{ "notify_email": "[email protected]" }'
json Antwort
{
  "id": "bp_7Kx2mQ9tLw",
  "object": "plan",
  "order": {
    "ordered_at": "2026-09-29T08:20:03Z",
    "amount": 19900,
    "currency": "eur",
    "invoice": "monthly"
  },
  "pipeline_status": "pending",
  "progress": { "chapters_done": 0, "chapters_total": 9, "percent": 0 }
}

Antworten lassen sich nach der Bestellung nicht mehr ändern. Soll der Plan mit anderen Angaben neu entstehen, legen Sie einen neuen Entwurf an. Kleinere Anpassungen nehmen Sie direkt in der Word- und Excel-Datei vor, die genau dafür mitgeliefert werden.

Status und Fortschritt

Der vollständige Plan ist in der Regel innerhalb einer Stunde fertig, oft nach 15 bis 30 Minuten. pipeline_status zeigt, wo er gerade steht, progress wie viele der neun Kapitel geschrieben sind.

StatusBedeutung
noneEntwurf, noch nicht bestellt.
pendingBestellt, wartet auf einen freien Platz in der Warteschlange.
researchingRecherche läuft: Markt und Branchentrends, lokale Wettbewerber, übliche Preise und Kosten, passende Förderprogramme.
generatingKapitel und Finanzplan werden geschrieben und berechnet.
completedFertig. Kapitel, Finanzplan und Dateien sind abrufbar.
failedFehlgeschlagen. Wir starten automatisch neu; bleibt der Status, melden wir uns. Ein fehlgeschlagener Plan wird nicht berechnet.
bash Fortschritt abfragen
curl https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw \
  -H "Authorization: Bearer $BPE_API_KEY" \
  | jq '{pipeline_status, progress}'

# {
#   "pipeline_status": "generating",
#   "progress": { "chapters_done": 5, "chapters_total": 9, "percent": 61 }
# }

Bitte fragen Sie höchstens alle zehn Sekunden ab. Der Webhook ist die bessere Wahl.

Die neun Kapitel

Jeder Plan hat dieselbe Gliederung, die sich an den Erwartungen von Banken, KfW und Arbeitsagentur orientiert. GET /v1/plans/{id}/chapters liefert sie als Markdown, damit Sie die Texte in Ihre eigene Oberfläche übernehmen können.

Nr.KeyInhalt
1executive_summaryExecutive Summary. Wird zuletzt geschrieben, damit sie die Zahlen des Finanzplans enthält.
2gruenderprofilGründerprofil: Qualifikation und Erfahrung.
3geschaeftsideeGeschäftsidee und Angebot.
4marktMarkt und Wettbewerb, auf Grundlage der Recherche, mit Quellen.
5marketingMarketing und Vertrieb.
6organisationOrganisation und Rechtsform.
7finanzplanFinanzplan: Erläuterung der Zahlen aus der Berechnung.
8swotSWOT-Analyse.
9meilensteineMeilensteine und Umsetzungsplan.
json Auszug aus GET /v1/plans/{id}/chapters
{
  "object": "list",
  "data": [
    {
      "number": 1,
      "key": "executive_summary",
      "title": "Executive Summary",
      "markdown": "Mit dem Elektromeisterbetrieb ...",
      "words": 612
    },
    {
      "number": 4,
      "key": "markt",
      "title": "Markt und Wettbewerb",
      "markdown": "Im Landkreis Heilbronn ...",
      "words": 1180,
      "sources": [
        { "title": "Statistisches Landesamt Baden-Württemberg", "url": "https://..." }
      ]
    }
  ]
}

Finanzplan

Die Zahlen im Plan schreibt kein Sprachmodell frei. Das Modell leitet aus Ihren Angaben und der Recherche nur die Annahmen ab (Umsatzpositionen, Anlaufkurve, Kosten, Finanzierung); gerechnet wird anschließend deterministisch. GET /v1/plans/{id}/finance liefert Annahmen und Ergebnis.

  • kapitalbedarf: Investitionen, Gründungskosten, Summe.
  • finanzierung: Eigenkapital, Kredit, Zins, Laufzeit, tilgungsfreie Monate, Monatsrate (Annuität).
  • years: Rentabilitätsvorschau über drei Jahre mit Umsatz, Wareneinsatz, Fixkosten, Personal, Abschreibung, Zinsen und Ergebnis.
  • monthly: Liquiditätsplanung über 36 Monate mit Kassenbestand.
  • kennzahlen: die Werte, auf die Bank und Arbeitsagentur zuerst schauen.
KennzahlTypBedeutung
break_even_monatintegerErster Monat mit positivem Ergebnis.
kapitaldienst_jahrnumberZins und Tilgung pro Jahr.
niedrigste_liquiditaetnumberTiefster Kassenbestand in den 36 Monaten. Ist er negativ, fehlt Kapital.
niedrigste_liquiditaet_monatintegerMonat, in dem der tiefste Kassenbestand erreicht wird.
umsatz_jahr1 ... 3numberUmsatz je Planjahr.
ergebnis_jahr1 ... 3numberErgebnis nach Privatentnahme je Planjahr.
json Auszug aus GET /v1/plans/{id}/finance
{
  "object": "finance",
  "plan_id": "bp_7Kx2mQ9tLw",
  "kapitalbedarf": { "investitionen": 31500, "gruendungskosten": 2400, "gesamt": 33900 },
  "finanzierung": {
    "eigenkapital": 9000, "kredit": 25000, "zins_prozent": 5.9,
    "laufzeit_monate": 84, "tilgungsfrei_monate": 12, "monatsrate": 412.37
  },
  "kennzahlen": {
    "break_even_monat": 9,
    "kapitaldienst_jahr": 4948.44,
    "niedrigste_liquiditaet": 3120.55,
    "niedrigste_liquiditaet_monat": 5,
    "umsatz_jahr1": 118400, "umsatz_jahr2": 164900, "umsatz_jahr3": 187300,
    "ergebnis_jahr1": 21300, "ergebnis_jahr2": 44800, "ergebnis_jahr3": 52900
  },
  "years": [ { "jahr": 1, "umsatz": 118400, "wareneinsatz": 35500, "fixkosten": 28800, "personal": 21000, "afa": 4500, "zinsen": 1300, "ergebnis": 21300 } ],
  "monthly": [ { "monat": 1, "umsatz": 3100, "ausgaben": 7420, "kassenbestand": 29580 } ],
  "assumptions": { "...": "..." }
}

Dateien

Sobald pipeline_status auf completed steht, liefert GET /v1/plans/{id}/files/{format} die fertigen Dokumente. Vorher antwortet der Endpunkt mit 409 not_ready.

FormatMIME-TypInhalt
pdfapplication/pdfDer Plan zum Einreichen: Deckblatt, Inhaltsverzeichnis, neun Kapitel, Tabellen zu Kapitalbedarf und Finanzierung, Rentabilität über drei Jahre und Liquidität im ersten Jahr.
docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentDerselbe Plan als Word-Datei zum Überarbeiten.
xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetFinanzplan mit den Blättern Annahmen, Rentabilität 3 Jahre, Liquidität 36 Monate und Kennzahlen.
bash Alle drei Dateien abholen
curl -L -o Businessplan.pdf \
  https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/files/pdf \
  -H "Authorization: Bearer $BPE_API_KEY"

curl -L -o Businessplan.docx https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/files/docx \
  -H "Authorization: Bearer $BPE_API_KEY"

curl -L -o Finanzplan.xlsx https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/files/xlsx \
  -H "Authorization: Bearer $BPE_API_KEY"

Die Dateien bleiben abrufbar, bis Sie den Plan löschen.

Auflisten und löschen

GET /v1/plans liefert Ihre Pläne seitenweise (bis 100 pro Seite, Cursor in next_cursor). Filtern lässt sich nach pipeline_status, Zeitraum und eigenen metadata.

bash Fertige Pläne einer Mandantin
curl -G https://api.businessplanersteller.de/v1/plans \
  -H "Authorization: Bearer $BPE_API_KEY" \
  -d pipeline_status=completed \
  -d created_after=2026-09-01 \
  -d "metadata[mandant]=K-2026-118"

DELETE /v1/plans/{id} löscht Angaben, Texte, Finanzplan und Dateien endgültig. Ein bestellter Plan bleibt auf der Rechnung, auch wenn Sie ihn löschen.

json GET /v1/account
{
  "object": "account",
  "name": "Gründungsberatung Muster",
  "price_per_plan": 19900,
  "currency": "eur",
  "current_period": {
    "from": "2026-09-01", "to": "2026-09-30",
    "teasers": 58, "plans_ordered": 17, "amount_due": 338300
  },
  "limits": { "teasers_per_day": 200, "requests_per_minute": 60 },
  "livemode": true
}

Webhooks

Nennen Sie uns einen HTTPS-Endpunkt, dann senden wir bei jeder Statusänderung ein Ereignis per POST.

EreignisAuslöser
plan.teaser_readyExecutive Summary und Gliederung des Entwurfs sind fertig.
plan.orderedEin Plan wurde bestellt.
plan.researchingDie Recherche hat begonnen.
plan.completedDer Plan ist fertig, die Dateien sind abrufbar.
plan.failedDie Erstellung ist endgültig fehlgeschlagen. Der Plan wird nicht berechnet.
plan.deletedEin Plan wurde gelöscht.
json Ereignis plan.completed
{
  "id": "evt_3Mv8cT1rPz",
  "type": "plan.completed",
  "created_at": "2026-09-29T08:51:17Z",
  "livemode": true,
  "data": {
    "plan_id": "bp_7Kx2mQ9tLw",
    "pipeline_status": "completed",
    "files": {
      "pdf": "https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/files/pdf",
      "docx": "https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/files/docx",
      "xlsx": "https://api.businessplanersteller.de/v1/plans/bp_7Kx2mQ9tLw/files/xlsx"
    },
    "metadata": { "mandant": "K-2026-118" }
  }
}

Jede Anfrage trägt den Header BPE-Signature mit Zeitstempel und einem HMAC-SHA256 über zeitstempel.body, signiert mit Ihrem Webhook-Geheimnis.

http Signatur-Header
BPE-Signature: t=1790664677,v1=4f0c2b9e7a...
python Python: Signatur prüfen
import hmac, hashlib, os, time

SECRET = os.environ["BPE_WEBHOOK_SECRET"].encode()

def verify(header: str, raw_body: bytes) -> bool:
    parts = dict(p.split("=", 1) for p in header.split(","))
    ts, sig = parts["t"], parts["v1"]
    if abs(time.time() - int(ts)) > 300:
        return False
    expected = hmac.new(SECRET, ts.encode() + b"." + raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, sig)

Antworten Sie innerhalb von zehn Sekunden mit einem 2xx-Status. Andernfalls wiederholen wir die Zustellung mit wachsenden Abständen 24 Stunden lang. Ereignisse können doppelt ankommen; nutzen Sie id, um sie zu erkennen.

Idempotenz

Senden Sie bei jedem POST einen Idempotency-Key. Wiederholen Sie eine Anfrage nach einem Verbindungsabbruch mit demselben Schlüssel innerhalb von 24 Stunden, erhalten Sie die ursprüngliche Antwort zurück. Bei /order ist das besonders wichtig: So wird ein Plan nie doppelt bestellt.

Unabhängig davon ist /order für denselben Plan nur einmal möglich. Ein zweiter Aufruf liefert den bestehenden Bestellstatus und löst keine zweite Berechnung aus.

Fehler

Fehler kommen mit passendem HTTP-Status und einem Körper, der sagt, was zu tun ist.

json 422 bei einem unbekannten Auswahlwert
{
  "error": {
    "type": "validation_error",
    "code": "invalid_option",
    "message": "Der Wert 'minijob' ist für nebenerwerb nicht erlaubt. Erlaubt sind: hauptberuflich, nebenberuflich.",
    "field": "nebenerwerb",
    "request_id": "req_8Tq4nB2xKd"
  }
}
TypStatusBedeutung
invalid_request400Die Anfrage ist nicht lesbar, etwa fehlerhaftes JSON oder ein unbekanntes Feld.
authentication_error401Schlüssel fehlt, ist falsch oder gesperrt.
permission_error403Der Schlüssel darf diese Aktion nicht ausführen, etwa ein Lese-Schlüssel bei /order.
not_found404Der Plan existiert nicht oder gehört nicht zu Ihrem Konto.
conflict409Derselbe Idempotenzschlüssel wurde mit anderem Inhalt verwendet.
not_ready409Kapitel, Finanzplan oder Dateien werden abgefragt, bevor der Plan fertig ist.
validation_error422Ein Wert ist nicht erlaubt, etwa eine unbekannte Option oder ein zu langer Text. field nennt das Feld.
rate_limit429Zu viele Anfragen. Warten Sie RateLimit-Reset Sekunden.
api_error500Fehler bei uns. Später erneut versuchen und bei Wiederholung die request_id schicken.

Limits

WertLimit
60 / minAnfragen pro Minute und Schlüssel.
200 / TagKostenlose Entwürfe pro Tag und Schlüssel.
20Gleichzeitig laufende Pläne. Weitere Bestellungen warten mit pending.
4.000Zeichen je Freitextfeld.
24 hIdempotenzfenster: so lange merken wir uns einen Schlüssel.
http Header in jeder Antwort
RateLimit-Limit: 60
RateLimit-Remaining: 57
RateLimit-Reset: 23

Für Seminare mit vielen Teilnehmern am selben Tag heben wir die Limits nach Absprache an.

Versionierung

Die Version steht im Pfad (/v1). Innerhalb von v1 kommen nur Dinge hinzu: neue Endpunkte, neue optionale Felder, neue Ereignisse, neue Auswahlwerte. Ihr Code sollte unbekannte Felder ignorieren.

Änderungen, die bestehende Anbindungen brechen könnten, erhalten eine neue Datumsversion. Sie können eine Version per Header festschreiben; ohne Header gilt die Version, die bei Ausgabe Ihres Schlüssels aktuell war. Solche Änderungen kündigen wir mindestens sechs Monate vorher per E-Mail an.

http Version festschreiben
BPE-Version: 2026-09-01

Testmodus

Mit einem sk_test_-Schlüssel funktioniert alles wie im Live-Betrieb, mit drei Unterschieden:

  • Bestellungen kosten nichts und erscheinen nicht auf der Rechnung.
  • Statt der echten Pipeline liefert der Testmodus nach etwa 30 Sekunden einen festen Beispielplan mit allen Kapiteln, Finanzplan und Dateien, damit Sie Ihre Anbindung durchspielen können.
  • Es geht nie eine E-Mail an notify_email.

Webhooks aus dem Testmodus tragen "livemode": false, ein Endpunkt kann also beide annehmen.

Datenschutz

Angaben zu Gründerinnen und Gründern sind personenbezogene Daten. Wir verarbeiten sie ausschließlich zur Erstellung des Plans und im Auftrag.

  • Einen Vertrag zur Auftragsverarbeitung nach Art. 28 DSGVO schließen wir mit jedem API-Kunden vor dem ersten Live-Schlüssel ab.
  • Für die Texterstellung setzen wir ein Sprachmodell eines Drittanbieters als Unterauftragsverarbeiter ein; die Liste der Unterauftragsverarbeiter erhalten Sie mit dem Vertrag.
  • Die Recherche sucht nach Markt, Wettbewerb, Preisen und Förderprogrammen, nie nach Namen von Personen.
  • Angaben werden nicht zum Training von Modellen verwendet und nicht weitergegeben.
  • Mit DELETE /v1/plans/{id} löschen Sie einen Plan jederzeit selbst und vollständig.

Übergeben Sie nur, was für den Plan nötig ist. vorname genügt für die Ansprache, Nachnamen, Adressen oder Steuernummern braucht der Plan nicht.

Was der Plan ist und was nicht

Der Plan ist ein vollständiger, sauber gegliederter Entwurf und eine Formulierungs- und Strukturierungshilfe. Er ersetzt keine Steuer-, Rechts- oder Finanzberatung.

  • Er erfüllt die inhaltlichen Anforderungen an einen Tragfähigkeitsnachweis und ist als Grundlage für die fachkundige Stellungnahme geeignet. Die Stellungnahme selbst stellt eine fachkundige Stelle aus (IHK, HWK, Steuerberater oder Gründungsberatung), nicht wir.
  • Eine Zusage für Gründungszuschuss, Einstiegsgeld oder Kredit kann niemand garantieren, auch wir nicht.
  • Wer den Plan einreicht, sollte die Zahlen verstehen und vertreten können. Die Excel-Datei ist dafür da, die Annahmen nachzuvollziehen und anzupassen.

Wenn Sie die API in einem Beratungsangebot einsetzen, liegt die fachliche Prüfung des Plans bei Ihnen. Die Rechte am Plan liegen beim Endkunden: Er darf ihn uneingeschränkt nutzen, bearbeiten und an Banken, Behörden und Berater weitergeben.

Support

Fragen zur API, zu einem Schlüssel oder zu einem einzelnen Plan an [email protected]. Nennen Sie bitte immer die Plan-ID oder die request_id aus der Antwort, dann finden wir die Anfrage sofort.

Zugang anfragen

Schlüssel vergeben wir von Hand. Schreiben Sie uns kurz, wer Sie sind (Beratung, Bildungsträger, Kammer, Software) und mit wie vielen Plänen im Monat Sie rechnen. Der Zugang steht in der Regel innerhalb eines Werktags.

Zugang anfragen