Historique des transactions
Retourne les transactions de votre propre compte, des plus récentes aux plus anciennes, avec support de pagination et filtrage par statut. Seules les transactions passées par le compte auquel appartient la clé API sont listées. Les rechargements de solde, les récompenses de parrainage et les retraits ne sont pas des commandes et ne sont pas listés.
POST /v1/transactions/history
Demande
Tous les paramètres sont optionnels. Si les paramètres ne sont pas spécifiés, retourne la première page avec 10 éléments. Un status inconnu, une page inférieure à 1 ou un per_page en dehors de 1–50 est refusé avec le code 2. Un user_subscription_id qui n’est pas une chaîne de 1 à 26 caractères est refusé de la même façon.
Paramètres de Demande
| Champ | Type | Requis | Description |
|---|---|---|---|
| page | integer | Non | Numéro de page (défaut: 1, minimum: 1) |
| per_page | integer | Non | Éléments par page (défaut: 10, maximum: 50) |
| status | string | Non | Filtrer par statut de transaction : new, pending, success ou failed (voir la liste des statuts) |
| user_subscription_id | string | Non | Uniquement les transactions achetées par l’un de vos abonnements : son id, tel que le renvoient Historique des abonnements et Démarrer un abonnement. Un id qui n’est pas l’un de vos abonnements renvoie une page vide |
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
"page": 1,
"per_page": 10,
"status": "success"
}'
# Calculer la signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# Faire la requête API
curl -X POST "https://api.trxup.com/v1/transactions/history" \
-H "Authorization: Bearer ${API_TOKEN}" \
-H "X-Signature: ${SIGNATURE}" \
-H "Content-Type: application/json" \
-d "${REQUEST_BODY}"const crypto = require('crypto');
const axios = require('axios');
const apiToken = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
page: 1,
per_page: 10,
status: 'success'
});
// Calculer la signature
const signature = crypto
.createHash('sha256')
.update(requestBody + apiSecret)
.digest('hex');
// Faire la requête API
axios({
method: 'post',
url: 'https://api.trxup.com/v1/transactions/history',
headers: {
'Authorization': `Bearer ${apiToken}`,
'X-Signature': signature,
'Content-Type': 'application/json'
},
data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));<?php
$apiToken = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
'page' => 1,
'per_page' => 10,
'status' => 'success'
]);
// Calculer la signature
$signature = hash('sha256', $requestBody . $apiSecret);
// Faire la requête API
$ch = curl_init('https://api.trxup.com/v1/transactions/history');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiToken,
'X-Signature: ' . $signature,
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>import hashlib
import json
import requests
api_token = 'your_api_token'
api_secret = 'your_api_secret'
request_body = json.dumps({
'page': 1,
'per_page': 10,
'status': 'success'
})
# Calculer la signature
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()
# Faire la requête API
headers = {
'Authorization': f'Bearer {api_token}',
'X-Signature': signature,
'Content-Type': 'application/json'
}
response = requests.post(
'https://api.trxup.com/v1/transactions/history',
headers=headers,
data=request_body
)
print(response.json())Exemple de demande sans paramètres
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{}'
# Calculer la signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# Faire la requête API
curl -X POST "https://api.trxup.com/v1/transactions/history" \
-H "Authorization: Bearer ${API_TOKEN}" \
-H "X-Signature: ${SIGNATURE}" \
-H "Content-Type: application/json" \
-d "${REQUEST_BODY}"Réponse
La réponse contient une page des transactions du compte avec les informations de pagination. Chaque élément comporte exactement les champs que Vérifier le Statut de Transaction retourne pour le même id.
Une transaction qui achète plusieurs ressources à la fois (par exemple de l'énergie et de la bande passante ensemble) constitue un seul élément, et son amount est le montant total facturé pour celle-ci. Son service est "energy", et params.amounts liste chaque ressource achetée.
Champs de Réponse
| Champ | Type | Description |
|---|---|---|
| code | integer | Code de réponse (0 = succès) |
| request_id | string | Identifiant unique de la requête |
| result | object | Données de réponse |
| result.page | integer | Page actuelle |
| result.per_page | integer | Éléments par page |
| result.total | integer | Nombre total de transactions correspondant au filtre |
| result.items | array | Liste des transactions, des plus récentes aux plus anciennes |
| result.items[].id | string | ID interne de la transaction |
| result.items[].created_at | string | Horodatage de création (format ISO 8601) |
| result.items[].status | string | Statut de la transaction (voir la liste des statuts) |
| result.items[].external_id | string|null | ID externe de la transaction (si fourni) |
| result.items[].service | string | Type de service : "energy", "bandwidth" ou "activate_address" |
| result.items[].params | object|null | Paramètres originaux de la requête |
| result.items[].amount | string | Montant de la transaction en TRX |
| result.items[].hash | string|null | Hash de la transaction ; présent uniquement lorsque status vaut success |
Exemple de Réponse
Réponse à la requête sans paramètres :
{
"code": 0,
"request_id": "64daeda7-15e4-4bcf-ae60-c94867af66d8",
"result": {
"page": 1,
"per_page": 10,
"total": 3,
"items": [
{
"id": "01M52FEER5JVJ16QNSVX75700Q",
"created_at": "2026-10-01T12:02:00+00:00",
"status": "new",
"external_id": null,
"service": "energy",
"params": {
"address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"amounts": {
"energy": 65000
},
"duration": 1
},
"amount": "3.58"
},
{
"id": "01M52FEEQT9TGZCHG1732ARRDN",
"created_at": "2026-10-01T12:01:00+00:00",
"status": "failed",
"external_id": "hist-energy",
"service": "energy",
"params": {
"address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"amounts": {
"energy": 65000
},
"duration": 1
},
"amount": "3.58"
},
{
"id": "01M52FEEPEY6V1SBAMCDMA4GTG",
"created_at": "2026-10-01T12:00:00+00:00",
"status": "success",
"external_id": "hist-bundle",
"service": "energy",
"params": {
"address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"amounts": {
"energy": 65000,
"bandwidth": 5000
},
"duration": 1
},
"amount": "3.64",
"hash": "aa11bb22cc33dd44ee55ff6600112233445566778899aabbccddeeff00112233"
}
]
}
}Erreurs Possibles
| Code d'Erreur | Key | Description |
|---|---|---|
| 1 | auth | Erreur d'authentification (token ou signature invalide) |
| 2 | invalid_service_or_params | Service ou paramètres invalides |
| 500 | internal_server_error | Erreur interne du serveur |