Colour bar mixes

Register a colour bar mix

Registers what was mixed and changes the colour bar items it names. It is never refused because an item is out of stock: what was mixed has been mixed. Send an externalReference, your own id for the mix, to make the call safe to repeat: when the location already has a mix under it, that mix is returned unchanged with 200, and a reference used for another staff member's mix is refused with not_allowed. With personId the mix is also saved on that person as a recipe, which needs the scope customers:write as well. Not available at a location that keeps medical records.

post/v1/locations/{locationId}/colour-bar-mixes

Request

  • Base URL: https://api.cliento.com
  • URL: https://api.cliento.com/v1/locations/{locationId}/colour-bar-mixes
  • Auth: HTTP bearer

Path parameters

locationIdstring required

Headers

Idempotency-Keystring

A value you make up for this one request, such as a UUID. Send the same value when you retry and the first answer is returned; see Retrying safely.

Request body

externalReferencestring

Your own id for the mix, at most 100 characters. A mix the location already has under it is returned unchanged.

notestring
personIdstring

A person to save the mix on as a recipe, in the same call. Needs the scope customers:write as well.

staffIdstring

The staff member who mixed. Read it from the Staff API.

titlestring

Example request

{
  "bowls": [
    {
      "components": [
        {
          "amount": 30,
          "colourBarItemId": "cbi_3Vn8Kq5TzL1xWc7PdM2RbJ",
          "fromFinishedPack": 12
        }
      ],
      "ratio": "1:1",
      "title": "Roots"
    }
  ],
  "externalReference": "mix-2026-10-12-0042",
  "note": "35 min",
  "personId": "per_9Tk4Yc1WvN7pQe2XhB5MdG",
  "staffId": "stf_2Hs7Bq4MnX9cLk1VtR6PzD",
  "title": "Roots and lengths"
}

Response

A mix with this externalReference already existed.

createdAtstring date-time required
externalReferencestring

Your own id for the mix.

idstring required

Colour bar mix id.

listValuestring required

What the mix took, at the list prices then, VAT excluded: its components' listValue together, rounded to two decimals, as a decimal string in the location's currency.

locationIdstring required
notestring
recipeIdstring

The recipe the mix was saved as on a person, when it was.

registeredBystring

The name of who mixed: the staff member, or the API key when none was named.

staffIdstring

The staff member who mixed. Left out when none was named.

titlestring
undoneAtstring date-time

When the mix was undone. Left out for a mix that stands.

undoneBystring

The name of who undid the mix.

updatedAtstring date-time required

When the mix last changed: when it was undone, otherwise createdAt.

Example response

{
  "bowls": [
    {
      "components": [
        {
          "amount": 30,
          "colourBarItemId": "cbi_3Vn8Kq5TzL1xWc7PdM2RbJ",
          "fromFinishedPack": 12,
          "listValue": "68.5000",
          "name": "7/10",
          "openUsed": 30,
          "packs": 4,
          "residue": 3,
          "shade": "7/10"
        }
      ],
      "ratio": "1:1",
      "title": "Roots"
    }
  ],
  "createdAt": "2026-10-12T08:15:30Z",
  "externalReference": "mix-2026-10-12-0042",
  "id": "cbm_8Wq3Nd6HtY1mKx4LcP9RvB",
  "listValue": "91.33",
  "locationId": "loc_4fK9xQ2mLr8TzB1vNc7HdW",
  "note": "35 min",
  "recipeId": "rcp_6Jn2Xw8QdT5bVh3ZmK7LsF",
  "registeredBy": "Anna",
  "staffId": "stf_2Hs7Bq4MnX9cLk1VtR6PzD",
  "title": "Roots and lengths",
  "undoneAt": "2026-10-12T09:02:11Z",
  "undoneBy": "Anna",
  "updatedAt": "2026-10-12T08:15:30Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.