Ordonnancement des débits (P2P & withdraws)¶
Extrait du domain map API, qui était chargé dans chaque session agent. La rule garde l'index module → contexte ; le détail vit ici, à côté du code.
Regle metier : les debits d'un meme compte client sont strictement ordonnances. Withdraws et P2P partagent le meme classement -- si un customer a un withdraw + un P2P en attente, seul le plus ancien est joue. Aucun type de débit ne passe pour un client bloqué (transactionRights ≠ all, blockedTemporarilyAtLemonway, lemonwayStatus ≠ 6). Les comptes SPV/techniques ne sont pas soumis a cette contrainte (parallelisme autorise).
Subtilites retry/fail :
- Balance insuffisante + debit + pending credits existent → retry 1h (attendre que le credit arrive)
- Balance insuffisante + debit + pas de pending credits → failed + alerte (ne devrait pas arriver)
- Credit qui echoue (business error) → toujours retry (les credits ne doivent jamais echouer definitivement)
- duplicate_reference → traite comme erreur technique (retry), avec verification d'idempotence cote Lemonway. Cas reel : deploiement entre l'appel Lemonway et la sauvegarde en base
- p2p_limit_reached_for_receiver → retry (limite temporaire cote Lemonway)