WeSettle – Architecture & Échanges avec le Switch National (SMT)

Vue d'ensemble de l'infrastructure, des rôles et des flux entre WeSettle, le Switch National (SMT), les facturiers et PaySmart.

  • Le Core agrégateur, hébergé chez le Switch National (SMT), est le seul à dialoguer avec le système du Switch National (SMT)
  • Tous les initiateurs (PaySmart, Facturiers via SDK PaySmart) passent par le Core agrégateur
  • Les statuts finaux de paiement, du point de vue des partenaires (facturiers, SDK, FSP, etc.), proviennent toujours des callbacks du Core agrégateur PaySmart (agrégateur national / PaySmart Core), et non directement du Switch ou des FSP
Initiateurs
(PaySmart, Facturiers via SDK PaySmart)
Core agrégateur
PaySmart
Switch National
(SMT)
Réseau
FSP

Composants principaux

Les acteurs clés de l'infrastructure WeSettle et leurs rôles respectifs

⚙️

Core agrégateur

Orchestre tous les paiements, dialogue directement avec le Switch National (SMT) et les facturiers. Centralise les sessions, verrous, statuts et webhooks. Point d'entrée unique pour tous les initiateurs.

🌐

PaySmart – Application PaySmart (web et mobile)

PaySmart Web : Application web servie par Nginx (assets statiques, pages HTML/JS). CMS configurable : services et factures configurables graphiquement.

PaySmart Mobile : Application Flutter qui consomme directement les APIs exposées par le backend (Apache + PHP-FPM). Elle n'est pas servie par Nginx. CMS configurable : services et factures configurables graphiquement.

Les deux versions initient les paiements au nom des utilisateurs finaux et appellent uniquement les APIs du Core agrégateur. Ne communiquent jamais directement avec le système des facturiers.

🔧

SDK PaySmart

Kit de paiement PaySmart pour les sites des facturiers et des fournisseurs de services publics. Utilise les APIs du Core agrégateur pour initier des paiements. Reçoit des webhooks du Core agrégateur pour les notifications de statut final.

📄

Facturiers

Exposent les APIs de consultation, verrouillage et confirmation de factures au Core agrégateur. N'interagissent jamais directement avec le Switch National (SMT).

🏛️

Switch National (SMT)

Gestionnaire de l'agrégateur national PaySmart en sa qualité de switch. Reçoit les demandes de paiement du Core agrégateur et route vers les FSP concernés.

🏢

WeSettle

Partenaire technologique du Switch National (SMT), mettant en place la plateforme d'agrégation en marque blanche PaySmart Core pour le service national.

🏦

FSP

Banques et établissements de paiement interfacés avec le Core agrégateur PaySmart pour exposer le service de paiement des factures au sein de leurs solutions de paiement.

Flux de paiement

Les différents workflows de paiement dans l'écosystème WeSettle

Flux 1 – Paiement initié par un facturier via SDK PaySmart

🛒
1
Initiation par le facturier
Le facturier via SDK PaySmart appelle l'API du Core agrégateur pour initier un paiement
🔍
2
Vérification facture
Le Core agrégateur vérifie la facture auprès du facturier (consultation / lock)
💳
3
Paiement
Paiement : le client paie à travers les moyens de paiement disponibles au niveau du kit de paiement PaySmart (carte, wallet, etc.)
🔄
4
Switch National (SMT) / FSP
Le Switch National (SMT) route la demande vers le FSP concerné qui traite la transaction
📞
5
Callback Core agrégateur
Le Core agrégateur met à jour le statut de la transaction, notifie le facturier, puis le site intégrant le SDK PaySmart (via webhook)
6
Notification facturier
Notification facturier : le facturier affiche graphiquement la réussite du paiement et le reçu au niveau de son interface

Flux 2 – Paiement initié par PaySmart

