Sign Customiser

Navigation

Dark mode

Pricing

delete_customiser_font_tier

destructive write

Delete customiser font tier

Copy page

Remove a font tier that no font prices by any more, after the merchant has agreed to it.

Overview

Deletes one font tier of a customiser permanently, so the call requires confirm true and changes nothing without it. A tier that a font or the icon settings still price by is refused with resource_in_use, which lists the referencing records; references are never cleared silently. Calling with dry_run true first returns the same verdict without deleting anything. The result carries the tier as it was. It requires the pricing:write scope and an idempotency_key.

Permission

Requires thepricing:writepermission. A connection without it answersinsufficient_scopenaming the permission to approve.

Annotations

readOnlyHintfalse
destructiveHinttrue
idempotentHinttrue
openWorldHintfalse

Prerequisites

  • A customiser id from list_customisers and a font tier id from list_customiser_font_tiers.
  • The merchant explicit agreement, sent as confirm true.
  • A merchant has connected this store and approved the pricing:write scope.

Side effects

  • Deletes one font tier and its rows permanently.
  • Clears the customiser cached storefront configuration.
  • Spends one unit of the store option-write budget.
  • Claims the idempotency_key for at least 24 hours.

Arguments

customiser_idintegerrequired

The customiser id, from list_customisers.

font_tier_idintegerrequired

The font tier id, from list_customiser_font_tiers.

confirmbooleanrequired unless dry_run is true

Must be true to apply the change, because the price list and its rows are removed permanently and cannot be restored through this connector. Without it the call returns a confirmation_required error and changes nothing.

idempotency_keystringrequired unless dry_run is true

A client-generated key unique to this logical write, such as a UUID. Required: repeating the call with the same key and the same arguments replays the original result instead of writing twice, and the same key with different arguments is an idempotency_key_conflict.

dry_runboolean

When true, the deletion is checked against every font and setting that still prices by the tier is checked and nothing is written: the result is the same verdict the apply would have reached, and a problem the apply would have raised comes back as the same tool error. Defaults to false. A dry run claims no key. A dry run does not require the confirm argument.

Result

The deleted tier id and the tier as it was, with every row. A dry run returns the delete verdict instead and deletes nothing.

request_idstringalways present
storeobjectalways present
store.idintegeralways present
store.namestringalways present
customiser_idintegeralways present
font_tier_idintegeralways present
deletedboolean

True when the tier was deleted. Absent on a dry run, where nothing is deleted.

font_tierobject

The tier as it was when it was deleted, so the caller can report or recreate it. Absent on a dry run.

font_tier.idintegeralways present
font_tier.customiser_idintegeralways present
font_tier.namestring or null
font_tier.letter_pricing_modestring or null

One of: every_letter_cost, price_by_position

font_tier.currencystring or null

The ISO 4217 currency of every integer minor-unit amount on the record.

font_tier.rowsarray of object
font_tier.rows[].size_idinteger or null
font_tier.rows[].base_priceobject
font_tier.rows[].letter_priceobject
font_tier.rows[].letter_price_by_positionobject or null
font_tier.created_atstring or null
font_tier.updated_atstring or null
idempotent_replayboolean

True when this call replayed a previously recorded response for the same idempotency_key instead of applying the write again.

dry_runboolean

Present and true only when dry_run was requested.

validboolean

Present only on a dry run, and always true: a failing dry run returns a tool error instead.

verdictobject

Present only on a dry run: the delete verdict.

Error cases

confirmation_required

Send confirm true once the merchant has agreed to the deletion. Nothing was deleted.

idempotency_subject_changed

The tier lifecycle changed after the recorded deletion. Issue a new key and re-check the resource before writing again.

insufficient_scope

The connection was approved without pricing:write.

rate_limited

The store option-write budget is spent. Wait retry_after seconds.

resource_in_use

A font or the icon settings still price by this tier. referenced_by lists them; move them to another tier first.

resource_not_found

No font tier with that id belongs to that customiser in this store.

Delete a tier the merchant confirmed

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_customiser_font_tier",
    "arguments": {
      "customiser_id": 42,
      "font_tier_id": 7,
      "confirm": true,
      "idempotency_key": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
    }
  }
}
result
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t",
      "store": {
        "id": 12,
        "name": "Demo Signs"
      },
      "customiser_id": 42,
      "font_tier_id": 7,
      "deleted": true,
      "font_tier": {
        "id": 7,
        "customiser_id": 42,
        "name": "Standard",
        "letter_pricing_mode": "every_letter_cost",
        "currency": "USD",
        "rows": [],
        "created_at": "2026-08-13T00:00:00Z",
        "updated_at": "2026-08-13T00:00:00Z"
      },
      "idempotent_replay": false
    }
  }
}

Without confirmation nothing is deleted (error)

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_customiser_font_tier",
    "arguments": {
      "customiser_id": 42,
      "font_tier_id": 7,
      "confirm": false,
      "idempotency_key": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"
    }
  }
}
result
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "isError": true,
    "structuredContent": {
      "error": {
        "code": "confirmation_required",
        "title": "Confirmation required",
        "detail": "Deleting font tier 7 removes the price list and its rows permanently.",
        "recovery": "This operation changes something consequential. Send confirm: true once the merchant has agreed to it.",
        "parameter": "confirm",
        "allowed_values": [
          "true"
        ]
      }
    }
  }
}

Type a question and press Enter. Use the arrow keys to move between the results.