EmberlyEmberly Docs

Webhooks

How Emberly uses inbound Stripe webhooks, and the status of outbound webhooks.

Outbound webhooks not yet available

Emberly does not currently support outbound webhooks — you cannot subscribe to events like file uploads or deletions from your own application. This page documents the inbound webhook Emberly uses to receive events from Stripe. Watch the changelog for outbound webhook announcements.


Stripe Payment Webhook

Emberly receives Stripe events at:

POST /api/payments/webhook

This endpoint is for Stripe's use only — do not call it directly. Stripe signs every request with your webhook secret; Emberly verifies the signature before processing.

Handled Events

EventWhat Emberly does
checkout.session.completedActivates a new subscription or one-off purchase (domain slots, storage buckets, etc.) and provisions any associated resources
invoice.payment_succeededRecords the payment, renews the subscription period, and sends a receipt email
invoice.payment_failedMarks the subscription as past-due and sends a payment failure email with the next retry date
customer.subscription.updatedSyncs plan changes (upgrades and downgrades) and adjusts storage/feature limits accordingly
customer.subscription.deletedCancels the subscription, revokes plan-specific features, and deprovisions dedicated storage buckets
charge.failedLogs the failed charge for support visibility
charge.refundedRecords the refund against the relevant transaction

All other event types are acknowledged with 200 OK and ignored.

Self-Hosted Setup

If you are running a self-hosted instance with Stripe billing enabled:

  1. In the Stripe Dashboard, create a webhook endpoint pointing to https://yourdomain.com/api/payments/webhook
  2. Subscribe to all events listed in the table above
  3. Copy the Signing secret (starts with whsec_)
  4. Add it in Admin Panel → Settings → Integrations → Stripe along with your API key

Without the signing secret, Emberly will reject all webhook deliveries with 400.


Outbound Webhooks (Roadmap)

Outbound webhooks — letting your application subscribe to Emberly events like file.uploaded, file.deleted, or url.created — are planned for a future release. When available they will be configured per-account from the dashboard and support HMAC signature verification.

To be notified when this ships, watch the GitHub repository or join the Emberly Discord.

On this page