Webhook subscriptions
List webhook event types
Lists every event topic available for subscription, a static example of
the payload currently delivered for that topic, and the existing signing
verification guide. Requires webhooks:read.
Overview
The catalogue is one
complete page, performs no Store-data reads, and accepts no query
parameters. Topic values are expected to grow; clients must tolerate
unknown future values. WEBHOOKproduct:created and WEBHOOKorder:created emit only for
Stores with custom API access; catalogue visibility and successful
subscription registration do not establish delivery eligibility. Contact
Sign Customiser support to confirm access if those events do not arrive.
A topic with deprecated: true still fires with an unchanged payload; its
description names the replacement operation and the scope that operation
requires.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: webhooks:read
curl https://web.signcustomiser.com/api/v3/webhook-event-types \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": [
{
"object": "webhook_event_type",
"topic": "product:created",
"description": "Sent after Sign Customiser creates a customer-designed product.",
"deprecated": false,
"example_payload": {
"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
}
},
"links": {
"signature_verification": "https://www.signcustomiser.com/help/integrations/subscribe-to-webhooks/"
}
},
{
"object": "webhook_event_type",
"topic": "order:created",
"description": "Sent after Sign Customiser records an order containing customised products.",
"deprecated": false,
"example_payload": {
"order": {
"order_id": 1,
"order_number": 4,
"external_order_number": "SIGN-12345",
"external_id": "12345",
"order_total": 120000,
"app_total": 100000,
"currency": "USD",
"shipping_line": "ground",
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"company": "Acme",
"address_1": "123 Fake Street",
"address_2": "Unit 456",
"city": "Brisbane",
"state": "Queensland",
"postcode": "4000",
"country": "Australia",
"phone": "123456789",
"email": "john@example.com",
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
},
"shipping_address": {
"first_name": "John",
"last_name": "Doe",
"company": "Acme",
"address_1": "123 Fake Street",
"address_2": "Unit 456",
"city": "Brisbane",
"state": "Queensland",
"postcode": "4000",
"country": "Australia",
"phone": "123456789",
"email": "john@example.com",
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"phone": "123456789",
"email": "john@example.com",
"external_id": "1234",
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
},
"products": [
{
"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
}
],
"legacy_products": [],
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
}
},
"links": {
"signature_verification": "https://www.signcustomiser.com/help/integrations/subscribe-to-webhooks/"
}
},
{
"object": "webhook_event_type",
"topic": "form:submitted",
"description": "Deprecated. Sent after a customer submits a Sign Customiser form. Read submissions from GET /api/v3/quotes with the quotes:read scope instead, and deduplicate on the quote id. This webhook still fires on every new submission with an unchanged payload, and has no removal date.",
"deprecated": true,
"example_payload": {
"form_submission": {
"submission_number": 1234,
"type": "custom_form_submission",
"form": {
"form_id": 1,
"customiser_id": 1,
"label": "Custom Design Form",
"description": "Lorem ipsum dolor",
"email": "test@test.com",
"subject": "My Custom Email Subject",
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
},
"responses": [
{
"field_id": "abcd1234",
"value": "test@test.com",
"name": "Your Email",
"input_type": "EMAIL"
}
],
"created_at": "2024-01-01T00:00:00+00:00",
"ad_click_ids": {
"gclid": "CjwKCAjw7p6aBhAoBhAAEiwA..."
},
"utm_params": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "spring_sale"
}
}
},
"links": {
"signature_verification": "https://www.signcustomiser.com/help/integrations/subscribe-to-webhooks/"
}
}
],
"pagination": {
"has_more": false,
"next_cursor": null
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/webhook-event-types",
"documentation": "https://www.signcustomiser.com/help/api/",
"next": null
},
"meta": {
"api_version": "v3",
"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 webhooks:read scope.",
"required_scopes": [
"webhooks:read"
],
"granted_scopes": [
"webhooks:write"
],
"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": "Wait before retrying.",
"retry_after": 60,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}