Passer au contenu principal
Payfonte propose plusieurs méthodes pour collecter les paiements de vos clients à travers l’Afrique via notre API d’orchestration de paiement. Acceptez les principaux moyens de paiement alternatifs (APM) et moyens de paiement locaux en Afrique via une seule intégration.

Méthodes d’intégration

Checkout inline

Intégré à votre pageAffichez un formulaire de paiement directement sur votre site sans rediriger le client. Idéal pour une expérience fluide.

Checkout standard

Redirection vers PayfonteRedirigez le client vers une page de paiement hébergée par Payfonte. C’est l’intégration la plus simple avec une prise en charge complète des moyens de paiement.

Direct Charge

Serveur à serveurInitiez les débits directement via l’API pour les paiements récurrents ou lorsque vous avez déjà collecté les informations de paiement.

Liens de paiement

Option sans codeGénérez des URL de paiement partageables depuis le dashboard. Pratique pour les factures, les réseaux sociaux et les campagnes e-mail.

Comparaison rapide

MéthodeEffort d’intégrationExpérience clientCas d’usage
StandardFaibleRedirection vers une page hébergéeLa plupart des marchands
InlineMoyenIntégré à votre siteUX fluide
Direct ChargeÉlevéPas d’interface, côté serveurRécurrent, cartes enregistrées
Liens de paiementAucunPaiement via lienFactures, paiements ponctuels

Vue d’ensemble du flux de paiement


Moyens de paiement alternatifs pris en charge

RégionMobile Money APIVirement bancaireCartes
NigeriaMTN MoMo API, Airtel, Opay, PalmPay✅ OuiVia partenaire
GhanaMTN MoMo API, AirtelTigo, TelecelBientôt disponibleVia partenaire
KenyaM-Pesa API✅ OuiVia partenaire
TanzanieM-Pesa API, Airtel Money API, Halopesa, TigoBientôt disponible-
Afrique de l’Ouest (CFA)Orange Money, MTN, intégration Wave, Moov--
Voir Providers pris en charge pour la liste complète des moyens de paiement locaux en Afrique.

Requête de collecte minimale

Voici un exemple minimal pour créer une session de checkout :
curl --location 'https://sandbox-api.payfonte.com/payments/v1/checkouts' \
  --header 'client-id: YOUR_CLIENT_ID' \
  --header 'client-secret: YOUR_CLIENT_SECRET' \
  --header 'Content-Type: application/json' \
  --data '{
    "reference": "ORDER-001",
    "amount": 5000,
    "currency": "NGN",
    "country": "NG",
    "redirectURL": "https://yoursite.com/payment/complete",
    "webhook": "https://yoursite.com/webhooks/payfonte",
    "user": {
      "email": "customer@example.com",
      "phoneNumber": "08012345678"
    }
  }'

Paramètres requis

ParamètreTypeDescription
referencestringVotre identifiant de commande ou de transaction unique
amountintegerMontant en sous-unités, voir Spécification des montants
currencystringCode devise ISO, par exemple NGN, KES, GHS, XOF
countrystringCode pays ISO, par exemple NG, KE, GH
redirectURLstringURL vers laquelle rediriger le client après paiement

Paramètres optionnels

ParamètreTypeDescription
webhookstringURL pour les notifications de paiement
user.emailstringAdresse e-mail du client
user.phoneNumberstringNuméro de téléphone du client
metadataobjectDonnées personnalisées à attacher à la transaction

Valeurs de statut

Les statuts de collecte renvoyés par l’API sont :
  • pending
  • failed - final
  • success - final

Traitement des webhooks

Nous envoyons des notifications webhook lors des changements de statut de paiement. En production, implémentez toujours leur traitement :
app.post('/webhooks/payfonte', (req, res) => {
  const event = req.body;

  switch (event.event) {
    case 'payment.completed':
      // Paiement réussi : exécuter la commande
      fulfillOrder(event.data.reference);
      break;
    case 'payment.failed':
      // Paiement échoué : informer le client
      notifyCustomer(event.data.reference);
      break;
  }

  res.status(200).send('OK');
});
Voir Webhooks pour la documentation complète.

Bonnes pratiques

Générez une valeur reference unique pour chaque transaction. Cela évite les doubles débits et simplifie le rapprochement.
Votre système doit gérer les retries de webhook sans effet de bord. Vérifiez si une commande est déjà traitée avant de la rejouer.
Après réception d’un webhook, vérifiez le statut de la transaction via l’API avant d’exécuter la commande.
Certains moyens de paiement, comme l’USSD, prennent du temps. Affichez au client un état d’attente adapté.

Étapes suivantes

Checkout inline

Intégrer les paiements à votre site

Checkout standard

Intégration par redirection

Configuration webhook

Traiter les notifications de paiement

Référence API

Documentation API complète