Skip to main content

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:

  • statusOpen (default) or Solved
  • type — 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.