Introduction
Bienvenue sur la documentation Kadev Pay. Notre objectif est de vous permettre d'intégrer une solution de paiement complète (Mobile Money, Carte Bancaire) de la manière la plus simple et sécurisée possible. L'intégration se fait en deux temps : l'initialisation du paiement côté client (Frontend) et la confirmation sécurisée de la transaction côté serveur (Backend) via Webhook.
🚀 Quick Start – 3 étapes
Suivez ces étapes pour réaliser votre premier paiement test en moins de 10 minutes.
2. Obtenez vos clés API
Trouvez vos clés de test dans les paramètres développeur.
Aller aux paramètresFlux de Paiement
Comprendre le cycle de vie d'une transaction est essentiel pour une intégration réussie.
1. Client
Votre client clique sur "Payer" sur votre site ou application.
2. Kadev Pay
Le SDK Kadev Pay s'ouvre et gère la saisie des informations de paiement.
3. Redirection
Après succès, le client est redirigé vers votre `callback_url`.
4. Webhook
Nos serveurs envoient une notification sécurisée à votre backend.
5. Confirmation
Vous validez la commande dans votre base de données après vérification du webhook.
🔑 Authentification
Kadev Pay utilise des clés API pour authentifier les requêtes. Vous trouverez vos clés dans votre Dashboard Développeur. Il existe trois types de clés :
- Clé Publique (kdvp_...): Sûre à utiliser dans votre code frontend (JavaScript).
- Clé Secrète (kdvs_...): À utiliser uniquement sur votre serveur. Ne l'exposez jamais côté client.
- Secret Webhook: Utilisé pour vérifier l'authenticité des webhooks reçus sur votre serveur.
Pour les appels API serveur-à-serveur, incluez votre clé secrète dans le header `Authorization` :
Authorization: Bearer VOTRE_CLE_SECRETE💻 Créer un paiement
La méthode la plus simple pour accepter un paiement est d'utiliser notre SDK JavaScript. Intégrez le script sur votre page, puis appelez la fonction `KadevPay.checkout`.
Installation du SDK
<script src="https://pay.kadev.ci/js/v1/kadev-pay.js"></script>Exemple d'appel
Associez cette fonction au clic sur votre bouton de paiement. Fournissez une `callback_url` pour rediriger le client après un paiement réussi.
// Remplacez par votre propre clé publique Kadev Pay
const KADEV_PUBLIC_KEY = "kdvp_test_XXXXXXXXXXXXXXXXXXXXX";
function payerAvecKadev() {
KadevPay.checkout({
public_key: KADEV_PUBLIC_KEY,
amount: 5000, // Montant de base de l'article (ex: 5000 FCFA)
email: "client@email.com", // Email du client (obligatoire)
name: "Jean Dupont", // Nom du client (Optionnel)
phone: "0102030405", // Numéro de téléphone (Optionnel)
// ⚠️ IMPORTANT : Spécifiez la méthode pour un calcul exact des frais
// 'momo' (2.3% de frais) ou 'card' (4.5% de frais)
method: "momo",
// 🔗 URL de redirection immédiate après succès (Recommandé)
callback_url: "https://votre-boutique.ci/commande-reussie",
// Données supplémentaires à récupérer dans votre Webhook
metadata: {
cart_id: "CMD-9982",
custom_field: "valeur"
},
// Exécuté uniquement si aucune callback_url n'est fournie
onSuccess: function(response) {
console.log("Paiement validé ! Référence : ", response.reference);
},
// Exécuté si le client ferme la fenêtre sans payer
onClose: function() {
console.log("Le client a abandonné le paiement.");
}
});
}🔍 Vérifier un paiement
Bien que le webhook soit la méthode de confirmation recommandée, vous pouvez vérifier manuellement le statut d'une transaction via notre API. Cet appel doit être fait depuis votre serveur.
curl -X GET "https://pay.kadev.ci/api/v1/transactions/verify/KDV-1775413916000" \
-H "Authorization: Bearer kdvs_test_VOTRE_CLE_SECRETE"🛡️ Webhooks
Les webhooks sont le moyen le plus fiable de confirmer un paiement. Configurez une URL sur votre serveur depuis le Dashboard, et nous y enverrons une requête POST sécurisée pour chaque événement, comme `payment.success`.
Vérification de la Signature
Pour garantir que le webhook provient bien de Kadev Pay, chaque requête est signée. Vérifiez cette signature en utilisant votre "Secret Webhook".
<?php
// 1. Récupérez votre Secret Webhook dans le Dashboard Kadev Pay
$webhook_secret = "VOTRE_SECRET_WEBHOOK";
$signature = $_SERVER['HTTP_X_KADEVPAY_SIGNATURE'] ?? '';
$payload = file_get_contents('php://input');
$computed_signature = hash_hmac('sha512', $payload, $webhook_secret);
if (hash_equals($computed_signature, $signature)) {
$event = json_decode($payload, true);
// On vérifie que Kadev Pay nous dit bien que c'est "paid"
if ($event['event'] === 'payment.success' && $event['data']['status'] === 'paid') {
$reference = $event['data']['reference'];
$amount_paid = $event['data']['amount'];
// --- Tout est bon, on valide la commande chez nous ! ---
// my_custom_db_update_order($reference, 'payé');
http_response_code(200);
echo "Webhook traité avec succès.";
}
} else {
http_response_code(401);
echo "Signature invalide.";
}
?>🔌 Plugins & CMS
Intégrez Kadev Pay sans une ligne de code sur les plateformes les plus populaires.
WordPress / WooCommerce
Installez notre plugin officiel et commencez à accepter des paiements sur votre boutique WooCommerce en quelques clics.
⚠️ Codes d'Erreur API
Notre API utilise les codes de réponse HTTP standards pour indiquer le succès ou l'échec d'une requête.
| Code HTTP | Signification | Description |
|---|---|---|
| 400 | Bad Request | Paramètres manquants ou invalides. |
| 401 | Unauthorized | Clé API invalide ou manquante. |
| 403 | Forbidden | Vous n'avez pas les droits pour cette action. |
| 404 | Not Found | La ressource demandée (ex: transaction) n'existe pas. |
| 500 | Internal Server Error | Un problème est survenu de notre côté. Contactez le support. |
🧪 Sandbox & Test
Toutes les fonctionnalités de l'API sont disponibles en mode test. Utilisez vos clés API de test (commençant par `kdvp_test_` et `kdvs_test_`) pour effectuer des transactions fictives sans aucun coût.
Passer en Production
Lorsque vous êtes prêt à accepter de vrais paiements, il vous suffit de remplacer vos clés de test par vos clés de production (live) et de vous assurer que votre compte a été vérifié et activé par notre équipe.
Sécurité & Conformité
Chiffrement de bout en bout
Toutes les communications avec nos serveurs sont chiffrées via TLS (HTTPS) pour protéger vos données et celles de vos clients.
Validation Côté Serveur
Nous recommandons fortement l'utilisation des webhooks signés comme seule source de vérité pour valider les transactions et prévenir les fraudes.
