Payout
Un payout correspond à l’action de transférer ou retirer de la crypto-monnaie depuis votre portefeuille numérique.
Initiation d’un paiement
Pour faire un paiement via l’Api, vous devez effectuer une requête HTTP POST à l’endpoint spécifié /api/payements/payout
. Assurez-vous d’inclure les en-têtes nécessaires tels que l'x-api-key
pour l’authentification API, et l'x-signature
pour garantir l’intégrité des données.
Description des paramètres
Liste des cryptomonnaies supportées et leur code
Title | Code |
---|---|
Bitcoin | btc |
Ethereum | eth |
Tron | trx |
variables | type | description |
---|---|---|
coin | string | Le code de la cryptomonnaie |
address | string | Addresse de reception |
amount | decimal | Montant de la transaction |
Méthode HTTP : POST
Exemple de requête :
http
POST /api/payements/payout HTTP/1.1
Host: <base_url>
Content-Type: application/json
x-api-key: <votre_cle_api>
Accept: application/json
x-signature: <la_signature_de_la_requete>
Content-Length: 300
{
"amount": 100,
"coin": "trx",
"address": "TPEWaf6ZGJDrMbgKYoiM2Ze6BZydeRvDRQ"
}
curl --location '<base_url>/api/payements/payout' \
--header 'x-api-key: <votre_cle_api>' \
--header 'x-signature: <la_signature_de_la_requete>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"amount": 100,
"coin": "trx",
"address": "TPEWaf6ZGJDrMbgKYoiM2Ze6BZydeRvDRQ"
}'
Comment signer les requetes
Lors de la construction de la donnée à signer pour la génération de la signature HMAC, le processus implique la concaténation du nom des paramètres avec leur valeur associée provenant de la requête. Cela crée une structure spécifique où chaque paramètre est représenté sous la forme “nom=valeur”.
dataToString = "coin=" + data.coin + "amount=" + data.amount + "address=" + data.address;
secret = "VotreSecretDeSignature";
$signature = SHA256(dataToString, secret);
<?php
$data = [
"address" => "TPEWaf6ZGJDrMbgKYoiM2Ze6BZydeRvDRQ",
"amount" => 100,
"coin" => "trx"
];
$dataToString ="coin=".$data['coin']."amount=".$data['amount']."address=".$data['address'];
$secretKey="votre_secret_defini_a_la_generation_de_la_cle";
$signature = hash_hmac('sha256',$dataToString, $secretKey, FALSE);
Format des réponses
{
"status": true,
"message": "",
"data": {
"id": "9a8e033a-9e2e-494c-a2c9-8641404fd3c1",
"address": "TPEWaf6ZGJDrMbgKYoiM2Ze6BZydeRvDRQ",
"amount": 100,
"status": "PENDING",
"coin": "trx"
},
"signature": "7d637a4f666f48be2cd9c118d07508314c42aa59e3354e583994e6a5aa49a773"
}
Verification de la signature
L’intégrité de nos réponses API est garantie par une signature. Voici la structure typique de notre réponse signée :
<?php
$receviedData = [
"status" => true,
"message" => "",
"data" => [
"id" => "9a8e033a-9e2e-494c-a2c9-8641404fd3c1",
"address" => "TPEWaf6ZGJDrMbgKYoiM2Ze6BZydeRvDRQ",
"amount" => 100,
"status" => "PENDING",
"coin" => "trx"
]
'signature' => '300e0876809980406cc2e8c485de34a4f486472db4edc3d2a99c39874b782f75',
];
$data=$receviedData['data'];
$dataToString ="id=".$data['id']."address=".$data['address']."amount=".$data['amount']."coin=".$data['coin'];
$secretKey="votre_secret_defini_a_la_generation_de_la_cle";
$expectedSignature = hash_hmac('sha256',$dataToString, $secretKey, FALSE);
if(hash_equals($expectedSignature, $receviedData['signature'])){
echo "signature valide";
}else{
echo "signature invalide";
}