Bienvenue dans la documentation d'intégration. Ce guide vous accompagne pas à pas pour connecter, tester et valider votre implémentation des APIs MyPVit dans notre environnement Sandbox, avant votre passage en production.
Prérequis & Identifiants
Avant de commencer à coder, rassemblez les identifiants uniques. Vous les trouverez dans votre espace marchand.
Code du Compte d'Opération (Environnement Test)
Il identifie le portefeuille de règlement et le groupe d'opérateurs ciblés. En environnement Sandbox, vous devez utiliser le compte Test par défaut.
Récupérez le code de « Compte TEST ». Il commence par ACC_
Token d'API
Tout appel HTTP oblige une clé d'accès (ou token) valide liée à votre compte d'opération. Pour récupérer cette clé, vous utiliserez l'api Renew Secret Key. Vous devez au préalable définir un mot de passe pour cette api.
Allez dans APIs. Définissez un mot de passe fort et conservez-le.
Récupérez votre « Code URL ».
Webhook de Notification (Callback)
Le Callback est une requête asynchrone (Webhook) que MyPVit envoie à votre serveur pour vous informer du statut final d'une transaction. Vous devez la configurer.
{
"status": "PENDING",
"status_code": "200",
"operator": "AIRTEL_MONEY",
"reference_id": "PAY260226747050",
"merchant_reference_id": "V4cHobJKUt",
"merchant_operation_account_code": "ACC_673B22D1077EA",
"message": "Votre demande de paiement V4cHobJKUt a été initiée avec succès et est en cours de traitement. Veuillez patienter le statut définitif de votre transaction"
}
Bonnes pratiques d'intégration
Traitement Asynchrone : Ne vous fiez jamais au statut PENDING de la réponse API pour valider un paiement. Attendez toujours la confirmation finale (SUCCESS ou FAILED) sur votre URL de notification (Webhook).
Idempotence : Assurez-vous que votre route de callback est capable de traiter la même notification plusieurs fois sans créditer le client en double. Utilisez toujours votre `merchant_reference_id` pour vérifier si la transaction a déjà été traitée dans votre système.
Que faire si le Callback n'est pas reçu ? : Ne considérez jamais une transaction comme échouée ou réussie sur la seule base d'une absence de callback. Si vous ne recevez aucune notification après un délai raisonnable (ex: 3 minutes), le statut de la transaction est incertain. Dans ce cas de figure, vous devez impérativement interroger notre API de vérification de statut (Check Status) pour récupérer le statut définitif de la transaction.
3. Réception du Webhook (Callback)
Une fois la transaction traitée par l'opérateur mobile, PVit envoie immédiatement une notification (Webhook) à l'URL de callback que vous avez renseignée lors de la requête initiale. Cette notification contient le statut final et définitif de la transaction (SUCCESS ou FAILED) ainsi que tous les détails de l'opération.
Pour confirmer que votre système a bien reçu la notification, votre serveur doit impérativement répondre à notre requête POST avec un code HTTP 200 OK et renvoyer un objet JSON contenant un écho du `transactionId` et du code` reçus.
Règles strictes pour valider l'accusé de réception
Echo dynamique (Ne codez pas en dur) : Vous devez extraire dynamiquement les attributs transactionId et code du payload entrant pour les renvoyer tels quels dans votre réponse. Ne fixez jamais la valeur du champ code en dur (ex: écrire systématiquement 200). Contentez-vous de renvoyer la valeur exacte que PVit vous a transmise, car celle-ci est susceptible de changer selon le contexte ou de futures mises à jour de l'API.
Garantie d'une bonne intégration : Répondre correctement à ce callback est fondamental. C'est le seul moyen pour notre plateforme de s'assurer que l'intégration de l'API est correcte et que vos serveurs communiquent parfaitement avec les nôtres.
Condition de validation des tests : Lors de votre phase d'intégration, veuillez noter que vos simulations ne seront considérées comme valides et terminées que si vous avez correctement géré ce callback. Une requête d'initiation de paiement réussie ne suffit pas à valider vos tests ; la boucle technique doit impérativement être fermée par le renvoi de cet accusé de réception.
4. Simulation de Transaction : Scénario Échec
Il est crucial de tester la résilience de votre application face aux paiements refusés (fonds insuffisants, annulation par le client, etc.). Pour forcer un scénario d'échec, il vous suffit d'initier une requête de paiement avec un montant strictement supérieur à 1000 XAF.
Pour valider cette étape de votre intégration, vous devez impérativement :
Effectuer au moins deux simulations de transactions en échec.
Traiter correctement le Callback associé en renvoyant l'accusé de réception dynamique exigé (tout comme pour le scénario de succès)
Afin de valider définitivement votre intégration et de garantir un niveau de sécurité et de fiabilité optimal pour vos utilisateurs, l'implémentation des deux API suivantes est obligatoire :
API KYC (Know Your Customer)
Cette api vous permet de vérifier l'identité du client avant d'initier la moindre transaction sensible. C'est une étape indispensable pour sécuriser vos flux et prévenir les risques de fraude
API Check Status (Vérification d'état)
Cette api vous permet de récupérer l'état définitif d'une transaction. Elle agit comme un mécanisme de secours (fallback) absolument essentiel dans le cas où votre système n'aurait pas reçu le Webhook de notification.
6. Checklist d'intégration
Avant de basculer en production, veuillez vous assurer que votre intégration répond parfaitement à nos exigences techniques.
Checklist d'intégration :
Au moins 2 simulations de succès (montant < 1000 XAF) réalisées et validées.
Au moins 2 simulations d'échecs (montant > 1000 XAF) réalisées et validées.
Gestion conforme du Webhook (Callback) pour chaque transaction, avec l'accusé de réception dynamique obligatoire (code HTTP 200 + écho du transactionId et du code).
Implémentation fonctionnelle de l'API KYC.
Implémentation fonctionnelle de l'API Check Status.