Documentation API Verzapay
L'API Verzapay vous permet d'intégrer l'encaissement et le décaissement directement dans votre site ou votre application, avec une API REST simple, des réponses JSON prévisibles et des webhooks fiables.
URL de base : https://verzapay.lfdweb.com/api/v1
Authentification
Toutes les requêtes doivent inclure votre clé secrète dans l'en-tête Authorization. Vous pouvez générer votre clé depuis l'espace Développeur de votre tableau de bord — elle ne sera affichée qu'une seule fois.
Authorization: Bearer vpz_sk_votre_cle_secrete
Pays disponibles
Verzapay s'appuie sur son réseau de partenaires de paiement pour couvrir progressivement de nouveaux marchés. Cette liste reflète en temps réel les pays et méthodes de paiement réellement actifs sur la plateforme.
Créer un paiement
Génère un lien de paiement que votre client peut utiliser pour régler par Mobile Money ou carte bancaire. Le pays est déduit automatiquement à partir du numéro de téléphone du client — voir la liste des pays disponibles.
/paymentscurl -X POST https://verzapay.lfdweb.com/api/v1/payments \
-H "Authorization: Bearer vpz_sk_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"amount": 25000,
"currency": "XOF",
"description": "Commande #1234",
"customer_name": "Kofi Mensah",
"customer_phone": "+22996000000"
}'Réponse
{
"id": "pay_8f3a9b2c",
"status": "pending",
"amount": 25000,
"currency": "XOF",
"checkout_url": "https://verzapay.lfdweb.com/pay/8f3a9b2c"
}Créer un décaissement
Envoie des fonds depuis votre solde Verzapay vers un compte Mobile Money. Disponible uniquement pour les pays marqués Disponible dans la colonne Décaissement ci-dessus.
/payoutscurl -X POST https://verzapay.lfdweb.com/api/v1/payouts \
-H "Authorization: Bearer vpz_sk_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "XOF",
"recipient_phone": "+22996000000",
"recipient_name": "Kofi Mensah"
}'Webhooks
Configurez une URL de webhook depuis votre espace Développeur pour recevoir des notifications en temps réel à chaque événement.
https://. Une URL en http://entraîne une redirection que certains de nos partenaires ne suivent pas, ce qui empêche la notification d'arriver.payment.completedPaiement reçu avec succèspayment.failedPaiement échouépayout.completedDécaissement effectuépayout.failedDécaissement échouéExemple de handler (Node.js)
app.post('/webhook/verzapay', (req, res) => {
const event = req.body;
switch (event.type) {
case 'payment.completed':
// Activer la commande
break;
case 'payment.failed':
// Notifier l'utilisateur
break;
case 'payout.completed':
// Marquer le retrait comme traité
break;
}
res.status(200).json({ received: true });
});Codes d'erreur
| Code | Signification |
|---|---|
| 200 | Succès |
| 400 | Requête invalide — vérifiez les paramètres |
| 401 | Clé API invalide ou manquante |
| 403 | KYC non approuvé ou permission insuffisante |
| 404 | Ressource introuvable |
| 429 | Trop de requêtes — limite atteinte |
| 500 | Erreur serveur — réessayez plus tard |