Zum Inhalt springen
FrankKi
AnmeldenKostenlos starteniOS Download

Tool-Referenz

Diese Liste wird beim Build direkt aus der Tool-Registry des Servers generiert, kein Feld ist von Hand gepflegt. Ein registriertes, aktives Tool erscheint mit echten Feldern, ein registriertes aber inaktives Tool zeigt „Bald verfügbar", ein nicht registriertes Tool taucht gar nicht auf. Die Wire-Konventionen (ISO-8601, Cent-Beträge, clientOrderId, dryRun) stehen einmal im Konventionen-Panel, hier nur als kurzer Hinweis pro Tool.

apiVersion v1 · schemaRevision 2 · 64 tools

Jeder Tool-Aufruf kann außerdem einen dieser Transport-Codes zurückgeben, hier nur einmal aufgeführt: UNAUTHORIZED, FORBIDDEN_SCOPE, VALIDATION_ERROR, RATE_LIMITED, INTERNAL_ERROR

Lesen

  • mcp_health

    Health-/Echo-Probe - prüft das Partner-Token und die Verarbeitungskette von Anfang bis Ende und sagt dir unter setup, welche Voraussetzungen für einen echten Versand schon erfüllt sind (Absender-Profil, AVV, Guthaben, Sandbox, Freigabe) und was der nächste Schritt ist. Mit checkRender: true wird zusätzlich geprüft, ob gerade überhaupt gerendert werden kann (Vorschau, Thumbnail). Rufe das auf, bevor du eine Vorlage baust, die du danach ansehen musst.

    FeldTyp
    checkRenderbooleanOptionalPrüft zusätzlich den Render-Pfad (Composer + Rasterizer). Default false.
  • profile_getScope: profile:read

    Liefert das Partnerprofil im Überblick: Standard-Absenderadresse, hinterlegte Signatur und Briefkopf, gespeicherte Presets, eine kurze Wallet-Zusammenfassung und das aktuelle Preismodell des Partners (Standardpreis oder Mengenstaffel, inklusive nächster Staffelstufe).

    Keine Eingabefelder außer reasoning.

  • wallet_balanceScope: wallet:read

    Liefert den aktuellen Wallet-Stand: Guthaben, Tageslimit für Briefe und Kosten, den nächsten Reset-Zeitpunkt sowie das aktuelle Preismodell (Standardpreis oder Mengenstaffel). Bleibt das Guthaben unter den geplanten Versandkosten, rufe wallet_topup_link auf und gib dem Menschen den Link zum Aufladen.

    Keine Eingabefelder außer reasoning.

  • sender_profile_listScope: sender_profile:read

    Listet alle Absenderprofile des Partners mit ihrer Rechtsform und ob die Pflichtangaben vollständig sind.

    Keine Eingabefelder außer reasoning.

  • sender_profile_getScope: sender_profile:read

    Liefert ein einzelnes Absenderprofil mit allen Pflichtangaben, Bankverbindung und Disclaimer.

    FeldTyp
    profileIdstring (uuid)Pflicht

    Fehlercodes: NOT_FOUND

  • mandant_getScope: mandant:read

    Liefert einen Mandanten mit Adressen, Kategorie, Sachbearbeiter, Monatslimit, verbrauchtem Monatsbudget, Aufbewahrungsdauer und der Briefanzahl der letzten 12 Monate.

    FeldTyp
    mandantIdstringOptional
    mandantennummerstringOptional

    Fehlercodes: NOT_FOUND

  • mandant_listScope: mandant:read

    Listet die Mandanten des Partners, optional gefiltert nach Suchbegriff, Kategorie oder Tag.

    FeldTyp
    searchQuerystringOptional
    kategorieFilterstringOptional
    tagFilterstringOptional
    sincestring (date-time)OptionalNur Mandanten, die seit diesem Zeitpunkt angelegt wurden (ISO 8601).
    limitintegerOptionalStandard 20, maximal 100.
    offsetintegerOptionalVersatz für die Seitennavigation. Standard 0.
  • mandant_searchScope: mandant:read

    Sucht Mandanten über Mandantennummer, Name, Tags oder Sachbearbeiter und nennt für jeden Treffer die passende Spalte. Nächster Schritt mit der gefundenen mandantennummer: document_create erzeugt daraus eine Rechnung, Mahnung, Zahlungserinnerung oder Gutschrift, mandant_get liefert die vollständigen Stammdaten, letter_create_draft schreibt einen normalen Brief.

    FeldTyp
    querystringPflicht
    sincestring (date-time)OptionalNur Mandanten, die seit diesem Zeitpunkt angelegt wurden (ISO 8601).
    limitintegerOptionalStandard 20, maximal 100.
    offsetintegerOptionalVersatz für die Seitennavigation. Standard 0.
  • template_listScope: template:read

    Vorlagen auflisten, Template-Liste, template list: Listet die verfügbaren Brief-Vorlagen für Anlässe wie Kündigung, Rechnung, Mahnung, Angebot, Vertrag und Behördenpost, mit Kategorie, Version und ihren Platzhaltern (Merge-Feldern). Der exakte technische Tool-Name ist template_list; falls dein Client Tools verzögert lädt, suche nach template_list. Standardmäßig nur freigegebene Vorlagen; mit statusFilter und dem Scope template:write auch offene Entwürfe. Jeder Eintrag sagt mit curated: true, ob es eine kuratierte FrankKi-Standardvorlage ist (die Bibliothek zum Kopieren), und mit hasBlocks: true, ob sie ein strukturiertes Layout mit Tabellen und Summen traegt statt Fliesstext. Naechster Schritt: template_get liefert eine Vorlage vollstaendig (bei einer Blockvorlage inklusive blocksTemplate und styleDefs zum Kopieren und Anpassen), template_apply_with_merge_fields fuellt sie mit deinen Werten.

    FeldTyp
    kategorieFilterstringOptional
    statusFilterreleased | draft | allOptionalreleased (Standard) zeigt alle freigegebenen Vorlagen. Eigenständige Formularvorlagen tragen sendable:false und brauchen beim Anwenden ein Anschreiben. draft zeigt nur offene Entwürfe, all beide. draft und all brauchen zusätzlich den Scope template:write.
    limitintegerOptionalStandard 20, maximal 100.
    offsetintegerOptionalVersatz für die Seitennavigation. Standard 0.
  • template_getScope: template:read

    Liefert eine einzelne Vorlage mit Betreff- und Inhaltsvorlage, den Merge-Feldern und der empfohlenen Freigabe-Voreinstellung. Eine Blockvorlage liefert zusaetzlich blocksTemplate und styleDefs, sodass du sie kopieren, anpassen und mit template_save als eigenen Entwurf speichern kannst. Genau so faengt die Gestaltungsschleife an: template_get auf einer kuratierten Standardvorlage (template_list zeigt sie mit curated: true), blocksTemplate anpassen, mit letter_preview ansehen, nachbessern, dann template_save, mit template_preview die gespeicherte Version pruefen und zuletzt template_release. Mit versionId und dem Scope template:write lässt sich auch eine bestimmte Entwurfsversion lesen. Nächster Schritt: template_apply_with_merge_fields füllt die Platzhalter mit deinen Werten.

    FeldTyp
    templateIdstring (uuid)Pflicht
    versionIdstring (uuid)OptionalOptional: eine bestimmte Version lesen, auch einen Entwurf. Braucht zusaetzlich den Scope template:write. Ohne Angabe wird die freigegebene Version gelesen.

    Fehlercodes: NOT_FOUND

  • letter_getScope: letter:read

    Liefert einen Brief des Partners samt zugehörigem Auftrag und einer 24 Stunden gültigen Download-URL für die PDF.

    FeldTyp
    letterIdstring (uuid)Optional
    orderIdstring (uuid)Optional
  • letter_listScope: letter:read

    Listet die Briefe des Partners mit optionalen Filtern nach Empfängername, Betreff, Status und Zeitpunkt.

    FeldTyp
    recipientNameContainsstringOptional
    subjectContainsstringOptional
    statusFilterstringOptional
    sincestring (date-time)Optional
    limitintegerOptional
    offsetintegerOptional
  • sender_profile_validateScope: sender_profile:read

    Prüft, ob ein Absenderprofil (per profileId) oder ein vorgeschlagener Feldsatz alle Pflichtangaben für seine Rechtsform enthält. Gib genau eine Form an: profileId ODER rechtsform + proposedFields. proposedFields ist ein Objekt; ein JSON-kodierter Objekt-String wird ebenfalls akzeptiert. Liefert valid, missingFields und weiche Hinweise. Meldet eine Lücke als Ergebnis und läuft dabei durch.

    Keine Eingabefelder außer reasoning.

  • analytics_summaryScope: analytics:read

    Liefert die aggregierten Kennzahlen des Partnerkontos: Briefe pro Monat, Kosten pro Mandant zur Weiterberechnung, Laufzeiten bis zur Zustellung, Fehlerquoten und Ausgaben gegen die gesetzten Limits. Betraege sind Netto-Kosten in Cent.

    FeldTyp
    metricoverview | letters_per_month | cost_per_mandant | delivery_times | failure_rates | spend_vs_capsOptionalWelche Auswertung. overview (Standard) fasst die letzten drei Monate zusammen.
    monthsintegerOptionalTrendlaenge fuer letters_per_month und failure_rates, 1 bis 24, Standard 12.
    sincestringOptionalZeitraumbeginn fuer cost_per_mandant und delivery_times, zum Beispiel 2026-01-01. Standard: letzte 90 Tage.
    untilstringOptionalZeitraumende, Standard jetzt.
    topNintegerOptionalAnzahl Mandanten in cost_per_mandant, 1 bis 50, Standard 10.
  • address_listScope: address:read

    Listet die Adressen im Partner-Adressbuch. Optional nach Name, Stadt oder Mandant gefiltert.

    FeldTyp
    searchQuerystringOptional
    limitintegerOptional
  • address_validateScope: address:read

    Prüft eine Adresse anhand landesspezifischer Regeln und meldet harte Fehler als ADDRESS_INVALID. Nur eine Prüfung, das Adressbuch bleibt unverändert; zum Anlegen oder Ändern einer Adresse nimm address_upsert.

    FeldTyp
    namestringPflicht
    companystringOptional
    streetstringPflicht
    houseNumberstringOptional
    poboxstringOptional
    zipstringOptional
    citystringPflicht
    countrystringOptionalISO-3166-alpha-2, default DE.
    mandantennummerstringOptional
    addressTyperecipient | sender | billingOptional
    isDefaultbooleanOptional

    Fehlercodes: ADDRESS_INVALID

  • template_apply_with_merge_fieldsScope: template:read

    Füllt die Platzhalter einer gespeicherten Vorlage mit deinen Werten und gibt Betreff und Inhalt oder ein vollständiges Anschreiben-Formular-Paket zurück. Bei einer Blockvorlage kommen statt content die fertigen blocks zurück. Briefkopf und Marke werden getrennt bei Vorschau oder Versand gewählt. Eine eigenständige Formularvorlage mit sendable:false und releaseBlocker:null braucht coverTemplateId aus einer direkt adressierbaren Briefvorlage; eine gespeicherte Verknüpfung bleibt nur der optionale Standard. Übergib danach templateId, templateVersionId, coverTemplateId, coverTemplateVersionId und die ursprünglichen templateMergeValues unverändert an order_send. Gib Paketabschnitte so weiter, wie sie zurückkommen. Fehlt eine Pflichtangabe, antwortet das Tool mit MERGE_FIELDS_MISSING und nennt die fehlenden oder ungültigen Felder.

    FeldTyp
    templateIdstring (uuid)PflichtId der Vorlage aus template_list / template_get.
    templateVersionIdstring (uuid)OptionalExakte freigegebene oder ersetzte Vorlagenversion. Ohne Angabe wird die aktuell freigegebene Version verwendet.
    coverTemplateIdstring (uuid)OptionalOptionales Anschreiben für eine eigenständige Formularvorlage. Ohne gespeicherte Verknüpfung ist es zum Anwenden erforderlich.
    coverTemplateVersionIdstring (uuid)OptionalOptional: exakte freigegebene Version des gewählten Anschreibens.
    mergeValuesObjektOptionalZuordnung von Platzhalter-Namen zu Werten, z. B. { "provider": "Telekom" }. Der Typ des Merge-Feldes gilt: date erwartet ISO JJJJ-MM-TT, currency ganzzahlige Cent, number eine Zahl, rows eine Liste von Zeilenobjekten mit den Spaltenschluesseln der gebundenen Tabelle.
    languagede | enOptionalSprache fuer die Formatierung von Betrag und Datum. Standard de.
    mandantennummerstringOptionalOptionaler Mandantenbezug (nur Kontext).

    Fehlercodes: NOT_FOUND

  • shipping_quoteScope: letter:read

    Registered-mail availability depends on the destination and its current catalog, not a Germany-only rule. The codes einschreiben_einwurf and einschreiben_uebergabe are German products; Switzerland uses ch_einschreiben. For other destinations, use only methods returned in availableDeliveryTypes by a standard shipping_quote for that country, then quote the chosen code. A rejected country/method pair does not establish availability in other countries. A catalog snapshot with no registered method does not prove that the postal service never offers one. Tracked mail is not registered mail. Never substitute standard or tracked delivery when registered mail was requested without the user's agreement. A carrier-issued proof-of-posting PDF is not promised. Reply in the user's conversation language, regardless of recipient country, letter language, German tool titles or bilingual tool results. Translate shipping methods, letter formats, delivery estimates and explanations for the user. In English: Standardbrief = standard letter; Kompaktbrief = compact letter; Großbrief = large letter; Maxibrief = maxi letter; Einschreiben = registered mail; Einwurf-Einschreiben = registered mail with recorded mailbox delivery; Übergabe-Einschreiben = registered mail with signature on delivery; Einlieferungsbeleg = proof of posting. Use localized money and number formatting. Keep tool names, parameter names, deliveryType values and error codes unchanged in tool calls; show codes to users only when needed for troubleshooting. This presentation rule does not translate the letter's contents. Ermittelt den Preis, das Briefformat, die Versandart und die voraussichtliche Laufzeit für einen geplanten Brief, bevor er versendet wird. Das ist die Schätzung für den Fall, dass der Brief erst geplant ist: du gibst nur Seitenzahl, Land und Versandart an. Steht der Brief schon fest, versendest du ihn mit order_send (order_send mit dryRun:true liefert dann den genaueren Preis für genau diesen Brief). Der Preis gilt pro Brief und enthält bereits die Mengenstaffel des Partners, falls eine greift (Feld tierId). Für die Staffelpreise selbst nutze pricing_tiers.

    FeldTyp
    pageCountintegerPflichtSeitenzahl fuer eine allgemeine Schaetzung. Mit letterId verwendet FrankKi die gespeicherte Seitenzahl und ignoriert diesen Wert.
    colorbooleanPflichtFarbannahme fuer eine allgemeine Schaetzung. Mit letterId erkennt FrankKi die Farbe aus der gespeicherten Vorschau und ignoriert diesen Wert.
    deliveryTypestandard | einschreiben_einwurf | einschreiben_uebergabe | ch_b_post | ch_a_post | ch_einschreiben | at_eco | at_prio | intl_standard | intl_priority | intl_express | intl_tracked | intl_registeredPflichtRegistered-mail availability depends on the destination and its current catalog, not a Germany-only rule. The codes einschreiben_einwurf and einschreiben_uebergabe are German products; Switzerland uses ch_einschreiben. For other destinations, use only methods returned in availableDeliveryTypes by a standard shipping_quote for that country, then quote the chosen code. A rejected country/method pair does not establish availability in other countries. A catalog snapshot with no registered method does not prove that the postal service never offers one. Tracked mail is not registered mail. Never substitute standard or tracked delivery when registered mail was requested without the user's agreement. A carrier-issued proof-of-posting PDF is not promised.
    expressbooleanOptional
    countrystring, max. 2 ZeichenOptionalISO 3166-1 alpha-2, Standard DE.
    letterIdstring (uuid)OptionalOptional: die letterId eines bestehenden Entwurfs. Dann kommen Seitenzahl und Farbe aus der gespeicherten Vorschau; fuer den endgueltigen Preis inklusive Anhaengen nutze order_send mit dryRun:true.
  • pricing_tiersScope: letter:read

    Liefert die Staffelpreise (Mengenrabatte) von FrankKi: ab welcher Monatsmenge welcher Beispielpreis pro Brief gilt. Nutze das, wenn jemand nach Mengenrabatt, Volumenpreis, Staffelpreis oder Großkundenpreis fragt. Die Beispielpreise gelten für einen einseitigen Standardbrief in Schwarzweiß innerhalb Deutschlands, der echte Preis pro Brief hängt zusätzlich von Seitenzahl, Farbe, Versandart und Zielland ab (dafür shipping_quote).

    Keine Eingabefelder außer reasoning.

  • order_statusScope: order:read

    Liefert den aktuellen Status eines Auftrags samt chronologischer deutscher Sendungsverfolgung, der Sendungsnummer (nur bei Einschreiben), der voraussichtlichen Zustellung und ob sich der Brief noch stornieren lässt. Beim Status awaiting_partner_fix wartet der Brief auf eine Korrektur: rufe dann order_fix_resubmit auf. Solange cancellable true ist, kann order_cancel den Versand noch stoppen.

    FeldTyp
    orderIdstring (uuid)Pflicht

    Fehlercodes: NOT_FOUND

  • order_einlieferungsbelegScope: order:read

    Liefert den Einlieferungsbeleg (Einlieferungsnachweis) zu einem versendeten Auftrag: eine 90 Tage gültige Download-URL für die Beleg-PDF, den Poststempel, den Versanddienstleister sowie den geprüften Nachweis aus dem GoBD-Archiv.

    FeldTyp
    orderIdstring (uuid)Pflicht

    Fehlercodes: NOT_FOUND

  • approval_listScope: approval:read

    Listet die Freigaben deines Kontos, neueste zuerst, mit einer zeitlich begrenzten PDF-Vorschau, den Kosten, dem Grund und den Fristen. Standardmäßig nur die offenen Freigaben. Über eine der zurückgegebenen approvalIds entscheidest du anschließend mit approval_decide.

    FeldTyp
    statuspending | approved | rejected | expiredOptionalStandard pending.
    sincestring (date-time)OptionalNur Freigaben, die seit diesem Zeitpunkt eingereicht wurden (ISO 8601).
    limitintegerOptionalStandard 20, maximal 100.
    offsetintegerOptionalVersatz für die Seitennavigation. Standard 0.
  • setup_fix_linkScope: profile:read

    Gibt einen Punkt an den Menschen im Browser weiter: Guthaben aufladen, Einwilligung (AVV) unterschreiben oder das Absender-Profil vervollstaendigen. Liefert die passende Seite und eine Karte, die den Briefentwurf sichtbar stehen laesst und selbst merkt, wenn der Mensch zurueck ist. Bezahlt wird immer im Browser.

    FeldTyp
    gapwallet | avv | senderProfilePflichtWelcher Punkt uebergeben wird: wallet (Guthaben), avv (Einwilligung) oder senderProfile (Absender-Profil).
  • wallet_topup_linkScope: wallet:read

    Erstellt einen Stripe-Checkout-Link zum Aufladen deines Wallet-Guthabens. Die Kartendaten bleiben bei Stripe; das Guthaben wird nach Abschluss der Zahlung gutgeschrieben.

    FeldTyp
    amountEurosnumberPflichtAufladebetrag in Euro, zwischen 10 und 500.
    requestNoncestring, max. 200 ZeichenOptionalOptionaler stabiler Wiederholungs-Schluessel. Bei einer Wiederholung denselben Wert senden, um denselben Checkout-Link zu erhalten statt eines zweiten.

    Fehlercodes: INSUFFICIENT_FUNDS

  • template_diff_checkScope: template:read

    Vergleicht deinen finalen Brief mit der Vorlage und zeigt dir, wo du abgewichen bist. Bei einer Blockvorlage uebergibst du finalBlocks statt finalContent; verglichen werden die Texte in Lesereihenfolge. Kostenlos und rein lesend.

    FeldTyp
    templateIdstring (uuid)PflichtId der Vorlage aus template_list / template_get.
    versionIdstring (uuid)OptionalOptional: bestimmte Version, sonst die freigegebene.
    finalSubjectstringPflichtDein finaler Betreff.
    finalContentstringOptionalDein finaler Brieftext. Bei einem Blockbrief stattdessen finalBlocks.
    finalBlocksArray<Objekt>OptionalDeine finalen Bloecke, wenn der Brief strukturiert ist. Verglichen werden die Texte in Lesereihenfolge.
    mergeFieldsObjektOptionalZuordnung der Platzhalter-Namen zu Werten, z. B. { "provider": "Telekom" }.

    Fehlercodes: NOT_FOUND

  • letter_design_listScope: letter_design:write

    Listet die gespeicherten Briefpapiere (Briefdesigns) des Partners samt vollstaendigem Design-JSON. Ein Design wird per Name oder ID beim Versand referenziert und traegt jede Post: Kuendigung, Rechnung, Mahnung, Angebot, Vertrag und Behoerdenpost.

    FeldTyp
    includeArchivedbooleanOptionalAuch archivierte (geloeschte) Designs einschliessen. Standard false.
  • letter_design_previewScope: letter_design:write

    Rendert ein gespeichertes oder inline uebergebenes Briefdesign mit schemaVersion 1 oder 2 durch dieselbe Aufloesung und denselben Composer wie ein echter Versand. Nutzt echte Partner-Absenderdaten und einen erfundenen Empfaenger sowie Beispieltext. Liefert standardmaessig eine Inline-PNG-Seite; Seite 2 nur fuer continuationHeader. Mit sampleVariant empty siehst du das Briefpapier allein: Kopf und Fuss stehen echt, die Textflaeche bleibt frei, und genau dieses Bild zeigt auch das Dashboard. So siehst du vorab, wie Kuendigung, Rechnung, Mahnung, Angebot, Vertrag und Behoerdenpost auf diesem Briefpapier aussehen. Der Lauf bleibt kostenfrei und der Brief bleibt ein Entwurf.

    FeldTyp
    designIdstring (uuid)Optional
    designunbekanntOptional
    referenceObjektOptional
    sampleSubjectstring, max. 200 ZeichenOptional
    sampleContentstring, max. 4000 ZeichenOptional
    sampleVarianttypical | emptyOptionaltypical zeigt eine vollstaendige Beispielseite, an der du Lesbarkeit und Rhythmus beurteilst. empty zeigt das Briefpapier allein: Kopf und Fuss stehen echt, die Textflaeche bleibt frei. Ein eigener sampleContent hat Vorrang vor beidem.
    pagesintegerOptionalStandard ist nur Seite 1. Seite 2 wird ausschliesslich bei continuationHeader geliefert.
    resolutionthumb | fullOptional

    Fehlercodes: DESIGN_NOT_FOUND, DESIGN_RENDER_FAILED, DESIGN_ZONE_VIOLATION

  • letter_design_list_presetsScope: letter_design:write

    Liefert die vom Inhaber freigegebenen native-v2 Briefpapiere als sichere Ausgangspunkte fuer Kuendigung, Rechnung, Mahnung, Angebot, Vertrag und Behoerdenpost. Sie waechst mit jeder abgenommenen Vorlage. Die normale Liste bleibt reiner Text und damit guenstig; mit presetId wird genau eine echte Composer-Vorschau samt Inline-PNG erzeugt.

    FeldTyp
    presetIdstringOptionalOptional: genau eine Vorlage samt gerenderter Vorschau laden. Ohne presetId bleibt die Liste bildfrei und guenstig.
    pagesintegerOptional
    resolutionthumb | fullOptional
  • brand_kit_getScope: profile:read

    Liest die gespeicherten Markenwerte fuer das nutzerseitige Ergebnis Briefkopf & Marke. Liefert Logo-Referenzen, Farben und Schrift fuer die weitere Gestaltung mit letter_design_preview und letter_design_save. Suche technisch nach brand_kit_get.

    Keine Eingabefelder außer reasoning.

  • signature_listScope: profile:read

    Listet die im Partnerprofil gespeicherten Unterschriften mit einer kurzlebigen Vorschau-URL (24 Stunden gültig).

    Keine Eingabefelder außer reasoning.

  • letterhead_listScope: profile:read

    Listet die im Partnerprofil gespeicherten Briefköpfe mit einer kurzlebigen Vorschau-URL (24 Stunden gültig).

    Keine Eingabefelder außer reasoning.

  • address_search_companyScope: address:read

    Sucht Firmen und Behörden im Verzeichnis und liefert die passende Versandadresse inklusive Behörden-Postfach.

    FeldTyp
    querystringPflicht
    countrystringOptional
  • letter_searchScope: letter:read

    Durchsucht die Briefe des Partners per Freitext über Betreff, Empfängername und Briefinhalt.

    FeldTyp
    querystringPflicht
    sincestring (date-time)OptionalNur Briefe, die seit diesem Zeitpunkt geändert wurden (ISO 8601).
    limitintegerOptionalStandard 20, maximal 100.
    offsetintegerOptionalVersatz für die Seitennavigation. Standard 0.
  • archive_exportScope: archive:read

    Plant einen Archiv-Export (GoBD-CSV, DATEV, PDF-Bundle oder Mandanten-Allokation) für einen Zeitraum ein und liefert eine Job-ID zur Statusabfrage.

    FeldTyp
    sincestring (date-time)Pflicht
    untilstring (date-time)Pflicht
    formatgobd_csv | datev_export | pdf_bundle | mandant_allocation_pdf | mandant_allocation_csvPflicht
    targetstringOptional
    mandantennummerFilterstringOptional
    senderProfileFilterstring (uuid)Optional
    notifyEmailstring (email)Optional

    Fehlercodes: NOT_FOUND

  • archive_export_statusScope: archive:read

    Liefert den Status eines Archiv-Export-Jobs und bei Fertigstellung eine 90 Tage gültige Download-URL.

    FeldTyp
    jobIdstring (uuid)Pflicht

    Fehlercodes: NOT_FOUND

  • letter_previewScope: order:send

    Brief und Entwurf als Bild pruefen, Formularvorschau rendern: komponiert wie einen echten Versand und liefert Inline-PNGs, PDF-Link, Seitenzahl, Preis und designRender mit dem tatsaechlichen documentMode, den gezeichneten Brief-Elementen und bodyStartMm. Die Vorschau bleibt kostenfrei und der Brief bleibt liegen. Der Brief kommt ueber letterId oder inline mit content ODER blocks. Bei letterId ist die eingebettete Karte die Vorschau für den Menschen. Nach ihrer Anzeige reicht im Chat eine kurze Bestätigung; PDF-Link und Brieftext gehören in reine Textansichten. Ein ungespeichertes design kann direkt mitgegeben werden und gilt nur für diese eine Vorschau. WICHTIG FUER FORMULARE: Selbstauskunft, Fragebogen, Zertifikat und andere eigenstaendige Formulare immer zuerst mit design: { "schemaVersion": 1, "documentMode": "form" } pruefen; genau dann entfallen Empfaengerblock, Datum und Betreff und der Inhalt beginnt bei 27 mm. Kompaktes blocks-Beispiel: {"blocks":[{"type":"heading","text":"Rechnung"},{"type":"table","columns":[{"key":"text","label":"Artikel","width":"grow"},{"key":"sum","label":"Summe","align":"right","format":"eur"}],"rows":[{"text":"Beratung","sum":32000}]},{"type":"totals","lines":[{"label":"Gesamt","amountCents":32000,"emphasis":true}]}]} Volle Referenz: frankki://blocks-guide. Beim Nachbau ist letter_preview PFLICHT: PNG Seite fuer Seite mit dem Original vergleichen. Weichen Seitenzahl oder wesentliche Geometrie ab, korrigiere blocks oder design und rufe letter_preview erneut auf; gespeichert wird erst, wenn beides passt. Wenn das Layout sitzt mit template_save als Entwurf sichern und danach template_release nutzen.

    FeldTyp
    letterIdstring (uuid)OptionalEinen gespeicherten Entwurf in der Vorschau anzeigen. Alternativ den Brief inline angeben.
    subjectstring, max. 200 ZeichenOptionalBetreff. Ohne letterId erforderlich.
    contentstring, max. 30000 ZeichenOptionalBrieftext als Fliesstext. Entweder content ODER blocks, nie beides.
    blocksArray<unbekannt> (min 1, max 200)OptionalStrukturierter Briefinhalt als typisierte Bloecke (Alternative zu content, nie beides). Limits: 200 Bloecke, 100 Zeilen/Tabelle, 20 Spalten, 2000 Zeichen/Zelle, 10 Bilder, 262144 Bytes.
    styleDefsObjektOptionalBenannte Stile fuer das ganze Dokument (max. 24). Bloecke referenzieren sie ueber style.
    languagede | enOptional
    designIdstring (uuid)OptionalEin gespeichertes Briefdesign fuer diese Vorschau verwenden.
    designObjektOptionalUngespeichertes Briefdesign nur fuer diese Vorschau. Hat Vorrang vor designId und erzeugt keinen Eintrag im Konto. Fuer eigenstaendige Formulare documentMode: "form" setzen.
    referenceObjektOptionalWerte fuer diesen Brief (Vorgangsnummer, Ihr Zeichen, Kundennummer, QR-Parameter ...). Sie fuellen Infoblock und Barcode in der Vorschau.
    senderProfileIdstring (uuid)Optional
    pagesintegerOptionalWie viele Seiten als Bild zurueckkommen. Standard 3, Maximum 8. Der PDF-Link enthaelt immer alle Seiten.
    resolutionthumb | fullOptionalthumb (96 dpi, Standard, schnell und klein) oder full (150 dpi, zum Pruefen von Details).
  • template_previewScope: template:read

    Rendert eine GESPEICHERTE Vorlage mit Beispielwerten und liefert Inline-PNGs, PDF-Link und designRender. designId oder ein ungespeichertes design bestimmen das Briefpapier; fuer eigenstaendige Formulare documentMode: "form" setzen. Die Vorschau bleibt kostenfrei und rein zum Ansehen. Fuer ein blocks-Layout, das erst im Entstehen ist, nimm letter_preview. Zum Persistieren einer fertigen Version template_save aufrufen. Falls das Tool clientseitig entfernt wurde, in der Tool-Suche exakt nach dem technischen Namen template_save suchen.

    FeldTyp
    templateIdstring (uuid)PflichtId der Vorlage aus template_list / template_get.
    versionIdstring (uuid)OptionalExakte Vorlagenversion, die geprueft werden soll. Ohne Angabe gilt die freigegebene Version, danach der neueste Entwurf.
    designIdstring (uuid)OptionalGespeichertes Briefdesign fuer diese Vorlagenvorschau.
    designVersionIdstring (uuid)OptionalExakte unveränderliche Briefkopf-Version für diese Vorschau.
    designObjektOptionalUngespeichertes Briefdesign nur fuer diese Vorschau. Fuer Formulare documentMode: "form" setzen.
    pagesintegerOptionalWie viele Seiten als Bild zurueckkommen. Standard 1, Maximum 3.

    Fehlercodes: NOT_FOUND

  • document_listScope: letter:read

    Listet deine erzeugten Dokumente (Rechnung, Zahlungserinnerung, Mahnung, Gutschrift), neueste zuerst, gefiltert nach Art, Mandant, Empfänger oder Bezugsbeleg. Nächster Schritt: document_get liefert die vollständigen Belegdaten, document_create legt mit references einen Folgebeleg dazu an.

    FeldTyp
    documentTyperechnung | zahlungserinnerung | mahnung | gutschriftOptional
    mandantennummerstringOptional
    recipientQuerystringOptionalFreitext über Name, Firma oder Ort des Empfängers.
    referencesDocumentIdstring (uuid)OptionalNur Dokumente, die sich auf dieses FrankKi-Dokument beziehen (z. B. alle Mahnungen zu einer Rechnung).
    referencesNumberstringOptional
    sincestring (date-time)Optional
    limitintegerOptionalStandard 20, maximal 100.
    offsetintegerOptionalVersatz für die Seitennavigation. Standard 0.
  • document_getScope: letter:read

    Liefert ein Dokument mit allen Belegdaten (Positionen, Summen, USt-Sätze, Bezug) sowie letterId und orderId des Briefs, in dem es steckt. Das Feld referencePrefill enthält den fertigen references-Block für einen Folgebeleg: übernimm ihn unverändert als document.references in ein document_create für Mahnung, Zahlungserinnerung oder Gutschrift. Unter exports liefert FrankKi für versendete Rechnungen und Gutschriften signierte Download-Links: zugferdPdfUrl ist ein PDF/A-3 mit eingebetteter EN-16931-XML (ZUGFeRD), xrechnungXmlUrl die reine XRechnung-XML. Beide sind zum Herunterladen und Archivieren gedacht; die Übermittlung an ein Portal bleibt bei dir. Fehlt ein Export, nennt das Feld den Grund: DOCUMENT_EXPORT_NOT_READY heisst später erneut versuchen (Versand oder Freischaltung stehen noch aus), DOCUMENT_EXPORT_NOT_SUPPORTED heisst dauerhaft (der Export gilt für Rechnungen und Gutschriften; bei Mahnung und Zahlungserinnerung nutze die Rechnung, auf die sie sich beziehen). Nächster Schritt: order_status verfolgt den Versand, document_create legt mit references eine Mahnung oder Gutschrift dazu an.

    FeldTyp
    documentIdstring (uuid)Pflicht

