Guide développeur
Encaisser un paiement EasyPay depuis votre site ou votre application, étape par étape.
Intégration pas à pas
1. Obtenez vos clés API
Dans l'application EasyPay — compte marchand ou Espace Pro —, ouvrez Paramètres → API & Integration et générez vos clés : ek_live_… pour la production, ek_test_… pour le bac à sable. Elles ne s'affichent qu'une fois, et régénérer remplace les deux. Gardez-les sur votre serveur : la clé signe aussi vos callbacks.
2. Créez une session depuis votre serveur
Appelez POST /api/v1/checkout/sessions avec l'en-tête X-API-Key et au moins title, amount (en MRU) et returnUrl. Ajoutez orderId pour retrouver la commande et callbackUrl pour être notifié du paiement. La réponse contient checkoutUrl et sessionToken : conservez le jeton avec la commande.
3. Envoyez le client sur la page de paiement
Redirigez le client vers checkoutUrl, payable pendant 30 minutes. Il paie depuis l'application EasyPay, ou depuis son wallet après un code SMS — ce paiement attend alors votre validation dans l'application marchande. Une fois le paiement abouti ou refusé, la page renvoie le client vers votre returnUrl avec easypay_status=paid ou failed.
4. Confirmez le paiement sur votre serveur
Ne livrez pas sur la seule foi du retour navigateur : n'importe qui peut taper cette URL. Attendez le callback checkout.paid envoyé à votre callbackUrl — son en-tête X-EasyPay-Signature est le HMAC-SHA256 hexadécimal du corps brut, calculé avec votre clé API — ou relisez la session avec GET /api/v1/checkout/sessions/{sessionToken} et vérifiez qu'elle est PAID.
5. Testez dans le bac à sable
Utilisez votre clé ek_test_, sur la même URL. Les sessions portent sandbox: true, les limites de montant ne s'appliquent pas, le paiement est confirmé aussitôt sans mouvement d'argent et checkout.paid arrive avec "sandbox": true. Un client sans compte EasyPay reçoit tout de même un vrai code SMS.
6. Passez en production
Remplacez la clé ek_test_ par la clé ek_live_ : l'URL ne change pas. En production, une session va de 100 à 500 000 MRU, et votre compte doit avoir un wallet vérifié et actif pour être crédité — un code commerçant pour un compte marchand.
Exemple : créer une session (Node.js)
// Node.js 18+, on your server — never in the browser
const response = await fetch("https://easypay.emko.ink/api/v1/checkout/sessions", {
method: "POST",
headers: {
"X-API-Key": process.env.EASYPAY_API_KEY, // ek_test_… to test, ek_live_… in production
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Order #1234",
amount: 5000, // MRU
orderId: "ORDER-1234",
returnUrl: "https://yoursite.com/orders/1234/return",
callbackUrl: "https://yoursite.com/easypay/callback",
}),
});
const body = await response.json();
if (!response.ok) throw new Error(body.detail || body.message);
// Store body.data.sessionToken with the order, then send the customer to:
const checkoutUrl = body.data.checkoutUrl;Intégrations disponibles
API REST
Depuis n'importe quel langage côté serveur : sessions de paiement, callbacks signés, webhooks.
Lire la documentationExtension WooCommerce
Passerelle de paiement pour les boutiques WordPress / WooCommerce.
Lire la documentationModule Odoo
Paiement des commandes et des factures Odoo, avec rapprochement automatique des factures.
Lire la documentation