Source: https://docs.debitura.com/developer-concepts/tasks

# Tasks

Reference for Debitura's task model — the action items that surface when a case (or your account) needs something from you before it can keep moving.

**Business context:** See [Tasks in Debitura](https://support.debitura.com/en/articles/13909896-tasks-in-debitura-how-action-items-are-created-and-managed) for how action items are created and managed.

<a id="what-is-a-task"></a>

## What Is a Task?

A task is Debitura's "you must do X before this can proceed" prompt — reply to a partner's chat message, sign a contract, assign a bank account, and so on. Tasks are created automatically as a case progresses through its [lifecycle](https://docs.debitura.com/developer-concepts/case-lifecycle.md), and they **auto-resolve** once the underlying condition clears — there's no separate "mark as done" call. Treat a task list as a live work queue, not an append-only log: a task seen on one call may no longer be open on the next.

<a id="task-types"></a>

## Task Types

| Type | What it means | Scope | API-resolvable |
| --- | --- | --- | --- |
| `ReplyToChat` | A partner is waiting on your reply in the case chat | Case | Yes |
| `ClientInputRequired` | A partner needs additional information from you, via chat | Case | Yes |
| `MoreInfoNeeded` | Same as above — a partner requested more detail before proceeding | Case | Yes |
| `SelectQuoteWinner` | Legacy quote-selection task retained for existing open rows; no new rows are created | Lead | No — resolve via `solutionUrl` |
| `IncumbentLegalQuotePending` | Approve or decline a legal quote from the partner already handling the case | Case + lead | No — resolve via `solutionUrl` |
| `ReviewQuotes` | Review the quote or quotes received on a case lead and choose how to proceed | Case + lead | No — resolve via `solutionUrl` |
| `ReviewPartner` | Submit an NPS-style rating for the collection partner on a closed case | Case | No — resolve via `solutionUrl` |
| `SignContract` | Sign or re-sign the SDCA / Power of Attorney | Account | No — resolve via `solutionUrl` |
| `AssignBankAccount` | Attach a payout bank account — blocks case processing until set | Account | No — resolve via `solutionUrl` |
| `CaseValidationNeedsInfo` | Case Validation flagged missing or inconsistent case data | Case | No — resolve via `solutionUrl` |
| `Generic` | A miscellaneous action item without a dedicated type | Case | No — resolve via `solutionUrl` |
| `RespondToComplaint` | A collection partner has raised a complaint about you and is waiting on your response | Complaint (no `caseId`; only in `GET /tasks`) | No — resolve via `solutionUrl` |

`SignContract` and `AssignBankAccount` are account-level: they aren't tied to a single case, so they only ever appear in an account-wide task listing, never in a case-scoped one.

`IncumbentLegalQuotePending` and `ReviewQuotes` are case-scoped tasks whose decision happens on a lead. They appear in both `GET /tasks` and `GET /cases/{id}/tasks`, carry both `caseId` and `leadId`, and use a lead-page `solutionUrl`. Their `action` is `null`; send a human to `solutionUrl` to decide the quote. The legacy `SelectQuoteWinner` task is lead-scoped, so an existing row can appear in `GET /tasks` but never in the case-scoped endpoint.

<a id="every-task-has-a-solution-url"></a>

## Every Task Has a Solution URL

Every task carries a `solutionUrl` — an absolute link, identical to the one used inside the Debitura app itself, that resolves the task in one click. This is the one guaranteed way to resolve any task type, even ones that aren't (yet) directly actionable through an API — no polling loop needed, just surface the link to whoever handles that task on your side.

<a id="api-resolvable-vs-solutionurl-only"></a>

## API-Resolvable vs. solutionUrl-Only

Some task types are directly resolvable through an API call — these additionally carry an `action` (an HTTP method + path) describing the exact call that resolves them, so an integration can act without a human opening `solutionUrl`. Task types without a wired-up `action` carry `action: null` and rely on `solutionUrl` alone. Which types are API-resolvable depends on what the underlying API surface already supports — for example, chat-driven task types resolve through whatever endpoint already posts a chat message on that surface, so no dedicated "resolve task" endpoint is needed for them.

<a id="where-this-is-implemented-today"></a>

## Where This Is Implemented Today

The [Customer API](https://docs.debitura.com/api/customer.md) exposes the table above for creditor accounts — see [Tasks and Action Items](https://docs.debitura.com/clients/integration-guides/tasks-and-action-items.md) for the request/response shape, filtering, and how to resolve chat-driven tasks via the API.
