Skip to content

Historique des Abonnements

Retourne l'historique de tous les abonnements de l'utilisateur avec support de pagination et filtrage par statut.

POST /v1/subscriptions/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.

Paramètres de Demande

ChampTypeRequisDescription
pageintegerNonNuméro de page (défaut: 1, minimum: 1)
per_pageintegerNonÉléments par page (défaut: 10, maximum: 50)
statusstringNonFiltrer par statut d'abonnement
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "page": 1,
  "per_page": 10,
  "status": "active"
}'

# Calculate signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Execute API request
curl -X POST "https://api.tronzap.com/v1/subscriptions/history" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
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: 'active'
});

// Calculate signature
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Execute API request
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/subscriptions/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
<?php
$apiToken = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
  'page' => 1,
  'per_page' => 10,
  'status' => 'active'
]);

// Calculate signature
$signature = hash('sha256', $requestBody . $apiSecret);

// Execute API request
$ch = curl_init('https://api.tronzap.com/v1/subscriptions/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;
?>
python
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': 'active'
})

# Calculate signature
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Execute API request
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.tronzap.com/v1/subscriptions/history',
  headers=headers,
  data=request_body
)

print(response.json())

Exemple de demande sans paramètres

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{}'

# Calculate signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Execute API request
curl -X POST "https://api.tronzap.com/v1/subscriptions/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 liste des abonnements de l'utilisateur avec les informations de pagination.

Champs de Réponse

ChampTypeDescription
codeintegerCode de réponse (0 = succès)
resultobjectDonnées de réponse
result.pageintegerPage actuelle
result.per_pageintegerÉléments par page
result.totalintegerNombre total d'abonnements
result.itemsarrayListe des abonnements
result.items[].idstringID de l'abonnement
result.items[].statusstringStatut de l'abonnement
result.items[].subscription_idstringID du type d'abonnement
result.items[].addressstringAdresse TRON
result.items[].transactions_limitintegerLimite de transactions
result.items[].transactions_usedintegerTransactions utilisées
result.items[].energy_usedintegerÉnergie utilisée
result.items[].total_pricefloatCoût total
result.items[].started_atstringDate de début (format ISO 8601)
result.items[].renewed_atstringDate de renouvellement (format ISO 8601)
result.items[].stopped_atstringDate d'arrêt (format ISO 8601)
result.items[].expire_atstringDate d'expiration (format ISO 8601)
result.items[].created_atstringDate de création (format ISO 8601)

Exemple de Réponse

json
{
  "code": 0,
  "result": {
    "page": 1,
    "per_page": 10,
    "total": 1,
    "items": [
      {
        "id": "01k33rz57drtqgqcedyn9tvk04",
        "status": "active",
        "subscription_id": "unlimited_energy",
        "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
        "transactions_limit": 0,
        "transactions_used": 2,
        "energy_used": 131000,
        "total_price": "8.00",
        "started_at": "2025-08-20T12:58:52+00:00",
        "renewed_at": null,
        "stopped_at": null,
        "expire_at": "2025-08-21T12:58:52+00:00",
        "created_at": "2025-08-20T12:58:52+00:00"
      },
      {
        "id": "01k36gw6cbfx4r8jhvd1qyp697",
        "status": "stopped",
        "subscription_id": "energy_pay_per_use",
        "address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
        "transactions_limit": 100,
        "transactions_used": 45,
        "energy_used": 2991000,
        "total_price": 184.0,
        "started_at": "2024-02-15T10:30:00Z",
        "renewed_at": null,
        "stopped_at": "2024-03-20T14:25:00Z",
        "expire_at": null,
        "created_at": "2024-02-15T10:25:00Z"
      }
    ]
  }
}

Statuts d'abonnement possibles

StatutDescription
newNouvel abonnement
pendingAbonnement en attente
errorAbonnement en erreur
activeAbonnement actif
stoppedAbonnement arrêté
expiredAbonnement expiré

Erreurs Possibles

Code d'ErreurDescription
1Erreur d'authentification (token ou signature invalide)
2Service ou paramètres invalides
500Erreur interne du serveur

Tron Energy API Documentation