Skip to main content

Overview

Webhooks allow you to receive real-time HTTP notifications when events occur in your AppDNA application. When a subscribed event fires, AppDNA sends a POST request to your configured endpoint with a JSON payload describing the event.

Supported Event Types

AppDNA supports 16 webhook event types:

Payload Format

Every webhook delivery sends a JSON payload with the following structure:

Request Headers

Every webhook request includes the following headers:

Signature Verification

Every webhook request is signed with your endpoint secret using HMAC-SHA256. Always verify the signature before processing the payload. The signature is sent in the X-AppDNA-Signature header in the format:
The signing input is the raw JSON stringified request body.
Always use constant-time comparison (e.g., crypto.timingSafeEqual in Node.js or hmac.compare_digest in Python) when verifying signatures. Simple string comparison is vulnerable to timing attacks.

Retry Policy

If your endpoint returns a non-2xx response or times out, AppDNA retries the delivery with exponential backoff: Maximum retries: 5 attempts total (1 initial delivery + 4 retries). Delivery timeout: 30 seconds. If your server does not respond within 30 seconds, the delivery is marked as failed and scheduled for retry. Maximum response body logged: 10 KB. Response bodies exceeding this limit are truncated in delivery logs.
After 50 consecutive delivery failures, the webhook endpoint is automatically disabled. You can re-enable it from the dashboard or via the API.

Management API

All management endpoints require Customer JWT authentication (Authorization: Bearer header).

List Endpoints

Returns all configured webhook endpoints for the current application.

Create Endpoint

Request body:
Webhook URLs must use HTTPS. HTTP endpoints are rejected.

Update Endpoint

Update any field on an existing endpoint. Partial updates are supported.

Delete Endpoint

Permanently deletes the endpoint and all associated delivery history.

Test Endpoint

Sends a webhook.test event to the endpoint. Use this to verify your endpoint is reachable and correctly verifying signatures.

Rotate Signing Secret

Generates a new signing secret for the endpoint. The previous secret is immediately invalidated.
After rotating a secret, update your server’s verification code with the new secret before the next delivery attempt.

Disable Endpoint

Temporarily disables the endpoint. No deliveries are attempted while disabled. Events that occur during this period are not queued.

Enable Endpoint

Re-enables a previously disabled endpoint.

List Deliveries

Returns a paginated list of delivery attempts for the endpoint, including status, response code, and timestamps.

Delivery Detail

Returns full details for a specific delivery attempt, including request/response headers and body.

Retry Failed Delivery

Manually retries a failed delivery. The retry is attempted immediately, independent of the automatic retry schedule.

Event Catalog

Returns the full list of supported webhook event types with descriptions.
Your webhook integration is working correctly when you receive a webhook.test event at your endpoint and can successfully verify the signature.