Webhooks, die nicht lügen.

Signiert, replay-geschützt und wiederholt, bis dein Endpoint 2xx liefert.

Abonniere Invoice-, Order- und Refund-Events. Prüfe HMAC-SHA256 in deinem Endpoint. Jede Auslieferung ist mit HMAC-SHA256 signiert, mit Zeitstempel versehen und wird mit exponentiellem Backoff wiederholt, bis dein Endpoint 2xx liefert.

Katalog

Neun Events. Abonniere alle oder nur eins.

order.paid A buyer's checkout finalised. Settled on-chain.
order.refunded Refund pushed back to the buyer's wallet.
order.delivered Auto-delivery completed - key, file, or webhook handed over.
order.failed Checkout expired or rejected.
product.created Product published from API or dashboard.
product.updated Any field on a product changed.
payout.queued Payout request accepted, broadcast pending.
payout.confirmed Payout confirmed on-chain.
customer.created New buyer email registered in your shop.
Headers

Was auf deinem Endpoint landet

POST /your-endpoint
# Standard headers Sellix sets on every delivery
X-Event-Id:          evt_01J2PT83A5XKJZ5N6FM5YV9B2D
X-Event-Type:        order.paid
X-Webhook-Timestamp: 1779604200
X-Signature:         sha256=8f7a9a2b…
Content-Type:        application/json
User-Agent:          Sellix-Webhook/1.0

# Body - JSON, the resource that fired the event
{
  "id":   "evt_01J2PT83A5XKJZ5N6FM5YV9B2D",
  "type": "order.paid",
  "data": { "order_uuid": "…", "total_cents": 4900, … }
}
Interaktiv

HMAC-SHA256 Verifier

Payload und Secret einfügen. Wir berechnen die Signatur live im Browser mit der Web Crypto API - derselbe Algorithmus wie im SDK.

Füge oben eine Signatur ein, um sie zu prüfen.
Implementierung

Dieselbe Prüfung in deiner Sprache


            

Retry Policy

  • Up to 8 attempts per delivery
  • Back-off: 1m → 2m → 5m → 15m → 1h → 6h → 24h
  • Any 2xx ends the chain; 4xx / 5xx retries
  • Endpoint dies for 48h straight? We disable it and email the owner.

Replay & Dedupe

  • Reject any timestamp more than 5 minutes off - replay protection.
  • Dedupe by X-Event-Id on your side. Same id twice = same event.
  • A replayed event should also return 200 - it's a feature, not a duplicate.