FedaPay, Kkiapay, PayDunya, CinetPay : le comparatif côté développeur
Pays, sandbox, webhooks, SDK et frais publiés de quatre passerelles de paiement utilisées au Bénin, relus dans les documentations officielles, avec les lacunes signalées.
FedaPay, Kkiapay, PayDunya, CinetPay : le comparatif côté développeur
Réponse courte. Les trois passerelles dont nous avons pu relire la documentation le 7 novembre 2026 (FedaPay, Kkiapay, PayDunya) offrent un environnement de test et des notifications par webhook. Elles diffèrent surtout sur trois points : les SDK disponibles (seul Kkiapay documente un SDK Flutter), la clarté de la vérification de signature (FedaPay la détaille, Kkiapay non) et les frais publiés (seul Kkiapay donne des chiffres). CinetPay n'a pas pu être relu : sa documentation était injoignable depuis notre poste. Il n'y a pas de « meilleure » passerelle ici, seulement des compromis selon le projet.
Transparence. BOVO Digital est une agence basée à Abomey-Calavi (Bénin) qui construit des sites, des applications mobiles et des automatisations n8n : nous avons un intérêt dans le sujet. Aucune de ces passerelles ne nous rémunère et cet article ne repose sur aucune donnée, aucun client et aucun prix de BOVO. Il lit des documentations publiques ; ce qui relève de notre raisonnement est écrit comme tel.
Le tableau, tel que les documentations le permettent
Chaque case vient d'une page ouverte le 7 novembre 2026. « Non publié » veut dire que nous n'avons pas trouvé l'information sur les pages lues, pas qu'elle n'existe pas.
| FedaPay | Kkiapay | PayDunya | CinetPay | |
|---|---|---|---|---|
| Pays et opérateurs (encaissement) | Bénin : MTN, Moov, Celtiis, BMO, Coris Money. Togo : Mixx By Yas, Moov. Côte d'Ivoire : MTN. Niger : Airtel. Sénégal : Free. Visa/Mastercard. | Liste officielle non lue. Les exemples montrent les pays BJ, CI, SN, TG et les numéros de test couvrent MTN Bénin, MTN Côte d'Ivoire et Moov. | Liste complète non lue. Les exemples de canaux citent mtn-benin, expresso-sn, orange-money-senegal et card. | Non relu |
| Environnement de test | Mode test dès l'inscription ; API sandbox-api.fedapay.com | Sandbox avec clés de test et numéros fictifs | Adresses sandbox-api et mode test à l'inscription de l'application | Non relu |
| Numéros de test publiés | Non trouvés | Oui, par opérateur et par scénario | Non trouvés sur la page lue | Non relu |
| Webhook | transaction.*, signature X-FEDAPAY-SIGNATURE, 9 reprises au plus, désactivation après 10 échecs | transaction.success et transaction.failed, 5 essais de suite, en-tête x-kkiapay-secret | IPN en POST (callback_url), hash SHA-512 de la clé principale, règle de reprise non trouvée | Non relu |
| SDK serveur | PHP, Node.js, Ruby | PHP, Python, Node.js | Clients cités dans le menu : Java, .NET, NodeJS, Php, Python, Ruby | Non relu |
| SDK front et mobile | React, Angular ; pas de SDK Flutter | JavaScript, Android, Flutter, React Native, Swift | Android, iOS (menu de la documentation) | Non relu |
| Plugins | WooCommerce, Give (WordPress), WHMCS | Prestashop, WooCommerce, Give, Jobster | Magento, Prestashop, WordPress, WHMCS (menu) | Non relu |
| Frais publiés | Aucun chiffre | Mobile Money 3 %, carte 3,5 %, virement bancaire 7 000 FCFA | Aucun chiffre trouvé | Non relu |
Les sources sont en bas de page. Le détail des lacunes est dans la section « Ce que nous ne savons pas ».
FedaPay
Couverture. La page des moyens de paiement distingue les collectes et les dépôts. Les collectes couvrent le Bénin (MTN, Moov, Celtiis, BMO, Coris Money), le Togo (Mixx By Yas, Moov), la Côte d'Ivoire (MTN), le Niger (Airtel), le Sénégal (Free) et les cartes Visa/Mastercard. Les dépôts (paiements sortants) sont listés pour le Bénin (MTN, Moov, Celtiis), le Togo (Mixx By Yas) et la Côte d'Ivoire (MTN). Un mode « sans redirection » permet de garder l'utilisateur sur votre site ou votre application ; la page donne un code par opérateur (par exemple mtn_open, moov, sbin pour le Bénin).
Test. La page de création de compte dit qu'après l'inscription on peut démarrer tout de suite en mode test, sans frais réels. Un compte live demande une validation. Nous n'avons trouvé aucun numéro de test dans la documentation : il faudra voir dans le tableau de bord ce qui est proposé.
Webhooks. La page des webhooks est la plus détaillée des trois : seul un statut 2xx est un succès, au plus 9 reprises à intervalles exponentiels avec une attente qui ne dépasse pas 2 minutes, désactivation après 10 essais sans succès (option à décocher), signature dans l'en-tête X-FEDAPAY-SIGNATURE à vérifier avec la clé secrète du point de terminaison, différente en test et en live. L'article Webhooks de paiement Mobile Money : sept erreurs détaille ces points et les défauts des exemples de code de cette page.
SDK. La page d'aperçu liste PHP, Node.js et Ruby côté serveur, React et Angular côté web. Pas de SDK Flutter ou Dart. Un paquet tiers, feda_flutter, est en version 1.0.1, publié il y a 7 mois par un éditeur nommé ashgateway.com, avec 2 mentions « j'aime » à la date de lecture. Il est annoncé sous double licence : AGPLv3 ou licence commerciale. L'AGPL a des conséquences pour une application distribuée ; faites relire la licence par un juriste avant de l'embarquer. Nous n'avons pas audité le code.
Frais. Aucun chiffre dans la documentation. L'article du centre d'aide dit seulement que les frais d'un paiement reçu par Mobile Money ou carte dépendent du moyen de paiement, que les transferts vers un compte Mobile Money sont gratuits, que les virements bancaires dépendent de la banque partenaire, et qu'une configuration sur mesure passe par un devis du support. Des pourcentages circulent sur des blogs de prestataires ; nous ne les reprenons pas, faute de source officielle.
Kkiapay
Couverture. Nous n'avons pas trouvé de page listant pays et opérateurs. Ce que nous avons lu : la page du SDK Flutter montre un paramètre countries avec les exemples ["CI","BJ"] et ["BJ","CI","SN","TG"], et le guide du bac à sable fournit des numéros pour MTN Bénin, MTN Côte d'Ivoire et Moov. Ce sont des exemples, pas une liste officielle de couverture. Vérifiez auprès de Kkiapay avant de promettre un pays à un client.
Test. C'est le guide de test le plus concret des quatre. Pour MTN Bénin, les numéros 61000000 et 97000000 simulent un succès, et les terminaisons 001, 002 et 003 simulent une erreur de traitement, un solde insuffisant et un paiement refusé. D'autres numéros simulent un succès après une attente de 1 ou 2 minutes, ce qui sert à tester un webhook tardif. On bascule en test avec les clés de test du tableau de bord.
Webhooks. La page webhook (non datée) dit qu'on crée le webhook dans le tableau de bord avec une URL, des événements et un « hash secret ». Les codes hors 2xx, y compris les 3xx, signalent une non-réception ; Kkiapay réessaie 5 fois de suite à intervalles de 500 ms « incrémental ». Le corps contient transactionId, isPaymentSucces, method (MOBILE_MONEY, WALLET ou CARD), amount, fees, event. Sur la signature, la page dit qu'un en-tête x-kkiapay-secret porte une signature calculée avec votre hash secret, mais son exemple se limite à x-kkiapay-secret: XXX et ne dit ni comment la calculer ni comment la comparer. C'est la lacune principale de la documentation côté sécurité.
SDK. La liste de la documentation mentionne des SDK JavaScript, Android, Flutter, React Native et Swift, des guides pour Vue, Nuxt, React, Next.js, Angular et Svelte, des SDK d'administration côté serveur (PHP, Python, Node.js) et des plugins (Prestashop, WooCommerce, Give, Jobster). Le SDK Node décrit une fonction verify qui retrouve une transaction par son identifiant, utile pour recouper un webhook. Côté Flutter, le paquet kkiapay_flutter_sdk est en version 1.3.4, publié le 22 avril 2025 (donc il y a environ 18 mois), sous licence MIT, avec 27 mentions « j'aime » et un éditeur affiché comme non vérifié. La documentation du SDK ne parle pas de signature de webhook.
Frais. La page des frais donne trois chiffres : 3 % pour un paiement Mobile Money, présentés comme à la charge du client ; 3,5 % pour une carte, à la charge du marchand ; 7 000 FCFA retenus pour un virement vers un compte bancaire, quel que soit le montant. Un transfert vers un compte Mobile Money est sans frais pour le marchand. Pas de grille par pays ni par opérateur sur cette page.
PayDunya
Couverture. La documentation HTTP/JSON ne contient pas de liste de pays. Les exemples de canaux de paiement citent mtn-benin, expresso-sn, orange-money-senegal et card, et précisent que les nouvelles options de paiement apparaissent sur la page de paiement sans changement de code. Nous ne pouvons donc pas donner la liste complète des opérateurs ni des pays.
Test. À la création d'une application, on choisit « mode test », puis on active le mode production. Les adresses de test (app.paydunya.com/sandbox-api/...) et de production (app.paydunya.com/api/...) sont distinctes, avec des clés de test et de production distinctes. Nous n'avons pas trouvé de numéros de test sur la page lue.
IPN (webhook). L'IPN est l'URL de votre serveur que PayDunya appelle en POST pour un paiement confirmé, annulé ou échoué, avec les statuts completed, cancelled et failed. Deux détails utiles pour un développeur. Premièrement, la page précise que les données postées sur l'URL de callback sont au format application/x-www-form-urlencoded, alors que le reste de l'API est en JSON : un récepteur qui n'attend que du JSON échouera. Deuxièmement, la réponse contient un hash qui est le SHA-512 de votre clé principale (MasterKey), destiné à vérifier que les données viennent de PayDunya. Notre lecture : ce hash ne dépend pas du contenu du message, donc il prouve la provenance mais pas l'intégrité du montant. Relisez la facture par l'URL de confirmation (checkout-invoice/confirm/[invoice_token], avec une version sandbox-api). Aucune règle de reprise n'est décrite dans la page lue.
SDK et plugins. Le menu de la documentation liste des clients pour Android, Java, .NET, NodeJS, Php, Python et Ruby, et des intégrations Magento, Prestashop, WordPress et WHMCS. Nous n'avons pas ouvert chaque page : ce sont des intitulés de menu. Nous n'y avons pas vu de SDK Flutter.
Frais. Aucun chiffre sur les pages ouvertes.
CinetPay
Le 7 novembre 2026, le domaine docs.cinetpay.com n'a pas pu être résolu depuis notre poste (échec de connexion) et le site cinetpay.com a répondu par une erreur 403. Nous n'avons donc relu aucune page, et nous n'écrivons rien sur ses pays, son bac à sable, ses webhooks, ses SDK ni ses frais. Nous avions vu des sources qui se contredisaient sur l'existence d'un bac à sable chez CinetPay ; faute de page officielle relue, nous ne tranchons pas. Lisez directement sa documentation avant de le comparer aux trois autres.
Wave et MTN MoMo, en bref
- Wave. La documentation de l'API Checkout décrit des sessions de paiement, une clé d'API liée à un portefeuille Business, le XOF comme devise (sans décimales) et une signature facultative des requêtes sortantes (en-tête
Wave-Signature, HMAC-SHA256). Cette signature protège vos appels vers Wave, pas les notifications que Wave vous envoie. La page évoque un webhook de paiement échoué (champlast_payment_error) sans décrire sa configuration. Nous n'y avons pas trouvé de bac à sable ni de frais. - MTN MoMo. Le portail développeurs présente un menu « API Sandbox » et deux familles de produits, « Get Paid » (encaisser) et « Pay » (décaisser). La page d'accueil n'indique ni pays ni frais.
Choisir selon le cas
Ce sont des pistes de lecture, pas un classement.
Site e-commerce sur WordPress, Prestashop ou Magento. Regardez d'abord quels plugins existent pour votre CMS : FedaPay documente WooCommerce, Kkiapay WooCommerce et Prestashop, PayDunya Prestashop, WordPress et Magento (d'après son menu). Vérifiez ensuite la version du plugin et sa date de mise à jour, que nous n'avons pas contrôlées. Pour un site sur mesure, comparez la qualité de la page de webhooks : celle de FedaPay est la plus complète de notre lecture.
Application Flutter. Kkiapay est la seule des quatre dont nous avons lu un SDK Flutter, avec les réserves ci-dessus (paquet de 18 mois, éditeur non vérifié). Avec FedaPay ou PayDunya, il faut passer par l'API HTTP depuis votre serveur, et ouvrir la page de paiement hébergée dans l'application : ce n'est pas bloquant, mais c'est plus de travail. Dans tous les cas, ne mettez jamais la clé secrète dans l'application.
Workflow n8n. Rien n'est spécifique à n8n : il faut un endpoint de réception et des appels HTTP. Deux points à anticiper. La page du nœud Webhook de n8n propose l'option « Raw Body » mais ne décrit pas de vérification de signature ; nous n'avons validé aucune méthode. Et PayDunya poste en application/x-www-form-urlencoded. Dans les deux cas, relire la transaction par l'API avant d'agir reste la protection la plus simple. Pour le détail, voir notre article sur les webhooks de paiement Mobile Money.
Un client qui vend dans plusieurs pays. Comparez la liste des opérateurs de chaque pays visé avec la page officielle de la passerelle. FedaPay en publie une ; pour Kkiapay et PayDunya, nous n'avons pas trouvé de liste que nous puissions citer.
Cinq vérifications avant de s'engager
- Le pays et l'opérateur de vos clients sont écrits sur une page officielle, pas seulement dans un exemple de code.
- Vous avez réussi un paiement de test complet, y compris un échec et une attente longue, avant toute demande de compte live.
- Vous savez comment vérifier l'origine d'un webhook, ou vous avez décidé de relire chaque transaction par l'API.
- Les frais sont écrits dans un contrat ou une grille officielle que vous avez reçue, pas dans un blog.
- Le SDK que vous allez embarquer a une licence compatible avec votre usage et un mainteneur identifié.
Pour aller plus loin
Pour le contexte du marché, voir la lecture du rapport BCEAO sur le Mobile Money au Bénin. Pour les erreurs de réception des paiements, voir les sept erreurs de webhook. Pour les workflows qui touchent à de l'argent et doivent garder une validation humaine, voir les agents IA n8n en production.
Ce que nous ne savons pas
- CinetPay entier : aucune page n'a pu être ouverte le 7 novembre 2026.
- Les frais de FedaPay : la documentation et le centre d'aide lus ne donnent aucun chiffre.
- Les frais de PayDunya : non trouvés sur les pages ouvertes.
- Le calcul de la signature Kkiapay (
x-kkiapay-secret) : non expliqué dans la page lue. - La liste officielle des pays et opérateurs de Kkiapay et de PayDunya.
- Les règles de reprise de PayDunya et le calendrier exact de celles de Kkiapay.
- Les numéros de test de FedaPay et de PayDunya.
- Le contenu détaillé des plugins et des SDK (version, mise à jour, état de maintenance) : nous avons lu des listes, pas le code.
- Le comportement réel : nous avons lu des documentations, nous n'avons pas fait de paiement ; les pages peuvent changer.
- Les conditions commerciales (délais de reversement, limites, ouverture d'un compte live) : non étudiées.
Sources consultées le 7 novembre 2026
- FedaPay, moyens de paiement, création de compte, webhooks, aperçu des SDK, index de la documentation (pages non datées).
- FedaPay, centre d'aide, tarification et frais.
- Kkiapay, webhook, guide de test du bac à sable, frais, SDK Flutter, SDK Node.js, index (pages non datées).
- PayDunya, documentation HTTP/JSON (page non datée).
- Wave, API Checkout et MTN MoMo, portail développeurs.
- pub.dev, kkiapay_flutter_sdk et pub.dev, feda_flutter (nombres de mentions « j'aime » relevés le 7 novembre 2026).
- n8n, nœud Webhook.
- CinetPay : documentation non ouverte (domaine injoignable, site en erreur 403).
Vous voulez intégrer l'une de ces passerelles à un site, une application ou un workflow, avec des tests et un rapprochement des paiements ? Découvrez notre agence de développement web au Bénin.
Étiquettes
FAQ
Quelle passerelle de paiement choisir au Bénin pour un développeur ?
Cela dépend du projet, et nous ne classons pas les passerelles. Pour une application Flutter, Kkiapay est la seule des quatre à documenter un SDK Flutter (paquet pub.dev dont l'éditeur n'est pas vérifié). Pour un site WordPress ou Prestashop, FedaPay, Kkiapay et PayDunya documentent chacun des plugins. Pour un workflow n8n, tout repose sur l'API HTTP et les webhooks, que les trois passerelles lues exposent. CinetPay n'a pas pu être relu.
Existe-t-il un SDK Flutter officiel pour FedaPay ?
La page « Aperçu des SDKs » de FedaPay, consultée le 7 novembre 2026, liste PHP, Node.js et Ruby côté serveur, React et Angular côté web, et aucun SDK Flutter. Un paquet tiers, feda_flutter 1.0.1, existe sur pub.dev ; il est publié sous double licence (AGPLv3 ou licence commerciale). Nous ne l'avons pas audité.
Quels sont les frais de FedaPay, de Kkiapay et de PayDunya ?
Kkiapay publie : 3 % pour un paiement Mobile Money, supportés par le client d'après sa page, 3,5 % pour une carte à la charge du marchand, et 7 000 FCFA pour un virement vers un compte bancaire. FedaPay ne publie aucun chiffre dans la documentation ni dans son centre d'aide lu : les frais « varient selon le moyen de paiement ». Nous n'avons pas trouvé de frais sur les pages PayDunya ouvertes. CinetPay n'a pas pu être ouvert.
Les quatre passerelles ont-elles un environnement de test ?
FedaPay (mode test dès l'inscription, adresse d'API sandbox), Kkiapay (sandbox avec numéros de test) et PayDunya (adresses sandbox-api et mode test) documentent un environnement de test. Pour CinetPay, nous n'avons pas pu ouvrir la documentation le 7 novembre 2026, et nous ne tranchons pas les sources contradictoires que nous avions vues auparavant.
Comment sécuriser la réception des notifications de paiement ?
FedaPay décrit une signature vérifiable dans l'en-tête X-FEDAPAY-SIGNATURE. Chez Kkiapay, la page ne dit pas comment calculer la valeur de l'en-tête x-kkiapay-secret. PayDunya joint un hash SHA-512 de la clé principale. Dans tous les cas, nous recommandons de relire la transaction par l'API avant de livrer ; c'est notre recommandation, pas une exigence écrite des documentations.
On chiffre un workflow — pas une démo générique
Vous décrivez une tâche répétée. On vous dit ce qui se livre en n8n, le délai, et ce qui reste hors-scope.
- 30 min
- 1 workflow cadré
- Sans engagement

William Aklamavo
Expert en développement web et automatisation, passionné par l'innovation technologique et l'entrepreneuriat digital.
