Webhook events. Full list

Every event SellStein can send to your endpoint, with payload shape and the recommended way to handle each.

Last updated 2026-05-10

Webhooks let your code react to things that happen in SellStein without polling. Here are the events you can subscribe to.

Order events

  • order.created. New order placed (any source: storefront, pay link, manual, API)
  • order.paid. Payment confirmed and captured
  • order.fulfilled. Items marked shipped
  • order.delivered. Carrier confirmed delivery
  • order.cancelled. Order cancelled, refund pending or complete
  • order.refunded. Refund completed (full or partial)

Customer events

  • customer.created. New customer account
  • customer.updated. Fields changed (email, address, marketing consent)
  • customer.deleted. Anonymised per GDPR
  • customer.segment_added. Added to a segment
  • customer.segment_removed. Removed from a segment

Subscription events

  • subscription.created. New subscriber
  • subscription.renewed. Successful recurring charge
  • subscription.payment_failed. Renewal failed; retries pending
  • subscription.past_due. All retries exhausted; subscription on hold
  • subscription.cancelled. Explicitly cancelled by customer or merchant
  • subscription.upgraded / downgraded. Plan change

Payment events

  • charge.succeeded. Card auth + capture cleared
  • charge.failed. Card declined
  • charge.disputed. Chargeback opened
  • charge.dispute_won / dispute_lost. Outcome determined
  • payout.paid. Funds landed in your bank
  • payout.failed. Bank rejected the payout

Inventory events

  • product.low_stock. Stock dropped below the reorder threshold
  • product.out_of_stock. Stock hit 0
  • product.back_in_stock. Stock went from 0 to >0

Configuring

Settings → Developers → Webhooks → New endpoint. Select the events you care about. Don't subscribe to everything; you'll get noise. The signing secret is per-endpoint, so multiple endpoints can listen to the same events with different secrets.

Payload shape

All payloads follow: ```json { "id": "evt_123", "type": "order.created", "created": 1715299200, "data": { ... event-specific object ... } } ```

Use evt_xxx as your idempotency key when persisting.

Testing

Settings → Developers → Webhooks → endpoint → Send test event. Picks a recent real event of any type and re-sends it to your URL. Useful for confirming your handler works end-to-end without waiting for a real customer to act.

Still need help?

Real humans, real answers. We respond fast and we never use chatbots as the front line.

Email Support