Service interne · Paiement · API

CabuPay

Un service de paiement interne conçu pour permettre aux applications de l'écosystème de gérer les dépôts, les retraits et la consultation des balances à travers une même API.

Service interne•API de paiement•Écosystème Cabu
Interface et environnement du service CabuPay

CabuPay est un service de paiement développé pour servir les différentes applications de l'écosystème Cabu.

Plutôt que de gérer séparément les paiements dans chaque application, l'idée était de disposer d'un service capable de centraliser les opérations de paiement et de fournir aux applications clientes les interfaces nécessaires pour les utiliser.

CabuPay expose ainsi une API permettant notamment d'effectuer des dépôts, des retraits et de consulter les balances.

Le besoin

Éviter de reconstruire le paiement dans chaque application

Lorsqu'un même écosystème contient plusieurs applications qui doivent accepter ou envoyer de l'argent, reproduire la logique de paiement dans chacune d'elles peut rapidement compliquer le fonctionnement de l'ensemble.

CabuPay a donc été pensé comme une couche commune entre les applications clientes et les services de paiement utilisés derrière celles-ci.

Une application n'a ainsi pas besoin de gérer elle-même l'ensemble de cette logique. Elle peut communiquer avec CabuPay et récupérer les informations dont elle a besoin.

Applications

Les applications clientes utilisent les services exposés par CabuPay.

CabuPay

Le service centralise les opérations de paiement et expose les endpoints nécessaires.

Prestataire de paiement

CabuPay communique avec les services de paiement utilisés pour traiter les opérations.

Deposits

Gérer les dépôts depuis une même API

Une application cliente peut initier un dépôt à travers CabuPay sans avoir à communiquer directement avec toute la logique nécessaire au traitement de l'opération.

Une fois l'opération initiée, CabuPay permet également de récupérer les informations du dépôt et d'en vérifier le statut.

Le système prend aussi en compte les notifications envoyées après le traitement d'une opération grâce aux webhooks.

Initier un dépôt
Recevoir le webhook d'un dépôt
Récupérer les informations d'un dépôt
Vérifier un numéro
Vérifier le statut d'un dépôt

Payouts

Prendre également en charge les retraits

Le fonctionnement est similaire pour les retraits. Une application cliente peut demander un payout à travers CabuPay et suivre ensuite l'évolution de l'opération.

Les informations liées au payout peuvent être récupérées depuis l'API et les événements associés peuvent être transmis à l'application cliente par webhook.

Le système permet également de vérifier le numéro concerné et de consulter le statut de l'opération.

Initier un retrait
Recevoir le webhook d'un retrait
Récupérer les informations d'un retrait
Vérifier un numéro
Vérifier le statut d'un retrait

Balances

Avoir une vision des balances disponibles

Les applications qui utilisent CabuPay peuvent également consulter les balances disponibles.

Les informations peuvent être récupérées globalement, mais aussi filtrées selon la devise ou le pays concerné.

Cela permet aux applications clientes d'obtenir les informations dont elles ont besoin sans avoir à reconstruire leur propre système de consultation.

Récupérer les balances
Récupérer les balances par devise
Récupérer les balances par pays

Communication entre services

Les applications sont informées de l'évolution des opérations

Une opération de paiement ne se termine pas nécessairement au moment où une requête est envoyée.

CabuPay prévoit donc un système de webhooks permettant de transmettre aux applications clientes les événements liés aux dépôts et aux retraits.

L'application cliente peut ainsi réagir lorsqu'une opération évolue, plutôt que de devoir constamment interroger le service pour savoir si quelque chose a changé.

Vérifications

Vérifier les informations avant une opération

CabuPay prévoit également des mécanismes permettant de vérifier certains éléments avant ou pendant le traitement d'une opération, notamment les numéros concernés.

Ces vérifications font partie des services exposés aux applications clientes et permettent de mieux contrôler le parcours d'une transaction.

Intégration

Une couche de paiement au-dessus des prestataires

CabuPay s'intègre à des services de paiement externes afin de pouvoir traiter les opérations demandées par les applications de l'écosystème.

Le projet utilise notamment PawaPay pour la partie liée aux opérations de paiement.

L'intérêt de cette architecture est de fournir aux applications clientes une interface commune, sans les obliger à gérer directement chaque intégration de paiement.

Notre travail

Construire une brique commune pour l'écosystème

CabuPay n'est pas une application destinée directement à l'utilisateur final. C'est une brique technique qui se trouve derrière plusieurs applications.

Notre travail a donc consisté à construire cette couche de communication entre les applications clientes et les services de paiement : gestion des dépôts, retraits, balances, vérifications, statuts et notifications.

L'objectif est de permettre aux autres produits de l'écosystème de s'appuyer sur un même service de paiement plutôt que de réimplémenter ces fonctionnalités à chaque nouveau projet.

CabuPay constitue ainsi une couche commune de paiement pour l'écosystème : les applications peuvent initier des dépôts et des retraits, recevoir les événements associés, consulter les statuts et accéder aux balances depuis une même API.

Le projet

CabuPay au cœur de l'écosystème

Un service interne conçu pour rendre les fonctionnalités de paiement réutilisables par les différentes applications qui composent l'écosystème Cabu.