---
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`

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. See partner-rules.md (price change confirmation required if the success fee changes by >0.1%). IMPORTANT (DEB-4765 (b)): 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 Debitura.Web.ExternalApi.Contracts.V1.Cases.Requests.UpdateCaseFeesRequest.KeepIntentionalRate=`true` to apply the edit and keep the special rate. Only the admin (internal) surface 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 Debitura.Web.ExternalApi.Contracts.V1.Cases.Requests.UpdateCaseFeesRequest.ConfirmPriceChange instead is rejected with HTTP 400. Ignored for a plain bracket crossing on a non-intentional rate (use Debitura.Web.ExternalApi.Contracts.V1.Cases.Requests.UpdateCaseFeesRequest.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.net/debitura/apis/debitura-collection-partner-api.md) · [All operations](https://skmtc.net/debitura/apis/debitura-collection-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/debitura/debitura-collection-partner-api/revisions/d0dcc5024bd1/schema)
