Sign Customiser

Customiser materials

Validate a material image attach

Copy page

Dry-runs the attach: the slot must exist on this material, the upload must exist for this store and this API key, and its purpose must be the slot's. Nothing is written, the upload is not consumed, and no idempotency key is spent.

POST/api/v3/customisers/{customiser_id}/materials/{material_id}/images/{image_slot}/validate-update

Overview

Requires customisers:write. The staged bytes are deliberately not read, so this cannot tell you whether the file is a usable image — that verdict only exists once the attach reads the object, and reading it here would let a preflight mark a good upload rejected. Treat a valid verdict as "the upload is attachable", not "the file is sound".

Authorisation

Bearer token required. Include it in theAuthorization header.

Required scope: customisers:write

Path parameters

customiser_idstringpathrequired

The customiser id.

Example: 1

material_idstringpathrequired

The material id.

Example: 5

image_slotstringpathrequired

Which image to write: image or button_image.

Example: image

Request body

upload_idstringbody

Request body example

application/json
{
  "upload_id": "upl_9f2c4b7ad13e6058ba41cd"
}
Validate a material image attach
curl https://web.signcustomiser.com/api/v3/customisers/1/materials/5/images/image/validate-update \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "upload_id": "upl_9f2c4b7ad13e6058ba41cd"
}'
Response
{
  "data": {
    "object": "material_image_validation",
    "operation": "update",
    "customiser_id": 42,
    "material_id": 5,
    "image_slot": "image",
    "valid": true
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/materials/5/images/image/validate-update",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}