9. Paiements de masse

Salaires, fournisseurs, remboursements groupés. Trois temps : (1) créer le lot (aucun argent ne bouge), (2) le déclencher, (3) suivre son avancement.

Créer un lot

POST/mass-paymentsJeton de session

Corps de la requête
{
  "application_id": 12,
  "reference": "Salaire_Juin_2026",
  "currency": "XAF",
  "beneficiaries": [
    {
      "nom": "Bénéficiaire 1",
      "telephone": "691028372",
      "montant": 10000,
      "provider": "orange_money_cm"
    },
    {
      "nom": "Bénéficiaire 2",
      "telephone": "677895412",
      "montant": 10000,
      "provider": "mtn_momo_cm"
    }
  ]
}
Réponse 201 (extrait)
{
  "success": true,
  "data": {
    "uuid": "...",
    "reference": "Salaire_Juin_2026",
    "currency": "XAF",
    "total_amount": 20000,
    "beneficiary_count": 2,
    "statut": "en_attente",
    "beneficiaries": [
      "..."
    ]
  },
  "meta": {
    "request_id": "...",
    "timestamp": "..."
  }
}

Déclencher et suivre

  • Tout ou rien : un seul bénéficiaire invalide et rien n'est enregistré (422 avec les erreurs indexées par bénéficiaire).
  • Import depuis un fichier : POST /mass-payments/preview-csv renvoie un aperçu avant création.
  • POST /mass-payments/{uuid}/trigger (202) lance l'exécution en arrière-plan, une seule fois par lot (422 si déjà déclenché). Statut : en_attente → en_cours → valide / partiellement_reussi / echoue.
  • Suivi : GET /mass-payments/{uuid} ; liste : GET /mass-payments.