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.