Freedam

Développeurs · Webhooks

Réagissez en temps réel à ce qui se passe dans votre photothèque

Abonnez-vous à quatorze événements qui couvrent les médias, les collections, les imports, le partage et les workflows. Chaque payload est signé et chaque livraison est journalisée. Les livraisons en échec sont relancées, et un endpoint qui échoue de façon répétée est désactivé automatiquement.

Quatorze événements en quatre groupes

Chaque endpoint ne reçoit que les événements auxquels vous l'abonnez.

Événements sur les médias

  • asset.createdUn nouveau média a été ajouté à la photothèque.
  • asset.updatedLa fiche d'un média a changé. Inclut la liste des champs modifiés.
  • asset.deletedUn média a été supprimé. Distingue la suppression réversible de la suppression définitive.
  • asset.downloadedUn fichier original ou généré a été téléchargé. Inclut la définition.

Événements sur les collections

  • collection.createdUne nouvelle collection a été créée.
  • collection.updatedLe nom, le parent ou les réglages d'une collection ont changé.
  • collection.deletedUne collection a été supprimée.
  • collection.assets_addedUn ou plusieurs médias ont été ajoutés. Gère les ajouts groupés.
  • collection.assets_removedUn ou plusieurs médias ont été retirés. Gère les retraits groupés.

Événements de partage

  • share.createdUn lien de partage a été créé.
  • share.accessedUn destinataire a consulté ou téléchargé des fichiers via le partage.

Événements d'import et de workflow

  • upload.batch_completedUn lot est terminé. Inclut le nombre de réussites et d'échecs.
  • upload.batch_failedUn lot s'est terminé en échec. Inclut la raison.
  • workflow.transitionedUn média est passé d'un état de workflow à un autre.
Structure du payload

Un payload court et cohérent

Chaque payload contient le nom de l'événement, un horodatage et un petit objet data avec les identifiants nécessaires pour récupérer la fiche complète via l'API. Les mises à jour incluent aussi la liste des champs modifiés : vous pouvez décider quoi rafraîchir sans tout récupérer de nouveau.

{
  "event": "asset.created",
  "timestamp": "2026-05-06T08:30:14Z",
  "data": {
    "asset_id": 18432,
    "gaid": "IM-20260506-3F9A2C8B0D"
  }
}
Vérification de la signature

HMAC-SHA256 sur chaque livraison

Calculez la signature avec le secret de votre endpoint et comparez-la en temps constant avant de traiter le corps de la requête. Quand vous renouvelez le secret, l'ancien reste valide pendant vingt-quatre heures : vous pouvez déployer le changement quand cela vous convient.

// Verify a webhook signature (Node.js)
import crypto from 'crypto';

function verifyWebhook(payload, signatureHeader, secret) {
    const expected = crypto
        .createHmac('sha256', secret)
        .update(payload)
        .digest('hex');

    return crypto.timingSafeEqual(
        Buffer.from(expected),
        Buffer.from(signatureHeader),
    );
}

Une livraison fiable

Freedam gère les relances, les endpoints en échec et le renouvellement des secrets : votre handler peut rester simple.

Payloads signés

Chaque livraison porte une signature HMAC-SHA256 calculée avec le secret de votre endpoint. Vérifiez-la à l'arrivée de la requête, avant de traiter le corps.

Relances automatiques

Les livraisons en échec sont relancées avec un délai croissant. Les endpoints qui échouent de façon répétée sont mis en pause pour que les échecs ne s'accumulent pas dans votre boîte de réception ou votre file d'attente.

Désactivation automatique en cas d'échecs persistants

Après dix livraisons consécutives en échec, l'endpoint est désactivé automatiquement. Vous pouvez le réactiver une fois le problème corrigé.

Renouvellement du secret avec période de grâce

Renouvelez le secret d'un endpoint sans interruption de service. L'ancien secret reste valide pendant vingt-quatre heures, ce qui vous laisse le temps de mettre à jour votre handler.

Historique des livraisons

Chaque tentative de livraison est enregistrée avec l'horodatage, le code de statut, un extrait du corps de la réponse et le nombre de relances. Vous pouvez examiner ou rejouer n'importe quelle livraison via l'API.

Livraisons de test à la demande

Envoyez un événement de test depuis l'API ou les paramètres pour vérifier que votre handler fonctionne avant la mise en production.

Développeurs · Webhooks

Connectez votre photothèque à vos autres outils

Enregistrez votre premier endpoint dans la démo, ou utilisez l'API de gestion pour configurer des endpoints dans votre code.