Overview
Better Data supports two directions of webhook traffic:- Inbound webhooks — external platforms (Stripe, Shopify) notify Better Data of events
- Outbound webhooks — Better Data notifies your systems when domain events occur (planned)
Outbound webhook configuration is in active development.
Contact support@betterdata.co to join the early access list.
Inbound Webhooks
Stripe Billing POST /webhooks/stripe
Status: Live
Handles Stripe subscription and invoice lifecycle events.
Used for billing updates, entitlement recomputation, and audit logging.
Verification
All requests are verified using the stripe-signature header.
Requests without a valid signature are rejected with 400.
Handled events
| Event | What happens |
|---|---|
customer.subscription.created | Org billing record created, entitlements provisioned |
customer.subscription.updated | Plan change applied, TenantCapabilitySnapshot recomputed |
customer.subscription.deleted | Org downgraded, capabilities revoked |
invoice.paid | Payment confirmed, billing audit log written |
invoice.payment_failed | Payment failure recorded, ops alert triggered |
STRIPE_WEBHOOK_SECRET environment variable to your Stripe signing secret.
Product + Inventory Sync (Shopify / Square)
Status: Handler implemented — HTTP route coming soon Better Data can receive product and inventory update events from Shopify and Square to keep your catalog and stock levels in sync.| Event | What happens |
|---|---|
product.create | New product added to Better Data catalog |
product.update | Catalog listing and search index updated |
product.delete | Product removed from active catalog |
inventory.update | Stock level updated at the relevant location |
The inbound HTTP route for product sync is not yet exposed.
Contact support@betterdata.co to enable direct integration while
the self-serve route is in development.
Outbound Webhooks (Planned)
Better Data will send outbound webhook notifications when key domain events occur in your loops. Planned event coverage| Category | Events |
|---|---|
| Loop transitions | Any loop state change (procurement, orders, returns, quality) |
| Import | import.completed, import.partial, import.failed |
| Allocation | order.allocation_failed, order.allocation_succeeded |
| Demand | demand_signal.spike_detected, demand_signal.stockout_risk |
| Billing | subscription.updated, loop_commitment.threshold_reached |
apps.betterdata.co/settings/webhooks
Delivery will include:
- HMAC signature verification
- Retry with exponential backoff
- Delivery log with per-event status
Outbound webhooks are in active development.
Join the early access list: support@betterdata.co
Federation Webhooks (Planned)
Commerce Gateway merchants can configure awebhookUrl to receive
federation events. Delivery is not yet implemented.
Webhook Security
All inbound webhooks verify request authenticity before processing. Stripe:stripe-signature HMAC verification using your webhook signing secret.
Future inbound sources: HMAC-SHA256 signature in x-betterdata-signature header
(implementation in progress).
Never expose webhook secrets in client-side code or public repositories.