Webhooks
What are Webhooks?
Through the use of webhooks your application can subscribe to events that occur within Violet. Webhooks are an efficient alternative to continuously polling for anticipated events or changes to data.
As an example, a webhook can notify your app when an order's status has changed or a merchant has connected to your app. By being made aware of these events in near-real time your app can instantly react to updates and perform any necessary actions.
Webhook Entity Types
Violet organizes webhook events by entity type to make it easier to find and understand the events relevant to your integration. Browse all available webhook events by entity in the Webhook Events section:
Orders - Track order lifecycle from placement through fulfillment and returns
Merchants - Monitor merchant connections and health status
Offers - Get notified of product availability changes
Collections - Track collection updates and contents
Syncs - Monitor catalog synchronization operations
Payout Accounts - Track merchant payout account lifecycle
Payment Transactions - Monitor payment capture and refund status
Transfers - Track fund transfers to merchant accounts
Getting Started
To work with webhooks, you'll need to:
Set up webhook endpoints - Configure your webhook URLs and subscriptions
Understand webhook headers - Learn about the headers Violet sends with each webhook
Handle webhook events - Implement proper webhook handling in your application
Test with simulated events - Use our simulation tools to test your webhook handling
Webhook Security
All webhooks include an X-Violet-Hmac header containing a signed HMAC using your app secret. Always validate this signature to ensure the webhook came from Violet and hasn't been tampered with.
Webhook Reliability
Webhooks are delivered on a best-effort basis. Your service should:
Return a 2xx status code to acknowledge receipt
Process webhooks idempotently using the
X-Violet-Event-IdheaderImplement retry logic for failed processing
Handle duplicate deliveries gracefully
Last updated
Was this helpful?