curl --request GET \
--url https://api.pay.izichange.com/v1/payouts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pay.izichange.com/v1/payouts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pay.izichange.com/v1/payouts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pay.izichange.com/v1/payouts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pay.izichange.com/v1/payouts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pay.izichange.com/v1/payouts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pay.izichange.com/v1/payouts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"merchantReference": {},
"payoutType": "<string>",
"amount": "<string>",
"assetCode": "<string>",
"destinationAddress": "<string>",
"destinationType": "<string>",
"destinationMemo": {},
"feeAmount": "<string>",
"networkFeeAmount": {},
"networkFeeAssetCode": {},
"networkFeeUsdEquivalent": {},
"txid": "9f4c1a2b3d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8",
"txUrl": "https://tronscan.org/#/transaction/9f4c1a2b3d5e6f70",
"status": "<string>",
"failureReason": {},
"feeBearer": "<string>",
"kytStatus": {},
"createdAt": "<string>",
"updatedAt": "<string>",
"statusHistory": [
{}
]
}
]Lister les payouts
Retourne la liste des payouts du marchand, triés du plus récent au plus ancien. Pagination par curseur (cursor + take, max 500). Les filtres status, assetCode, from et to permettent d’affiner la recherche.
curl --request GET \
--url https://api.pay.izichange.com/v1/payouts \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.pay.izichange.com/v1/payouts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.pay.izichange.com/v1/payouts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pay.izichange.com/v1/payouts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pay.izichange.com/v1/payouts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pay.izichange.com/v1/payouts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pay.izichange.com/v1/payouts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "<string>",
"merchantReference": {},
"payoutType": "<string>",
"amount": "<string>",
"assetCode": "<string>",
"destinationAddress": "<string>",
"destinationType": "<string>",
"destinationMemo": {},
"feeAmount": "<string>",
"networkFeeAmount": {},
"networkFeeAssetCode": {},
"networkFeeUsdEquivalent": {},
"txid": "9f4c1a2b3d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8",
"txUrl": "https://tronscan.org/#/transaction/9f4c1a2b3d5e6f70",
"status": "<string>",
"failureReason": {},
"feeBearer": "<string>",
"kytStatus": {},
"createdAt": "<string>",
"updatedAt": "<string>",
"statusHistory": [
{}
]
}
]Autorisations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Paramètres de requête
Identifiant du dernier payout de la page précédente.
Nombre d'éléments à retourner (défaut 20, max 500).
Filtre par statut (pending, approved, confirmed, failed, …).
Filtre par code d'actif (USDT.TRC20, BTC, …).
Borne basse de date de création — ISO 8601.
Borne haute de date de création — ISO 8601.
Page 1-based. Bascule en pagination par offset ; renvoie le total via l'en-tête X-Total-Count.
Réponse
Liste paginée des payouts.
Identifiant unique du payout.
Référence libre attachée par le marchand (optionnelle).
Catégorie du payout : retrait crypto standard, transfert interne entre marchands, remboursement d'un paiement, ou leg crypto d'un settlement.
Montant brut envoyé — chaîne décimale (préserve la précision).
Code de l'actif crypto (USDT.TRC20, BTC, …).
Adresse de destination — adresse blockchain, email interne ou identifiant d'un autre compte IzichangePay selon destinationType.
Type de destination : adresse blockchain, email interne ou identifiant d'un autre compte marchand de la plateforme.
Mémo/tag requis pour les chaînes memo-type (XRP, TON, Stellar).
Frais facturés par IzichangePay — chaîne décimale.
Frais réseau (gas) effectivement payés à la blockchain — chaîne décimale, renseigné après diffusion.
Asset dans lequel les frais réseau ont été payés : le BASE COIN de la chaîne (ex. TRX pour un retrait USDT.TRC20, BNB pour USDT.BEP20), jamais l'asset du retrait. À utiliser pour libeller networkFeeAmount.
Contre-valeur USD des frais réseau, pour comparer des frais payés dans des monnaies natives différentes. Indicatif de reporting : rien n'est facturé en USD. Renseigné seulement à la CONFIRMATION, quand le coût réel est constaté on-chain — null tant que le payout n'est pas confirmé.
Hash de la transaction on-chain, vérifiable sur un explorateur de blocs. Renseigné une fois la transaction diffusée : null tant que le retrait n'a pas atteint la chaîne, et sur ce qui n'y arrive jamais (transferts internes, confirmations manuelles hors-chaîne).
"9f4c1a2b3d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"
URL de la transaction sur un explorateur de blocs, pré-résolue par le serveur. null si le hash n'est pas encore connu ou si aucun explorateur n'est configuré pour cet actif.
"https://tronscan.org/#/transaction/9f4c1a2b3d5e6f70"
Statut courant du payout (pending, approved, confirmed, failed, etc.).
Message d'erreur sécurisé pour les payouts non finalisés (échec, en attente d'examen). null pour les payouts en bonne marche.
Indique qui supporte les frais : le marchand (montant débité = amount + fee) ou le client (sur les remboursements).
Statut du contrôle KYT (Know Your Transaction) si applicable.
Date de création — ISO 8601.
Date de dernière mise à jour — ISO 8601.
Historique des transitions de statut, chaque entrée comportant le statut, l'horodatage, la source et une note éventuelle.