Aller au contenu principal

POST /api/cycles

Crée un cycle de transfert pour un programme.

Requête​

POST /api/cycles
Authorization: Bearer {token}
Content-Type: application/json

Permission : transferts.cycles_create. Le programme doit appartenir au périmètre de l'utilisateur et son projet ne doit pas être archivé.

Corps​

{
"nom": "Transfert janvier 2026",
"programme": "{programmeId}",
"compteOperateur": "{compteOperateurId}",
"dateDebut": "2026-01-15",
"dateFin": "2026-01-31",
"nbBeneficiairesPrevu": 1200,
"description": "Premier transfert de l'année"
}
ChampRequisDescription
nomouiNom du cycle
programmeouiIdentifiant du programme
compteOperateurouiCompte opérateur (actif) qui portera les paiements
dateDebutouiDate de début (AAAA-MM-JJ)
dateFinnonDate de fin
nbBeneficiairesPrevunonNombre prévu
descriptionnonTexte libre

Le code du cycle est attribué par la nomenclature « Transfert » (Paramètres → Nomenclature).

Réponse​

Succès (201)​

{
"success": true,
"message": "Cycle créé avec succès",
"data": { "id": "770e8400-e29b-41d4-a716-446655440003", "code": "TRF-2026-003", "nom": "Transfert janvier 2026", "programme": "Programme exemple", "dateDebut": "2026-01-15", "montantParBeneficiaire": 15000 }
}

Erreurs​

CodeMessage
400Champs requis: nom, dateDebut, programme, compteOperateur
400Le compte opérateur sélectionné est inactif. Veuillez choisir un compte actif.
403Permission manquante ou programme hors périmètre
404Programme non trouvé / Compte opérateur non trouvé

PUT /api/cycles/{id}​

Modifie un cycle (PUT ou PATCH, mêmes champs que la création). Permission : transferts.cycles_edit. Refusé si le cycle est soumis à validation ou si son projet est archivé.

curl -X PATCH https://sig.example.org/api/cycles/{id} \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"dateFin": "2026-02-05"}'

Génération automatique​

EndpointDescription
GET /api/cycles/preview/{programmeId}Aperçu du prochain cycle d'un programme à récurrence
POST /api/cycles/generate/{programmeId}Génère le prochain cycle d'un programme
POST /api/cycles/generate-all-automaticGénère les cycles dus de tous les programmes à récurrence automatique
POST /api/cycles/cuidadorsCrée un cycle de paiement des agents communautaires

Génération des paiements​

POST /api/cycles/{id}/generate-payments

Crée un paiement par bénéficiaire actif et éligible du programme. Permission : transferts.paiements_execute. Pour un cycle d'agents communautaires : POST /api/cycles/{id}/generate-cuidadors-payments (liste des candidats : GET /api/cycles/{id}/available-cuidadors).