Périmètre
🖥️ Back-Office
NEW
Mode d'apparence (Clair / Sombre / Auto)
Contexte
Jusqu'à présent, le back-office DJUST n'offrait qu'un seul thème visuel. Les utilisateurs travaillant dans des environnements variés (bureau lumineux, travail de nuit, etc.) ne pouvaient pas adapter l'interface à leur confort visuel.
Fonctionnement
Un sélecteur d'apparence à trois options est désormais disponible dans le menu utilisateur de la sidebar :
- Clair : thème lumineux (mode par défaut pour tout nouvel utilisateur)
- Sombre : thème sombre appliqué à l'ensemble de l'interface
- Auto : suit automatiquement la préférence système de l'OS (clair ou sombre), avec mise à jour en temps réel
Le choix est persisté localement et survit au rafraîchissement de page ainsi qu'aux déconnexions/reconnexions.
Précisions :
- La sidebar de navigation reste toujours en mode sombre, quel que soit le thème choisi (choix design).
- Les pages d'authentification (login, mot de passe oublié, reset) restent en mode clair pour garantir la cohérence de branding.
- L'éditeur d'email Unlayer reste en mode clair (contrainte technique iframe).
- Les graphiques du dashboard s'adaptent au thème sélectionné.
👉 Côté métier : chaque utilisateur peut désormais adapter l'interface à son environnement de travail et à ses préférences visuelles.
👉 Côté technique : aucun impact API. Le choix de thème est géré côté client via localStorage.
🛠️ API
NEW
Exécution d'un payout marketplace
Contexte
Dans le cadre de DJUST PAY, les commissions marketplace acquises lors des captures sont consolidées en un payout marketplace au statut COMPUTED. Jusqu'à présent, aucun mécanisme ne permettait de déclencher l'exécution de ce payout pour reverser les fonds vers le compte bancaire de la marketplace.
Fonctionnement
L'exécution d'un payout marketplace est déclenchée manuellement par un opérateur (depuis le back-office ou par API). Le système suit le flux suivant :
- Vérification que le payout est au statut
COMPUTED(seul statut autorisant l'exécution). - Contrôle de la disponibilité des fonds sur le balance account marketplace (
BA_MKP). - Si les fonds sont suffisants : déclenchement du payout PSP, passage au statut
PENDING, puis suivi asynchrone via webhooks PSP (SETTLEDen cas de succès,FAILEDen cas d'échec). - Si les fonds sont insuffisants : passage au statut
INSUFFICIENT_FUNDS, aucun appel PSP effectué.
Lorsqu'un payout est confirmé (SETTLED), les commandes associées sont marquées comme ayant leur commission marketplace reversée et ne seront plus reprises dans un futur payout. En cas d'échec, les commandes restent éligibles pour une prochaine tentative.
La période couverte par le payout est déterminée automatiquement entre la dernière exécution réussie et la date courante.
📄 Documentation : Marketplace Payout Lifecycle
👉 Côté métier : les opérateurs marketplace peuvent désormais déclencher le reversement des commissions acquises vers le compte bancaire de la marketplace, avec un suivi complet du statut d'exécution.
👉 Côté technique : nouveau flux d'exécution avec vérification de solde sur le BA_MKP, appel PSP, et réconciliation asynchrone via webhooks. Statuts possibles : COMPUTED → PENDING → SETTLED / FAILED, ou COMPUTED → INSUFFICIENT_FUNDS.
Export CSV des payouts marketplace
Contexte
Les équipes finance et ops paiement avaient besoin de pouvoir exporter les données de payouts marketplace au format CSV, comme c'est déjà le cas pour les payouts supplier.
Fonctionnement
De nouveaux endpoints d'administration permettent de gérer l'export CSV asynchrone des payouts marketplace :
- Création d'une demande d'export
- Consultation de la liste des exports
- Suivi du statut d'un export
Le mécanisme est identique à celui déjà en place pour les exports de payouts supplier : l'export est généré de manière asynchrone et un email de notification est envoyé au demandeur lorsque le fichier est prêt.
👉 Côté métier : les équipes finance peuvent désormais exporter les données de payouts marketplace au format CSV pour leurs besoins de rapprochement et de reporting.
👉 Côté technique : nouveaux endpoints d'administration pour l'export CSV asynchrone des payouts marketplace, suivant la même mécanique que l'export des payouts supplier.
Consultation des funding transfers
Contexte
Les transferts internes de funding (mouvements entre balance accounts, par exemple MARKETPLACE → SUPPLIER) sont essentiels pour le suivi opérationnel des paiements. Jusqu'à présent, les équipes finance ne disposaient d'aucune vue dédiée pour consulter, filtrer et diagnostiquer ces mouvements.
Fonctionnement
Deux nouvelles routes API permettent de consulter les funding transfers :
Liste paginée — filtrable par période, statut (PENDING, COMPLETED, FAILED), supplier, montant, type de balance account source/destination (MARKETPLACE, SUPPLIER), entité liée (PAYOUT, REFUND), et identifiant d'entité liée. Le tri est supporté sur createdAt, amount et status (tri par défaut : createdAt:desc). Les tris invalides sont silencieusement ignorés.
Détail unitaire — consultation complète d'un funding transfer avec toutes ses informations (montant, statut, raison d'échec, référence de réconciliation, entité liée, etc.).
Les règles d'accès suivent le standard DJUST :
OPERATOR: accès à tous les funding transfers du tenant, filtrable par supplierSUPPLIER: accès restreint aux funding transfers impactant le supplier connecté (restriction serveur)
Impact API
GET /v1/payments/funding-transfers(operationId :ADM-PAY-553) — liste paginée avec filtresGET /v1/payments/funding-transfers/{transferId}(operationId :ADM-PAY-503) — détail unitaire
📄 Documentation :
👉 Côté métier : les équipes finance et ops paiement peuvent consulter et diagnostiquer les transferts internes de funding directement depuis le back-office, sans dépendre d'exports manuels.
👉 Côté technique : deux nouvelles routes API (ADM-PAY-553, ADM-PAY-503) avec filtres avancés, pagination, tri, et scoping par rôle (OPERATOR / SUPPLIER).
Renvoi de l'email d'export
Contexte
Lorsqu'un export (transactions, payouts, funding transfers, payouts marketplace) est généré, un email contenant le lien de téléchargement est envoyé au demandeur. Si cet email est perdu ou non reçu, l'utilisateur devait jusqu'à présent recréer un export complet.
Fonctionnement
Un nouvel endpoint permet de renvoyer l'email de confirmation d'un export existant, sans regénérer le fichier CSV. Conditions :
- L'export doit être au statut
READY. - Le destinataire principal est toujours l'utilisateur connecté (non modifiable).
- La liste des destinataires en copie (cc) peut être redéfinie via le body de la requête (max 20 adresses). Si aucun body n'est fourni, les cc originaux sont conservés.
Ce endpoint est générique et fonctionne pour tous les types d'exports : transaction events, supplier payouts, funding transfers, payouts marketplace.
Impact API
POST /v1/exports/{exportId}/resend-email (operationId : ADM-EXPORT-200)
- Body optionnel avec champ
cc(liste d'emails) - Réponse
200avec confirmation des destinataires - Erreurs :
403si l'export appartient à un autre utilisateur,409si l'export n'est pas au statutREADY
📄 Documentation :
- Export Email Resend
- Transactions Export
- Supplier Payouts Export
- Funding Transfers Export
- Introduction To Djust Pay
👉 Côté métier : les utilisateurs peuvent renvoyer l'email de téléchargement d'un export sans avoir à relancer la génération du fichier, et peuvent ajuster la liste des destinataires en copie.
👉 Côté technique : nouvelle route POST /v1/exports/{exportId}/resend-email (ADM-EXPORT-200), générique pour tous les types d'exports, avec gestion des cc et contrôle de statut.
Gestion des familles logistiques (création et modification)
Contexte
Dans le cadre du module de livraison, les familles logistiques permettent de catégoriser les produits selon leurs contraintes d'expédition (produits fragiles, volumineux, etc.). Deux nouveaux endpoints permettent désormais de créer et modifier ces familles.
Fonctionnement
Création — Un opérateur peut créer une famille logistique en renseignant un nom (obligatoire), un identifiant personnalisé (optionnel, auto-généré si absent, immutable et unique) et une description (optionnelle). La famille est immédiatement disponible après création. L'attachement de catégories se fait via des endpoints dédiés.
Modification — Un opérateur peut modifier le nom et la description d'une famille logistique existante. La modification applique un remplacement complet des champs modifiables (full update). L'identifiant est immutable.
Règle commune : la famille système "Par défaut" ne peut être ni créée ni modifiée via ces endpoints.
Impact API
POST /v1/logistic-families(operationId :ADM-LOGISTIC-FAMILY-100) — création, réponse201 CreatedPUT /v1/logistic-families/{id}(operationId :ADM-LOGISTIC-FAMILY-200) — modification, réponse204 No Content
Accès réservé à dj-client: OPERATOR.
📄 Documentation : Logistic Families
👉 Côté métier : les opérateurs peuvent désormais créer et organiser des familles logistiques pour structurer les contraintes d'expédition de leur catalogue produit.
👉 Côté technique : deux nouvelles routes d'administration (ADM-LOGISTIC-FAMILY-100, ADM-LOGISTIC-FAMILY-200) pour la gestion CRUD des familles logistiques.
UPDATE
Refonte du template d'email des exports
Contexte
Le mail envoyé après la génération d'un export contenait deux liens (téléchargement + lien vers le back-office) et un wording technique peu lisible (ex. "Transaction_event"). Le template nécessitait une refonte pour améliorer la clarté et l'accessibilité, notamment pour les destinataires en copie qui n'ont pas nécessairement accès au back-office.
Fonctionnement
Le template d'email a été harmonisé pour les quatre types d'exports (transaction events, supplier payouts, funding transfers, payouts marketplace) :
- Un seul lien : le lien de téléchargement signé (valable 24h). Le lien vers le back-office est supprimé.
- Même lien pour tous les destinataires : le demandeur et les destinataires en copie reçoivent le même email.
- Wording corrigé : les noms d'exports sont désormais lisibles (ex. "transaction events", "supplier payouts").
- Ton neutre : le wording ne suppose plus que le destinataire est un opérateur avec accès au back-office.
👉 Côté métier : les emails d'export sont plus clairs, avec un seul lien de téléchargement et un wording adapté à tous les destinataires.
👉 Côté technique : template d'email unifié pour les 4 types d'exports. Suppression du lien back-office, conservation du lien signé uniquement.




