Aller au contenu principal

Gestion des transferts de paiement

Ces routes sous /api/paiements/cycles sont une seconde entrée vers les transferts (cycles), orientée paiements. La gestion complète d'un transfert (création, circuit de validation multi-niveaux, génération des paiements) est décrite dans Transferts sous /api/cycles.

EndpointMethodePermissionDescription
/api/paiements/cyclesGETtransferts.cycles_viewListe des transferts
/api/paiements/cyclesPOSTtransferts.cycles_createCréer un transfert et générer ses paiements
/api/paiements/cycles/{id}/validatePOSTtransferts.cycles_validateValidation simple
/api/paiements/cycles/{id}/executePOSTtransferts.paiements_executeExécuter les paiements
/api/paiements/cycles/{id}/paiementsGETtransferts.paiements_viewPaiements du transfert (statut, search, page, limit 50 par défaut)
/api/paiements/cycles/{id}/indicateurs-odpGETtransferts.paiements_viewIndicateurs de l'ordre de paiement
/api/paiements/cycles/{id}/export-beneficiairesGETtransferts.paiements_viewListe des bénéficiaires
/api/paiements/cycles/{id}/export-paiements-pdfPOSTtransferts.paiements_viewÉtat des paiements en PDF
/api/paiements/cycles/{id}/export-smsGETtransferts.paiements_viewListe pour l'envoi de SMS
/api/paiements/cycles/{id}/send-transfer-letterPOSTtransferts.paiements_viewEnvoi de la lettre de transfert
/api/paiements/cycles/{id}/generer-arrieresPOSTtransferts.paiements_viewGénère les arriérés
/api/paiements/cycles/{id}/import-reconciliationPOSTtransferts.paiements_viewImport du fichier de retour

Lister les transferts​

Récupère la liste des transferts de paiement avec filtres optionnels.

Endpoint​

GET /api/paiements/cycles

Paramètres de requête​

ParamètreTypeRequisDescription
programmeUUIDNonFiltrer par programme
projet_idUUIDNonFiltrer par projet (projet.id accepté)
statutstringNonFiltrer par statut
searchstringNonRecherche textuelle
date_debut, date_findateNonPériode
montant_min, montant_maxnumberNonMontant par bénéficiaire
nb_beneficiaires_min, nb_beneficiaires_maxintNonNombre de bénéficiaires prévus

Exemple de requête​

curl -X GET "https://sig.example.com/api/paiements/cycles?statut=valide" \
-H "Authorization: Bearer <token>"

Réponse​

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"code": "PCH-C001",
"nom": "Transfert janvier 2025",
"numero": 1,
"programme": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"nom": "Programme Capital Humain"
},
"dateDebut": "2025-01-01",
"dateFin": "2025-01-31",
"statut": "valide",
"nbBeneficiairesPrevu": 3500,
"nbBeneficiairesPaye": 3450,
"montantTotalPrevu": 87500000,
"montantTotalPaye": 86250000,
"tauxExecution": 98.57
}
]
}

Créer un transfert​

Crée un nouveau transfert et génère automatiquement les paiements.

Endpoint​

POST /api/paiements/cycles

Corps de la requête​

{
"programme_id": "550e8400-e29b-41d4-a716-446655440000",
"periode_debut": "2025-02-01",
"periode_fin": "2025-02-28"
}

Paramètres​

ParamètreTypeRequisDescription
programme_idUUIDOuiID du programme
periode_debutdateOuiDate de début (YYYY-MM-DD)
periode_findateOuiDate de fin (YYYY-MM-DD)

Réponse​

{
"success": true,
"data": {
"cycle_id": "550e8400-e29b-41d4-a716-446655440002",
"code": "PCH-C002",
"paiements_generes": {
"total": 3500,
"montant_total": 87500000
}
}
}

Codes de réponse​

CodeDescription
200Cycle créé avec succès
400Données invalides
401Non authentifié
403Non autorisé (rôle insuffisant)
404Programme non trouvé

Valider un transfert​

Valide un transfert pour permettre son exécution.

Endpoint​

POST /api/paiements/cycles/{id}/validate

Paramètres​

ParamètreTypeRequisDescription
idUUIDOuiID du transfert (dans l'URL)

Exemple de requête​

curl -X POST "https://sig.example.com/api/paiements/cycles/550e8400-e29b-41d4-a716-446655440002/validate" \
-H "Authorization: Bearer <token>"

Réponse​

{
"success": true,
"data": {
"statut": "valide"
}
}

Erreurs possibles​

CodeMessageDescription
400Cycle déjà validé ou en coursLe transfert n'est pas en statut preparation
404Cycle non trouvéID invalide