Skip to content
FrankKi
Sign inStart freeiOS Download
Menu

Dedicated tool guide

approval_submit and approval_decide

Submit an exact letter for review, then record an authorized human approve or reject decision.

Generated contract: apiVersion v1, schemaRevision 2. Examples use placeholders and do not call production.

approval_submit

actionscope: order:send

Submits a letter for human approval: checks mandatory details, recipient, data processing agreement and limits, creates the final PDF, calculates the price, reserves the cost and adds an approval to the queue. It waits for a person's decision, also with autopilot. The embedded card is the preview and approval. The PDF link and letter text are also in the result, for text-only views. With approval:self_approve, the card shows Approve and Reject. In every other case it opens the signed-in portal. With dryRun, the balance and queue remain untouched, and the answer contains the checks list (each gate with passed, failed or skipped).

Input contract

FieldTypeRequirementMeaning
letterIdstringoptionalExisting draft. The letter can come inline instead.
subjectstringoptional
contentstringoptional
recipientAddressIdstringoptionalA saved address from the address book (address_list) as the recipient, in place of the fields recipientName to recipientCountry.
recipientNamestringoptional
recipientCompanystringoptional
recipientStreetstringoptional
recipientHouseNumberstringoptional
recipientZipstringoptional
recipientCitystringoptional
recipientCountrystringoptionalISO 3166-1 alpha-2, defaults to 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_registeredoptionalDefaults to standard.
expressbooleanoptional
colorbooleanoptionalIf omitted, colour is detected automatically.
includeSignaturebooleanoptional
signatureIdstringoptional
senderAddressIdstringoptional
senderProfileIdstringoptional
mandantennummerstringoptional
clientOrderIdstringoptionalIdempotency key. A repeat call with the same value returns the same approval instead of submitting a second time. The 'approval:' prefix is reserved.
scheduledAtstringoptional
approvalModeauto | draft | reviewoptional
maxCostEurosnumberoptionalMaximum amount in euros. If the price is above it, the call is aborted.
presetNamestringoptional
auditTagstringoptional
templateIdstringoptional
reasonstringoptionalShort reason for the approval, shown to the reviewer on the card.
requesterContextstringoptionalAdditional context about the submitter or the occasion.
dryRunbooleanoptional

approval_decide

actionscope: approval:decide

Approves or rejects a pending approval. 'approve' requires that this OAuth connection carries the separately granted approval:self_approve scope. When that scope is absent, the human opens the returned approvalUrl and decides in the signed-in portal. approval:decide is also required. An agent approval dispatches after 10 minutes and can be stopped with order_cancel until then.

Input contract

FieldTypeRequirementMeaning
approvalIdstringrequired
decisionapprove | rejectrequired
commentstringoptional
clientOrderIdstringoptional

Contract-shaped example

approval_submit({
  "letterId": "REVIEWED_LETTER_ID",
  "recipientName": "Max Mustermann",
  "recipientStreet": "Musterstrasse",
  "recipientHouseNumber": "1",
  "recipientZip": "10115",
  "recipientCity": "Berlin",
  "clientOrderId": "contract-482-approval-v1",
  "maxCostEuros": 10,
  "reason": "Reviewed contract notice"
})

approval_decide({
  "approvalId": "APPROVAL_ID",
  "decision": "approve",
  "user_saw_preview": true,
  "clientOrderId": "contract-482-decision-v1"
})

Only set user_saw_preview:true after the authorized human saw the preview, exact price, and delivery type. A model statement is not human approval.

For conditional fields and nested object limits, the generated complete tool reference remains authoritative. See errors and safe agent onboarding before implementing retries or a live send.

Trust and live status

Machine-readable service facts and the current operational status of the partner interface are publicly available at all times, no login needed.