Historial de Transacciones
Devuelve las transacciones propias de su cuenta, de la más reciente a la más antigua, con soporte de paginación y filtrado por estado. Solo se listan las transacciones realizadas por la cuenta a la que pertenece la clave API. Las recargas de saldo, las recompensas de referidos y los pagos no son pedidos y no se listan.
POST /v1/transactions/history
Solicitud
Todos los parámetros son opcionales. Si no se especifican parámetros, devuelve la primera página con 10 elementos. Un status desconocido, un page menor que 1 o un per_page fuera del rango 1–50 se rechaza con el código 2. Un user_subscription_id que no sea una cadena de 1–26 caracteres se rechaza de la misma forma.
Parámetros de Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| page | integer | No | Número de página (por defecto: 1, mínimo: 1) |
| per_page | integer | No | Elementos por página (por defecto: 10, máximo: 50) |
| status | string | No | Filtrar por estado de transacción: new, pending, success o failed (ver lista de estados) |
| user_subscription_id | string | No | Solo las transacciones que compró una de tus suscripciones: su id, tal como lo devuelven Historial de suscripciones e Iniciar suscripción. Un id que no es de tus suscripciones devuelve una página vacía |
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
"page": 1,
"per_page": 10,
"status": "success"
}'
# Calcular firma
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# Realizar solicitud a la 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'
});
// Calcular firma
const signature = crypto
.createHash('sha256')
.update(requestBody + apiSecret)
.digest('hex');
// Realizar solicitud a la 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'
]);
// Calcular firma
$signature = hash('sha256', $requestBody . $apiSecret);
// Realizar solicitud a la 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'
})
# Calcular firma
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()
# Realizar solicitud a la 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())Ejemplo de solicitud sin parámetros
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{}'
# Calcular firma
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# Realizar solicitud a la 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}"Respuesta
La respuesta contiene una página de las transacciones de la cuenta con información de paginación. Cada elemento tiene exactamente los campos que devuelve Verificar Estado de Transacción para el mismo id.
Una transacción que compra varios recursos a la vez (por ejemplo, energía y ancho de banda juntos) es un solo elemento, y su amount es el monto total cobrado por ella. Su service es "energy", y params.amounts enumera cada recurso comprado.
Campos de Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| code | integer | Código de respuesta (0 = éxito) |
| request_id | string | Identificador único de la solicitud |
| result | object | Datos de respuesta |
| result.page | integer | Página actual |
| result.per_page | integer | Elementos por página |
| result.total | integer | Número total de transacciones que coinciden con el filtro |
| result.items | array | Lista de transacciones, de la más reciente a la más antigua |
| result.items[].id | string | ID de transacción interno |
| result.items[].created_at | string | Marca de tiempo de creación (formato ISO 8601) |
| result.items[].status | string | Estado de la transacción (ver lista de estados) |
| result.items[].external_id | string|null | ID de transacción externo (si fue proporcionado) |
| result.items[].service | string | Tipo de servicio: "energy", "bandwidth" o "activate_address" |
| result.items[].params | object|null | Parámetros originales de la solicitud |
| result.items[].amount | string | Monto de la transacción en TRX |
| result.items[].hash | string|null | Hash de la transacción; presente solo cuando status es success |
Ejemplo de Respuesta
Respuesta a la solicitud sin parámetros:
{
"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"
}
]
}
}Posibles Errores
| Código de Error | Key | Descripción |
|---|---|---|
| 1 | auth | Error de autenticación (token o firma inválida) |
| 2 | invalid_service_or_params | Servicio o parámetros inválidos |
| 500 | internal_server_error | Error interno del servidor |