👤
1
Connexion utilisateur
L'utilisateur se connecte sur PaySmart ou paye anonymement
🔍
2
Consultation factures
PaySmart appelle l'API du Core agrégateur pour consulter les factures
🔒
3
Réservation de la facture pour paiement
Lock / réservation de la facture par le Core agrégateur avant l'étape de paiement
💳
4
Paiement
Paiement : le client paie à travers les moyens de paiement disponibles au niveau du kit de paiement PaySmart (carte, wallet, etc.)
🔄
5
Switch National (SMT) / FSP
Le Switch National (SMT) route la demande vers le FSP concerné qui traite la transaction
📞
6
Callback Core agrégateur
Le Core agrégateur met à jour le statut de la transaction et notifie PaySmart (webhook ou polling API)
🔔
7
Notification facturier
Notification facturier : le facturier affiche graphiquement la réussite du paiement et le reçu au niveau de son interface

Flux 3 – Paiement via la solution de paiement d'un FSP

🏦
1
Initiation
Un FSP (banque ou établissement de paiement) expose le paiement de factures via sa propre solution ou application.
🔍
2
Consultation / réservation
Le FSP interroge le Core agrégateur pour consulter et réserver la facture (lock).
💳
3
Paiement par le client
Le client paie à travers les moyens de paiement disponibles dans la solution du FSP (carte, wallet, virement, etc.).
🔄
4
Callback du Switch National (SMT)
Le Switch National (SMT) traite la transaction, reçoit la réponse du FSP et renvoie un callback au Core agrégateur.
📞
5
Mise à jour du Core agrégateur
Le Core agrégateur met à jour la transaction et notifie le facturier via webhook.

Webhooks & événements

Les mécanismes de communication asynchrone entre les composants

Webhooks entrants

Reçus par le Core agrégateur depuis le Switch National (SMT), les FSP ou les facturiers. Ils contiennent des événements tels que : statuts de paiement, notifications de débit, confirmations techniques.

Callbacks de paiement : Le Switch National (SMT) envoie des callbacks HTTP sécurisés au Core agrégateur avec le statut final (succès / échec).

signé HTTPS
Traitement asynchrone par des workers pour garantir la résilience.
Webhooks sortants

Envoyés par le Core agrégateur vers les facturiers, PaySmart ou les FSP. Ils notifient du statut final d'une transaction (succès, échec, expiration).

Webhooks vers PaySmart, SDK, facturiers, FSP : Le Core agrégateur notifie les partenaires des événements de paiement (ID de transaction, statut final, détails pertinents).

retriable horodaté
Système de retry automatique avec journalisation complète des tentatives.

Note importante : Les flux métiers (consultation, lock, paiement) ne sont pas des webhooks. Les webhooks sont des notifications techniques envoyées ou reçues par le Core agrégateur.

Architecture technique & infrastructure

Vue d'ensemble des services backend, des bases de données et de la scalabilité du système WeSettle.

Couches logicielles

📱

Clients & frontends

Front web : PaySmart Web et SDK PaySmart servis par Nginx (assets statiques, pages web).

Front mobile : Application Flutter qui consomme directement les APIs exposées par le backend (Apache + PHP-FPM). Elle n'est pas servie par Nginx.

Tous les clients intègrent uniquement les APIs REST exposées par le Core agrégateur PaySmart.

⚙️

Services API Core agrégateur

Core agrégateur et services backend exécutés sur Apache + PHP-FPM (APIs REST, webhooks, workers). Services stateless responsables de l'orchestration métier et des échanges avec le Switch National (SMT) / facturiers.

Technologies : Apache + PHP-FPM pour l'exécution des APIs et services backend. Services containerisés (Docker), orchestration (Kubernetes). Nginx sert uniquement le front web et fait reverse proxy, il n'exécute pas de PHP.

🔌

Services d'intégration externes

Connecteurs vers facturiers et connecteurs vers le Switch National (SMT) / FSP. Gérés comme des services internes orchestrés par le Core agrégateur.

Couches infrastructure

💾

Databases

Bases de données relationnelles pour stocker de façon persistante les transactions, factures, configurations. Réplication et sauvegardes prévues pour la haute disponibilité (HA) et la récupération.

Technologies : PostgreSQL pour le stockage transactionnel, ClickHouse pour l'analytics et les tableaux de bord (vues FSP ou facturiers).

