Customiser letter types
Delete a letter type
Removes the letter type and returns a deletion receipt: a snapshot of
exactly what was removed, so the caller can verify and report the change.
A letter type anything still references is refused with a 409
resource_in_use listing the referencing rows — references are never
silently cleared.
Overview
A letter type's own letter-part colour selections count
as references, so delete each one through the letter-part routes first.
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
The customiser id.
Example: 1
The letter type id.
Example: 7
curl https://web.signcustomiser.com/api/v3/customisers/1/letter-types/7 \
--request DELETE \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "letter_type_deletion_receipt",
"id": 7,
"customiser_id": 42,
"deleted": true,
"resource": {
"object": "letter_type",
"id": 7,
"customiser_id": 42,
"name": "Front lit",
"description": null,
"shape": null,
"letter_parts": [
{
"letter_part": "face",
"active": true
}
],
"base_price": 0,
"currency": "USD",
"price_multiplier": 1,
"price_multiplier_target": "base_letter_price",
"sort_order": 1,
"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",
"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 type is still referenced by product_type_colour_selection records.",
"errors": [
{
"pointer": "",
"code": "resource_in_use",
"detail": "The letter type is referenced by other records."
}
],
"referenced_by": [
{
"type": "product_type_colour_selection",
"id": 19
}
],
"referenced_by_count": 1,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"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"
}{
"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"
}