Skip to main content
Webhooks let you receive real-time HTTP notifications when events occur in Entri. Instead of polling the API to check for changes, you register a URL and Entri will POST a JSON payload to it whenever a subscribed event fires. Webhooks are useful for triggering downstream workflows — for example, automatically pulling translations into your codebase when a language reaches 100% completion, or sending a Slack notification when an import finishes.

Supported Events

Endpoints

Organization-level webhooks
Project-level webhooks

Create a Webhook

When you create a webhook, Entri generates a signing secret for you. The secret is returned only once in the creation response — store it immediately in a secure location.
You do not provide a secret — Entri auto-generates one with crypto.randomBytes(32). The secret field in the response is shown only once.
Response:

Webhook Payload Structure

Every webhook POST has a JSON body with consistent structure:

Request Headers

Each webhook delivery includes these headers:

Payload Verification

Entri signs every webhook request with an HMAC-SHA256 signature using the auto-generated webhook secret. The signature is included in the X-Webhook-Signature header as a plain hex string (no prefix):
Verify the signature in your receiver before processing the payload:
Always use timingSafeEqual when comparing signatures. String equality (===) is vulnerable to timing attacks.

Test a Webhook

Send a test delivery to verify your endpoint is reachable:
The test delivery sends an event with type webhook.test:

Key Notes

  • Your endpoint must respond with a 2xx status code within 10 seconds to be considered a successful delivery.
  • Failed deliveries are not automatically retried. Monitor failureCount on the webhook object and investigate delivery failures promptly.
  • Webhooks can be scoped to a specific project by setting projectId, or created at the organization level to receive events across all projects.