Tasks and Action Items
Discover every open action your account needs to take across all cases, and resolve the most common ones directly through the API.
Overview
A task is Debitura's "you must do X for this case to proceed" prompt — reply to a partner's chat message, sign a contract, assign a bank account, and so on. Tasks are created automatically as cases progress and auto-resolve once the underlying condition clears: the moment you reply to a case's chat, its ReplyToChat task disappears on its own. Poll GET /tasks as a live work queue, not an append-only log — a task you saw last week may no longer be open.
Use GET /tasks for an account-wide queue, or GET /cases/{id}/tasks when you're already working a specific case.
See Tasks for the full task type catalogue (what each type means, case- vs. account-level, API-resolvable or not). SignContract and AssignBankAccount are account-level: they aren't tied to a single case, so they only ever appear in GET /tasks, never in GET /cases/{id}/tasks.
Every Task Has a Solution URL
Each task carries a solutionUrl — an absolute link, identical to the one used inside the Creditor app itself, that a human can open to resolve the task in one click. This is the only guaranteed way to resolve the long-tail task types above that aren't yet API-actionable — no polling loop needed, just surface the link to whoever handles that task on your side.
{
"id": "5e2a1e3a-...",
"type": "AssignBankAccount",
"typeLabel": "Assign bank account",
"status": "Open",
"solutionUrl": "https://app.debitura.com/Invoices/Index?bankAccountId=-1",
"action": null
}
Resolving Chat-Driven Tasks via the API
ReplyToChat, ClientInputRequired, and MoreInfoNeeded together make up the large majority of creditor task volume, and all three resolve the same way: post a chat message. These tasks carry a non-null action:
{
"type": "ReplyToChat",
"caseId": "8f19c2b0-...",
"action": {
"method": "POST",
"path": "/cases/8f19c2b0-.../chats"
}
}
Call POST /cases/{id}/chats with the caseId from the task — see Send chat messages for the request format. The task resolves asynchronously: once the case leaves its needs-info state, the task disappears from subsequent GET /tasks calls. There's no separate "mark task as done" call — don't poll immediately after posting; give the case a moment to transition before re-checking.
Tasks without an action (null) aren't yet directly resolvable through the API in this version — send a human to solutionUrl instead.
Filtering
Both endpoints accept:
status—Open(default) orSolvedtype— repeatable, e.g.?type=ReplyToChat&type=SignContract, restricted to the task types listed here
GET /tasks is paginated (Page, PageSize, max 100); GET /cases/{id}/tasks returns the full unpaginated list for that case.