Customiser letter parts
Delete a letter-part colour selection
Removes a letter part's colour selection and returns a deletion receipt: a snapshot of exactly what was removed, so the caller can verify and report the change. The delete is guarded harder than an option row's, because it removes a whole selection bucket.
Overview
A bucket that still holds colours, is shared, or
has translated copy is refused with a 409 resource_in_use naming what
points at it. A part the letter type still lists in letter_parts, or one
whose configuration or uploaded image has been changed from its defaults,
is refused with a 422 letter_part_not_deletable carrying the reason:
drop the part from the letter type, or reset what was changed, and retry.
Requires customisers:write and an Idempotency-Key; retrying the same
request and key replays the original receipt after the bucket is gone.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: customisers:write
Path parameters
The customiser id.
Example: 1
The letter type id.
Example: 7
The letter part.
Example: halo
curl https://web.signcustomiser.com/api/v3/customisers/1/letter-types/7/letter-parts/halo \
--request DELETE \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "letter_part_colour_selection_deletion_receipt",
"customiser_id": 42,
"letter_type_id": 7,
"letter_part": "halo",
"deleted": true,
"resource": {
"object": "letter_part_colour_selection",
"customiser_id": 42,
"letter_type_id": 7,
"letter_part": "halo",
"name": null,
"description": null,
"optional": null,
"optional_label": null,
"optional_default_none": false,
"lightsource": false,
"custom_image": false,
"show_default_upload_image": true,
"show_in_text_editor": true,
"text_enabled": false,
"default_upload_image_url": 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/letter-types/7/letter-parts/halo",
"documentation": "https://www.signcustomiser.com/help/api/"
},
"meta": {
"api_version": "v3",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
}{
"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"
}{
"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"
}{
"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"
}{
"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"
}{
"type": "https://www.signcustomiser.com/help/api/problems/resource_in_use",
"title": "Resource in use",
"status": 409,
"code": "resource_in_use",
"detail": "This letter part still has records pointing at its colour selection.",
"errors": [
{
"pointer": "",
"code": "resource_in_use",
"detail": "The letter part is referenced by other records."
}
],
"reason": "selection_not_empty",
"referenced_by": [
{
"type": "colour",
"id": 31
}
],
"referenced_by_count": 1,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/letter_part_not_deletable",
"title": "Letter part not deletable",
"status": 422,
"code": "letter_part_not_deletable",
"detail": "This letter part cannot be removed in the state it is in.",
"errors": [
{
"pointer": "",
"code": "letter_part_not_deletable",
"detail": "The letter part cannot be deleted: configured_letter_part."
}
],
"reason": "configured_letter_part",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"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"
}