Skip to content

Crear Transacción

Crea una nueva transacción para compra de energía o activación de dirección.

POST /v1/transaction/new

Solicitud

Parámetros de Solicitud

CampoTipoRequeridoDescripción
external_idstringNoIdentificador de transacción externo opcional
servicestringTipo de servicio, debe ser "energy" o "activate_address"
paramsobjectObjeto de parámetros del servicio
params.addressstringDirección de billetera TRON (34 caracteres)
params.energy_amountintegerSí*Cantidad de energía a comprar. Requerido cuando service="energy"
params.durationintegerSí*Duración en horas (1 hora o 24 horas). Requerido cuando service="energy"
params.activate_addressbooleanNoSi se debe activar la dirección. Opcional para el servicio de energía

* Requerido solo cuando service="energy"

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "external_id": "my-external-id-123",
  "service": "energy",
  "params": {
    "address": "TRX_ADDRESS",
    "energy_amount": 65000,
    "duration": 1
  }
}'

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

# Realizar solicitud a la API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -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({
  external_id: 'my-external-id-123',
  service: 'energy',
  params: {
    address: 'TRX_ADDRESS',
    energy_amount: 65000,
    duration: 1
  }
});

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

// Realizar solicitud a la API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  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([
  'external_id' => 'my-external-id-123',
  'service' => 'energy',
  'params' => [
    'address' => 'TRX_ADDRESS',
    'energy_amount' => 65000,
    'duration' => 1
  ]
]);

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

// Realizar solicitud a la API
$ch = curl_init('https://api.tronzap.com/v1/transaction/new');
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({
  'external_id': 'my-external-id-123',
  'service': 'energy',
  'params': {
    'address': 'TRX_ADDRESS',
    'energy_amount': 65000,
    'duration': 1
  }
})

# 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.tronzap.com/v1/transaction/new',
  headers=headers,
  data=request_body
)

print(response.json())

Ejemplo de Solicitud para Activación de Dirección

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "external_id": "my-external-id-123",
  "service": "activate_address",
  "params": {
    "address": "TRX_ADDRESS"
  }
}'

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

# Realizar solicitud a la API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -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({
  external_id: 'my-external-id-123',
  service: 'activate_address',
  params: {
    address: 'TRX_ADDRESS'
  }
});

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

// Realizar solicitud a la API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));

Respuesta

La respuesta proporciona detalles sobre la transacción creada.

Campos de Respuesta

CampoTipoDescripción
codeintegerCódigo de respuesta (0 = éxito)
resultobjectDatos de respuesta
result.idstringID de transacción interno
result.external_idstringID de transacción externo (si fue proporcionado)
result.paramsobjectParámetros originales de la solicitud
result.statusstringEstado de la transacción (ver lista de estados)
result.amountfloatMonto de la transacción
result.created_atstringMarca de tiempo de creación (formato ISO 8601)
result.hashstringHash de la transacción (si está completada)

Ejemplo de Respuesta

json
{
    "code": 0,
    "result": {
        "id": "transaction_id",
        "external_id": "my-external-id-123",
        "params": {
            "address": "TRX_ADDRESS",
            "energy_amount": 65000,
            "duration": 1
        },
        "status": "success",
        "amount": 8.25,
        "created_at": "2024-03-22T12:00:00Z",
        "hash": "transaction_hash"
    }
}

Posibles Errores

Código de ErrorDescripción
1Error de autenticación (token o firma incorrectos)
2Servicio o parámetros inválidos
5Billetera no encontrada
6Fondos insuficientes
10Dirección TRON inválida
11Cantidad de energía inválida
12Duración inválida
24Dirección no activada
25Dirección ya activada
35Servicio no disponible
500Error interno del servidor

Tron Energy API Documentation