Skip to main content

We use cookies to improve Engium and measure marketing. Choose what you're comfortable with.

Manage preferences

We use cookies to improve Engium and measure marketing. Choose what you're comfortable with.

Manage preferences
DevPortal
GuidesAPI ReferenceChangelogSupport
person
rocket_launch

Engium Docs

v2.4.0-stable

Core Concepts

rocket_launchGetting Started
lockAuthentication

Messaging API

apiEndpoints
terminalSDKs
webhookWebhooks
analyticsSystem StatushelpDocumentation Help
Guideschevron_rightWebhooks

Webhooks & Events

Webhooks let Engium push real-time event notifications to your server — new messages, booking state changes, AI handoffs, and more. Register an HTTPS endpoint and Engium will POST a signed JSON payload on each event.

info

Prerequisites

  • •A publicly accessible HTTPS endpoint (HTTP rejected; TLS required).
  • •API Key and Tenant ID for registering the webhook via the API or dashboard.

Implementation

terminal
# Register a webhook endpoint
curl -X POST https://api.engium.app/api/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Tenant-ID: YOUR_TENANT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourdomain.com/hooks/engium",
    "events": [
      "conversation.message.received",
      "booking.confirmed",
      "booking.cancelled"
    ],
    "description": "Production webhook"
  }'

# Response includes webhook_secret — save it securely!

Request Parameters

ParameterTypeRequirementDescription
urlstringRequiredYour HTTPS endpoint. Engium POSTs signed JSON here. Must return 2xx within 10 seconds or the delivery is retried.
eventsstring[]RequiredEvent types to subscribe to. Use ["*"] to receive all events. Supported: conversation.*, booking.*, payment.*.
descriptionstringOptionalHuman-readable label shown in the dashboard. Helpful for distinguishing staging vs production endpoints.
is_activebooleanOptionalEnable or disable delivery without deleting the endpoint. Defaults to true.
urlRequired

Your HTTPS endpoint. Engium POSTs signed JSON here. Must return 2xx within 10 seconds or the delivery is retried.

Type:string
eventsRequired

Event types to subscribe to. Use ["*"] to receive all events. Supported: conversation.*, booking.*, payment.*.

Type:string[]
descriptionOptional

Human-readable label shown in the dashboard. Helpful for distinguishing staging vs production endpoints.

Type:string
is_activeOptional

Enable or disable delivery without deleting the endpoint. Defaults to true.

Type:boolean
warning

Always verify signatures

Never process a webhook payload without verifying the X-Engium-Signature header using HMAC-SHA256. Skipping this check exposes you to replay attacks and spoofed events.

info

Automatic retry policy

Non-2xx responses and timeouts are retried up to 5 times with exponential back-off (1 s → 5 s → 25 s → 125 s → 625 s). Failed deliveries and their payloads are visible in the Engium dashboard under Settings → Webhooks.

check_circle

Real-time delivery receipts

Subscribe to conversation.message.delivered and conversation.message.read for WhatsApp read receipts. Build live delivery dashboards or trigger follow-up automations the moment a customer sees your message.

Was this helpful?

Previousarrow_backSending First Message
expand_more

On this page

editEdit on GitHubreportReport Issue
auto_awesomeAI Insight

Consider using Template IDs for better deliverability and localised content management across your 9 supported languages.

© 2026 Engium AI. All systems operational.

Privacy PolicyTerms of ServiceSecurityStatus