Sign Customiser

Applies an RFC 7396 JSON Merge Patch to one colour: properties omitted from the body are unchanged, and null clears a nullable property (description, hexcode, multi_colour_hexcodes, min_width_cm, min_height_cm). Arrays are replaced wholesale.

PATCH/api/v3/customisers/{customiser_id}/colours/{colour_id}

Overview

Read-only and unknown fields are rejected — sending one at all is a 422, whatever its value. An empty object {} is a valid no-op. The patched result must still be renderable: clearing the last hex value of a single colour, or switching to multi/flow without hex values, is a 422 colour_value_required, and switching to the custom_texture finish is refused with a 422 texture_image_required unless the colour already carries a texture image. Requires customisers:write. An Idempotency-Key is optional here: sending one makes the update safe to retry (an exact repeat replays the original response; the same key with a different body is a 409). The update clears the customiser's cached storefront configuration and runs the advisory language sync, and never regenerates Shopify products, product images, or the product cache.

Authorisation

Bearer token required. Include it in theAuthorization header.

Required scope: customisers:write

Path parameters

customiser_idstringpathrequired

The customiser id.

Example: 1

colour_idstringpathrequired

The colour id.

Example: 7

Request body

colour_typestringbody
texturestringbody
min_size_rulestringbody
price_multiplier_targetstringbody
namestringbody
descriptionstringbody
hexcodestringbody
multi_colour_hexcodesarraybody
base_priceintegerbody
price_multipliernumberbody

Request body example

application/json
{
  "colour_type": "single",
  "texture": "flat",
  "min_size_rule": "any",
  "price_multiplier_target": "base_letter_price",
  "name": "Warm White",
  "description": "Our warmest white",
  "hexcode": "#FFEEDD",
  "multi_colour_hexcodes": [
    "#FF0000",
    "#00FF00"
  ],
  "base_price": 500,
  "price_multiplier": 1.2
}
Update a colour
curl https://web.signcustomiser.com/api/v3/customisers/1/colours/7 \
  --request PATCH \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "colour_type": "single",
  "texture": "flat",
  "min_size_rule": "any",
  "price_multiplier_target": "base_letter_price",
  "name": "Warm White",
  "description": "Our warmest white",
  "hexcode": "#FFEEDD",
  "multi_colour_hexcodes": [
    "#FF0000",
    "#00FF00"
  ],
  "base_price": 500,
  "price_multiplier": 1.2
}'
Response
{
  "data": {
    "object": "colour",
    "id": 7,
    "customiser_id": 42,
    "name": "Warm White",
    "description": "Our warmest white",
    "colour_type": "single",
    "hexcode": "#FFEEDD",
    "multi_colour_hexcodes": null,
    "texture": "flat",
    "min_width_cm": null,
    "min_height_cm": null,
    "min_size_rule": "any",
    "base_price": 500,
    "currency": "USD",
    "price_multiplier": 1,
    "price_multiplier_target": "base_letter_price",
    "sort_order": 1,
    "image_url": null,
    "example_image_url": null,
    "texture_image_url": null,
    "created_at": "2026-08-13T00:00:00Z",
    "updated_at": "2026-08-13T00:05:00Z"
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/colours/7",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}