Passer au contenu principal
Cette page décrit les principes d’architecture à respecter pour une intégration LigdiCash robuste et sécurisée. Elle s’adresse aux développeurs qui conçoivent l’infrastructure autour de l’API.

Principe fondamental : tout passe par le backend

Vos identifiants LigdiCash (Apikey et Auth Token) ne doivent jamais apparaître dans votre frontend, votre application mobile ou votre code source public. Toutes les requêtes vers l’API LigdiCash partent de votre serveur.
Un Apikey ou Auth Token exposé côté client permet à n’importe qui de créer des factures ou déclencher des payouts en votre nom. Stockez ces secrets dans des variables d’environnement serveur uniquement.

Structure de la table des transactions

Votre base de données doit conserver assez d’informations pour tracer chaque transaction, traiter le callback de manière idempotente et effectuer un polling de fallback.
Le champ ligdicash_token doit être stocké dès la création de la facture. C’est lui que vous utiliserez pour appeler l’endpoint confirm, aussi bien dans le callback que dans le polling de fallback. Ne comptez pas sur le token reçu dans le callback — c’est un token différent.

Endpoints à exposer côté backend

Votre backend joue le rôle de proxy entre votre frontend et l’API LigdiCash. Exposez au minimum ces trois routes :
RouteMéthodeRôle
/api/paiement/initierPOSTCrée la facture LigdiCash, stocke le token, retourne l’URL de paiement
/api/paiement/:id/statutGETRetourne le statut de la transaction (avec polling LigdiCash si encore pending)
/api/ligdicash/callbackPOSTReçoit les notifications LigdiCash, re-vérifie, met à jour la base

Route d’initiation

Node.js (Express)

Route de callback

Node.js (Express)

Fallback polling

LigdiCash n’impose pas de politique de retry sur les callbacks. Si votre endpoint était indisponible ou si un callback a été manqué, une transaction peut rester pending indéfiniment. Mettez en place un polling périodique côté backend.
Fallback polling (cron)
LigdiCash ne passe jamais automatiquement une transaction en notcompleted. Une transaction reste pending indéfiniment si le client n’a pas finalisé le paiement. Après 24h, vous pouvez considérer la transaction expirée et la clôturer vous-même.

Logging et audit

Conservez une trace de chaque interaction avec LigdiCash pour faciliter le diagnostic en cas de litige.
Loggez aussi bien les requêtes sortantes vers LigdiCash que les callbacks entrants. En cas de litige sur une transaction, vous pourrez présenter un historique complet avec horodatage.

Variables d’environnement

.env

Schéma récapitulatif

Pages associées