---
title: "Update Pricing"
method: PUT
path: "/organizations/{orgId}/pricings/{id}"
tags: ["Pricing"]
---

# Update Pricing

`PUT /organizations/{orgId}/pricings/{id}`

Update Pricing for the given UUID.

**Notes:**
* Exactly one of `planId` or `planTemplateId` request parameters are required for this call to be valid. If you omit both, then you will receive a validation error.
* Exactly one of `aggregationId` or `compoundAggregationId` request parameters are required for this call to be valid. If you omit both, then you will receive a validation error.

## Path parameters

- `orgId` string, required
- `id` string, required

## Request body

- PricingRequest
  - `aggregationId` string — UUID of the Aggregation used to create the Pricing. Use this when creating a Pricing for a segmented aggregation.
  - `compoundAggregationId` string — UUID of the Compound Aggregation used to create the Pricing.
  - `type` 'DEBIT' | 'PRODUCT_CREDIT' | 'GLOBAL_CREDIT' — * **DEBIT**. Default setting. The amount calculated using the Pricing is added to the bill as a debit. * **PRODUCT_CREDIT**. The amount calculated using the Pricing is added to the bill as a credit *(negative amount)*. To prevent negative billing, the bill will be capped at the total of other line items for the *same* Product. * **GLOBAL_CREDIT**. The amount calculated using the Pricing is added to the bill as a credit *(negative amount)*. To prevent negative billing, the bill will be capped at the total of other line items for the entire bill, which might include other Products the Account consumes.
  - `segment` object — Specifies the segment value which you are defining a Pricing for using this call: - For each segment value defined on a Segmented Aggregation you must create a separate Pricing and use the appropriate `aggregationId` parameter for the call. - If you specify a segment value that has not been defined for the Aggregation, you'll receive an error. - If you've defined segment values for the Aggregation using a single wildcard or multiple wildcards, you can create Pricing for these wildcard segment values also. For more details on creating Pricings for segment values on a Segmented Aggregation using this call, together with some examples, see the [Using API Call to Create Segmented Pricings](https://www.m3ter.com/docs/guides/plans-and-pricing/pricing-plans/pricing-plans-using-segmented-aggregations#using-api-call-to-create-a-segmented-pricing) in our User Documentation.
  - `tiersSpanPlan` boolean — The default value is **FALSE**. * If TRUE, usage accumulates over the entire period the priced Plan is active for the account, and is not reset for pricing band rates at the start of each billing period. * If FALSE, usage does not accumulate, and is reset for pricing bands at the start of each billing period.
  - `minimumSpend` number, double — The minimum spend amount per billing cycle for end customer Accounts on a Plan to which the Pricing is applied.
  - `minimumSpendDescription` string — Minimum spend description *(displayed on the bill line item)*.
  - `minimumSpendBillInAdvance` boolean — The default value is **FALSE**. * When TRUE, minimum spend is billed at the start of each billing period. * When FALSE, minimum spend is billed at the end of each billing period. *(Optional)*. Overrides the setting at Organization level for minimum spend billing in arrears/in advance.
  - `overagePricingBands` PricingBand[] — Specify Prepayment/Balance overage pricing in pricing bands for the case of a **Tiered** pricing structure. The overage pricing rates will be used to charge for usage if the Account has a Commitment/Prepayment or Balance applied to it and the entire Commitment/Prepayment or Balance amount has been consumed. **Constraints:** * Can only be used for a **Tiered** pricing structure. If cumulative is **FALSE** and you defined `overagePricingBands`, then you'll receive an error. * If `tiersSpanPlan` is set to **TRUE** for usage accumulates over entire contract period, then cannot be used. * If the Commitment/Prepayement or Balance has an `overageSurchargePercent` defined, then this will override any `overagePricingBands` you've defined for the pricing.
    - `id` string — The ID for the Pricing band.
    - `lowerLimit` number, double, required — Lower limit for the Pricing band.
    - `fixedPrice` number, double, required — Fixed price charged for the Pricing band.
    - `unitPrice` number, double, required — Unit price charged for the Pricing band.
    - `creditTypeId` string — **OBSOLETE - this is deprecated and no longer used.**
  - `version` integer — The version number of the entity: - **Create entity:** Not valid for initial insertion of new entity - *do not use for Create*. On initial Create, version is set at 1 and listed in the response. - **Update Entity:** On Update, version is required and must match the existing version because a check is performed to ensure sequential versioning is preserved. Version is incremented by 1 and listed in the response.
  - `code` string — Unique short code for the Pricing.
  - `planId` string — UUID of the Plan the Pricing is created for.
  - `planTemplateId` string — UUID of the Plan Template the Pricing is created for.
  - `cumulative` boolean — Controls whether or not charge rates under a set of pricing bands configured for a Pricing are applied according to each separate band or at the highest band reached. *(Optional)*. The default value is **FALSE**. * When TRUE, at billing charge rates are applied according to each separate band. * When FALSE, at billing charge rates are applied according to highest band reached. **NOTE:** Use the `cumulative` parameter to create the type of Pricing you require. For example, for Tiered Pricing set to **TRUE**; for Volume Pricing, set to **FALSE**.
  - `startDate` string, date-time, required — The start date *(in ISO-8601 format)* for when the Pricing starts to be active for the Plan of Plan Template.*(Required)*
  - `endDate` string, date-time — The end date *(in ISO-8601 format)* for when the Pricing ceases to be active for the Plan or Plan Template. *(Optional)* If not specified, the Pricing remains active indefinitely.
  - `description` string — Displayed on Bill line items.
  - `accountingProductId` string — Optional Product ID this Pricing should be attributed to for accounting purposes
  - `pricingBands` PricingBand[], required
    - `id` string — The ID for the Pricing band.
    - `lowerLimit` number, double, required — Lower limit for the Pricing band.
    - `fixedPrice` number, double, required — Fixed price charged for the Pricing band.
    - `unitPrice` number, double, required — Unit price charged for the Pricing band.
    - `creditTypeId` string — **OBSOLETE - this is deprecated and no longer used.**

## Response `200`

Returns the updated Pricing

- PricingResponse
  - `id` string, required — The UUID of the entity.
  - `version` integer — The version number: - **Create:** On initial Create to insert a new entity, the version is set at 1 in the response. - **Update:** On successful Update, the version is incremented by 1 in the response.
  - `dtCreated` string, date-time — The DateTime when this item was created *(in ISO-8601 format)*.
  - `dtLastModified` string, date-time — The DateTime when this item was last modified *(in ISO-8601 format)*.
  - `createdBy` string — The ID of the user who created this item.
  - `lastModifiedBy` string — The ID of the user who last modified this item.
  - `planId` string — UUID of the Plan the Pricing is created for.
  - `planTemplateId` string — UUID of the Plan Template the Pricing was created for.
  - `cumulative` boolean — Controls whether or not charge rates under a set of pricing bands configured for a Pricing are applied according to each separate band or at the highest band reached. The default value is **TRUE**. * When TRUE, at billing charge rates are applied according to each separate band. * When FALSE, at billing charge rates are applied according to highest band reached.
  - `startDate` string, date-time — The start date *(in ISO-8601 format)* for when the Pricing starts to be active for the Plan of Plan Template.
  - `endDate` string, date-time — The end date *(in ISO-8601 format)* for when the Pricing ceases to be active for the Plan or Plan Template. If not specified, the Pricing remains active indefinitely.
  - `code` string — Unique short code for the Pricing.
  - `description` string — Displayed on Bill line items.
  - `accountingProductId` string
  - `pricingBands` PricingBand[]
    - `id` string — The ID for the Pricing band.
    - `lowerLimit` number, double, required — Lower limit for the Pricing band.
    - `fixedPrice` number, double, required — Fixed price charged for the Pricing band.
    - `unitPrice` number, double, required — Unit price charged for the Pricing band.
    - `creditTypeId` string — **OBSOLETE - this is deprecated and no longer used.**
  - `aggregationId` string — UUID of the Aggregation used to create the Pricing. Use this when creating a Pricing for a segmented aggregation.
  - `compoundAggregationId` string — UUID of the Compound Aggregation used to create the Pricing.
  - `type` 'DEBIT' | 'PRODUCT_CREDIT' | 'GLOBAL_CREDIT' — * **DEBIT**. Default setting. The amount calculated using the Pricing is added to the bill as a debit. * **PRODUCT_CREDIT**. The amount calculated using the Pricing is added to the bill as a credit *(negative amount)*. To prevent negative billing, the bill will be capped at the total of other line items for the *same* Product. * **GLOBAL_CREDIT**. The amount calculated using the Pricing is added to the bill as a credit *(negative amount)*. To prevent negative billing, the bill will be capped at the total of other line items for the entire bill, which might include other Products the Account consumes.
  - `segment` object — Name of the segment for which you are defining a Pricing. For each segment in a segmented aggregation, make a separate call using `aggregationId` parameter to update a Pricing.
  - `tiersSpanPlan` boolean — The default value is **FALSE**. * If TRUE, usage accumulates over the entire period the priced Plan is active for the account, and is not reset for pricing band rates at the start of each billing period. * If FALSE, usage does not accumulate, and is reset for pricing bands at the start of each billing period.
  - `minimumSpend` number, double — The minimum spend amount per billing cycle for end customer Accounts on a Plan to which the Pricing is applied.
  - `minimumSpendDescription` string — Minimum spend description *(displayed on the bill line item)*.
  - `minimumSpendBillInAdvance` boolean — The default value is **FALSE**. * When TRUE, minimum spend is billed at the start of each billing period. * When FALSE, minimum spend is billed at the end of each billing period. *(Optional)*. Overrides the setting at Organization level for minimum spend billing in arrears/in advance.
  - `aggregationType` 'SIMPLE' | 'COMPOUND'
  - `segmentString` string
  - `overagePricingBands` PricingBand[] — The Prepayment/Balance overage pricing in pricing bands for the case of a **Tiered** pricing structure.
    - `id` string — The ID for the Pricing band.
    - `lowerLimit` number, double, required — Lower limit for the Pricing band.
    - `fixedPrice` number, double, required — Fixed price charged for the Pricing band.
    - `unitPrice` number, double, required — Unit price charged for the Pricing band.
    - `creditTypeId` string — **OBSOLETE - this is deprecated and no longer used.**

## Other responses

- `4XX` — Error message
- `5XX` — Error message

---

[API](https://skmtc.net/m3ter-com/apis/m3ter-api.md) · [All operations](https://skmtc.net/m3ter-com/apis/m3ter-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/m3ter-com/m3ter-api/revisions/ac93d1a9e6d9/schema)
