Create or update a price list with optional entries
ID-keyed upsert for the price list itself, plus a bulk upsert of price entries against existing variants.
Pricing method (flower / material): the storage convention is “priceExclTax is always the pack price; pricingMethod is a display flag.” This endpoint does the conversion for you — supply whichever method you have, and the right cost is recorded internally.
Hire price lists (productType: "hire"): each entry’s priceExclTax is the daily hire fee for one unit, stored as-is. Omit pricingMethod — it’s ignored for hire entries. Hire price lists list every hireable material variant on the tenant; setting an entry registers a daily fee for that variant on this list.
Tax group: pass taxGroupId: null to clear. Cross-tenant IDs return tax_group_not_found (422).
Clearing a price: an entry row with remove: true deletes that variant’s price on the list. A price is
addressed by list and variant rather than by an id of its own, which is why this lives here rather than on a
DELETE route. Cleared rows come back in removed, and a row for a variant that had no price is reported there
too rather than as an error, since the end state is the same.
Errors (per entry row, in errors)
variant_not_found— thevariantIdis unknown or belongs to another tenant.price_required— a row that neither setspriceExclTaxnor asks to remove.
Whole-request failures: 422 price_list_name_required when creating without a name, 404 price_list_not_found
for an unknown id, 422 tax_group_not_found for a tax group on another tenant, and 422 too_many_items
above 500 entries.
/api/v1/price-listsAuthorizationBearer token (bloomcount_...) · headerrequiredIdempotency-Keystringapplication/jsonpriceListPriceListUpsertrequiredShow propertiesHide properties
idstringnamestringdescriptionstringdatestringproductTypestringflowermaterialhiredefaultMarkupMultipliernumber<float>taxGroupIdstring | nulltaxExemptbooleanentriesPriceEntry[]requiredShow propertiesHide properties
PriceEntryvariantIdstringrequiredremovebooleanpriceExclTaxnumber<float>pricingMethodstringstempackpriceListIdstringrequiredremovedobject[]requiredShow propertiesHide properties
objectindexintegerrequiredvariantIdstringrequiredupsertedobject[]requiredShow propertiesHide properties
objectindexintegerrequiredvariantIdstringrequiredentryIdstringrequirederrorsobject[]requiredShow propertiesHide properties
objectindexintegerrequiredvariantIdstringrequirederrorstringrequiredpriceListIdstringrequiredremovedobject[]requiredShow propertiesHide properties
objectindexintegerrequiredvariantIdstringrequiredupsertedobject[]requiredShow propertiesHide properties
objectindexintegerrequiredvariantIdstringrequiredentryIdstringrequirederrorsobject[]requiredShow propertiesHide properties
objectindexintegerrequiredvariantIdstringrequirederrorstringrequirederrorstringrequirederrorstringrequirederrorstringrequirederrorstringrequired