Batch hooks : récupérer des documents en masse

Récupérer des documents périodiquement en masse via les batch hooks : period, maxBatchSize et archive ZIP.

Par défaut, la PSB envoie une notification webhook pour chaque document reçu. Lorsque les volumes sont importants, il peut être plus efficace de traiter les documents périodiquement en masse. Avec un batch hook, la PSB collecte tous les événements pendant une période configurable et en crée une archive ZIP.

Comment fonctionne un batch hook ?

Un batch hook écoute un topic (par exemple InvoiceReceived) et collecte tous les événements qui arrivent pendant une période donnée. À la fin de la période, la PSB crée un fichier ZIP contenant tous les documents associés à ces événements. La PSB publie ensuite un nouveau topic ({Topic}Batched) pour que vous puissiez télécharger l'archive.

Le flux est le suivant :

  1. La PSB reçoit des documents et enregistre les événements
  2. Le batch hook collecte les événements jusqu'à ce que la période soit écoulée ou que le nombre maximum soit atteint
  3. La PSB crée une archive ZIP de tous les documents collectés
  4. Un événement {Topic}Batched est publié (par exemple InvoiceReceivedBatched)
  5. Votre webhook reçoit l'événement batched et télécharge l'archive ZIP
Créer un batch hook

Enregistrez un hook via l'API avec une action batch://zip :

{
  "action": "batch://zip?period=00:15:00&maxBatchSize=100",
  "topics": ["InvoiceReceived"]
}
Paramètres
ParamètrePar défautDescriptionperiod00:15:00 (15 minutes)La période de collecte au format hh:mm:ss. À la fin de cette période, le lot est clôturé et l'archive ZIP est créée.maxBatchSize100Le nombre maximum d'événements par lot. Si ce nombre est atteint avant la fin de la période, le lot est clôturé immédiatement.

Conseil : Choisissez les valeurs de period et maxBatchSize en fonction de votre volume de documents. Pour des volumes faibles, vous pouvez définir une période plus longue (par exemple une heure). Pour des volumes élevés, une période plus courte avec un maxBatchSize plus élevé est plus pratique.

Publish topic

Après la clôture d'un lot, la PSB publie un nouvel événement sur le topic {Topic}Batched. La nomenclature suit un schéma fixe :

Topic sourceTopic batchedInvoiceReceivedInvoiceReceivedBatchedOrderReceivedOrderReceivedBatched

Configurez un webhook standard sur le topic batched pour récupérer l'archive ZIP :

{
  "action": "https://jouw-endpoint.nl/batches",
  "topics": ["InvoiceReceivedBatched"],
  "secret": "jouw-geheime-sleutel"
}
Archive ZIP

Le fichier ZIP contient tous les documents collectés dans le lot, chacun sous forme de fichier XML séparé. Les noms de fichiers sont basés sur le documentId. L'archive peut être téléchargée via l'URL fournie dans l'événement batched.

Combinaison avec des hooks standard

Vous pouvez combiner des batch hooks avec des webhooks standard. Utilisez par exemple un webhook standard pour le traitement immédiat de documents urgents et un batch hook pour l'import périodique en masse dans votre système ERP. Assurez-vous toutefois de ne pas traiter les documents en double si vous avez les deux types de hooks sur le même topic.

Attention : Les batch hooks utilisent la même logique de retry que les webhooks standard. Si l'événement batched n'est pas livré avec succès, la PSB réessaie pendant un maximum de 5 jours.

Questions fréquentes
Sur quel topic faut-il s'abonner pour récupérer l'archive ZIP d'un batch hook ?

À la fin de la période de collecte, la PSB publie un événement sur {Topic}Batched, par exemple InvoiceReceivedBatched lorsque le topic source est InvoiceReceived. Configurez un webhook standard sur ce topic batched pour recevoir l'URL de téléchargement et récupérer le fichier ZIP.

Comment period et maxBatchSize fonctionnent-ils ensemble ?

period (15 minutes par défaut) définit la durée de collecte des événements avant clôture du lot ; maxBatchSize (100 par défaut) clôt le lot plus tôt si cette limite est atteinte en premier. Ajustez les deux en fonction de votre volume : périodes plus longues lorsque vous avez peu de documents, périodes plus courtes ou limites plus élevées en cas de pic.

Peut-on combiner un batch hook et un webhook direct sur le même topic ?

Oui, mais attention au double traitement : si les deux utilisent le même topic source, le même document peut arriver deux fois. N'utilisez les deux que si vous le gérez explicitement, par exemple en temps réel pour l'urgent et en lot pour l'import de masse.


Consultez la spécification API complète sur psb.econnect.eu pour toutes les options de configuration.

Voir la documentation API