Passer au contenu principal
Le SDK Dart LigdiCash est conçu pour Flutter. Il utilise les conventions Dart — named parameters, enums, Future<> — et s’intègre naturellement dans vos widgets et services.

Installation

Ajoutez la dépendance dans votre pubspec.yaml :
pubspec.yaml
Puis installez :
Prérequis : Dart SDK ≥ 3.4.1 / Flutter ≥ 3.x.

Initialisation

Dart
Obtenez votre apikey et votre authToken depuis le dashboard LigdiCash en créant un projet API. Stockez-les dans vos variables d’environnement, jamais en dur dans le code Flutter.

Payin avec redirection

Le client est redirigé vers la page de paiement hébergée par LigdiCash dans une WebView. C’est le flux recommandé sur mobile.
Dart
Sur Flutter, ouvrez paymentUrl dans une WebView native (package webview_flutter). Ne jamais l’afficher dans un WebView basé sur iframe HTML — LigdiCash le bloque.
Détectez l’URL de retour (returnUrl / cancelUrl) dans le callback onNavigationRequest de la WebView pour la fermer automatiquement et reprendre le flux de l’application.
Laissez toujours customer absent dans le payin avec redirection. Si vous passez un numéro, LigdiCash filtre la page de paiement pour ne montrer que les opérateurs de ce numéro.

Payin sans redirection

Le client paie directement depuis votre interface Flutter. Vous devez collecter son numéro de téléphone et, selon l’opérateur, son code OTP.
Dart
Le mode OTP varie selon l’opérateur. Par exemple, pour un opérateur en mode USSD, le client génère son OTP sur son téléphone avant que vous ne soumetttiez. Pour un opérateur en mode approbation (ex. Moov Africa), envoyez otp: '' — le client approuve directement sur son application. Consultez la page de l’opérateur concerné.

Payout

Envoyez de l’argent vers un client — remboursement, gain, salaire.

Vers le wallet LigdiCash du client

Dart

Directement vers le mobile money

Dart
WithdrawalType.client utilise POST /pay/v01/withdrawal/create (via wallet LigdiCash). WithdrawalType.merchant utilise POST /pay/v01/straight/payout (mobile money direct, plus lent). Voir Payout — Introduction.

Vérification de statut

Appelez getTransaction avec le token stocké à la création (pas le token du callback, qui est différent).
Dart
Valeurs de TransactionType :
ValeurEndpoint vérifié
TransactionType.payinGET /redirect/checkout-invoice/confirm
TransactionType.clientPayoutGET /withdrawal/confirm
Champs disponibles sur transaction :
PropriétéTypeDescription
statusString"completed", "pending", "cancelled"
responseCodeString"00" succès, "01" échec
amountdoubleMontant de la transaction
operatorIdStringIdentifiant de l’opérateur
operatorNameStringNom de l’opérateur
customerStringNuméro du client
tokenStringToken de la transaction
customDataMap<String, dynamic>Données personnalisées envoyées à la création
Ne livrez jamais une commande uniquement sur la base d’un callback entrant. Appelez toujours getTransaction avec le token stocké à la création pour confirmer le statut côté serveur LigdiCash. Voir Sécurisation du callback.

Gestion des erreurs

Dart
Vérifiez response.responseCode après chaque appel : "00" indique un succès, "01" une erreur. En cas d’erreur, consultez response.wiki pour obtenir l’URL de détail des sous-codes.

Liens utiles