Transferts
Créer des dépôts
Un dépôt est un versement que vous effectuez sur le compte d'un client depuis votre balance. La création d’un dépôt se fait en plusieurs processus.
1 - Requête de création d'un dépôt
Vous devez commencer par envoyer une requête de création de dépôt via l’API. Cette requête doit contenir les paramètres
tels que le montant du depôt, la devise à utiliser, la méthode versement (MTN Bénin, MTN Côte d'ivoir, Moov Bénin,
, Moov Togo et Togocel sont pris en charge actuellement),
les informations du client concerné par cette opération.
Vous avez donc :
amount
: définir le montant du dépôt. Ce montant doit toujours être un nombre entiercurrency
: préciser la devise à utiliser pour le dépôtcustomer
: préciser le client avec lequel doit se faire le dépôt
Pour cet attribut, il faut soit indiquer le numéro ISO ou l’ISO. Référez-vous au tableau des devises disponibles.
Vous avez la possibilité à ce niveau de créer en même temps que le dépôt,
un nouveau client à qui sera automatiquement affecté ce dépôt si vous ne l’avez pas encore enregistré auparavant.
Dans ce cas vous devez indiquer nom, prénom, e-mail et numéro de téléphone.
Utilisez le code ci-dessous pour adresser votre requête via l’API.
curl -X POST \
https://sandbox-api.fedapay.com/v1/payouts \
-H 'Authorization: Bearer VOTRE_CLE_API_PRIVEE' \
-H 'Content-Type: application/json' \
-d '{
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"mode": "mtn"
"customer" : {
"firstname" : "John",
"lastname" : "Doe",
"email" : "[email protected]",
"phone_number" : {
"number" : "+22997808080",
"country" : "bj"
}
}
}'
/* Remplacez VOTRE_CLE_API par votre véritable clé API */
\FedaPay\FedaPay::setApiKey("VOTRE_CLE_API_PRIVEE");
/* Précisez si vous souhaitez exécuter votre requête en mode test ou live */
\FedaPay\FedaPay::setEnvironment('sandbox'); //ou setEnvironment('live');
/* Créer un dépôt */
\FedaPay\Payout::create(array(
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"mode": "mtn"
"customer" => [
"firstname" => "John",
"lastname" => "Doe",
"email" => "[email protected]",
"phone_number" => [
"number" => "+22997808080",
"country" => "bj"
]
]
));
const { FedaPay, Payout } = require('fedapay')
/* Remplacez VOTRE_CLE_API par votre véritable clé API */
FedaPay.setApiKey("VOTRE_CLE_API_PRIVEE");
/* Précisez si vous souhaitez exécuter votre requête en mode test ou live */
FedaPay.setEnvironment('sandbox'); //ou setEnvironment('live');
/* Créer un dépôt */
const payout = await Payout.create({
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"mode": "mtn"
"customer" : {
"firstname" : "John",
"lastname" : "Doe",
"email" : "[email protected]",
"phone_number" : {
"number" : "+22997808080",
"country" : "bj"
}
}
});
Dans le cas où votre client est déjà répertorié, donnez juste en paramètre son identifiant (ID) ou son email. L'ID et l'adresse email de votre client se trouvent au niveau de votre tableau de bord dans les détails du client.
curl -X POST \
https://sandbox-api.fedapay.com/v1/payouts \
-H 'Authorization: Bearer VOTRE_CLE_API_PRIVEE' \
-H 'Content-Type: application/json' \
-d '{
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"mode": "mtn",
"customer" : {
"email" : "[email protected]",
}
}'
/* Remplacez VOTRE_CLE_API par votre véritable clé API */
\FedaPay\FedaPay::setApiKey("VOTRE_CLE_API_PRIVEE");
/* Précisez si vous souhaitez exécuter votre requête en mode test ou live */
\FedaPay\FedaPay::setEnvironment('sandbox'); //ou setEnvironment('live');
/* Créer un dépôt */
\FedaPay\Payout::create(array(
"amount" => 2000,
"mode" => "mtn",
"currency" => ["iso" => "XOF"],
"customer" => [
"email" => "[email protected]" /* ou "id" => 105 */
]
));
const { FedaPay, Payout } = require('fedapay')
/* Remplacez VOTRE_CLE_API par votre véritable clé API */
FedaPay.setApiKey("VOTRE_CLE_API_PRIVEE");
/* Précisez si vous souhaitez exécuter votre requête en mode test ou live */
FedaPay.setEnvironment('sandbox'); //ou setEnvironment('live');
/* Créer un dépôt */
const payout = await Payout.create({
description: 'Description',
amount: 2000,
mode: "mtn",
currency: {
iso: 'XOF'
},
customer: {
email: '[email protected]' /* ou id: 105 */
}
});
2- Envoi d'un dépôt
A cet instant précis, le dépôt que vous avez créé est en attente d'envoi. Il vous faudra procéder à l'envoi. Pour envoyer un dépôt, vous avez la possibilité de l'envoyer à un moment ultérieur our de l'envoyer à l'instant.
Utilisez ce code pour envoyer votre requête via l’API.
curl -X PUT \
https://sandbox-api.fedapay.com/v1/payouts/start \
-H 'Authorization: Bearer VOTRE_CLE_API_PRIVEE' \
-H 'Content-Type: application/json'
-d '{
"payouts" : [
{ "id": 23 },
{ "id": 24 , "scheduled_at": "{now}"}
]
}'
$payout = \FedaPay\Payout::create(array(...));
// Envoi du dépôt maintenant
$payout->sendNow();
// Envoie le dépôt plus tard
$payout->schedule("{now}");
// Programmer plusieurs envoies
Payout::scheduleAll([
[
"id" => 23 // Envoie le dépôt instantanément
],
[
"id" => 24,
"scheduled_at" => "{now}" // Envoie le dépôt plus tard
]
]);
// Envoyer tous les paiements instantanément
Payout::sendAllNow([
[ "id" => 23 ],
[ "id" => 24 ]
]);
const payout = await Payout.create({...});
// Envoi du dépôt maintenant
await payout.sendNow();
// Envoi du dépôt plus tard
await payout.schedule("{now}");
// Programmer plusieurs envois
await Payout.scheduleAll([
{
id: 23,
scheduled_at: "{now}"
},
{
id: 24,
scheduled_at: "{now}"
}
]);
// Envoyer tous les dépôts instantanément
await Payout.sendAllNow([
{ id: 23 },
{ id: 24 }
]);
3- Récupération des détails d'un dépôt
Pour récupérer les informations concernant un dépôt donné, et faire des traitements avec cette dernière procédez comme suit
curl -X GET \
https://sandbox-api.fedapay.com/v1/payouts/ID \
-H 'Authorization: Bearer VOTRE_CLE_API_PRIVEE' \
-H 'Content-Type: application/json'
$payout = \FedaPay\Payout::retrieve(ID);
if ($payout->status == "sent") {
echo "Dépôt effectué";
}
const payout = await Payout.retrieve(ID);
if (payout.status == "sent") {
console.log("Dépôt effectué");
}
Cycle de vie des dépôts
Lorsque vous créez un dépôt, il passe par différents états ou statuts exactement comme les transactions.
Ces statuts sont :
pending
: En attente.started
: Démarré. C'est le statut d'un dépôt lorque l'envoi a démarré.processing
: En cours d'envoi. C'est le statut lorque le système est entrain de procéder à l'envoi au destinataire.sent
: Envoyé. C'est le statut lorsque le dépôt est envoyé avec succès.failed
: Echoué. C'est le statut lorsque l'envoi du dépôt a échoué
Au départ, dès que vous créez votre dépôt, il est en En attente
.
C’est le statut par défaut.
Le dépôt passera à Démarré
lorsque l'envoi a démarré.
Il passe à En cours d'envoi
si le système est entrain d'envoyer le dépôt au destinataire.
Il est Envoyé
lorsqu'il est envoyé avec succès.
Echoué
lorsque l'envoi a échoué pour plusieurs raisons.
Vous pourrez consulter le statut de chacun de vos dépôts toujours au niveau de votre tableau de bord FedaPay dans le menu Paiements pour suivre leur évolution.