Skip to content

Set Product Prices

PUT https://api.secure.quotivity.com/v1/pricebooks/{priceBookId}/prices

Sets prices for multiple products in a price book. Accepts either a single all-products price object or an array of specific-product price objects. Combine product changes into larger requests and keep parallel requests in the low single digits. Specific-product writes persist before HubSpot price-book membership is synchronized asynchronously, so membership is eventually consistent. Requests with more than 500 resolved entries are fully processed asynchronously and return 204. If a HubSpot-dependent request returns 429, wait at least retryAfterSeconds before retrying.

Send your API key in the x-api-key header. See Generating API keys.

Name Type Required Description
priceBookId string Yes

Required, application/json: AllProductsPriceRequest | SpecificProductPriceRequest[]

Status Body Description
200 PriceBookEntry[] Prices set successfully
204 Bulk update of more than 500 resolved entries accepted for asynchronous processing; no response body
401 Unauthorized
404 Price book not found
429 HubSpotRateLimitResponse HubSpot account cooldown is active. Wait at least retryAfterSeconds before retrying.
500 Internal Server Error

Extends SpecificProductPriceRequest.

Field Type Required Description
productId all Yes
adjustments map of string to PercentAdjustment Yes Price adjustments keyed by ISO 4217 currency code (for example USD, EUR); keys are uppercased by the API. The key is the currency; the value carries the adjustment only. When productId is all only percent adjustments are accepted. Send null for a currency to clear it.
calculationIdOverride string | null No Optional calculated pricing override for this entry; null clears.
allowUnitPriceEditing boolean | null No Entry-level unit-price editing flag for Quote Builder; null clears. Do not send inside adjustment objects.

Returned when a request that depends on HubSpot is blocked by an account cooldown. Wait at least retryAfterSeconds before retrying, use low single-digit concurrency, and combine product changes into larger requests.

Field Type Required Description
message string Yes
code HUBSPOT_RATE_LIMIT Yes
retryAfterSeconds integer No

Example message:

"HubSpot API rate limit reached. Please wait a few seconds and try again."

Example retryAfterSeconds:

10

Extends PriceAdjustmentBase.

Field Type Required Description
type null Yes Explicitly clear an adjustment (represents null).
amount null Yes Always null for a NullAdjustment.

Extends PriceAdjustmentBase.

Field Type Required Description
type override Yes
amount number Yes

Extends PriceAdjustmentBase.

Field Type Required Description
type percent Yes
amount number Yes
Field Type Required Description
type string Yes
Field Type Required Description
accountId string Yes
priceBookId string Yes
productId string Yes
adjustments map of string to PriceBookEntryAdjustment Yes Price adjustments keyed by ISO 4217 currency code (for example USD, EUR). The key is the currency; the value carries the adjustment only.
calculationIdOverride string No When set, overrides default calculated pricing for this price book entry. Cleared when null.
allowUnitPriceEditing boolean No When true, sales reps may edit unit price in Quote Builder for this product on this price book (entry-level, not per currency).

Type: OverrideAdjustment | PercentAdjustment | VolumeAdjustment | TableEnumAdjustment | TableRangeAdjustment | VariantAdjustment

Field Type Required Description
productId string Yes
adjustments map of string to NullAdjustment | OverrideAdjustment | PercentAdjustment | TableEnumAdjustment | TableRangeAdjustment | VariantAdjustment | VolumeAdjustment No Price adjustments keyed by ISO 4217 currency code (for example USD, EUR); keys are uppercased by the API. The key is the currency: an adjustment value carries no currency field of its own, and there is no currency field beside productId. Each value is a single adjustment object, or null to clear that currency.
calculationIdOverride string | null No Optional calculated pricing override for this entry; null clears.
allowUnitPriceEditing boolean | null No Entry-level unit-price editing flag for Quote Builder; null clears. Do not send inside adjustment objects.

Example adjustments:

{
"USD": {
"type": "override",
"amount": 100
},
"EUR": {
"type": "percent",
"amount": 0.9
}
}

Extends PriceAdjustmentBase.

Field Type Required Description
type enum Yes
property string Yes
values object[] Yes

Extends PriceAdjustmentBase.

Field Type Required Description
type range Yes
property string Yes
values object[] Yes

Extends PriceAdjustmentBase.

Field Type Required Description
type variant Yes
values object[] Yes

Extends PriceAdjustmentBase.

Field Type Required Description
type volume Yes
tiers object[] Yes