Sign Customiser

Removes the backboard and returns a deletion receipt: a snapshot of exactly what was removed, so the caller can verify and report the change.

DELETE/api/v3/customisers/{customiser_id}/backboards/{backboard_id}

Overview

A backboard anything still references is refused with a 409 resource_in_use listing the referencing rows — support finishes that offer it, materials and mountings that exclude it, and saved presets that chose it — and references are never silently cleared. Requires customisers:write and an Idempotency-Key; retrying the same request and key replays the original receipt after the row is gone. The delete 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

backboard_idstringpathrequired

The backboard id.

Example: 11

Delete a backboard
curl https://web.signcustomiser.com/api/v3/customisers/1/backboards/11 \
  --request DELETE \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
Response200
{
  "data": {
    "object": "backboard_deletion_receipt",
    "id": 11,
    "customiser_id": 42,
    "deleted": true,
    "resource": {
      "object": "backboard",
      "id": 11,
      "customiser_id": 42,
      "name": "Clear Acrylic Panel",
      "description": null,
      "backboard_type": "board",
      "letter_type_ids": [],
      "outline_size": null,
      "allow_multilayer": false,
      "custom_background_enabled": false,
      "show_custom_background": false,
      "base_price": 0,
      "currency": "USD",
      "price_multiplier": 1,
      "price_multiplier_target": "base_letter_price",
      "price_per_sq_cm": null,
      "sort_order": 1,
      "image_url": null,
      "button_image_url": null,
      "geometry": {
        "has_custom_shape": false,
        "status": null,
        "failure_reason": null,
        "measured_at": null
      },
      "created_at": "2026-08-13T00:00:00Z",
      "updated_at": "2026-08-13T00:00:00Z"
    }
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/backboards/11",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
Response400
{
  "type": "https://www.signcustomiser.com/help/api/problems/missing_idempotency_key",
  "title": "Missing idempotency key",
  "status": 400,
  "code": "missing_idempotency_key",
  "detail": "Provide an Idempotency-Key header for this write.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response401
{
  "type": "https://www.signcustomiser.com/help/api/problems/missing_api_key",
  "title": "Missing API key",
  "status": 401,
  "code": "missing_api_key",
  "detail": "Provide a store API key as a bearer token.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response403
{
  "type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
  "title": "Insufficient scope",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "This operation requires the customisers:write scope.",
  "required_scopes": [
    "customisers:write"
  ],
  "granted_scopes": [
    "customisers:read"
  ],
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response404
{
  "type": "https://www.signcustomiser.com/help/api/problems/resource_not_found",
  "title": "Resource not found",
  "status": 404,
  "code": "resource_not_found",
  "detail": "The requested resource does not exist or does not belong to the authenticated store.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response409
{
  "type": "https://www.signcustomiser.com/help/api/problems/resource_in_use",
  "title": "Resource in use",
  "status": 409,
  "code": "resource_in_use",
  "detail": "This backboard is still referenced by support_colour records.",
  "errors": [
    {
      "pointer": "",
      "code": "resource_in_use",
      "detail": "The backboard is referenced by other records."
    }
  ],
  "referenced_by": [
    {
      "type": "support_colour",
      "id": 23
    }
  ],
  "referenced_by_count": 1,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response422
{
  "type": "https://www.signcustomiser.com/help/api/problems/unknown_parameter",
  "title": "Unknown query parameter",
  "status": 422,
  "code": "unknown_parameter",
  "detail": "This endpoint accepts no query parameters.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response429
{
  "type": "https://www.signcustomiser.com/help/api/problems/rate_limited",
  "title": "Too many requests",
  "status": 429,
  "code": "rate_limited",
  "detail": "You have exceeded the request limit for this API key.",
  "retry_after": 37,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}