Changelog
New features and changes to the API. The version is included in every response in the DebtFlow-Version header.
Versioning
- New endpoints, new optional parameters and new fields in responses are not breaking changes.
- Removed or renamed fields, changed types or changed error codes are breaking changes. They receive a new version (date) and are announced here in advance.
- New event types may be added at any time. Webhook receivers should ignore unknown
typevalues.
2026-11-04
Research, creditor AI, activities and new events
- No breaking changes;
DebtFlow-Versionstays2026-11-01. - New scopes
research:read|write,ai:read|writeandactivity:read|write. - Research:
/contacts/{id}/address-research, residents’ registration office requests (Melderegisteranfragen) under/contacts/{id}/residence-registry-inquiries(charged; protection against duplicate orders with409 inquiry_in_progress) and social media profiles under/contacts/{id}/social-profiles. - Creditor AI:
POST /debts/{id}/recommendationsgenerates a recommended course of action from the stored data (limited quota,429 ai_rate_limited/ai_quota_exhausted); read them under/debts/{id}/recommendationsand/contacts/{id}/recommendations. - Financial analysis of a contact (
/contacts/{id}/finances), communication log (/contacts/{id}/communications), activity log across all objects (/activities) and key figures of the receivables overview (/reports/receivables). - Debts now include
isTitledandinCourt(also editable viaPATCH), payments the fieldverified; messages accept the typesms. - The events
debt.overdue,installment.dueandinstallment.missedare now emitted (once per occurrence); new areinstallment_plan.updated,installment_plan.deleted,communication.created,residence_registry_inquiry.createdandrecommendation.created.debt.phase_changednow also comes from the automatic reminder run and from letter dispatch. - Webhook delivery log: responses are truncated to 200 characters, sensitive header values and tokens are removed.
- Webhook endpoints: new field
payloadFormat(jsonby default,text= same body astext/plain, e.g. for signature verification in Make). - CORS for
/api/v1: any origin without credentials (Bearer token), preflight withOPTIONS. Token and revocation endpoints only from the redirect origins of public apps. - Bank reconciliation against invoices additionally requires
invoices:write, against receiptsreceipts:write. Processed events (/events) are deleted after 30 days. - Contacts:
GET /contactswithsortandopen; imported contacts and invoices trigger the same events (withsource: "import"). - The dashboard uses the same v1 endpoints for contacts, debts, payments, instalment plans, letters, clients, research and AI.
- OAuth: PKCE (
S256) is now mandatory for all apps, including confidential ones; exceptions only after review by DebtFlow. Apps showpkceRequired. - OAuth: parallel refreshes with the same refresh token within 30 seconds receive the same token pair (grace period) instead of revoking the token chain.
- The consent page
/oauth/authorizecan no longer be embedded in third-party pages (frame-ancestors 'none'). - Error messages (
message) in German or English depending onAccept-Language(default English), headerContent-Language; the codes inerrorare unchanged. - Contacts have the field
language(de|en) for reminders and documents; invoices and quotes have the fieldlanguage(document language).
2026-11-01
API v1
- REST API under
/api/v1with an OpenAPI 3.1 description. - Authentication with API keys (
df_live_…) and OAuth 2.0 with PKCE and refresh tokens (dfo_…,dfr_…). - Uniform error format, cursor pagination,
Idempotency-Keyfor POST, rate limits withX-RateLimit-*headers. - Webhooks with the
DebtFlow-Signaturesignature and an event catalogue.
Questions about changes? Write to [email protected]. Please report security vulnerabilities according to our security policy.