Hoppa till innehållet

PriceLists

Price lists and their prices per item. Addressed by the price list's code. A line is identified by itemNumber, minQuantity and validFrom, so today's price and a price change from a later date live side by side. The API writes fixed prices only; lines calculated from cost, the item's sales price or another price list are read-only here. The price one customer pays is under GET /preview/items/{itemNumber}/price.

4 anrop GET PUT POST Bas-URL https://api.fluit.cloud/preview

Autentisering, felkoder, rate limits, idempotens och paginering gäller alla anrop och står samlade under Kom igång.

GET /price-lists

List price lists

Returns the price lists with code, name, currency, validity and whether they are active. Inactive lists are included, so a list can be checked before it is switched on. The prices are under GET /preview/price-lists/{code}/lines. Sorted by code.

price-lists:read Paginerad

Frågeparametrar

Fält Typ Beskrivning
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Svar

200 PagedResult_PublicPriceListResponse

Paginerat svar: raderna nedan ligger i items[], omgivna av totalCount, page, pageSize, totalPages, hasPreviousPage och hasNextPage. Paginerad

Fält Typ Beskrivning
basePriceListCode string · nullable Code of the list this one derives prices from, for lines with the strategy `ParentPriceList`. Null when it has none.
code string · nullable The price list's code. Addresses it in /preview/price-lists/{code}/lines.
currencyCode string · nullable ISO 4217 currency code of every price in the list.
description string · nullable Free-text description.
isActive boolean Whether the list is in use. An inactive list is never applied to an order.
isPriceIncludingTax boolean Whether the prices include VAT.
name string · nullable Display name, e.g. `Gross SEK`.
priority integer Priority when several lists apply to the same customer; the lower number wins.
type enum What a price list is for. Mirrors the domain values name for name. Standard Customer CustomerGroup Campaign Contract
validFrom string(date) · nullable First day the list applies. Null when it has no start date.
validTo string(date) · nullable Last day the list applies. Null when it has no end date.

Standardfel: 401 403 Felhantering

Exempel

curl
curl "https://api.fluit.cloud/preview/price-lists"
Svar 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "basePriceListCode": "STD",
      "code": "string",
      "currencyCode": "SEK",
      "description": "string",
      "isActive": true,
      "isPriceIncludingTax": true,
      "name": "Retail 2026",
      "priority": 42,
      "type": "Standard",
      "validFrom": "2026-06-11",
      "validTo": "2026-06-11"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Bas-URL https://api.fluit.cloud/preview. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

GET /price-lists/{code}/lines

List the prices in a price list

Returns the price list's lines: one price per item, quantity break and start date.

Visa hela beskrivningen

A line is identified by itemNumber, minQuantity and validFrom, so an item can have today's price and a price change from a later date as two lines. ?validOn= keeps only the lines that apply on that day, which is how to read the prices in force now. unitPrice is the price that applies: the price as entered on a Fixed line, or the most recently calculated price on a line priced from cost, the item's sales price or another price list (null until it has been calculated). Sorted by item number, minQuantity and validFrom.

price-lists:read Paginerad

Sökvägsparametrar

Fält Typ Beskrivning
code Krävs string Code of the price list, from GET /preview/price-lists.

Frågeparametrar

Fält Typ Beskrivning
itemNumber string Only lines for this item number.
validOn string(date) Only lines that apply on this date (ISO 8601, e.g. 2026-10-01).
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Svar

200 PagedResult_PublicPriceListLineResponse

Paginerat svar: raderna nedan ligger i items[], omgivna av totalCount, page, pageSize, totalPages, hasPreviousPage och hasNextPage. Paginerad

