Webhooks

Configuration, signature HMAC et événements marchands.

Configuration

Créez un endpoint dans Développeurs → Webhooks ou via POST /merchant/merchants/:id/webhook-endpoints.

Le secret whsec_… n'est affiché qu'une fois.

Signature

Chaque livraison inclut X-Izzi-Signature et X-Izzi-Timestamp.

Payload signé : {timestamp}.{rawBody} en HMAC-SHA256.

typescript
import { verifyWebhookSignature } from "@izzipay/sdk";

const result = verifyWebhookSignature({
  secret: process.env.IZZI_WEBHOOK_SECRET!,
  rawBody: requestBody,
  signature: request.headers["x-izzi-signature"],
  timestamp: request.headers["x-izzi-timestamp"],
});

if (!result.verified) {
  throw new Error(result.reason ?? "invalid signature");
}

Événements

Voir la référence API Webhooks pour les payloads exemples de chaque type.