Générer et télécharger
POST /provider/reports/generate, les exécutions, le téléchargement du fichier, le mode par compagnie et l'envoi par e-mail.
Générer — POST /provider/reports/generate
Trois façons de dire quoi générer, par ordre de simplicité :
| Vous fournissez | Ce qui est généré |
|---|---|
modelId | Le modèle enregistré, avec ses réglages |
definitionCode (+ surcharges) | L'état du catalogue, modifié par ce que vous précisez |
sourceCode + spécification | Un état entièrement personnalisé |
Sans aucun des trois : 400 « Génération : fournir modelId, definitionCode ou une spécification ».
{
"definitionCode": "RECAP_PROD_COMPAGNIE",
"scope": { "basedOn": "issuedAt", "dateRange": { "from": "2026-10-01T00:00:00", "to": "2026-10-28T23:59:59" } },
"format": "XLSX",
"title": "Récap production compagnie au 28/10/2026",
"fileName": "recap-prod-compagnie-2026-10-28"
}Corps complet : les champs de spécification (sourceCode, columns, filters, scope, sorting,
grouping, options) décrits dans États personnalisés, plus :
| Champ | Description |
|---|---|
modelId | Modèle à exécuter |
definitionCode | État du catalogue |
format | PDF, CSV ou XLSX ; doit être autorisé par l'état |
title | Titre de l'édition |
fileName | Nom de fichier, sans extension |
scopeMode | GLOBAL (défaut) ou PER_COMPANY |
companyId | Comptes Pool : limiter à une compagnie |
recipientsTo, recipientsCc | Envoi du fichier par e-mail à ces adresses |
Réponse — l'exécution
La génération est synchrone : la réponse 201 arrive quand le fichier est produit et archivé.
{
"execution": {
"id": "7b1c9a2e-…",
"executionRef": "EXE-2026-11-02-000123",
"definitionCode": "RECAP_PROD_COMPAGNIE",
"title": "Récap production compagnie au 28/10/2026",
"type": "MANUAL",
"status": "SUCCESS",
"companyId": "5647d861-…", "companyLabel": "WAFA ASSURANCES CI",
"fileFormat": "XLSX",
"fileName": "recap-prod-compagnie-2026-10-28.xlsx",
"contentType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"fileSizeBytes": 18234,
"checksumSha256": "9f2a…",
"rowCount": 1,
"resolvedFrom": "2026-10-01T00:00:00", "resolvedTo": "2026-10-28T23:59:59",
"executedAt": "2026-11-02T09:12:44", "durationMs": 812,
"specApplied": { "sourceCode": "RECEIPTS", "columns": [ "..." ] }
},
"children": []
}| Champ | Description |
|---|---|
id | Identifiant à passer à …/executions/{id}/file |
executionRef | Référence lisible, imprimée sur le document |
type | MANUAL (API) ou SCHEDULED (planification) |
status | SUCCESS, FAILED (voir errorMessage), SKIPPED_EMPTY (aucune ligne) |
fileFormat, fileName, contentType, fileSizeBytes, checksumSha256 | Le fichier |
rowCount | Nombre de lignes |
resolvedFrom, resolvedTo | Période appliquée |
specApplied, scopeApplied | La spécification exacte utilisée : conservez-la pour rejouer |
recipients, recipientsCc | Destinataires si envoi par e-mail |
companyId, companyLabel | Compagnie de l'édition (null pour une édition globale Pool) |
parentExecutionId | Pour une exécution fille du mode par compagnie |
Télécharger — GET /provider/reports/executions/{id}/file
curl -s -D - -o recap.xlsx -H "Authorization: Bearer $TOKEN" \
$API/provider/reports/executions/7b1c9a2e-.../fileHTTP/1.1 200 OK
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename="recap-prod-compagnie-2026-10-28.xlsx"
X-Checksum-Sha256: 9f2a…Le fichier reste archivé et téléchargeable ; Aucun fichier archivé pour l'exécution signale une
exécution sans fichier (FAILED, SKIPPED_EMPTY) ou un fichier purgé.
Mode par compagnie — scopeMode: PER_COMPANY
Réservé aux comptes Pool (sans compagnie de rattachement). Le serveur détermine les compagnies présentes dans le périmètre, génère un fichier par compagnie, et renvoie :
execution: l'exécution parent (SUCCESS, ouSKIPPED_EMPTYsi aucune compagnie,FAILEDsi toutes ont échoué) ;children[]: une exécution par compagnie, chacune avec son fichier.
Les enfants se retrouvent plus tard avec GET /provider/reports/executions/{parentId}/children.
C'est le mode naturel du bordereau de cession et des récapitulatifs destinés à chaque compagnie.
Pour un compte compagnie, PER_COMPANY est ignoré : l'édition est toujours celle de sa compagnie.
Envoi par e-mail
Avec recipientsTo (et recipientsCc), le fichier est envoyé en pièce jointe aux adresses indiquées
après génération. Les destinataires sont conservés sur l'exécution.
Historique des exécutions
| Endpoint | Contenu |
|---|---|
GET /provider/reports/executions?type=MANUAL&status=SUCCESS&page=0&size=20 | Toutes les exécutions visibles, pagination dans le corps (content, totalElements…) |
GET /provider/reports/models/{id}/executions | Exécutions d'un modèle (mêmes filtres) |
GET /provider/reports/executions/{id} | Détail d'une exécution |
GET /provider/reports/executions/{id}/children | Exécutions filles |
Limites
| Limite | Valeur | Contournement |
|---|---|---|
| Lignes d'un PDF | 25 000 | XLSX ou CSV, ou période plus courte |
| Format | doit être dans formats de l'état | lire la carte du catalogue |
| Durée | génération synchrone, quelques secondes pour des dizaines de milliers de lignes | prévisualiser estimate avant |
| Périmètre | compagnie / courtier du compte | demander un compte Pool pour une vue multi-compagnies |