Webhooks qui ne ment pas.

Signé, protégé contre la relecture, réessayé jusqu'à 2xx.

Abonnez-vous aux événements facture / commande / remboursement. Vérifiez HMAC-SHA256 dans votre point de terminaison. Chaque livraison est signée HMAC-SHA256, horodatée et réessayée avec un délai exponentiel jusqu'à ce que votre point de terminaison renvoie 2xx.

Catalogue

Neuf événements. Abonnez-vous à tout ou un.

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.
En-têtes

Ce qui arrive sur votre point de terminaison

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, … }
}
Interactif

HMAC-SHA256 vérificateur

Collez une charge utile + un secret. Nous calculons la signature en direct dans votre navigateur en utilisant le Web Crypto API - le même algorithme que notre SDK utilise sur votre serveur.

Collez une signature ci-dessus pour la vérifier.
Mise en œuvre

Même chèque, dans votre langue


            

Politique de nouvelle tentative

  • 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.

Relecture et déduplication

  • 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.