Passer au contenu principal
Utilisez toujours la sandbox pour valider votre intégration avant de passer en production.

Configuration sandbox

1

Utiliser l'URL de base sandbox

URL de base API : https://sandbox-api.payfonte.com
2

Utiliser les identifiants sandbox

Récupérez votre client-id et client-secret depuis Settings -> Security -> API Keys and Webhooks sur sandbox-app.payfonte.com.
3

Définir un endpoint webhook

Configurez une URL de callback de test afin de valider les mises à jour de transaction asynchrones.

Points à valider avant le go-live

Auth et en-têtes

Confirmez que toutes les requêtes incluent client-id et client-secret.

Format de montant

Vérifiez que vous envoyez uniquement des valeurs entières en sous-unités. Les décimales ne sont pas prises en charge.

Cycle de vie des statuts

Validez le passage des états pending ou processing vers les états finaux success ou failed dans votre logique métier.

Traitement des webhooks

Vérifiez la validation de signature, les retries, l’idempotence et les temps de réponse.

Scénarios de test principaux

ScénarioRésultat attendu
Requête de débit valideRéponse 201 avec référence de transaction
Identifiants invalidesÉchec d’authentification, 401 ou 403
Envoi d’un montant décimalÉchec de validation ou provider
Référence dupliquée409 avec DuplicateTransactionReference
Slug provider invalideErreur avec InvalidProvider
Livraison webhookCallback reçu puis traité une seule fois

Simuler des résultats success, failed et pending

Pour les collectes comme pour les décaissements en sandbox, vous pouvez contrôler le résultat attendu en modifiant le numéro mobile money utilisé dans la requête.
Motif du numéroRésultat attenduUtilisation
Tout autre numérosuccessLa sandbox considère tous les autres numéros comme des transactions réussies
Numéro se terminant par 000000failedLa sandbox force l’échec de la transaction
Numéro se terminant par 111111pendingLa sandbox maintient la transaction en attente pour tester le traitement asynchrone
Appliquez cette règle au champ de numéro que vous envoyez pour la transaction. Pour les collectes, utilisez le numéro mobile money du client. Pour les décaissements, utilisez le numéro du bénéficiaire.
Lorsque vous testez des flux pending, ne traitez pas la réponse API initiale comme définitive. Attendez les mises à jour webhook ou vérifiez le statut depuis votre backend avant de marquer la transaction comme success ou failed.

Détails de test des cartes

Utilisez ces données de carte sandbox pour tester les parcours d’authentification des collectes par carte et les résultats finaux.
NuméroExpirationCVVPINOTPCas de testStatut
5061 4604 1012 1111 10112/505571102543210PinPENDING
5061 4604 1012 1111 10212/505581103543210Pin+OTPPENDING
5061 4604 1012 1111 10312/505591107543210Pin+3DSPENDING
5061 4604 1012 1111 10412/505601104543210PinSUCCESS
5061 4604 1012 1111 10512/505611105543210Pin+OTPSUCCESS
5061 4604 1012 1111 10612/505621106543210Pin+3DSSUCCESS
5061 4604 1012 1111 10712/505631107123456PinFAIL
5061 4604 1012 1111 10812/505641108245678Pin+OTPFAIL
5061 4604 1012 1111 10912/505651109456789Pin+3dsFAIL
5061 4604 1012 1111 11012/505661110234567No auth
5061 4604 1012 1111 11112/505671111334455Insufficient balance
5061 4604 1012 1111 1123/505681111334455Expired card
4508 7500 15741 019(USD)12/501003DSSUCCESS
4012 0000 3333 0026(USD)12/501003DSSUCCESS
5123 4500 0000 0008(USD)12/501003DSSUCCESS
2223 0000 0000 0007(USD)12/501003DSFAIL
5111 1111 1111 1118(USD)12/501003DSFAIL
2223 0000 0000 0007(USD)12/501003DSFAIL
5061 4604 1012 1111 103(USD)12/5010011073DSPENDING

Données de test spécifiques à certains providers

Simulateur OTP Orange Ivory Coast

Pour tester Orange Ivory Coast avec Payfonte :
  1. Ouvrez https://mpayment.orange-money.com/mpayment-otp/login
  2. Connectez-vous avec :
    • Username : 7701901040
    • Password : MerchantWP01040
  3. Générez un OTP avec :
    • Phone Number : 7701101040, généralement prérempli
    • PIN : 1791
  4. Utilisez l’OTP généré sur la plateforme de paiement.
  • Exemple success : 254700123456
  • Exemple failed : 254700000000
  • Exemple pending : 254711111111
  • Exemple success : 233242426222
  • Exemple failed : 233240000000
  • Exemple pending : 233241111111

Requête sandbox rapide

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": "test-001",
    "amount": 10000,
    "currency": "NGN",
    "country": "NG",
    "user": {
      "phoneNumber": "08012345678"
    }
  }'

Documentation associée

Environnements

URL sandbox et production, ainsi que configuration des identifiants.

Webhooks

Vérifiez les payloads de callback et la validation de signature.

Codes d'erreur

Dépannez rapidement les requêtes de test échouées.