Sign Customiser

Navigation

Dark mode

Replace all pricing configuration for a customiser. This is a full replacement: sizes and price-list rows omitted from the payload are deleted.

PUT/api/v2/customisers/{customiser}/pricing
PUTUpdate customiser pricing
PUT/api/v2/customisers/{customiser}/pricing

Update customiser pricing

Replace all pricing configuration for a customiser. This is a full replacement: sizes and price-list rows omitted from the payload are deleted. A replacement that would delete size or price-list records still referenced by fonts or settings is rejected with a 409 and no changes are applied. The `pricing_model` value is the internal enum name for the customiser's pricing model. The current product names are: `FIXED_WIDTH` is the Simple Letter Model, `MATERIAL_LENGTH` is the Advanced Letter Model, and `FRAME_FIT` is the Frame Fit Model. This endpoint cannot switch a customiser to a different pricing model, and the deprecated `FIXED_HEIGHT` legacy model is rejected with a 422. Error responses always include a human-readable `message` field. Validation failures also include an `errors` object keyed by field path.

Authorisation

The Authorization header expects a Bearer token. Generate one on the API keys page in your dashboard.

Path

The customiser ID.

Body
Update customiser pricing

Overview

A replacement that would delete size or price-list records still referenced by fonts or settings is rejected with a 409 and no changes are applied. The pricing_model value is the internal enum name for the customiser's pricing model. The current product names are: FIXED_WIDTH is the Simple Letter Model, MATERIAL_LENGTH is the Advanced Letter Model, and FRAME_FIT is the Frame Fit Model. This endpoint cannot switch a customiser to a different pricing model, and the deprecated FIXED_HEIGHT legacy model is rejected with a 422. Error responses always include a human-readable message field. Validation failures also include an errors object keyed by field path.

Authorisation

Bearer token required. Include it in the Authorization header.

Path parameters

customiserstringpathrequired

The customiser ID.

Example: 1

Request body

pricingobjectbody

Request body example

application/json
{
  "pricing": {
    "pricing_model": "FIXED_WIDTH",
    "sizes": [
      {
        "size_id": 1,
        "client_key": "small",
        "name": "Small",
        "description": "Up to 50cm wide",
        "sort_order": 1,
        "char_limit": 20,
        "line_limit": 3,
        "min_char": 1,
        "width_cm": 50,
        "line_height_cm": 12,
        "height_strategy": "WIDTH",
        "height_measurement_mode": "LINE_HEIGHT"
      }
    ],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": [
        {
          "size_id": 1,
          "base_price": {
            "line_1": 1000,
            "line_2": 1200,
            "line_3": 1400
          },
          "width_limit_cm": 100,
          "height_limit_cm": 50,
          "price_per_sq_cm": 0.05,
          "width_modifier": 1,
          "height_modifier": 1,
          "length_modifier": 1
        }
      ]
    },
    "price_lists": [
      {
        "pricing_id": 10,
        "name": "Standard",
        "letter_pricing_mode": "EVERY_LETTER_COST",
        "letter_pricing_method": "material_length",
        "shipping": {
          "calculation": "physical",
          "add_weight_to_product": false
        },
        "rows": [
          {
            "size_id": 1,
            "base_price": {
              "line_1": 1000,
              "line_2": 1200,
              "line_3": 1400
            },
            "letter_price": {
              "line_1": 100,
              "line_2": 120,
              "line_3": 140
            },
            "letter_price_by_position": {
              "line_1": [
                0,
                100
              ],
              "line_2": [
                0,
                120
              ],
              "line_3": [
                0,
                140
              ]
            },
            "price_per_cm": 0.5,
            "price_per_letter_by_position": [
              0,
              100,
              125
            ],
            "max_price_multiplier": 3,
            "width_limit_cm": 100,
            "height_limit_cm": 50,
            "price_per_sq_cm": 0.05,
            "width_modifier": 1,
            "height_modifier": 1,
            "length_modifier": 1
          }
        ]
      }
    ],
    "sheet_pricing": {
      "pricings": [
        {
          "cmLimitWidth": 4326.41688,
          "cmLimitHeight": 4326.41688,
          "basePrice": 77,
          "pricePerSqCm": 8
        }
      ]
    }
  }
}
Update customiser pricing
curl https://web.signcustomiser.com/api/v2/customisers/1/pricing \
  --request PUT \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "pricing": {
    "pricing_model": "FIXED_WIDTH",
    "sizes": [
      {
        "size_id": 1,
        "client_key": "small",
        "name": "Small",
        "description": "Up to 50cm wide",
        "sort_order": 1,
        "char_limit": 20,
        "line_limit": 3,
        "min_char": 1,
        "width_cm": 50,
        "line_height_cm": 12,
        "height_strategy": "WIDTH",
        "height_measurement_mode": "LINE_HEIGHT"
      }
    ],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": [
        {
          "size_id": 1,
          "base_price": {
            "line_1": 1000,
            "line_2": 1200,
            "line_3": 1400
          },
          "width_limit_cm": 100,
          "height_limit_cm": 50,
          "price_per_sq_cm": 0.05,
          "width_modifier": 1,
          "height_modifier": 1,
          "length_modifier": 1
        }
      ]
    },
    "price_lists": [
      {
        "pricing_id": 10,
        "name": "Standard",
        "letter_pricing_mode": "EVERY_LETTER_COST",
        "letter_pricing_method": "material_length",
        "shipping": {
          "calculation": "physical",
          "add_weight_to_product": false
        },
        "rows": [
          {
            "size_id": 1,
            "base_price": {
              "line_1": 1000,
              "line_2": 1200,
              "line_3": 1400
            },
            "letter_price": {
              "line_1": 100,
              "line_2": 120,
              "line_3": 140
            },
            "letter_price_by_position": {
              "line_1": [
                0,
                100
              ],
              "line_2": [
                0,
                120
              ],
              "line_3": [
                0,
                140
              ]
            },
            "price_per_cm": 0.5,
            "price_per_letter_by_position": [
              0,
              100,
              125
            ],
            "max_price_multiplier": 3,
            "width_limit_cm": 100,
            "height_limit_cm": 50,
            "price_per_sq_cm": 0.05,
            "width_modifier": 1,
            "height_modifier": 1,
            "length_modifier": 1
          }
        ]
      }
    ],
    "sheet_pricing": {
      "pricings": [
        {
          "cmLimitWidth": 4326.41688,
          "cmLimitHeight": 4326.41688,
          "basePrice": 77,
          "pricePerSqCm": 8
        }
      ]
    }
  }
}'
Response
{
  "pricing": {
    "customiser_id": 1,
    "pricing_model": "FIXED_WIDTH",
    "value_units": {
      "base_price": "minor_currency_units",
      "letter_price": "minor_currency_units",
      "letter_price_by_position": "minor_currency_units",
      "price_per_letter": "minor_currency_units",
      "price_per_letter_by_position": "minor_currency_units",
      "price_per_cm": "currency_units_per_cm",
      "price_per_sq_cm": "currency_units_per_sq_cm_or_weight_unit"
    },
    "sizes": [],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": []
    },
    "price_lists": []
  }
}

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