---
title: "Update case fees and/or principal"
method: PUT
path: "/cases/{id}/fees"
tags: ["Cases"]
---

# Update case fees and/or principal

`PUT /cases/{id}/fees`

## Request

- Base URL: `https://collectionpartner-api.debitura.com`
- URL: `https://collectionpartner-api.debitura.com/cases/{id}/fees`
- Auth: API key in header `XApiKey`

Updates the interest, reminder, and collection fees — and optionally the principal (GrossAmount) — on a case.

All provided values replace the current values. The `grossAmount` field is optional and backward-compatible: omitting it leaves the principal unchanged.

Fees typically change over time as collection activity progresses — for example due to legal costs, attorney fees, investigation charges, or other events.

**When `grossAmount` is supplied:**
- Both increases and decreases are allowed (no restriction on direction)
- The pre-legal success fee (commission) is silently recalculated and returned in the response
- The outstanding remainder is recalculated to reflect the new principal
- A timeline audit event is written recording the change (From/To principal and fees)

**Prerequisites:**
- The case must be assigned to this collection partner
- The case must **not** be Closed or Merged (returns 400 otherwise)
- All amounts must be ≥ 0 (negative values rejected)

## Path parameters

- `id` string, uuid, required

## Request body

- DebituraWebExternalApiContractsV1CasesRequestsUpdateCaseFeesRequest: Request to update the fee amounts (and optionally the principal) on an active case.
  - `grossAmount` number, double, nullable: Principal claim amount (gross amount) in the case currency. Optional — omit to leave the principal unchanged (fees-only update, backward-compatible). Both increases and decreases are allowed; must be ≥ 0.
  - `interestFees` number, double: Interest fees on this case, in the case currency.
  - `reminderFees` number, double: Reminder fees on this case, in the case currency.
  - `collectionFees` number, double: Collection fees on this case, in the case currency.
  - `confirmPriceChange` boolean: The "Change to standard" resolution. When a principal edit on a <em>standard-rate</em> case would move the success fee by more than 0.1 percentage points (a bracket crossing), the first request returns HTTP 409 with the proposed old/new rate instead of applying the change. Resubmit the same request with this set to `true` to confirm and apply the re-price. Leaving it `false` (the default) on an unaffected edit has no effect. On a case with a deliberately-set rate (an accepted quote or a manual override), partners can never override a special agreement via this API. Sending this flag on such a case is REJECTED with HTTP 400 — resubmit with KeepIntentionalRate=`true` to apply the edit and keep the special rate. Only Debitura can change a special rate.
  - `keepIntentionalRate` boolean: The "Keep special rate" resolution. When the case carries a deliberately-set rate (an accepted quote or a manual override) that the edit would otherwise prompt about, resubmit with this set to `true` to apply the edit while preserving the existing rate. On this external Partner API a special rate is preserve-only: this is the ONLY way to apply an edit to such a case — sending ConfirmPriceChange instead is rejected with HTTP 400. Ignored for a plain bracket crossing on a non-intentional rate (use ConfirmPriceChange there).

## Response `200`

Fees updated successfully

- DebituraWebExternalApiContractsV1CasesUpdateCaseFeesResponse: Response returned when case fees (and optionally the principal) are successfully updated.
  - `caseId` string, uuid: The case ID.
  - `grossAmount` number, double: Updated principal claim amount (gross amount), in the case currency.
  - `interestFees` number, double: Updated interest fees, in the case currency.
  - `reminderFees` number, double: Updated reminder fees, in the case currency.
  - `collectionFees` number, double: Updated collection fees, in the case currency.
  - `totalAddedFees` number, double: Sum of all fee types.
  - `recalculatedSuccessFee` number, double, nullable: Recalculated success fee after the principal update. Null if no collection partner is assigned or if the principal was not changed.
  - `remainder` number, double: Outstanding remainder after the update (principal + fees − payments).

## Other responses

- `400`: Validation error — invalid values, case is Closed or Merged, or confirmPriceChange=true was sent on a deliberately-set rate (accepted quote / manual override), which is preserve-only on this API — resubmit with keepIntentionalRate=true instead.
- `404`: Case not found or not assigned to this collection partner
- `409`: Price-change confirmation required — the principal edit would move the success fee by >0.1%. For a standard rate, resubmit with confirmPriceChange=true to re-price. For a deliberately-set rate (accepted quote / manual override) the rate is preserve-only: resubmit with keepIntentionalRate=true to apply the edit and keep the special rate — partners cannot override it (sending confirmPriceChange=true on such a case is rejected with 400).
- `500`: Internal server error

---

[API](https://skmtc.dev/debitura/apis/debitura-collection-partner-api.md) - [All operations](https://skmtc.dev/debitura/apis/debitura-collection-partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/debitura/apis/debitura-collection-partner-api/revisions/a7cf0ff022b6?raw)