Cache & queues

Cache distribué pour accélérer les consultations et réduire la charge. Système de file de messages / workers pour traiter les callbacks du Switch National (SMT) et les webhooks sortants de manière asynchrone.

Technologies : Redis (cache distribué + queues), RabbitMQ (optionnel).

📊

Logging & monitoring

Stack de logs centralisée, métriques techniques (latence, taux d'erreur), tableaux de bord pour le suivi de la plateforme.

Technologies : Prometheus + Grafana pour les métriques, ELK / OpenSearch ou Loki pour les logs.

Flux infrastructure

Clients
PaySmart Web (Nginx) | App Flutter (APIs Apache)
Passerelle d'API
Nginx (front web / reverse proxy) + Apache/PHP-FPM (APIs backend)
Cluster Core agrégateur
Apache + PHP-FPM (Services d'orchestration, connecteurs, workers)
Cluster PostgreSQL
(HA)
Cache distribué
Queues & workers
Systèmes externes
Switch National (SMT)
FSP
Facturiers
Points clés : Les services API sont sans état (stateless) et peuvent être répliqués horizontalement. Les bases de données sont déployées en mode haute disponibilité. Les traitements lourds (callbacks Switch National (SMT), webhooks, synchronisation factures) passent par des queues et des workers.

Schéma d'architecture technique

Vue détaillée des composants, clusters et flux de données de l'infrastructure PaySmart / core agrégateur

Clients
PaySmart Web (servi par Nginx) | App mobile Flutter (consomme les APIs Apache)
  • Web : PaySmart Web et SDK PaySmart servis par Nginx
  • Mobile : Application Flutter consommant directement les APIs Apache/PHP-FPM
  • Consultation & paiement de factures
  • Intégration du kit de paiement PaySmart
  • Notifications de statut via webhooks
Passerelle d'API
LB
Nginx (front web / reverse proxy) + Apache/PHP-FPM (APIs & backend Core agrégateur)
  • Nginx : Sert le front web (assets statiques) et reverse proxy
  • Apache + PHP-FPM : Exécute les APIs REST et services backend
  • Load balancing & routage
  • Sécurité, WAF & rate limiting
Cluster Core agrégateur
Cœur d'orchestration PaySmart hébergé chez le Switch National (SMT)
Exécuté sur Apache + PHP-FPM
Core API & orchestration
  • Sessions & verrous de factures
  • Gestion du cycle de vie des paiements
  • APIs REST (Apache + PHP-FPM)
Connecteurs Switch National (SMT)
  • Appels vers le Switch National (SMT)
  • Traitement des callbacks
Connecteurs facturiers
  • Consultation & verrouillage des factures
  • Confirmation de paiement
Workers webhooks & callbacks
  • Traitement asynchrone
  • Envoi des webhooks initiateurs
UI intégrables (widgets)
  • UI factures (ex: STEG)
  • UI inscription scolaire
  • Composants embarquables dans les solutions externes
A1 A2 A3
Switch National (SMT)
Gestionnaire de l'agrégateur national PaySmart en sa qualité de switch
Routage vers FSP
Callbacks HTTP/HTTPS
Signatures HMAC
FSP
Banques & établissements de paiement
Traitement monétique
Interface avec le switch
Réponses transactionnelles
Facturiers
STEG, SONEDE, opérateurs…
APIs de consultation
Verrouillage factures
Confirmation paiements
Monitoring & Observabilité
Prometheus, Grafana, ELK / Loki
Métriques temps réel
Logs centralisés
Alertes & tableaux de bord
Cluster PostgreSQL (HA)
Transactions & données métiers
Réplication
Sauvegardes automatiques
Haute disponibilité
Redis Cluster
Cache distribué & files de messages
Cache sessions & factures
Queues asynchrones
Pub/Sub événements
Cluster ClickHouse
Reporting & analytics (FSP, facturiers)
Tableaux de bord
Analytics temps réel
Export de données
Stockage objet
S3 / MinIO (archives & logs lourds)
Archives long terme
Logs compressés
Backups & snapshots
Le flux de haut en bas illustre le chemin fonctionnel : Clients (PaySmart Web servi par Nginx | App Flutter consommant les APIs Apache) → Passerelle d'API (Nginx front web / reverse proxy + Apache/PHP-FPM backend) → Core agrégateur (Apache + PHP-FPM), puis l'écosystème connecté (Switch National (SMT), FSP, facturiers, monitoring) et enfin la couche de données (PostgreSQL, Redis, ClickHouse, stockage objet).

Vue des technologies utilisées

Vue des technologies PaySmart

Sécurité & isolation

Les mesures de sécurité mises en place pour protéger les échanges

🔐

Authentification OAuth2

Les initiateurs (PaySmart, Facturiers via SDK PaySmart) s'authentifient via OAuth2 auprès du Core agrégateur. Les utilisateurs s'authentifient à PaySmart via son propre système d'authentification.

🚫

Isolation Switch National (SMT)

Le Switch National (SMT) n'interagit jamais directement avec les initiateurs. Toutes les communications passent exclusivement par le Core agrégateur, garantissant une isolation complète.

🔒

Webhooks sécurisés

Les webhooks du Switch National (SMT) utilisent des secrets partagés et peuvent utiliser des signatures HMAC sur le payload. Tous les endpoints sont en HTTPS uniquement.

🛡️

Protection anti-double paiement

Le Core agrégateur applique le verrouillage de factures (invoice locking) pour éviter les paiements simultanés et garantit l'idempotence sur les demandes de paiement.

📋

Audit complet

Journaux d'audit détaillés pour tous les callbacks et webhooks, permettant une traçabilité complète de toutes les opérations.

Supervision & résilience

Les mécanismes garantissant la disponibilité et la fiabilité du système

Traitement asynchrone

Le Core agrégateur traite les callbacks du Switch National (SMT) de manière asynchrone avec un modèle de queue/worker, garantissant une haute disponibilité et une meilleure performance.

🔄

Résilience des webhooks

Si un partenaire externe (Facturiers via SDK PaySmart, PaySmart) est temporairement indisponible, le Core agrégateur réessaie plus tard. Toutes les tentatives sont journalisées, aucune perte de callback du Switch National (SMT).

⏱️

Timeouts & retry

Stratégies de timeout et de retry configurées sur les appels sortants pour garantir la fiabilité des communications avec les partenaires.

📊

Métriques & logs

Métriques et logs disponibles pour le monitoring et le débogage, permettant un suivi en temps réel de la santé du système.

Rôles & responsabilités

Répartition claire des responsabilités entre les différents acteurs

Core agrégateur PaySmart
  • Orchestration des paiements
  • Intégration avec le Switch National (SMT) (seul interlocuteur technique)
  • Envoi des webhooks vers les partenaires
  • Gestion des sessions et verrous de factures
  • Centralisation des statuts et notifications
Switch National (SMT)
  • Gestionnaire de l'agrégateur national PaySmart en sa qualité de switch
  • Routage des demandes de paiement vers les FSP
  • Envoi de callbacks au Core agrégateur avec le statut final
  • Interface unique avec le réseau FSP
WeSettle
  • Partenaire technologique du Switch National (SMT)
  • Mise en place de la plateforme d'agrégation en marque blanche PaySmart Core
  • Hébergement et maintenance de l'infrastructure
  • Intégration continue des services et fonctionnalités, support de production
FSP
  • Traitement monétique des transactions
  • Validation finale des paiements
  • Interface avec le Switch National (SMT)
  • Exposition du service de paiement des factures dans leurs solutions
PaySmart / Facturiers via SDK PaySmart
  • Initiation des paiements via les APIs du Core agrégateur
  • Consommation des webhooks du Core agrégateur
  • Relation directe avec les clients finaux
  • Gestion de l'expérience utilisateur dans leurs applications
Facturiers
  • Exposition des factures via leurs APIs
  • Validation finale de la prise en compte des paiements
  • Gestion des contrats et identités des payeurs
  • Affichage graphique de la réussite du paiement et du reçu