Skip to content

Sale offers

View as Markdown

A Sale offer is the selling price of a Variant for buyers in a given Country, over a validity period, optionally scoped to specific Channels. It carries the tax-excluded price and a Tax reference, from which the tax-included price is computed.

Sale offers are what the API reads to produce a variant’s resolvedPrice: when you pass resolveContext[channel], resolveContext[country] and resolveContext[at] on a variant read, the matching sale offer (right country, channel and date) determines the price a buyer would see.

PropertyTypeRequiredDescription
idstring-The unique identifier of the sale offer.
statusstring-The status of the offer.
taxExcludedPriceEmbeddedMoneyResourcerequiredThe price set for the offer, excluding tax.
Show taxExcludedPrice fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
taxExcludedPricePerUnitEmbeddedPricePerUnitResource | null-The tax-excluded price expressed per measurement reference unit.
Show taxExcludedPricePerUnit fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
unit"ml" | "cl" | "l" | "mg" | "g" | "kg" | "mm" | "cm" | "m" | "m2" | "unit"requiredThe reference unit the amount is expressed per.
valueintegerrequiredThe number of reference units the amount applies to.
priceEmbeddedMoneyResource-The tax-included price, computed from taxExcludedPrice and the referenced Tax rate.
Show price fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
pricePerUnitEmbeddedPricePerUnitResource | null-The tax-included price expressed per measurement reference unit.
Show pricePerUnit fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
unit"ml" | "cl" | "l" | "mg" | "g" | "kg" | "mm" | "cm" | "m" | "m2" | "unit"requiredThe reference unit the amount is expressed per.
valueintegerrequiredThe number of reference units the amount applies to.
discountPriceEmbeddedMoneyResource | null-The discounted tax-included price, when a discount applies.
Show discountPrice fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
discountPricePerUnitEmbeddedPricePerUnitResource | null-The discounted tax-included price per measurement reference unit, when a discount applies.
Show discountPricePerUnit fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
unit"ml" | "cl" | "l" | "mg" | "g" | "kg" | "mm" | "cm" | "m" | "m2" | "unit"requiredThe reference unit the amount is expressed per.
valueintegerrequiredThe number of reference units the amount applies to.
discountTaxExcludedPriceEmbeddedMoneyResource | null-The discounted tax-excluded price, when a discount applies.
Show discountTaxExcludedPrice fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
discountTaxExcludedPricePerUnitEmbeddedPricePerUnitResource | null-The discounted tax-excluded price per measurement reference unit, when a discount applies.
Show discountTaxExcludedPricePerUnit fields
PropertyTypeRequiredDescription
amountstringrequiredThe monetary amount, as a decimal string.
currencystringrequiredThe ISO 4217 currency code (e.g. EUR).
unit"ml" | "cl" | "l" | "mg" | "g" | "kg" | "mm" | "cm" | "m" | "m2" | "unit"requiredThe reference unit the amount is expressed per.
valueintegerrequiredThe number of reference units the amount applies to.
startsAtstring-Start date of the offer. Defaults to the current date/time if not provided.
endsAtstring | null-End date of the offer.
countrystringrequiredThe country resource it belongs to.
taxstringrequiredThe tax resource it belongs to.
variantstringrequiredThe variant resource it belongs to.
channelsstring[]-A list of Channel IRIs the sale offer is distributed through.
createdAtstring-The date and time when the resource was created (ISO 8601 format).
updatedAtstring-The date and time when the resource was last modified (ISO 8601 format).
  • A variant can have several sale offers - one per country, channel set, or time window.
  • startsAt / endsAt bound when an offer applies. Leave endsAt open for an ongoing price.
  • discountTaxExcludedPrice (optional) sets a promotional price for the period.
  • On read, resolveContext selects the applicable offer and exposes the computed price, discountPrice and per-unit values.
  • Set a price. Create a sale offer for a variant with a country, tax, taxExcludedPrice and startsAt.
  • Run a promotion. Add an offer with a discountTaxExcludedPrice and an endsAt, then let it expire.
  • Price per channel. Attach channels to an offer so it only applies on those sales surfaces.

All requests require an OAuth 2.0 bearer token and the organization scope header:

Authorization: Bearer <token>
X-Flowkiwi-Organization-Id: <organization-id>

PATCH uses JSON Merge Patch with Content-Type: application/merge-patch+json.