Customiser icons
Delete an icon
Removes the icon and returns a deletion receipt: a snapshot of exactly
what was removed, so the caller can verify and report the change. Requires
customisers:write and an Idempotency-Key; retrying the same request
and key replays the original receipt after the row is gone.
Overview
The generated icon font is left as it is, exactly as the merchant admin leaves it: the deleted icon's glyph stays in the font until the next icon create or update rebuilds it, and nothing draws a glyph no icon points at. Nothing on the server resolves an icon out of a saved design, so no icon is ever in use and this delete has no 409 to answer with. The shared delete guard still runs, so the family gains the refusal the moment a reference kind is registered for it. 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 icon id.
Example: 9
curl https://web.signcustomiser.com/api/v3/customisers/1/icons/9 \
--request DELETE \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "icon_deletion_receipt",
"id": 9,
"customiser_id": 42,
"deleted": true,
"resource": {
"object": "icon",
"id": 9,
"customiser_id": 42,
"name": "Heart",
"svg": "<svg viewBox=\"0 0 24 24\"><path d=\"M4 4h16v16H4z\"/></svg>",
"rendered_svg": "<svg viewBox=\"0 0 24 24\"><path d=\"M4 4h16v16H4z\"/></svg>",
"min_height_cm": 5,
"icon_font": {
"glyph_code": "f101",
"font_family": "icon-font-a1b2c3d4",
"ttf_url": "https://cdn.signcustomiser.com/icon-fonts/icons.ttf"
},
"sort_order": 1,
"created_at": "2026-08-13T00:00:00Z",
"updated_at": "2026-08-13T00:00:00Z"
}
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customisers/42/icons/9",
"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/idempotency_key_conflict",
"title": "Idempotency key conflict",
"status": 409,
"code": "idempotency_key_conflict",
"detail": "This Idempotency-Key was already used for a different request on this operation.",
"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"
}