---
title: "Create or update a sales price break for an item. The price break is identified by
the combination of (item, customer, customer tier, currency, sales unit of measure):
if a match exists it is replaced, otherwise a new price break is created.
            
Customer and customer tier are mutually exclusive. Leaving both null upserts the
item's base price."
method: PUT
path: "/api/items/{itemId}/sales-price-breaks"
tags: ["Item PriceBreaks"]
---

# Create or update a sales price break for an item. The price break is identified by
the combination of (item, customer, customer tier, currency, sales unit of measure):
if a match exists it is replaced, otherwise a new price break is created.
            
Customer and customer tier are mutually exclusive. Leaving both null upserts the
item's base price.

`PUT /api/items/{itemId}/sales-price-breaks`

## Path parameters

- `itemId` string, required

## Request body

- PriceBreakSalesPriceBreakUpsertDto — Upsert payload for a sales price break. Identity key (item-id is the route parameter): FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerId, FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerTierId, FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CurrencyCode, FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.UnitOfMeasureName. If a price break already exists for this key, it is updated; otherwise a new one is created.
  - `customerId` string, nullable — Identifier of the customer this price break applies to. Mutually exclusive with FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerTierId. Leave both null to upsert the item's base price.
  - `customerTierId` string, nullable — Identifier of the customer tier this price break applies to. Mutually exclusive with FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerId. Leave both null to upsert the item's base price.
  - `currencyCode` string, nullable — ISO 4217 currency code. Null indicates the company's primary currency. Null and the explicit primary currency code are treated as equivalent for identity matching; when matching an existing break, that break's stored CurrencyCode is preserved (legacy records may hold null even after primary is set, and downstream code distinguishes them). On insert, the value is stored exactly as supplied.
  - `unitOfMeasureName` string, nullable — Sales unit of measure. Null indicates the item's default sales unit of measure. Same null/default-equivalence rules as FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CurrencyCode.
  - `pricingType` 'price' | 'margin', required — How a sales price break is calculated.
  - `unitPrice` number, double, nullable — The unit price at quantity 1. Required when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.PricingType is Price.
  - `margin` number, double, nullable — The margin percentage at quantity 1. Required when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.PricingType is Margin.
  - `showOnPdf` boolean — Whether the unit/base price should be displayed on customer-facing PDFs.
  - `breakPoints` PriceBreakItemPriceBreakPointDto[], required — Quantity break points beyond quantity 1. The complete set of break points is replaced on each upsert; omit a quantity to remove it.
    - `id` string, nullable — Identifier for this break point. Server-generated; ignored on write.
    - `quantity` integer — The quantity at which this break point becomes active. Must be greater than 1 (the unit/base price covers quantity 1).
    - `price` number, double, nullable — The price per unit at this break point. Required for Price-type sales breaks and all purchase (Cost) breaks.
    - `margin` number, double, nullable — The margin percentage at this break point. Used when the price break is calculated by Margin.
    - `showOnPdf` boolean — Whether this break point should be displayed on customer-facing PDFs (quotes, sales orders). Has no effect for purchase price breaks.

## Response `200`

The upserted price break.

- PriceBreakSalesPriceBreakDto — Sales price break for an item. A sales price break is targeted at one of: the item's base price, a specific customer, or a customer tier.
  - `id` string, required — Identifier of the price break.
  - `itemId` string, required — Identifier of the item this price break applies to.
  - `customerId` string, nullable — Identifier of the customer this price break applies to. Mutually exclusive with FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.CustomerTierId; null on both means this is the item's base price.
  - `customerTierId` string, nullable — Identifier of the customer tier this price break applies to. Mutually exclusive with FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.CustomerId; null on both means this is the item's base price.
  - `currencyCode` string, nullable — ISO 4217 currency code. Null indicates the company's primary currency.
  - `unitOfMeasureName` string, nullable — Sales unit of measure for this price break. Null indicates the item's default sales unit of measure.
  - `pricingType` 'price' | 'margin', required — How a sales price break is calculated.
  - `unitPrice` number, double, nullable — The unit price at quantity 1. Populated when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.PricingType is Price.
  - `margin` number, double, nullable — The margin percentage applied at quantity 1. Populated when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.PricingType is Margin.
  - `showOnPdf` boolean — Whether the unit/base price should be displayed on customer-facing PDFs.
  - `breakPoints` PriceBreakItemPriceBreakPointDto[], required — Quantity break points beyond quantity 1.
    - `id` string, nullable — Identifier for this break point. Server-generated; ignored on write.
    - `quantity` integer — The quantity at which this break point becomes active. Must be greater than 1 (the unit/base price covers quantity 1).
    - `price` number, double, nullable — The price per unit at this break point. Required for Price-type sales breaks and all purchase (Cost) breaks.
    - `margin` number, double, nullable — The margin percentage at this break point. Used when the price break is calculated by Margin.
    - `showOnPdf` boolean — Whether this break point should be displayed on customer-facing PDFs (quotes, sales orders). Has no effect for purchase price breaks.
  - `modifiedUtc` string, date-time — When this price break was last modified.

## Other responses

- `400` — Validation issues with input.
- `404` — Item, customer, or customer tier did not exist.

---

[API](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi.md) · [All operations](https://skmtc.net/fulcrumpro/apis/fulcrum-publicapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fulcrumpro/fulcrum-publicapi/versions/1b5649cff14a/schema)
