Cette page explique comment Fapshi traite les transactions que vous créez, et ce dont votre application est responsable pour garder des statuts de transaction fiables. Lisez-la avant de passer en production avec Initiate Pay, Direct Pay ou Payout.
Idempotence et prévention des doublons
Cela signifie que :- Si vous envoyez deux requêtes Direct Pay avec le même
externalId, Fapshi crée deux transactions et envoie deux demandes de paiement au client. Les deux peuvent être payées. - Si vous envoyez deux requêtes Payout avec le même
externalId, les deux retraits sont effectués. - La prévention des doublons est de la responsabilité de votre application.
Approche recommandée
- Générez un
externalIdunique dans votre système pour chaque tentative de paiement (par ex. l’ID de commande suivi d’un numéro de tentative) et enregistrez-le avant d’appeler Fapshi. - Envoyez toujours aussi un
userId. C’est ce qui vous permet de retrouver la transaction plus tard si vous ne recevez jamais la réponse (voir ci-dessous). - Enregistrez le
transIdrenvoyé par Fapshi avec votreexternalIddès que vous le recevez. - Ne créez pas de nouvelle transaction pour une commande qui en a déjà une au statut
CREATED,PENDINGouSUCCESSFUL.
Réessayer après un timeout ou une réponse perdue
Si une requête de création de transaction expire (timeout) ou si vous ne recevez jamais sa réponse, ne la renvoyez pas aveuglément. La transaction existe peut-être déjà. À la place :- Appelez
GET /transaction/{userId}avec leuserIdque vous avez envoyé. - Cherchez une transaction dont le
externalIdcorrespond à celui que vous avez envoyé. - Si vous la trouvez, enregistrez son
transIdet continuez à suivre cette transaction. Ne réessayez pas. - Si vous ne la trouvez pas, la transaction n’a pas été créée et vous pouvez renvoyer la requête en toute sécurité.
Une transaction est renvoyée par
GET /transaction/{userId} dès sa création (statut CREATED). Vous pouvez donc faire cette vérification immédiatement, même si la réponse initiale de l’API a été perdue.Statuts des transactions
- Les transactions Direct Pay n’expirent jamais. Leur état final est toujours
SUCCESSFULouFAILED. - Les liens de paiement expirent au bout de 24 heures. D’ici là, un client peut réessayer sur le même lien après une tentative échouée.
GET /payment-status/{transId} pour confirmer un statut ou récupérer une notification manquée.
Transactions échouées
Traitement recommandé :- Considérez
FAILEDcomme le résultat final de cette transaction. - Affichez un message générique au client (par ex. « Le paiement n’a pas pu être effectué. Veuillez vérifier votre solde et réessayer. »).
- Si le client souhaite réessayer, créez une nouvelle transaction avec un nouvel
externalId.
Liste de contrôle du rapprochement
Montants et frais
- Fapshi ne collecte pas de paiements partiels. Fapshi collecte toujours la totalité du montant (
amount) que vous transmettez à l’API ; une transactionSUCCESSFULsignifie donc toujours que ce montant exact a été collecté. - Les frais de transaction de Fapshi sont de 3 % du montant payé.
- Les frais sont identiques pour tous les moyens de paiement (MTN Mobile Money et Orange Money) et ne varient pas selon le volume de transactions.
- Le champ
revenued’une transaction correspond à ce que vous recevez après déduction des frais Fapshi :
10 000 XAF a un revenue de 9 700 XAF.
Pour les délais de règlement et les autres questions de tarification, consultez la FAQ Fapshi.
Remboursements
Fapshi ne dispose pas d’API de remboursement dédiée. Pour rembourser un client, envoyez-lui l’argent avec l’endpoint Payout, en utilisant un service distinct activé pour les retraits. Le remboursement est payé depuis le solde de votre service de retrait, et non depuis le service de collecte qui a reçu le paiement initial. Assurez-vous d’abord que le service de retrait est alimenté (transfert instantané et gratuit depuis votre service de collecte, ou rechargement) ; voir Alimenter votre service de retrait.Les retraits sont désactivés par défaut en environnement live et doivent être activés. Les conditions et restrictions sont décrites sur la page de l’endpoint Payout. Les retraits sont soumis à la même règle que les paiements : Fapshi n’empêche pas les retraits en double, appliquez donc la même approche de prévention des doublons décrite ci-dessus.
Moyens de paiement pris en charge
L’API prend en charge uniquement MTN Mobile Money et Orange Money (ainsi que les comptes Fapshi comme destination de retrait). Il n’est pas prévu d’ajouter d’autres réseaux de paiement à court terme.Besoin d’aide ? Contactez-nous via support@fapshi.com ou visitez notre Centre d’aide et de support.