Abyssale allows you to create webhooks that send real-time data to any third-party application or service when a set event occurs.
Create an Abyssale Webhook
To create a webhook, log in to your Abyssale account, and perform the following steps:
Head to the Workspace settings.
Click on the Webhooks tab on the left navigation.
Click on the "Create new webhook" button located at the top of the page. The Create new webhook window opens, in two columns: the URL and the events on the left, the designs on the right.
Enter the Webhook URL (mandatory).
Tick one or more Events. A short description under each event tells you when it is sent.
On the right, choose the designs the webhook listens to: keep All designs, or switch to Specific designs and tick the designs you want.
Click Create webhook.
Webhook parameters available
When creating a webhook on Abyssale, certain parameters are available to customize which events will be sent to your webhook URL.
Webhook URL (mandatory): Specify the URL or web address where the data will be sent once the webhook is triggered. The URL will receive an HTTP POST request when the selected event happens.
Events: choose which events are sent to your URL. Each event has a description in the window, and the counter shows how many you selected (for example "0 of 5").
New Generation (
NEW_BANNER): a single visual generated in the app, or asynchronously via the API. Synchronous API generation does not trigger it, because the file is already returned in the response.New Export (
NEW_EXPORT): a ZIP export is ready to download. Exports apply to the whole workspace and can't be filtered by designs.New batch generation (
NEW_BANNER_BATCH): an async API generation request has finished, with or without errors (multiple images at once, mp4, gif & HTML5).Design approval status (
TEMPLATE_STATUS): a design's workflow status changes (in review, approved, rejected...). Get the new status of your design.Banner status: a generated asset is approved or rejected.
Designs (optional): by default the webhook covers All designs. Switch to Specific designs to only receive data for the designs you pick. In the list you can search by name, filter by project (All projects) and by type (All types: Static, Animated, Print, Print - Multipage), show only your selected designs, and use Clear selection or Reset filters. Each design is shown with a thumbnail, its project and its type.
đĄ Tips : You can select multiple events at a time.
Note : A webhook will not trigger on local environments such as localhost.
Manage your webhooks
All your webhooks are listed in Workspace settings > Webhooks. By default the list shows the active webhooks.
Filter the list
Search webhooks URL: type part of a URL to find a webhook.
Source: All, Abyssale app or Integration.
Event: All, New Generation, New Export, New batch generation, Design approval status or Banner status.
Status: Active (default), Revoked or All.
Read the columns
Type / Status: the event(s) of the webhook, one per line, with its status (Active or Revoked).
URL: the endpoint that receives the data.
Designs: "All designs" if the webhook covers every design, or the number of designs (for example "1 design") if it only covers some. Hover it to see which designs. "Deleted designs" appears when the designs it listened to no longer exist.
Created: the date the webhook was created.
Creation source: Abyssale app or Integration.
Edit or delete a webhook
Click the ... (More options) button at the end of a row. On an active webhook, the menu offers Edit and Delete. The copy icon next to it copies the webhook URL.
Why a webhook gets revoked, and how to turn it back on
When deliveries to a webhook URL keep failing, Abyssale revokes the webhook. A revoked webhook shows a red Revoked status in the list.
Once your endpoint is fixed, you can turn the webhook back on instead of deleting it and creating it again:
Set the Status filter to Revoked.
Click the ... button at the end of the webhook's row.
Click Enable.
Securing your webhook endpoint
Since your webhook URL is publicly reachable, you should verify that incoming requests genuinely come from Abyssale before processing them.
Every webhook delivery is signed: Abyssale sends an X-Abyssale-Signature header computed from the request body and your workspace's signing secret. The header also embeds a timestamp, so stale or replayed deliveries can be rejected (the default freshness window is 5 minutes).
To verify deliveries:
Retrieve your workspace's signing secret with
GET /signing-secret(keep it server-side, like an API key).On each delivery, recompute the signature from the raw request body and compare it to the
X-Abyssale-Signatureheader. Always verify against the raw body, re-serialized JSON will produce a different signature.Reject anything that doesn't match (respond with a 401 and don't process the payload).
Managing your secret: rotate it periodically or when someone with access leaves (POST /signing-secret/rotate), and revoke it immediately if it ever leaks (POST /signing-secret/revoke).
For the full header format, verification steps in other languages, rotation details and code samples, see the signature verification guide.
Tip: even with verification in place, your endpoint should acknowledge receipt quickly, Abyssale retries deliveries that aren't acknowledged.
API Reference for webhook
Check our developer page to learn more about Abyssale webhook. For the payload of each event, see the events reference.





