Skip to content
FrankKi
Sign inStart freeiOS Download

Conventions

These conventions apply to the production partner interface. Every Quickstart links here instead of repeating them.

Timestamps: ISO-8601, Europe/Berlin default
Every timestamp is ISO-8601 formatted. Without an explicit timezone, Europe/Berlin is the default. Time fields in responses always carry an offset.
2026-07-05T14:30:00+02:00
Money: a cents-integer and a Euro-display twin
Every money amount ships as an integer cents value (amountCents) AND a formatted Euro display string. Always compute against the cents value, never against the formatted string.
{ "amountCents": 349, "amountDisplay": "3.49 EUR" }
Idempotency: clientOrderId and isReplay
Every send call carries a client-chosen clientOrderId. A repeated call with the same clientOrderId returns the same response and never creates a second send. The response flags a repeat with isReplay: true, so an agent can safely retry after a timeout.
{ "clientOrderId": "agent-2026-07-05-001", "isReplay": false }
dryRun on every mutating tool
Every tool that changes state (mutating: true) accepts dryRun: true. All six send gates and the cost estimate still run, but no letter, ledger row or approval is created. Rehearse a call before you fire it for real.
{ "dryRun": true }
Token rights: fixed at creation, never backfilled
Rights are written into the token when it is created. They never grow later: if a token needs to do more, create a new token in the dashboard under /dashboard/tokens or use "Replace" there. Replacing revokes the old token in the same step, with no grace window. For an OAuth connection this means a fresh authorization, not a refresh. If a call is missing a right, the server answers with FORBIDDEN_SCOPE and names both the missing right and the tool.
FORBIDDEN_SCOPE -> create a new token carrying the missing right

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.