Aktion

  • sender_profile_upsertScope: sender_profile:writekein dryRun

    Legt ein Absenderprofil an oder bearbeitet es: Rechtsform, Pflichtangaben, optional Bankverbindung, Haftungsausschluss und Standard-Briefpapier. Ein unvollstaendiges Profil wird gespeichert und meldet die fehlenden Felder zurueck, sodass du es schrittweise ergaenzen kannst. Versenden ist mit vollstaendigen Pflichtangaben moeglich.

    FeldTyp
    idstringOptionalID eines bestehenden Profils zum Bearbeiten. Weglassen legt ein neues an.
    rechtsformstringPflichtRechtsform des Absenders, zum Beispiel gmbh, ug, gbr, verein, freiberufler. Sie bestimmt die verlangten Pflichtangaben.
    pflichtangabenObjektPflichtPflichtangaben als Objekt, zum Beispiel firmenname, strasse, plz, ort, land, registergericht, ustIdNr. sender_profile_validate nennt die je Rechtsform verlangten Felder.
    bankverbindungObjektOptionalOptionale Bankverbindung, unabhaengig von der Vollstaendigkeit.
    disclaimerstringOptionalOptionaler Haftungsausschluss oder Fusszeilentext, unabhaengig von der Vollstaendigkeit.
    displayNamestringOptionalOptionaler Anzeigename in Listen.
    isDefaultbooleanOptionaltrue macht dieses Profil zum Standardabsender; jedes andere verliert die Markierung. Das erste angelegte Profil wird automatisch Standard.
    defaultDesignIdstringnullOptionalBriefpapier fuer Briefe, die selbst keines nennen. Weglassen behaelt den Wert, null loescht ihn.
  • address_upsertScope: address:writekein dryRun

    Legt eine Adresse im Partner-Adressbuch an oder aktualisiert sie. Validiert die Adresse anhand landesspezifischer Regeln.

    FeldTyp
    addressIdstring (uuid)Optional
    namestringPflicht
    companystringOptional
    streetstringPflicht
    houseNumberstringOptional
    poboxstringOptional
    zipstringOptional
    citystringPflicht
    countrystringOptionalISO-3166-alpha-2, default DE.
    mandantennummerstringOptional
    addressTyperecipient | sender | billingOptional
    isDefaultbooleanOptional

    Fehlercodes: ADDRESS_INVALID

  • letter_create_draftScope: order:sendkein dryRun

    Legt einen Briefentwurf an: erstellt eine Vorschau-PDF im hinterlegten Briefdesign (nur der Brieftext), speichert den Entwurf und liefert eine Seitenzahl, einen Vorschau-Link (24 Stunden gültig) und eine unverbindliche Kostenvorschau. Der Entwurf bleibt kostenfrei liegen, bis du ihn versendest. Der Brieftext ist entweder content (Fliesstext) ODER blocks (strukturiert: Tabellen, Ueberschriften, Summenzeilen), genau eines von beiden. Kompaktes blocks-Beispiel: {"blocks":[{"type":"heading","text":"Rechnung"},{"type":"table","columns":[{"key":"text","label":"Artikel","width":"grow"},{"key":"sum","label":"Summe","align":"right","format":"eur"}],"rows":[{"text":"Beratung","sum":32000}]},{"type":"totals","lines":[{"label":"Gesamt","amountCents":32000,"emphasis":true}]}]} Volle Referenz inkl. styleDefs und Limits: MCP-Ressource frankki://blocks-guide. Die ersten Seiten kommen als Bild zurück: sieh sie dir an, bevor du versendest, und prüfe Betreff, Anschrift im Adressfenster, Absender, Datum und Umbrüche. Die eingebettete Karte ist die Vorschau für den Menschen. Nach ihrer Anzeige reicht im Chat eine kurze Bestätigung; PDF-Link und Brieftext gehören in reine Textansichten. Gemeldete Auffälligkeiten stehen in warnings. Findest du einen Fehler, korrigiere ihn und lege den Entwurf neu an, solange er noch Entwurf ist: gedruckt geht der Brief endgültig raus. Nächster Schritt mit der zurückgegebenen letterId: letter_preview zeigt den Entwurf als Bild zum Nachbessern, order_send versendet ihn, letter_schedule versendet ihn zu einem späteren Zeitpunkt.

    FeldTyp
    subjectstring, max. 200 ZeichenPflicht
    contentstring, max. 30000 ZeichenOptionalBrieftext als Fliesstext. Entweder content ODER blocks, nie beides.
    blocksArray<unbekannt> (min 1, max 200)OptionalStrukturierter Briefinhalt als typisierte Bloecke (Alternative zu content, nie beides). Limits: 200 Bloecke, 100 Zeilen/Tabelle, 20 Spalten, 2000 Zeichen/Zelle, 10 Bilder, 262144 Bytes.
    styleDefsObjektOptionalBenannte Stile fuer das ganze Dokument (max. 24). Bloecke referenzieren sie ueber style.
    languagede | enOptionalStandard de.
    senderAddressIdstring (uuid)Optional
    senderProfileIdstring (uuid)OptionalAbsenderprofil, mit dem spaeter versendet wird. Fuer die Vorschau zaehlt daraus nur das Standard-Briefdesign.
    recipientAddressInlineObjektOptional
    presetNamestringOptional
    includeSignaturebooleanOptionalHinterlegte Unterschrift unter den Brieftext setzen. Standard aus, wie beim Versand.
    signatureIdstring (uuid)OptionalEine bestimmte gespeicherte Unterschrift verwenden statt der zuerst hinterlegten.
    clientLetterIdstringOptionalIdempotenzschluessel. Ein erneuter Aufruf mit demselben Wert UND derselben Nutzlast liefert denselben Entwurf, statt einen zweiten anzulegen. Fuer einen anderen Brief brauchst du einen neuen Schluessel: derselbe Schluessel mit anderem Inhalt wird mit IDEMPOTENCY_CONFLICT abgelehnt, damit du keinen Brief fuer angelegt haeltst, den es nicht gibt.
    designIdstring (uuid)OptionalEin gespeichertes Briefdesign fuer diesen Brief verwenden. Es wird bereits in der Vorschau-PDF gerendert und am Entwurf gespeichert, sodass ein spaeterer Versand ueber die letterId es uebernimmt (ausser der Versand nennt selbst ein Design). Ohne Angabe gilt das Standard-Design des Absenderprofils, in der Vorschau wie beim Versand.
    referenceObjektOptionalWerte fuer diesen Brief (Vorgangsnummer, Ihr Zeichen, Kundennummer, QR-Parameter ...). Sie fuellen den Infoblock und den Barcode.
  • attachment_upload_pdfScope: order:sendkein dryRun

    Lädt ein PDF als Anhang zu einem Partner-Brief hoch. Prüft vor dem Speichern die Dateigröße (max. 50 MB) und die zusammengeführte Seitenzahl (max. 30 Seiten inkl. Brief und übriger Anhänge).

    FeldTyp
    letterIdstring (uuid)Pflicht
    pdfUrlstringOptionalÖffentliche URL des PDF (Alternative zu pdfBase64).
    pdfBase64stringOptionalPDF als Base64 (Alternative zu pdfUrl).
    titlestringOptional
    positionintegerOptional
  • attachment_upload_imageScope: order:sendkein dryRun

    Lädt ein Bild (PNG/JPEG) als Anhang zu einem Partner-Brief hoch. Das Bild wird serverseitig auf eine A4-PDF-Seite skaliert (optional gedreht) und wie ein PDF gespeichert. Prüft vor dem Speichern die zusammengeführte Seitenzahl (max. 30 Seiten). Die EXIF-Orientierung wird automatisch in die Pixel eingerechnet, ein Handyfoto steht also von selbst aufrecht. rotation wirkt zusätzlich dazu: lass es auf 0, außer du willst das Bild bewusst weiterdrehen.

    FeldTyp
    letterIdstring (uuid)Pflicht
    imageUrlstringOptionalÖffentliche URL des Bildes (Alternative zu imageBase64).
    imageBase64stringOptionalBild als Base64 (Alternative zu imageUrl).
    rotation0 | 90 | 180 | 270OptionalZusätzliche Drehung in Grad, im Uhrzeigersinn. Die EXIF-Orientierung des Bildes wird bereits automatisch in die Pixel eingerechnet, das Bild steht also von sich aus richtig. Dieser Wert dreht es danach ein zweites Mal. Für ein Handyfoto ist deshalb 0 richtig.
    titlestringOptional
    positionintegerOptional
  • order_sendScope: order:senddryRun verfügbar

    Versendet einen Brief physisch per Post: prüft die Pflichtangaben des Absenders, die Empfängeradresse, den AVV und die Limits, erstellt die finale PDF und berechnet den Preis. Sieh dir den Brief vorher als Bild an: letter_create_draft und letter_preview liefern die gerenderten Seiten, und Satzprobleme wie ein zu langer Betreff zeigen sich erst dort. Ein Brief kommt entweder ueber letterId (ein bereits erstellter Entwurf) oder inline: dann ist der Text entweder content (Fliesstext) ODER blocks (strukturiert: Tabellen, Ueberschriften, Summenzeilen), genau eines von beiden. Kompaktes blocks-Beispiel: {"blocks":[{"type":"heading","text":"Rechnung"},{"type":"table","columns":[{"key":"text","label":"Artikel","width":"grow"},{"key":"sum","label":"Summe","align":"right","format":"eur"}],"rows":[{"text":"Beratung","sum":32000}]},{"type":"totals","lines":[{"label":"Gesamt","amountCents":32000,"emphasis":true}]}]} Volle Referenz inkl. styleDefs und Limits: MCP-Ressource frankki://blocks-guide. Eine echte OAuth-Verbindung landet immer in der Freigabewarteschlange. Die eingebettete Karte ist Vorschau und Freigabe. Nach ihrer Anzeige reicht im Chat eine kurze Bestätigung; PDF-Link und Brieftext gehören in reine Textansichten. Eine OAuth-Verbindung mit der ausdrücklich erteilten Berechtigung approval:self_approve darf über die Karte entscheiden. Danach fragst du den Fortschritt mit order_status ab. order_cancel storniert einen Brief vor dem Druck. order_fix_resubmit korrigiert einen vom Dienstleister abgelehnten Brief; auch dafür ist die ausdrückliche Selbstfreigabe nötig. Mit dryRun wird der Versand nur geprobt: kostenfrei, und der Brief bleibt liegen. dryRun ist die vollständige Probe genau dieses Briefes durch alle sechs Gates und liefert damit den genauesten Preis. Ein dryRun bleibt eine reine Probe: die zurückgegebene letterId ist eine Probe-Kennung und liefert in letter_get oder letter_preview NOT_FOUND. Für einen echten Entwurf nutze letter_create_draft. shipping_quote beantwortet dagegen die Frage, was ein Brief kosten würde, solange der Inhalt erst geplant ist; letter_preview zeigt einen blocks-Entwurf vorab als Bild, bevor er hier versendet wird.

    FeldTyp
    letterIdstring (uuid)OptionalBestehender Entwurf. Alternativ den Brief inline angeben.
    subjectstring, max. 200 ZeichenOptional
    contentstring, max. 30000 ZeichenOptionalBrieftext als Fliesstext. Entweder content ODER blocks, nie beides.
    blocksArray<unbekannt> (min 1, max 200)OptionalStrukturierter Briefinhalt als typisierte Bloecke (Alternative zu content, nie beides). Limits: 200 Bloecke, 100 Zeilen/Tabelle, 20 Spalten, 2000 Zeichen/Zelle, 10 Bilder, 262144 Bytes.
    styleDefsObjektOptionalBenannte Stile fuer das ganze Dokument (max. 24). Bloecke referenzieren sie ueber style.
    recipientNamestringOptional
    recipientCompanystringOptional
    recipientStreetstringOptional
    recipientHouseNumberstringOptional
    recipientZipstringOptional
    recipientCitystringOptional
    recipientCountrystringOptionalISO-3166-alpha-2, Standard DE.
    priceVersionstringOptionalOptional: die priceVersion aus einem vorherigen shipping_quote. Weicht der Preis beim Versand davon ab, wird mit PRICE_CHANGED abgebrochen, bevor etwas berechnet wird.
    quotedUnitPriceCentsintegerOptionalOptional: der Stueckpreis in Cent aus einem vorherigen shipping_quote (unitPriceCents). Ist er gesetzt, entscheidet er den PRICE_CHANGED-Abgleich und liefert den alten Preis im Fehler mit.
    deliveryTypestandard | einschreiben_einwurf | einschreiben_uebergabe | ch_b_post | ch_a_post | ch_einschreiben | at_eco | at_prio | intl_standard | intl_priority | intl_express | intl_tracked | intl_registeredOptionalStandard standard.
    expressbooleanOptional
    colorbooleanOptionalOhne Angabe wird die Farbe automatisch erkannt.
    includeSignaturebooleanOptional
    signatureIdstring (uuid)Optional
    letterheadIdstring (uuid)OptionalBestimmter Briefkopf fuer diesen Versand. Ohne Angabe wird der Standard-Briefkopf verwendet.
    letterheadEnabledbooleanOptionalAuf false setzen, um den Briefkopf fuer diesen einen Versand zu unterdruecken.
    senderAddressIdstring (uuid)Optional
    senderProfileIdstring (uuid)Optional
    mandantennummerstringOptional
    clientOrderIdstring, max. 200 ZeichenOptionalIdempotenzschluessel: eine beliebige Zeichenkette (1-200 Zeichen, z. B. 'mahnung-kunde42-2026-07-20'; kein UUID-Format noetig). Ein erneuter Aufruf mit demselben Wert liefert dieselbe Bestellung, statt ein zweites Mal zu versenden. Der Namensraum 'approval:' ist reserviert.
    scheduledAtstring (date-time)Optional
    approvalModeauto | draft | reviewOptionalWie der Versand freigegeben wird. 'draft' und 'review' stellen ihn in die Freigabe-Warteschlange, statt sofort zu versenden. Wichtig: auch diese beiden reservieren den Betrag beim Einreichen im Wallet, damit ein freigegebener Brief spaeter nicht am Guthaben scheitert. Ohne Deckung kommt INSUFFICIENT_FUNDS zurueck und es wird nichts angelegt. Willst du nur einen Entwurf ohne Wallet-Deckung, nutze letter_create_draft.
    maxCostEurosnumberOptionalMaximalbetrag in Euro. Liegt der Preis darueber, wird abgebrochen.
    presetNamestringOptional
    auditTagstringOptional
    templateIdstring (uuid)Optional
    templateVersionIdstring (uuid)OptionalExakte freigegebene Vorlagenversion. Nur gemeinsam mit templateId; der Server rendert sie mit templateMergeValues neu und ignoriert mitgesendeten Betreff/Inhalt.
    templateMergeValuesObjektOptionalMerge-Werte fuer die exakte Vorlagenversion.
    coverTemplateIdstring (uuid)OptionalAnschreiben für eine eigenständige Formularvorlage.
    coverTemplateVersionIdstring (uuid)OptionalExakte freigegebene Version des Anschreibens.
    designIdstring (uuid)OptionalEin gespeichertes Briefdesign fuer diesen Versand verwenden. Ohne Angabe gilt in dieser Reihenfolge: das am Entwurf gespeicherte Design (beim Versand ueber letterId), sonst das Standard-Design des Absenderprofils, sonst keins.
    designObjektOptionalExakter Briefdesign-Snapshot aus template_apply_with_merge_fields.composition.design. Hat Vorrang vor designId und verhindert, dass eine spaetere Designaenderung die freigegebene Vorlagenkomposition veraendert.
    referenceObjektOptionalWerte fuer diesen Brief (Vorgangsnummer, Ihr Zeichen, Kundennummer, QR-Parameter ...). Sie fuellen den Infoblock und den Barcode.
    dryRunbooleanOptional

    Idempotenzschlüssel: clientOrderId (siehe Konventionen).

    Fehlercodes: SENDER_PFLICHTANGABEN_INCOMPLETE, ADDRESS_INVALID, AVV_REQUIRED, DAILY_CAP_EXCEEDED, MANDANT_CAP_EXCEEDED, COST_OVER_LIMIT, CONTENT_REJECTED, COUNTRY_NOT_SUPPORTED, LEGAL_PROOF_UNAVAILABLE_FOR_COUNTRY, PRICE_UNAVAILABLE, PDF_LETTER_UNSUPPORTED, SANDBOX_DISABLED, IDEMPOTENCY_CONFLICT, DESIGN_NOT_FOUND, DESIGN_RENDER_FAILED, DESIGN_ZONE_VIOLATION

  • approval_submitScope: order:senddryRun verfügbar

    Reicht einen Brief zur menschlichen Freigabe ein: prüft Pflichtangaben, Empfänger, AVV und Limits, erstellt die finale PDF, berechnet den Preis, reserviert die Kosten und legt eine Freigabe in der Warteschlange an. Die eingebettete Karte ist Vorschau und Freigabe. Nach ihrer Anzeige reicht im Chat eine kurze Bestätigung; PDF-Link und Brieftext gehören in reine Textansichten. Mit approval:self_approve zeigt die Karte Freigeben und Ablehnen. In allen anderen Fällen führt sie ins angemeldete Portal. Mit dryRun bleiben Guthaben und Warteschlange unberührt.

    FeldTyp
    letterIdstring (uuid)OptionalBestehender Entwurf. Alternativ den Brief inline angeben.
    subjectstring, max. 200 ZeichenOptional
    contentstring, max. 30000 ZeichenOptional
    recipientNamestringOptional
    recipientCompanystringOptional
    recipientStreetstringOptional
    recipientHouseNumberstringOptional
    recipientZipstringOptional
    recipientCitystringOptional
    recipientCountrystringOptionalISO-3166-alpha-2, Standard DE.
    deliveryTypestandard | einschreiben_einwurf | einschreiben_uebergabe | ch_b_post | ch_a_post | ch_einschreiben | at_eco | at_prio | intl_standard | intl_priority | intl_express | intl_tracked | intl_registeredOptionalStandard standard.
    expressbooleanOptional
    colorbooleanOptionalOhne Angabe wird die Farbe automatisch erkannt.
    includeSignaturebooleanOptional
    signatureIdstring (uuid)Optional
    senderAddressIdstring (uuid)Optional
    senderProfileIdstring (uuid)Optional
    mandantennummerstringOptional
    clientOrderIdstringOptionalIdempotenzschluessel. Ein erneuter Aufruf mit demselben Wert liefert dieselbe Freigabe, statt ein zweites Mal einzureichen. Der Praefix 'approval:' ist reserviert.
    scheduledAtstring (date-time)Optional
    approvalModeauto | draft | reviewOptional
    maxCostEurosnumberOptionalMaximalbetrag in Euro. Liegt der Preis darueber, wird abgebrochen.
    presetNamestringOptional
    auditTagstringOptional
    templateIdstring (uuid)Optional
    reasonstring, max. 500 ZeichenOptionalKurzer Grund fuer die Freigabe, den die pruefende Person auf der Karte liest.
    requesterContextstring, max. 500 ZeichenOptionalZusatzkontext zur einreichenden Person oder zum Anlass.
    dryRunbooleanOptional

    Idempotenzschlüssel: clientOrderId (siehe Konventionen).

    Fehlercodes: SENDER_PFLICHTANGABEN_INCOMPLETE, ADDRESS_INVALID, AVV_REQUIRED, DAILY_CAP_EXCEEDED, MANDANT_CAP_EXCEEDED, COST_OVER_LIMIT, CONTENT_REJECTED, IDEMPOTENCY_CONFLICT

  • approval_decideScope: approval:decidekein dryRun

    Gibt eine wartende Freigabe frei oder lehnt sie ab. 'approve' ist nur erlaubt, wenn dieser OAuth-Verbindung die zusätzliche Berechtigung approval:self_approve ausdrücklich erteilt wurde. Fehlt diese Berechtigung, öffnet der Mensch den zurückgegebenen approvalUrl und entscheidet im angemeldeten Portal. approval:decide bleibt ebenfalls erforderlich. Bei Freigabe durch den Agenten geht der Brief nach 10 Minuten raus und kann bis dahin mit order_cancel gestoppt werden.

    FeldTyp
    approvalIdstring (uuid)Pflicht
    decisionapprove | rejectPflicht
    commentstring, max. 1000 ZeichenOptional
    clientOrderIdstringOptional

    Idempotenzschlüssel: clientOrderId (siehe Konventionen).

    Fehlercodes: APPROVAL_ALREADY_DECIDED, NOT_FOUND

  • order_cancelScope: order:sendkein dryRun

    Storniert einen Brief und schreibt den Betrag deinem Wallet gut (geschlossener Kreislauf, Gutschrift ins Wallet statt auf die Karte). Mit orderId wird eine bereits erstellte Bestellung im Stornofenster storniert; ist der Brief bereits im Druck, wird sauber abgelehnt. Mit approvalId wird eine per Chat freigegebene Sendung im 10-Minuten-Stornofenster gestoppt, bevor sie ueberhaupt versendet wird (der Mensch sagt 'stopp').

    FeldTyp
    orderIdstring (uuid)OptionalDie zu stornierende Bestellung.
    approvalIdstring (uuid)OptionalStatt orderId: eine per Chat freigegebene Sendung im 10-Minuten-Stornofenster stoppen, bevor sie versendet wird (der Mensch sagt 'stopp').
    reasonstring, max. 500 ZeichenOptionalOptionaler Stornogrund.

    Fehlercodes: NOT_FOUND

  • template_saveScope: template:writekein dryRun

    Vorlage speichern, Vorlagenversion speichern, Vorlagenentwurf anlegen, Template sichern: Verfasst eine Vorlage als ENTWURF. Setze documentKind auf letter oder form. Briefkopf und Marke bleiben eine externe Schicht und werden erst bei Vorschau oder Versand aufgeloest und bleiben ausserhalb der Vorlage. designId bleibt nur als veralteter Hinweis zur Ableitung der Dokumentart kompatibel; explizites documentKind gewinnt. Ein Formular darf eigenstaendig gespeichert werden. coverTemplateId kann eine Anschreibenversion fuer ein Paket pinnen. Laesst du templateId weg, entsteht eine neue Vorlage; mit templateId eine neue Entwurfsversion. Der Entwurf ist erst nach der Freigabe nutzbar; die Antwort enthaelt den Prueflink. Falls das Tool fehlt, suche exakt nach dem technischen Namen template_save. Der Vorlageninhalt ist entweder contentTemplate (Fliesstext) ODER blocksTemplate (strukturiert: Tabellen, Ueberschriften, Summenzeilen), genau eines von beiden. Merge-Felder sind typisiert (text, date, number, currency, rows); ein Tabellenblock bindet eine rows-Liste ueber rowsFrom. Kopiere am schnellsten eine Standardvorlage mit template_get und passe sie an. Vor dem Speichern: mit letter_preview rendern und Seite fuer Seite vergleichen. Speichere erst, wenn Seitenzahl und wesentliche Geometrie beim Nachbau zum Original passen. Eigenstaendige Formulare zuerst mit einem design im documentMode "form" pruefen.

    FeldTyp
    templateIdstring (uuid)OptionalBestehende Vorlage: es entsteht eine NEUE Entwurfsversion. Ohne Angabe wird eine neue Vorlage angelegt.
    namestringPflichtName der Vorlage.
    kategoriestringnullOptionalFachliche Kategorie, z.B. kuendigung.
    subjectTemplatestringPflichtBetreffvorlage, darf {{platzhalter}} enthalten.
    contentTemplatestringOptionalInhaltsvorlage als Fliesstext, darf {{platzhalter}} enthalten. Entweder contentTemplate ODER blocksTemplate.
    blocksTemplateArray<unbekannt> (min 1, max 200)OptionalStrukturierte Inhaltsvorlage (Tabellen, Ueberschriften, Summenzeilen). Textfelder duerfen {{platzhalter}} enthalten; ein Tabellenblock kann mit rowsFrom: "<schluessel>" ein Merge-Feld vom Typ rows binden und bekommt dessen Zeilen beim Anwenden. Entweder contentTemplate ODER blocksTemplate. Volle Referenz: MCP-Ressource frankki://blocks-guide.
    styleDefsObjektOptionalBenannte Stile der Blockvorlage. Nur zusammen mit blocksTemplate.
    mergeFieldsArray<Objekt> (max 100)OptionalDie Platzhalter der Vorlage.
    approvalModeRecommendedauto | review | draft | OptionalEmpfohlener Freigabemodus fuer Briefe aus dieser Vorlage.
    documentKindletter | formOptionalUnveränderliche Dokumentart der Vorlagenversion. letter ist direkt adressierbar, form benötigt ein Anschreiben.
    designIdstring (uuid)OptionalVeralteter Autor-Hinweis zur Ableitung von documentKind. Das Design wird nicht in der Vorlage gespeichert. Explizites documentKind gewinnt.
    clearDesignbooleanOptionalVeralteter kompatibler Autor-Hinweis. Es gibt keine Design-Bindung an neuen Vorlagenversionen.
    coverTemplateIdstring (uuid)OptionalDeckvorlage fuer ein Formular ohne Empfaengerblock. Beim Speichern wird exakt ihre aktuelle freigegebene Version gepinnt.
    clearCoverTemplatebooleanOptionalEntfernt die geerbte Deckvorlagen-Bindung. Ohne coverTemplateId und ohne clearCoverTemplate erbt eine neue Version die bisherige Bindung.

    Fehlercodes: NOT_FOUND, TEMPLATE_SLUG_CONFLICT

  • template_releaseScope: template:writekein dryRun

    Gibt eine Entwurfsversion frei, sodass sie versendet werden kann. Das ist der letzte Schritt der Gestaltungskette (template_get, anpassen, letter_preview, template_save, template_preview, template_release). WICHTIG: template_preview zeigt dem Menschen eine Freigabekarte mit einem Freigeben-Knopf. Ist diese Karte offen, gehoert die Freigabe dem Menschen. Rufe template_release dann nur auf, wenn die Person dich ausdruecklich darum bittet, und sage in jedem Fall klar dazu, dass du selbst freigegeben hast. Das geht ueber MCP NUR, wenn dein Konto genau einen aktiven Nutzer hat. Bei mehreren Nutzern gibt ein Mensch im Dashboard frei (Vier-Augen-Prinzip) und die Antwort enthaelt den Link dorthin. Danach: template_apply_with_merge_fields fuellt die Vorlage mit Werten, letter_create_draft oder order_send verschickt das Ergebnis.

    FeldTyp
    templateIdstring (uuid)Pflicht
    versionIdstring (uuid)PflichtDie freizugebende Entwurfsversion.

    Fehlercodes: NOT_FOUND, TEMPLATE_VERSION_NOT_DRAFT, TEMPLATE_FOUR_EYES_REQUIRED

  • template_archiveScope: template:writekein dryRun

    Archiviert eine Vorlage. Sie verschwindet aus den Listen und aus dem Versand, bleibt aber erhalten. Der Inhalt bleibt vollstaendig erhalten, und ein erneuter Aufruf ist unschaedlich.

    FeldTyp
    templateIdstring (uuid)Pflicht

    Fehlercodes: NOT_FOUND

  • template_draft_discardScope: template:writekein dryRun

    Verwirft eine Entwurfsversion, solange sie noch auf ihre Freigabe wartet. Freigegebene und ersetzte Versionen bleiben unantastbar und vollstaendig erhalten. Ein erneuter Aufruf ist unschaedlich.

    FeldTyp
    templateIdstring (uuid)OptionalOptional. Bindet die Version zusaetzlich an diese Vorlage.
    versionIdstring (uuid)PflichtDie zu verwerfende Entwurfsversion.

    Fehlercodes: NOT_FOUND, TEMPLATE_VERSION_IMMUTABLE

  • preset_saveScope: preset:writekein dryRun

    Speichert eine benannte Voreinstellung (Konfigurations-Bundle) im Partnerprofil. Der Name ist pro Partner eindeutig. Limits in der Voreinstellung werden unverändert gespeichert und dienen als Notiz. Durchgesetzt werden ausschließlich die im Web gesetzten Konto- und Sub-Wallet-Limits.

    FeldTyp
    namestringPflichtEindeutiger Name der Voreinstellung (pro Partner).
    presetObjektPflichtDas Konfigurations-Bundle (Absender/Unterschrift/Briefkopf, Versand, Kennzeichnung, Freigabe, Planung, Limits, auditTagPrefix).
  • signature_uploadScope: signature:writekein dryRun

    Lädt eine Unterschrift als PNG hoch und speichert sie im Partnerprofil. Die Unterschrift wird beim Versand unterhalb deines Brieftexts eingefügt. Nur PNG wird unterstützt.

    FeldTyp
    pngBase64stringPflichtDie Unterschrift als PNG (Base64).
    widthMmnumberOptionalGewünschte Breite in mm (optional).
    displayNamestringOptionalAnzeigename der Unterschrift (optional).
  • letterhead_uploadScope: letterhead:writekein dryRun

    Lädt einen Briefkopf als PNG oder PDF hoch und speichert ihn im Partnerprofil. Quelle ist entweder fileUrl (bevorzugt) oder fileBase64, genau eine von beiden. PNG wird auf die Seite gedruckt; ein PDF-Briefkopf wird vorerst nur abgelegt, gedruckt wird bisher nur PNG (rendered=false). Beim Nachbau eines vorhandenen Briefs: Logo und Titelblock aus dem Kopf der Seite gehören hierher (dann letter_design_save); der Brieftext bleibt den blocks vorbehalten.

    FeldTyp
    fileBase64stringOptionalDer Briefkopf als PNG oder PDF (Base64), Alternative zu fileUrl.
    fileUrlstringOptionalÖffentliche http(s)-URL des Briefkopfs (PNG oder PDF), Alternative zu fileBase64. Bevorzuge diese Variante: Base64 kostet unnötig Kontext und verleitet zu starker Farbreduktion, die den gedruckten Briefkopf verschlechtert. Maximal 20 MB.
    widthMmnumberOptionalBreite in mm (optional).
    heightMmnumberOptionalHöhe in mm (optional).
    placementheader | footer | fullOptionalPlatzierung auf der Seite.
    displayNamestringOptionalAnzeigename des Briefkopfs (optional).
  • letter_design_saveScope: letter_design:writekein dryRun

    Speichert ein wiederverwendbares Briefpapier (Briefdesign) mit schemaVersion 1 oder 2 im Partnerprofil und gibt designId sowie den Hash der gespeicherten Quelldaten zurueck. Dasselbe Briefpapier traegt danach jede Post: Kuendigung, Rechnung, Mahnung, Angebot, Vertrag und Behoerdenpost. Falls das Tool clientseitig entfernt wurde, suche exakt nach letter_design_save. Das Design wird vor dem Speichern vollstaendig validiert und gegen die Zustellzonen geprueft.

    FeldTyp
    namestring, max. 120 ZeichenPflichtEindeutiger Name des Briefdesigns.
    designunbekanntPflicht
    designIdstring (uuid)Optional
    brandingOwnershipConfirmedbooleanOptionalBei einer Neuanlage oder geaenderten Branding-Asset-Referenz zwingend true. Unveraenderte Folgespeicherungen brauchen keine erneute Bestaetigung.

    Fehlercodes: DESIGN_ZONE_VIOLATION

  • letter_design_deleteScope: letter_design:writekein dryRun

    Archiviert (loescht) ein gespeichertes Briefpapier (Briefdesign). Neue Sendungen laufen danach ueber die verbleibenden Briefpapiere, egal ob Kuendigung, Rechnung, Mahnung, Angebot, Vertrag oder Behoerdenpost; bereits versendete Briefe behalten ihr Original zur Nachvollziehbarkeit.

    FeldTyp
    designIdstring (uuid)PflichtDas zu loeschende Briefdesign.

    Fehlercodes: NOT_FOUND

  • brand_kit_saveScope: letter_design:writekein dryRun

    Speichert Logo-Referenzen, Farben und Schrift fuer das nutzerseitige Ergebnis Briefkopf & Marke. brandingOwnershipConfirmed muss true sein und bestaetigt die Nutzungsrechte an den angegebenen Marken-Assets. Die Antwort enthaelt den gespeicherten Stand und den Prueflink. Suche technisch nach brand_kit_save.

    FeldTyp
    brandKitObjektPflicht
    brandingOwnershipConfirmedbooleanPflichtBestaetigt die Nutzungsrechte an Logo und eigener Schrift. Muss true sein.
  • brand_import_from_websiteScope: letter_design:writekein dryRun

    Liest eine oeffentliche Firmenwebsite aus und schlaegt daraus ein Briefkopf-Design vor: Markenfarben, Hausschriftzuordnung, Logo-Kandidaten und Firmendaten aus dem Impressum. Die gefundenen Logos werden als Design-Assets im Konto gespeichert, damit du sie sofort verwenden kannst. Das Ergebnis ist ein Vorschlag zur Abstimmung mit der Kundin oder dem Kunden; uebernommen wird die Marke erst durch einen anschliessenden Aufruf von brand_kit_save mit brandingOwnershipConfirmed. Suche technisch nach brand_import_from_website.

    FeldTyp
    websiteUrlstring, max. 2048 ZeichenPflichtOeffentliche Adresse der Firmenwebsite, zum Beispiel https://beispiel.de.
    maxLogoCandidatesintegerOptionalWie viele Logo-Kandidaten heruntergeladen und gespeichert werden. Standard 3.
  • letter_scheduleScope: letter:scheduledryRun verfügbar

    Plant den Versand eines bestehenden Entwurfs für einen späteren Zeitpunkt (fester Termin, relative Verzögerung oder wiederkehrend per cron). Alle Prüfungen und der Preis werden sofort ermittelt und die Kosten reserviert. Eine echte OAuth-Verbindung legt zuerst eine Freigabe an. Die eingebettete Karte ist Vorschau und Freigabe. Nach ihrer Anzeige reicht im Chat eine kurze Bestätigung; PDF-Link und Brieftext gehören in reine Textansichten. Eine OAuth-Verbindung mit approval:self_approve darf über die Karte entscheiden. Nach der Freigabe entsteht die Planung, der eigentliche Versand läuft zum geplanten Zeitpunkt durch dieselbe Versandpipeline.

    FeldTyp
    letterIdstring (uuid)PflichtBestehender Entwurf, der geplant versendet wird.
    modeat | in | cronPflichtat = fester Zeitpunkt, in = relative Verzögerung, cron = wiederkehrend.
    sendAtstring (date-time)OptionalZeitpunkt bei mode='at' (ISO 8601, Berlin-Zeit wenn ohne Offset).
    delaystringOptionalVerzögerung bei mode='in': '2d', '1w', '3h', 'next-business-day', 'next-monday', 'end-of-month'.
    cronExpressionstringOptional5-Felder cron bei mode='cron': 'min std tag monat wochentag'.
    endDatestring (date-time)OptionalEnddatum für eine cron-Serie.
    businessDaysOnlybooleanOptionalNur an Werktagen versenden, sonst auf den nächsten Werktag verschieben. Standard true.
    sendBeforeHournumberOptionalVersand-Cutoff in Berliner Ortszeit. Nach dieser Stunde wird auf den nächsten Werktag verschoben.
    deliveryTypestandard | einschreiben_einwurf | einschreiben_uebergabe | ch_b_post | ch_a_post | ch_einschreiben | at_eco | at_prio | intl_standard | intl_priority | intl_express | intl_tracked | intl_registeredOptional
    expressbooleanOptional
    colorbooleanOptional
    includeSignaturebooleanOptional
    signatureIdstring (uuid)Optional
    senderAddressIdstring (uuid)Optional
    senderProfileIdstring (uuid)Optional
    mandantennummerstringOptional
    presetNamestringOptional
    auditTagstringOptional
    templateIdstring (uuid)Optional
    maxCostEurosnumberOptionalMaximalbetrag in Euro. Liegt der Preis darüber, wird abgebrochen.
    dryRunbooleanOptionalPrüft und bepreist die Planung, legt aber nichts an und reserviert nichts. Liefert dryRunWouldHaveCost.

    Fehlercodes: SENDER_PFLICHTANGABEN_INCOMPLETE, ADDRESS_INVALID, AVV_REQUIRED, COST_OVER_LIMIT

  • schedule_list_or_cancelScope: letter:scheduledryRun verfügbar

    Listet die geplanten Sendungen des Partners auf oder bricht eine geplante Sendung ab. Beim Abbrechen wird die reservierte Summe wieder freigegeben.

    FeldTyp
    actionlist | cancelOptionallist = Planungen auflisten, cancel = eine Planung abbrechen.
    scheduleIdstring (uuid)OptionalErforderlich bei action='cancel'.
    statusFilterscheduled | sent | cancelled | failedOptionalOptionaler Statusfilter für action='list'.
    dryRunbooleanOptionalBei action='cancel' nur eine Vorschau: zeigt die freizugebende Summe, ohne die Planung abzubrechen.

    Fehlercodes: NOT_FOUND

  • order_send_batchScope: order:senddryRun verfügbar

    Reicht mehrere Briefe als einen Stapel ein. Jeder Eintrag wird einzeln geprüft und bepreist. Der Stapel landet als eine Freigabe für alle Empfänger in der Warteschlange. Gib dem Menschen immer den zurückgegebenen approvalUrl, damit er Empfängerliste, Anzahl und Gesamtkosten im angemeldeten Portal prüfen und dort entscheiden kann. Nur eine OAuth-Verbindung mit der ausdrücklich erteilten Berechtigung approval:self_approve darf selbst freigeben. Bei Ablehnung wird die gesamte Reservierung zurückgebucht. Mit dryRun bleibt es bei einer kostenfreien Probe.

    FeldTyp
    itemsArray<Objekt> (min 1, max 100)PflichtListe der Briefe im Stapel. Jeder Eintrag traegt seinen eigenen clientOrderId und genau eine Quelle: eine letterId ODER einen inline Brief.
    presetNamestringOptionalOptionales Preset fuer den ganzen Stapel; pro Eintrag ueberschreibbar ist nicht vorgesehen.
    stopOnErrorbooleanOptionalBricht den Stapel beim ersten Fehler ab. Standard false.
    dryRunbooleanOptionalSimuliert den ganzen Stapel: prueft jeden Eintrag, berechnet aber nichts und versendet nichts.

    Fehlercodes: SENDER_PFLICHTANGABEN_INCOMPLETE, ADDRESS_INVALID, AVV_REQUIRED, DAILY_CAP_EXCEEDED, MANDANT_CAP_EXCEEDED, COST_OVER_LIMIT, CONTENT_REJECTED, COUNTRY_NOT_SUPPORTED, LEGAL_PROOF_UNAVAILABLE_FOR_COUNTRY, PRICE_UNAVAILABLE, SANDBOX_DISABLED, IDEMPOTENCY_CONFLICT, DESIGN_NOT_FOUND, DESIGN_RENDER_FAILED, DESIGN_ZONE_VIOLATION

  • order_fix_resubmitScope: order:sendkein dryRun

    Korrigiert die Empfängeradresse eines Briefs im Status awaiting_partner_fix und reicht ihn erneut ein. Das ist nur erlaubt, wenn die OAuth-Verbindung approval:self_approve ausdrücklich trägt. Andernfalls muss der Mensch den zurückgegebenen Link öffnen und im angemeldeten Portal entscheiden. Der Preis bleibt unverändert.

    FeldTyp
    orderIdstring (uuid)Pflicht
    recipientunbekanntPflichtDie korrigierte Empfaengeradresse als Einzelfelder oder als { addressId } aus dem Partner-Adressbuch.
    clientOrderIdstringOptional

    Idempotenzschlüssel: clientOrderId (siehe Konventionen).

  • document_createScope: order:sendkein dryRun

    Erzeugt aus strukturierten Belegdaten ein fertiges Dokument und legt es als Briefentwurf an: FrankKi rechnet Positionen, Netto, USt-Sätze und Brutto nach, prüft die Pflichtangaben nach § 14 UStG, vergibt auf Wunsch die Belegnummer aus deinem Nummernkreis und setzt alles im DIN-5008-Layout mit deinem Briefdesign. Der Entwurf bleibt kostenfrei liegen, bis du ihn versendest. Alle Beträge in ganzen Cent. Kompaktes Beispiel: {"document":{"documentType":"rechnung","documentNumber":"RE-2026-014","documentDate":"2026-07-30","leistungszeitraum":{"von":"2026-06-01","bis":"2026-06-30"},"zahlungszielTage":14,"lineItems":[{"description":"Beratung Juni","quantity":4,"unit":"Std","unitPriceCents":12000,"ustRate":19,"lineNetCents":48000}],"totals":{"nettoCents":48000,"ustLines":[{"rate":19,"netCents":48000,"ustCents":9120}],"bruttoCents":57120}},"recipientAddressId":"…"} Nächster Schritt mit der zurückgegebenen letterId: order_send versendet den Brief, approval_submit legt ihn stattdessen einem Menschen zur Freigabe vor, letter_schedule versendet ihn später.

    FeldTyp
    documentObjektPflichtDie Belegdaten. Alle Betraege in ganzen Cent. Du lieferst die Summen, FrankKi rechnet sie nach und lehnt Abweichungen ab.
    sequenceScopeObjektOptional
    subjectstring, max. 200 ZeichenOptionalBetreff des Briefs. Ohne Angabe setzt FrankKi ihn aus Dokumentart und Belegnummer, z. B. 'Rechnung RE-2026-014'.
    languagede | enOptionalStandard de.
    recipientAddressIdstring (uuid)OptionalEmpfaenger aus deinem Adressbuch (address_list / mandant_search liefern die id). Entweder das oder recipientAddressInline.
    recipientAddressInlineObjektOptional
    mandantennummerstringOptionalMandant, dem das Dokument zugeordnet wird. Nur Zuordnung fuer Liste und Auswertung.
    senderAddressIdstring (uuid)Optional
    senderProfileIdstring (uuid)OptionalAbsenderprofil, aus dem die Pflichtangaben (USt-IdNr oder Steuernummer) gelesen werden. Ohne Angabe gilt dein Standardprofil.
    designIdstring (uuid)Optional
    referenceObjektOptional
    includeSignaturebooleanOptional
    signatureIdstring (uuid)Optional
    clientLetterIdstringOptionalIdempotenzschluessel fuer den Briefentwurf.

Vertrauen und Live-Status

Maschinenlesbare Servicefakten und der aktuelle Betriebsstatus der Partner-Schnittstelle stehen jederzeit offen zur Verfügung, ohne Login.