Sign Customiser

Navigation

Dark mode

Use this as the product creation callback for custom integrations. When a customer finishes a design, Sign Customiser POSTs this payload to the create-product URL configured on your custom integration.

WEBHOOKproduct:created

Overview

If your Store has dual quantities enabled, the payload also includes inch measurements and authored_units. Verify the signature, create the product in your own platform, then return a 200 JSON response containing the external_id you will later send in POST/api/v2/orders.

Verification

Sign Customiser delivers this webhook to your own endpoint and signs the payload withx-webhook-timestampandx-webhook-signature. Validate both values before processing the payload.

Delivery headers

x-webhook-timestampstringheaderrequired

Unix timestamp used when generating the delivery signature.

Example: 1704067200

x-webhook-signaturestringheaderrequired

SHA-256 HMAC signature for the product:created payload.

Example: YOUR_GENERATED_SIGNATURE

Payload

productobjectbody

Payload example

application/json
{
  "product": {
    "product_image_url": "https://d1no4rdxmwcuog.cloudfront.net/default/app-images/demonstration_image_1.jpg",
    "product_id": 1,
    "title": "Custom Neon: Hello World",
    "description": "Text: Hello World\nColour: Red\nFont: Comics",
    "description_html": "<p>Text: Hello World</p>\n<p>Colour: Red</p>\n<p>Font: Comics</p>",
    "external_id": "1234",
    "external_data": [],
    "price": 10000,
    "compare_price": 15000,
    "customiser_id": 1,
    "customiser_language_id": 1,
    "customiser_language_code": "en",
    "customiser_default_language_code": "en",
    "customiser_languages_version": "example-version",
    "customiser_language_hash": "example-hash",
    "customer_display_snapshot": {
      "line_items": {
        "Text": "Hello World"
      },
      "fields": {
        "text": {
          "label": "Text",
          "value": "Hello World"
        }
      }
    },
    "logo_upload_id": null,
    "uploads": [
      {
        "url": "https://d1no4rdxmwcuog.cloudfront.net/default/app-images/demonstration_image_1.jpg",
        "path": "app-images/demonstration_image_1.jpg",
        "type": "product_image"
      }
    ],
    "logo_upload": null,
    "width_cm": 10,
    "height_cm": 10,
    "length_cm": 10,
    "border_margin_cm": null,
    "mounting_letter_part": null,
    "created_at": "2024-01-01T00:00:00+00:00",
    "updated_at": "2024-01-01T00:00:00+00:00",
    "letter_heights_cm": null,
    "width_in": 3.9370079,
    "height_in": 3.9370079,
    "length_in": 3.9370079,
    "border_margin_in": null,
    "authored_units": {
      "width_cm": "centimetres",
      "height_cm": "centimetres",
      "length_cm": "centimetres"
    }
  }
}
Product created
curl https://your-app.example.com/sign-customiser/webhooks \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'x-webhook-timestamp: 1704067200' \
  --header 'x-webhook-signature: YOUR_GENERATED_SIGNATURE' \
  --data '{
  "product": {
    "product_image_url": "https://d1no4rdxmwcuog.cloudfront.net/default/app-images/demonstration_image_1.jpg",
    "product_id": 1,
    "title": "Custom Neon: Hello World",
    "description": "Text: Hello World\nColour: Red\nFont: Comics",
    "description_html": "<p>Text: Hello World</p>\n<p>Colour: Red</p>\n<p>Font: Comics</p>",
    "external_id": "1234",
    "external_data": [],
    "price": 10000,
    "compare_price": 15000,
    "customiser_id": 1,
    "customiser_language_id": 1,
    "customiser_language_code": "en",
    "customiser_default_language_code": "en",
    "customiser_languages_version": "example-version",
    "customiser_language_hash": "example-hash",
    "customer_display_snapshot": {
      "line_items": {
        "Text": "Hello World"
      },
      "fields": {
        "text": {
          "label": "Text",
          "value": "Hello World"
        }
      }
    },
    "logo_upload_id": null,
    "uploads": [
      {
        "url": "https://d1no4rdxmwcuog.cloudfront.net/default/app-images/demonstration_image_1.jpg",
        "path": "app-images/demonstration_image_1.jpg",
        "type": "product_image"
      }
    ],
    "logo_upload": null,
    "width_cm": 10,
    "height_cm": 10,
    "length_cm": 10,
    "border_margin_cm": null,
    "mounting_letter_part": null,
    "created_at": "2024-01-01T00:00:00+00:00",
    "updated_at": "2024-01-01T00:00:00+00:00",
    "letter_heights_cm": null,
    "width_in": 3.9370079,
    "height_in": 3.9370079,
    "length_in": 3.9370079,
    "border_margin_in": null,
    "authored_units": {
      "width_cm": "centimetres",
      "height_cm": "centimetres",
      "length_cm": "centimetres"
    }
  }
}'
Response to return
{
  "external_id": "your-product-id-123"
}

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