openapi: 3.2.0 info: title: Debitura Customer Tasks API description: 'Welcome to the Debitura Customer API, your gateway to seamlessly integrating your debt collection workflow with our platform. Debitura connects customers with trusted debt collection firms specializing in pre-legal debt recovery. With this API, you can easily upload cases, track their status, and manage your debt collection process efficiently. For any support or inquiries, please reach out to us at contact@debitura.com. To setup an API key, log into your Debitura account and go here: https://app.debitura.com/CreditorApiKey 📖 Full documentation, guides, and integration walkthroughs: https://docs.debitura.com/clients NOTE: if you''re representing a platform and want to provide this feature for your customers, you need a different API. Please contact us.' contact: name: Debitura Support url: https://www.debitura.com/integration/debt-collection-api email: contact@debitura.com version: v1 servers: - url: https://customer-api.debitura.com description: Production security: - ApiKey: [] - Bearer: [] tags: - name: Tasks description: Tasks paths: /tasks: get: tags: - Tasks summary: List your open tasks description: 'Returns a paginated, account-wide list of every task (action-item) your account currently has — across ALL cases, not just one. Use GET /cases/{id}/tasks instead to scope this to a single case. **What is a task?** A task is something the platform needs YOU to do before a case can proceed — e.g. reply to a chat message, sign a contract, or assign a bank account for payouts. Tasks auto-resolve when the underlying condition clears (for example, once you reply to the case''s chat, the ReplyToChat task disappears on its own) — this is a live work queue, not an append-only log. Poll it, don''t assume a task you''ve seen before is still open. **Every task has 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, no matter the task type. **Some tasks also have an `action`** — a machine-readable hint pointing at the exact existing API call that resolves the task directly, with no human required. Today that''s the chat-driven cluster (ReplyToChat, ClientInputRequired, MoreInfoNeeded) — post a message via POST /cases/{caseId}/chats and the task resolves itself once the case leaves its needs-info state. Tasks without an action are `action: null` — resolve those via solutionUrl. **Filtering:** - status (default: Open) — Open or Solved - type (repeatable, e.g. ?type=ReplyToChat&type=SignContract) — restrict to specific task types **Pagination:** - Page (default: 1), PageSize (default: 10, max: 100)' parameters: - name: status in: query schema: type: string default: Open - name: type in: query schema: type: array items: type: string - name: Page in: query schema: type: integer format: int32 default: 1 - name: PageSize in: query schema: type: integer format: int32 default: 10 responses: '200': description: Tasks returned content: text/plain: schema: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskListDto' application/json: schema: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskListDto' text/json: schema: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskListDto' '400': description: Invalid status, type, or pagination parameters content: text/plain: schema: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto' application/json: schema: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto' text/json: schema: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto' components: schemas: Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskActionDto: type: object properties: method: type: - string - 'null' description: HTTP method to use, e.g. `"POST"`. path: type: - string - 'null' description: 'Path template for the resolving call, e.g. `"/cases/{caseId}/chats"`. Relative to the API''s base URL.' additionalProperties: false description: "A machine-readable hint pointing at the existing API call that resolves a task, e.g.\n`{ \"method\": \"POST\", \"path\": \"/cases/{caseId}/chats\" }` for a chat-driven task.\n \nPath uses the same `{param}` placeholder style as this API's own\ndocumented routes — substitute in the real IDs before calling." Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto: type: object properties: id: type: string description: The task's unique ID. format: uuid type: type: - string - 'null' description: 'Stable string code for the task type (e.g. `"ReplyToChat"`). This is the public, additive-safe contract — it does NOT track the internal integer enum used in storage.' typeLabel: type: - string - 'null' description: Human-readable label for Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto.Type (e.g. "Reply to chat"). title: type: - string - 'null' description: Short task title, as shown in the Creditor app. description: type: - string - 'null' description: Optional longer description of what the task requires. status: type: - string - 'null' description: Either `"Open"` or `"Solved"`. caseId: type: - string - 'null' description: 'The case (collection case / invoice) this task belongs to, when applicable. Null for account-level tasks not tied to a single case (e.g. SignContract, AssignBankAccount).' format: uuid caseReference: type: - string - 'null' description: Your reference for Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto.CaseId, if any. leadId: type: - string - 'null' description: The lead this task belongs to (e.g. SelectQuoteWinner), if applicable. format: uuid deadline: type: - string - 'null' description: When this task is due, if a deadline is set. format: date-time dateCreated: type: string description: When the task was created. format: date-time dateSolved: type: - string - 'null' description: When the task was resolved, if it has been. format: date-time solutionUrl: type: - string - 'null' description: 'Absolute URL — identical to the one the Creditor app itself links to — where a human can resolve this task. Always present, regardless of whether Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto.Action is populated.' action: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskActionDto' additionalProperties: false description: "A creditor-facing action item (\"task\") — something the platform needs the client to do\nbefore a case can proceed (e.g. reply to a chat, sign a contract, assign a bank account).\n \nEvery task carries a Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto.SolutionUrl — an absolute link identical to the one used\ninside the Creditor app — so a human can resolve any task in one click, even task types that\nare not yet directly API-actionable. Tasks that ARE directly API-actionable additionally carry\na non-null Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto.Action pointing at the exact API call that resolves them." Debitura.Web.ExternalApi.Contracts.V1.Cases.BusinessErrorApiDTO: type: object properties: type: type: - string - 'null' description: The type of business error (e.g., "MissingDebtCollectionContract", "MissingPowerOfAttorney", "NoPartnerAvailable"). message: type: - string - 'null' description: A human-readable description of the error. solutionUrl: type: - string - 'null' description: "A URL where the user can resolve this specific error (e.g., sign a contract).\n \n\nPartners who want a single URL that walks the user through every pending\nsigning in one chain — instead of forwarding one URL per\n`BusinessErrorApiDTO` — should use\nDebitura.Web.ExternalApi.Contracts.V1.Cases.BusinessErrorResponseApiDTO.SigningHandoff's `CombinedSigningUrl`.\nThe two are complementary: `SolutionUrl` is granular per-error;\n`CombinedSigningUrl` is the chain-walking alternative for signing-related errors." additionalProperties: false description: Represents a business error in the API response. Debitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto: type: object properties: error: type: - string - 'null' description: Short human-readable error label (legacy field — preserved for backward compatibility). message: type: - string - 'null' description: Human-readable error description (legacy field — preserved for backward compatibility). businessErrors: type: - array - 'null' items: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Cases.BusinessErrorApiDTO' description: Canonical structured error array. Consumers should migrate to reading this field. additionalProperties: false description: "Generic structured error response for API endpoints.\n \nDual-write design: existing fields (Debitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto.Error / Debitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto.Message etc.)\nare preserved for backward compatibility alongside the canonical\nDebitura.Web.ExternalApi.Contracts.V1.Errors.ApiErrorResponseDto.BusinessErrors array, allowing consumers to migrate at their own pace." Debitura.Domain.Model.Base.PageData: type: object properties: totalResults: type: integer format: int32 pageSize: type: integer format: int32 currentPage: type: integer format: int32 responseCount: type: integer format: int32 totalPages: type: integer format: int32 readOnly: true additionalProperties: false Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskListDto: required: - page type: object properties: page: $ref: '#/components/schemas/Debitura.Domain.Model.Base.PageData' tasks: type: - array - 'null' items: $ref: '#/components/schemas/Debitura.Web.ExternalApi.Contracts.V1.Tasks.TaskDto' additionalProperties: false description: Paged list of tasks, returned by `GET /tasks`. securitySchemes: ApiKey: type: apiKey description: This is for clients who manage their own account. They can get the API key in the platform and set it as the 'XApiKey' in the header. name: XApiKey in: header Bearer: type: http description: This is for referral partners, who are sending in clients to the platform. They get the bearer token from the referral partner Api and can be inserted here. scheme: bearer bearerFormat: JWT externalDocs: description: Debitura developer documentation url: https://docs.debitura.com