INOPAY
Retour aux développeurs

Webhooks

Inopay émet des webhooks signés HMAC SHA-256 pour vous notifier des événements clés. Tous les webhooks sont retentés avec backoff exponentiel jusqu'à 24 h.

Événements

Liste des événements disponibles. Vous choisissez les abonnements lors de l'enregistrement de l'endpoint.

ÉvénementDescription
order.createdOrdre accepté par Inopay et transmis à la SGI.
order.executedOrdre exécuté entièrement ou partiellement par la SGI.
order.cancelledOrdre annulé par l'utilisateur ou la SGI.
kyc.attestedNouvelle attestation KYC émise.
kyc.revokedAttestation KYC révoquée.
audit.snapshotSnapshot d'audit quotidien ancré et publié.

Signature HMAC SHA-256

Vérifiez chaque webhook avec la clé partagée et le header X-Inopay-Signature. Comparaison en temps constant obligatoire.

// Verify Inopay webhook signature (Node.js)
import { createHmac, timingSafeEqual } from 'node:crypto';

export function verifyInopaySignature(
  rawBody: string,
  header: string,
  secret: string,
): boolean {
  // header format: "t=<timestamp>,v1=<hex>"
  const parts = Object.fromEntries(
    header.split(',').map((p) => p.split('=')),
  );
  const expected = createHmac('sha256', secret)
    .update(`${parts.t}.${rawBody}`)
    .digest('hex');
  return timingSafeEqual(
    Buffer.from(expected, 'hex'),
    Buffer.from(parts.v1, 'hex'),
  );
}