Fält Typ Beskrivning
calculatedAt string(date-time) · nullable When a calculated line's price was last calculated. Null on a fixed price.
fixedAmount decimal · nullable Amount added to the cost price by `CostPlusAmount`. Serialised as a decimal string.
itemName string · nullable Name of the priced item.
itemNumber string · nullable Item number of the priced item.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
maxQuantity decimal · nullable The price applies up to and including this quantity. Null when there is no upper limit.
minQuantity decimal The price applies from this quantity. 0 means from the first unit. Part of the line's key together with itemNumber and validFrom. Serialised as a decimal string.
percentage decimal · nullable Percentage used by the calculated strategies (markup or discount). Null on a fixed price. Serialised as a decimal string.
strategy enum How a price list line gets its price. Mirrors the domain values name for name. Fixed CostPlusPercent CostPlusAmount BasePriceDiscount ParentPriceList
unitPrice decimal · nullable The price that applies, in the list's currency. For a fixed price it is the price as entered. For a calculated line it is the most recently calculated price, or null when the line has not been calculated yet. Serialised as a decimal string.
validFrom string(date) · nullable First day the price applies. Null when it has no start date. Part of the line's key.
validTo string(date) · nullable Last day the price applies. Null when it has no end date.
404 ProblemDetails No price list with that code.
Fält Typ
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standardfel: 401 403 Felhantering

Exempel

curl
curl "https://api.fluit.cloud/preview/price-lists/{code}/lines"
Svar 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "calculatedAt": "2026-06-11T09:24:13.418",
      "fixedAmount": "299.00",
      "itemName": "Widget A",
      "itemNumber": "WIDGET-A",
      "links": {
        "self": "string"
      },
      "maxQuantity": "10",
      "minQuantity": "10",
      "percentage": "12.50",
      "strategy": "Fixed",
      "unitPrice": "299.00",
      "validFrom": "2026-06-11",
      "validTo": "2026-06-11"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Bas-URL https://api.fluit.cloud/preview. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

PUT /price-lists/{code}/lines/{itemNumber}

Set an item's price in a price list

Sets the fixed price for the item in the price list and creates the line if it does not exist.

Visa hela beskrivningen

The line is identified by the item, minQuantity and validFrom: omit both for the item's ordinary price, give minQuantity for a quantity break, and give validFrom for a price change from a later date — that becomes a line of its own and leaves the current price alone. On an existing line, maxQuantity and validTo are replaced by what the request says, so leaving them out removes a limit the line had. Only fixed prices are set here. A line priced from cost, the item's sales price or another price list answers 409 PriceListLine.NotFixedPrice rather than silently becoming a fixed price; change such a line in Fluit. To set many prices in one call, use POST /preview/price-lists/{code}/lines/batch. Known error codes: PriceList.NotFound, Item.NotFound, PriceListLine.QuantityRange.Invalid, PriceListLine.ValidityRange.Invalid, PriceListLine.NotFixedPrice, PriceListLine.Ambiguous.

price-lists:write

Sökvägsparametrar

Fält Typ Beskrivning
code Krävs string Code of the price list, from GET /preview/price-lists.
itemNumber Krävs string Item number of the item to price.

Body krävs

Fält Typ Beskrivning
maxQuantity decimal · nullable Upper quantity limit. Omit for none; an existing limit is removed.
minQuantity decimal · nullable The price applies from this quantity. Omit for the price from the first unit. Part of the line's key.
unitPrice Krävs decimal The fixed price, in the price list's currency. Serialised as a decimal string.
validFrom string(date) · nullable First day the price applies. Omit for a price without start date. Part of the line's key, so a price change from a later date becomes a line of its own and leaves today's price alone.
validTo string(date) · nullable Last day the price applies. Omit for none; an existing end date is removed.

Svar

204 Tom body.
400 ProblemDetails unitPrice is missing or negative, minQuantity is greater than maxQuantity, or validFrom is later than validTo.
Fält Typ
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No price list with that code, or no item with that item number.
Fält Typ
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
409 ProblemDetails The line with this key is not a fixed price, or the price list has more than one line with this key.
Fält Typ
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standardfel: 401 403 Felhantering

Exempel

curl
curl -X PUT "https://api.fluit.cloud/preview/price-lists/{code}/lines/{itemNumber}" \
  -H "Content-Type: application/json" \
  -d @body.json
Svar 400
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Bas-URL https://api.fluit.cloud/preview. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

POST /price-lists/{code}/lines/batch

Set many prices in a price list in one call

Sets up to 500 fixed prices per call, with the same rules as PUT /preview/price-lists/{code}/lines/{itemNumber}. Each line is identified by itemNumber, minQuantity and validFrom; a line that exists gets the new price, maxQuantity and validTo, and a line that does not is created.

Visa hela beskrivningen

