EKOLOPAY Collect API
Procédure d'intégration
Prérequis d'intégration
Pour intégrer
EkoloPay
Collect API
sur votre site, il est impératif de s’enregistrer
en tant que marchand.
Un compte marchand vous sera attribué et vous permettra de :
- Obtenir un client ID et client secret : Données indispensable pour communiquer avec
- Consulter toutes vos transactions
- Faire des virements de votre solde vers le compte mobile money de votre choix
Le compte marchand est associé aux informations suivantes :
- Domain Origin : Le nom de domaine du site internet qui est à l’origine de l’appel des API
- Callback URL : Votre point d’entré API par lequel enverra des données sur le statut de la transaction
- API Client : L’identifiant de votre API
- Secret key : La clé secrète utilisé pour communiquer avec l’API
Description des API
API de base :
https://ekolopay.com/api/v2/collects
Tout appel aux services de l'API peut renvoyer soit un code status 500 en cas d'erreur ou 200 en cas de succès. Ci-dessous la structure des réponses de la requête selon les cas.
En cas d'erreur
|
|
Pour tout appel aux services de l'API, il est indispensable de toujours :
- Envoyer les identifiant du client de l'API pour chaque
- Vérifier la disponibilité du service (erreur si indisponible), au cas où le service serait indisponible, la réponse du serveur est présentée dans le tableau ci-dessous.
Clé | Valeur | Description | Lieu |
---|---|---|---|
api_client | demo |
L'identifiant de l'API | Paramètre |
X-EkoloPay-API-Key | 054e9a59-ab57-4e9a-940d-97e6b940d875 |
La clé secrete de l'API | Header |
|
Liste exhaustive des endpoints
-
Vérifier si un compte momo est actif
GET :/account-holder/{number}/isActive
QueryParam
Clé Valeur Type Description number 066304925
int Numéro mobile money à vérifier Données de la réponse cas de succès { "isActive" : bool }
### Http client #code... $url = "https://ekolopay.com/api/v2/collects/account-holder/066304925/isActive?api_client=demo"; try { $request = HttpClient::create()->request("GET", $url, [ "headers" => [ "X-EkoloPay-API-Key" => "054e9a59-ab57-4e9a-940d-97e6b940d875", ] ]); if ($request->getStatusCode() === 200) { return $request->toArray(); } } catch (Exception $e){} #code...
-
Récupérer les informations d'un compte momo
GET :/account-holder/{number}/info
QueryParam
Clé Valeur Type Description number 066304925
int Numéro mobile money sur lequel récupérer les information (nom et prénom) Données de la réponse cas de succès { "firstname" : string, "name" : string }
### Http client #code... $url = "https://ekolopay.com/api/v2/collects/account-holder/066304925/info?api_client=demo"; try { $request = HttpClient::create()->request("GET", $url, [ "headers" => [ "X-EkoloPay-API-Key" => "054e9a59-ab57-4e9a-940d-97e6b940d875", ] ]); if ($request->getStatusCode() === 200) { return $request->toArray(); } } catch (Exception $e){} #code...
-
Faire une demande de paiment
POST :/
Body : x-www-form-urlencoded
Clé Valeur Type Description amount 150
int Montant number 066304925
int Numéro mobile money sur lequel faire une demande de paiement Données de la réponse cas de succès { "reference" : string "amount" : int, "currency" : string, "status" : string, "number" : string }
Dans la réponse de la demande de paiement le champstatus
est toujours enPENDING
. Cependant pour s'assurer du paiement vous devez traiter les cas selon les environnements suivants :- En production : Lors de la demande de paiement, une notification de validation de paiement sera envoyée au client par SMS. Une fois validée, votre callback (cf 6. Appel de votre callback) sera appelé pour vous informer si le client a accepté ou pas le paiement.
-
En Test : Votre callback ne sera pas appélé, mais vous devez juste après vérifier (cf 4. Vérifier ou Récupérer un paiement)
le paiement afin d'obtenir le statut
SUCCESSFUL
Toutesfois, il est beaucoup plus judicieux de vérifier (cf 4. Vérifier ou Récupérer un paiement) le paiement au cas où le callback (cf 6. Appel de votre callback) serait appélé avec un retard.
### Http client #code... $url = "https://ekolopay.com/api/v2/collects/?api_client=demo"; try { $request = HttpClient::create()->request("POST", $url, [ "headers" => [ "X-EkoloPay-API-Key" => "054e9a59-ab57-4e9a-940d-97e6b940d875", ], "body" => [ "number" => "066304925", "amount" => 150, ] ]); if ($request->getStatusCode() === 200) { return $request->toArray(); } } catch (Exception $e){} #code...
-
Vérifier ou Récupérer un paiement
GET :/{reference}
QueryParam
Clé Valeur Type Description reference 054e9a59-ab57-4e9a-940d-97e6b940d875
string La référence du paiement Données de la réponse cas de succès { "reference" : string, "amount" : int, "currency" : string, "date" : string, "isTransactionSuccess" : bool, "status" : string, "client" : { "firstname" : string, "name" : string, "number" : string } }
### Http client #code... $url = "https://ekolopay.com/api/v2/collects/054e9a59-ab57-4e9a-940d-97e6b940d875?api_client=demo"; try { $request = HttpClient::create()->request("GET", $url, [ "headers" => [ "X-EkoloPay-API-Key" => "054e9a59-ab57-4e9a-940d-97e6b940d875", ] ]); if ($request->getStatusCode() === 200) { return $request->toArray(); } } catch (Exception $e){} #code...
-
Liste des paiements
Ce endpoint permet de lister une collection de paiement.
Le max de paiement qui peut être retourné est de500
, et par défaut la limite est de50
.
GET :/
QueryParam
Clé Valeur Type Description limit 50
int Le nombre max de paiement à retourner period today
|this_week
|this_month
|last_month
|this_last_twelve_months
|this_year
|last_year
string Une constante qui définie une date de début et de fin.
Pas besoin de l'utiliser si les paramètresstart
etend
sont déjà utilisés dans la requête.start 2023-01-01 11:30
string La date de début, format "Y-m-d H:i:s" end 2024-01-01 23:59
string La date de fin, format "Y-m-d H:i:s" Les paramètres
Description de la valeur du paramètrestart
etend
sont toujours utilisés ensemble. Dès lors qu'ils sont utilisés, on a plus besoin du paramètreperiod
.
Le paramètreperiod
sera prioritaire s'il arrivait qu'il soit utilisé avec les deux autres.period
Valeur Description today
Aujourd'hui this_week
La semaine en cours this_month
Le mois en cours last_month
Le mois dernier this_last_twelve_months
Les 12 derniers mois this_year
Cette année last_year
L'année dernière Données de la réponse cas de succès { "collections" : [ {...}, { "reference" : string, "amount" : int, "currency" : string, "date" : string, "isTransactionSuccess" : bool, "status" : string, "client" : { "firstname" : string, "name" : string, "number" : string } }, {...} ] "filters" : { "period" : { "start" : string, "end" : string }, "limit" : int } }
### Http client #code... /** * QueryParam pour rechercher selon les clés : * 1) &period=this_week --> pour une période * 2) &start=2023-01-01+11%3A30&end=2024-01-01+23%3A59 --> pour (start='2023-01-01 11:30' & end='2024-01-01 23:59') */ $url = "https://ekolopay.com/api/v2/collects/?api_client=demo&limit=25"; try { $request = HttpClient::create()->request("GET", $url, [ "headers" => [ "X-EkoloPay-API-Key" => "054e9a59-ab57-4e9a-940d-97e6b940d875", ] ]); if ($request->getStatusCode() === 200) { return $request->toArray(); } } catch (Exception $e){} #code...
-
Appel de votre callback
Une fois l'opération de paiement est à terme, la plateforme fera un appel sur votre API callback pour envoyer des données sur l'état du paiement. Le tableau ci-dessous présente les données qui seront envoyées sur votre callback.
POST :https://demosa.com/callback
Body : x-www-form-urlencoded
Clé Valeur Type Description reference 054e9a59-ab57-4e9a-940d-97e6b940d875
string La référence du paiement isTransactionSuccess true
|false
boolean true si le paiement est effectué, sinon false status INITIATED
|SUCCESSFUL
|PENDING
|FAILED
|REJECTED
|TIMEOUT
|INSUFFICIENT_FUNDS
|OPERATOR_ERROR
string Le statut du paiement message string Un text clair lié au statut
Description des valeurs du champ
status
status | Description |
---|---|
INITIATED |
Session initiée |
SUCCESSFUL |
Paiement réussi |
PENDING |
Le paiement en cours ou en attente de validation |
FAILED |
Le paiement a échoué |
REJECTED |
Le paiement est rejeté |
TIMEOUT |
Le temps d'attente de validation du paiement est dépassé |
INSUFFICIENT_FUNDS |
Le solde de compte est insuffisant |
OPERATOR_ERROR |
Une erreur interne chez l'opérateur de paiement |
status
& isTransactionSuccess
) et une explication
status | isTransactionSuccess | Explication |
---|---|---|
SUCCESSFUL |
true | Le paiement est réussi |
INITIATED | PENDING | FAILED | REJECTED | TIMEOUT | INSUFFICIENT_FUNDS | OPERATOR_ERROR
|
false | Le paiement n'est pas passé |