Recuperar documentos periódicamente en masa a través de batch hooks: period, maxBatchSize y archivo ZIP.
Por defecto, la PSB envía una notificación webhook por cada documento recibido. Cuando los volúmenes son grandes, puede resultar más eficiente procesar los documentos periódicamente en masa. Con un batch hook, la PSB recopila todos los eventos durante un periodo configurable y crea un archivo ZIP.
Un batch hook escucha un topic (por ejemplo InvoiceReceived) y recopila todos los eventos que llegan durante un periodo determinado. Al final del periodo, la PSB crea un archivo ZIP con todos los documentos asociados a esos eventos. La PSB publica entonces un nuevo topic ({Topic}Batched) para que usted pueda descargar el archivo.
El flujo es el siguiente:
{Topic}Batched (por ejemplo InvoiceReceivedBatched)Registre un hook a través de la API con una acción batch://zip:
{
"action": "batch://zip?period=00:15:00&maxBatchSize=100",
"topics": ["InvoiceReceived"]
}
period00:15:00 (15 minutos)hh:mm:ss. Al final de este periodo, el lote se cierra y se crea el archivo ZIP.maxBatchSize100Consejo: Elija los valores de
periodymaxBatchSizeen función de su volumen de documentos. Para volúmenes bajos, puede configurar un periodo más largo (por ejemplo, una hora). Para volúmenes altos, un periodo más corto con unmaxBatchSizemás alto resulta más práctico.
Después del cierre de un lote, la PSB publica un nuevo evento en el topic {Topic}Batched. La nomenclatura sigue un patrón fijo:
InvoiceReceivedInvoiceReceivedBatchedOrderReceivedOrderReceivedBatchedConfigure un webhook estándar en el topic batched para recuperar el archivo ZIP:
{
"action": "https://jouw-endpoint.nl/batches",
"topics": ["InvoiceReceivedBatched"],
"secret": "jouw-geheime-sleutel"
}
El archivo ZIP contiene todos los documentos recopilados en el lote, cada uno como archivo XML separado. Los nombres de archivo se basan en el documentId. El archivo se puede descargar a través de la URL proporcionada en el evento batched.
Puede combinar batch hooks con webhooks estándar. Utilice, por ejemplo, un webhook estándar para el procesamiento inmediato de documentos urgentes y un batch hook para la importación periódica en masa en su sistema ERP. Asegúrese de no procesar documentos por duplicado si tiene ambos tipos de hooks en el mismo topic.
Atención: Los batch hooks utilizan la misma lógica de retry que los webhooks estándar. Si el evento batched no se entrega con éxito, la PSB lo reintenta durante un máximo de 5 días.
Al finalizar el periodo de recopilación, la PSB publica un evento en {Topic}Batched, por ejemplo InvoiceReceivedBatched cuando el topic de origen es InvoiceReceived. Configure un webhook estándar en ese topic batched para recibir la URL de descarga y obtener el archivo ZIP.
period (15 minutos por defecto) define cuánto tiempo se recopilan eventos antes de cerrar el lote; maxBatchSize (100 por defecto) cierra el lote antes si se alcanza primero ese límite. Ajuste ambos a su volumen: periodos más largos con pocos documentos, periodos más cortos o límites más altos en picos de carga.
Sí, pero tenga en cuenta el procesamiento duplicado: si ambos usan el mismo topic de origen, el mismo documento puede llegar dos veces. Use ambos solo si lo gestiona explícitamente, por ejemplo inmediato para lo urgente y lote para importación masiva.
Consulte la especificación API completa en psb.econnect.eu para todas las opciones de configuración.
Ver la documentación API