generated: '2026-08-02' method: searched source: https://developers.salsify.com/docs/webhook-signing spec_type: Webhooks asyncapi_published: false asyncapi_note: >- Salsify has a real, documented webhook event surface but publishes no AsyncAPI document and no machine-readable event catalog. Nothing has been fabricated - the catalog below is transcribed from the developer-hub webhook guides. docs: - https://developers.salsify.com/docs/webhook-signing - https://developers.salsify.com/docs/webhooks-prod-change - https://developers.salsify.com/docs/digital-asset-webhooks - https://developers.salsify.com/docs/imports-webhooks - https://developers.salsify.com/reference/webhook-signature-verification-algorithm - https://developers.salsify.com/reference/webhook-signature-headers - https://developers.salsify.com/reference/certificate-caching configuration: where: Salsify web application (list/subscription configuration, or the import configuration section) note: >- Webhooks are configured in the app, not via the API. An import webhook added after the import was created only takes effect on the next run. channels: - name: product-change docs: https://developers.salsify.com/docs/webhooks-prod-change payload: Product CRUD API JSON export format, plus a parent_products array trigger_types: - add - change - remove subscriptions: - A product is added to this set - Any property is changed on a product in this set - One of the properties I've selected is changed on a product in this set - A product is removed from this set fields: - 'salsify:destroyed_at - set with the delete date on destroyed products' - 'salsify:parent_id - resolves a product to its entry in parent_products' - trigger_type - add | change | remove - name: digital-asset-change docs: https://developers.salsify.com/docs/digital-asset-webhooks payload: Digital asset CRUD API JSON export format trigger_types: - add - change - remove subscriptions: - A digital asset is added to this set - Any property is changed on a digital asset in this set - One of the properties I've selected is changed on a digital asset in this set - A digital asset is removed from this set fields: - 'salsify:destroyed_at - set with the delete date on destroyed assets' - trigger_type - add | change | remove - name: import-completed docs: https://developers.salsify.com/docs/imports-webhooks payload: JSON notification sent when a Salsify import run completes fields: - result - status of the import, e.g. completed - summary - total number of entities added or updated - errors - array of error messages generated by the import - error_log_url - URL of the full import error log - total_error_count - number of errors generated by the import - import_id - numeric Salsify identifier for the import - import_url - URL of the Salsify import details page related_operations: - openapi/salsify-non-v1-endpoints-openapi.json#starting-an-import-run - openapi/salsify-non-v1-endpoints-openapi.json#getting-the-status-of-an-import-run - name: channel-notification docs: https://developers.salsify.com/docs/webhook-signing payload: Channel notification note: >- Listed by the webhook-signing guide as one of the four supported webhook categories; Salsify publishes no dedicated payload reference for it on the developer hub. security: signing: asymmetric algorithm: SHA-256 key_material: X.509 certificate verification_docs: https://developers.salsify.com/reference/webhook-signature-verification-algorithm certificate_caching_docs: https://developers.salsify.com/reference/certificate-caching guidance: >- Salsify instructs endpoint implementations to verify the digital signature on every request and to ignore any request that cannot be verified. delivery: retries: 15 attempts over 48 hours backoff: exponential coalescing: >- Multiple updates to the same entity in a short window may be coalesced into a single webhook; a change that returns an entity to its original state may fire no webhook at all. ordering: - Multiple non-coalesced updates to the SAME entity are delivered in order. - There is NO ordering guarantee across different entities. list_edit_behavior: >- Adjusting and saving the filters on a smart list does not trigger webhooks for products that enter or leave the list; subsequent changes to those products do.