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
Ne partagez jamais votre clé secrète et ne l'exposez jamais côté frontend. Utilisez toujours un appel serveur à serveur.

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.

Chargement de la liste des pays…

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.

POST/payments
curl -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.

POST/payouts
curl -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.

Votre URL de webhook doit impérativement commencer par 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ès
payment.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

CodeSignification
200Succès
400Requête invalide — vérifiez les paramètres
401Clé API invalide ou manquante
403KYC non approuvé ou permission insuffisante
404Ressource introuvable
429Trop de requêtes — limite atteinte
500Erreur serveur — réessayez plus tard