The HTTP status describes the request, not the rows: a well-formed batch always answers 200, and every row carries its own `outcome` (`created`, `updated` or `failed`) plus an `error` when it failed. A bad row never blocks the rest — re-send only the failed rows. Row error codes: PriceListLine.UnknownItem, PriceListLine.DuplicateInBatch, PriceListLine.QuantityRange.Invalid, PriceListLine.ValidityRange.Invalid, PriceListLine.NotFixedPrice, PriceListLine.Ambiguous, and with `mode` set PriceListLine.AlreadyExists or PriceListLine.NoSuchLine. `mode` is `upsert` (default), `create` or `update`. An `Idempotency-Key` is required like on every POST under /preview.

price-lists:write Kräver Idempotency-Key

Sökvägsparametrar

Fält Typ Beskrivning
code Krävs string Code of the price list, from GET /preview/price-lists.

Body krävs

Fält Typ Beskrivning
lines Krävs BatchUpsertPriceListLinesLineRow[] The prices to set. At most 500 per call.
mode enum `upsert` (default) creates missing lines and updates existing ones, `create` fails a row whose line already exists, `update` fails a row whose line does not exist. Upsert Create Update

Svar

200 BatchUpsertPriceListLinesResponse
Fält Typ
createdCount integer
failedCount integer
results BatchUpsertPriceListLinesRowResult[] · nullable
updatedCount integer
400 ProblemDetails The batch is empty or has more than 500 lines, a line lacks itemNumber or unitPrice, a value is negative, or mode is unknown.
Fält Typ
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No price list with that code.
Fält Typ
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standardfel: 401 403 Felhantering

Exempel

curl
curl -X POST "https://api.fluit.cloud/preview/price-lists/{code}/lines/batch" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @body.json
Two prices
{
  "lines": [
    {
      "itemNumber": "670-00001",
      "unitPrice": "249.00"
    },
    {
      "itemNumber": "670-00002",
      "unitPrice": "319.00"
    }
  ]
}
New prices from 1 January, next to today's
{
  "lines": [
    {
      "itemNumber": "670-00001",
      "unitPrice": "259.00",
      "validFrom": "2027-01-01"
    },
    {
      "itemNumber": "670-00001",
      "minQuantity": "10",
      "unitPrice": "239.00",
      "validFrom": "2027-01-01"
    }
  ]
}
Change prices on lines that already exist
{
  "lines": [
    {
      "itemNumber": "670-00001",
      "unitPrice": "255.00"
    }
  ],
  "mode": "update"
}
Svar 200
{
  "createdCount": 42,
  "failedCount": 42,
  "results": [
    {
      "error": {
        "code": "string",
        "detail": "string"
      },
      "index": 42,
      "itemNumber": "WIDGET-A",
      "outcome": "string"
    }
  ],
  "updatedCount": 42
}

Bas-URL https://api.fluit.cloud/preview. Svarsexemplet är genererat ur schemat: formen stämmer, värdena är påhittade.

Scheman

Objekten som gruppens anrop refererar till. Fälttabellerna ovan går ett steg djupt och länkar hit i stället för att upprepa samma schema på varje endpoint.

BatchUpsertPriceListLinesLineRow

BatchUpsertPriceListLinesLineRow
Fält Typ Beskrivning
itemNumber Krävs string Item number of the item to price. Part of the line's key.
maxQuantity decimal · nullable Upper quantity limit. Omit for none; an existing limit is removed.
minQuantity decimal · nullable The price applies from this quantity. Omit for the first unit. Part of the key.
unitPrice Krävs decimal The fixed price, in the price list's currency. Serialised as a decimal string.
validFrom string(date) · nullable First day the price applies. Omit for no start date. Part of the key.
validTo string(date) · nullable Last day the price applies. Omit for none; an existing end date is removed.

BatchUpsertPriceListLinesRowError

BatchUpsertPriceListLinesRowError
Fält Typ
code string · nullable
detail string · nullable

BatchUpsertPriceListLinesRowResult

BatchUpsertPriceListLinesRowResult
Fält Typ Beskrivning
error BatchUpsertPriceListLinesRowError
index integer
itemNumber string · nullable
outcome string · nullable `created`, `updated` or `failed`.