---
title: "Update Pricing Model"
method: PUT
path: "/pricing-models/{pricingModelId}"
tags: ["Pricing Model"]
---

# Update Pricing Model

`PUT /pricing-models/{pricingModelId}`

Updates a pricing model.

## Headers

- `Authorization` string, required
- `X-LC-Tenant` string, required

## Request body

- PricingModelUpdateRequest
  - `name` string — The name of the Pricing Model.
  - `description` string — The description of the Pricing Model.
  - `currencyCode` string — The currency code (ISO 4217).
  - `languageDirectionPricing` LanguageDirectionCostRequest[] — Costs applied for languages.
    - `sourceLanguage` string, required — The source language code. For example: "en-US", "de-DE".
    - `targetLanguage` string, required — The target language code. For example: "en-US", "de-DE".
    - `contextMatch` number — The price of context matches.
    - `exactMatch` number — The price of exact matches.
    - `new` number — The price of new matches.
    - `perfectMatch` number — The price of PerfectMatches.
    - `repetition` number — The price of repetition matches.
    - `machineTranslation` number — The price of machine translation matches.
    - `pricingUnit` 'words' | 'characters'
    - `fuzzyMatches` FuzzyMatch[] — All fuzzyMatches categories should be the same for all the language directions.
      - `price` number, required — Fuzzy match price for the range expressed in the category field.
      - `category` FuzzyMatchCategory, required — Fuzzy match category range.
        - `minimumMatchValue` integer, nullable, required — Minimum matching value of this range.
        - `maximumMatchValue` integer, nullable, required — Maximum matching value of this range.
    - `additionalCosts` LanguageCostRequest[] — Additional costs applied at language level.
      - `name` string, required — The name of the additional cost.
      - `type` 'volume' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | 'adhoc' | 'adhocVolume', required
      - `index` number — The number of the cost.
      - `costPerUnit` number — The cost of a unit.
      - `unitCount` number — The number of units for which a cost is applied.
      - `volumeUnitType` 'words' | 'characters' | 'custom'
      - `conditionalCostType` 'absolute' | 'relative' | 'percentage'
      - `conditionalCostOperator` 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual'
      - `conditionalCostVariable` 'wordCount' | 'runningTotal'
      - `operand` number — Operand of the Conditional type cost.
      - `serviceTypes` string[] — Array of Service Type identifiers where this cost is applied.
      - `customUnitName` string — The name of the custom unit. Required when `volumeUnitType` is `custom`.
  - `additionalCosts` ProjectCostRequest[] — Additional costs applied at project level.
    - `name` string, required — The name of the additional cost.
    - `type` 'volume' | 'perTargetLanguage' | 'perFile' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | 'adhoc' | 'adhocVolume', required
    - `index` number — The number of the additional cost.
    - `costPerUnit` number — The cost of a unit.
    - `unitCount` number — The number of units for which a cost is applied.
    - `volumeUnitType` 'words' | 'characters' | 'custom'
    - `conditionalCostType` 'absolute' | 'relative' | 'percentage'
    - `costOperator` 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual'
    - `costVariable` 'wordCount' | 'runningTotal'
    - `operand` number — Operand of the Conditional type cost.
    - `serviceTypes` string[] — Array of Service Type identifiers where this additional cost is applied.
    - `customUnitName` string — The name of the custom unit. Required when `volumeUnitType` is `custom`.

## Response `204`

No Content

## Other responses

- `400` — Error codes: * “invalid”: Invalid input in the query parameter mentioned in the “name” field on the error response. * "empty": Empty mandatory value mentioned in the "name" field on the error response. * "minSize": Minimum size exceeded for the value mentioned in the "name" field on the error response. * "maxSize": Maximum size exceeded for the value mentioned in the "name" field on the error response. * "missing": Missing required field for the value mentioned in the "name" field on the error response.
- `401` — The user could not be identified.
- `403` — Error codes: * "forbidden": the authenticated user is not allowed to update the pricing model.
- `404` — Error codes: * "notFound": the pricing model could not be found by identifier.

---

[API](https://skmtc.net/rws/apis/trados-cloud-platform-api.md) · [All operations](https://skmtc.net/rws/apis/trados-cloud-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rws/trados-cloud-platform-api/revisions/d42dac7c28a3/schema)
