POST /apiv2/time/order
Compre un número específico de ciclos de delegación de energía para una dirección y active el Host Mode para ella.
URL del endpoint
POST https://netts.io/apiv2/time/orderAutenticación
Proporcione su clave de API en el cuerpo de la solicitud (api_key) o en el encabezado X-API-KEY. La IP de la solicitud debe estar en la lista blanca configurada para su clave de API.
Cuerpo de solicitud
{
"api_key": "your_api_key",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10
}Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| api_key | string | Sí | Clave de API (o encabezado X-API-KEY). |
| address | string | Sí | Dirección TRON (TRC-20), ^T[1-9A-HJ-NP-Za-km-z]{33}$. |
| cycles | integer | Sí | Número de ciclos a comprar. Debe ser ≥ 1. |
Precios y facturación
- Ordenar ciclos no le cobra por adelantado. Cada ciclo se factura en el momento en que se delega su energía: la primera delegación de una activación cuesta 4 TRX, cada una de las siguientes cuesta 2 o 4 TRX dependiendo de la energía que su transferencia anterior realmente consumió (≤65,000 → 2 TRX, más → 4 TRX). Consulte Host Mode → Ciclos y Precios para ver las reglas completas, y Mínimo diario para el mínimo diario de 8 TRX (efectivo a partir del 2026-08-29).
- El
amounten la respuesta es una estimación (cycles × precio de referencia), no el total final. - Su saldo se verifica antes de que se acepte la orden; si no puede cubrir la orden, la orden es rechazada (error
-2).
Realizar una orden establece la dirección en active y crea una orden abierta para el número solicitado de ciclos. La dirección comienza entonces a recibir delegaciones de energía ciclo por ciclo, y cada delegación se cobra cuando ocurre.
Ejemplos de solicitudes
cURL
curl -X POST https://netts.io/apiv2/time/order \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY_HERE",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10
}'Python
import requests
resp = requests.post(
"https://netts.io/apiv2/time/order",
json={
"api_key": "YOUR_API_KEY_HERE",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10,
},
timeout=30,
)
result = resp.json()
if result["code"] == 0:
d = result["data"]
print(f"Order {d['order_id']}: {d['cycles']} cycles for {d['amount']} TRX")
else:
print("Error:", result["msg"])Node.js
const axios = require('axios');
axios.post('https://netts.io/apiv2/time/order', {
api_key: 'YOUR_API_KEY_HERE',
address: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
cycles: 10,
}).then(({ data: result }) => {
if (result.code === 0) {
const d = result.data;
console.log(`Order ${d.order_id}: ${d.cycles} cycles for ${d.amount} TRX`);
} else {
console.error('Error:', result.msg);
}
}).catch(err => console.error('Request failed:', err.response?.data || err.message));Respuesta
Éxito (200 OK)
{
"code": 0,
"msg": "Cycles purchased and host mode activated successfully",
"data": {
"order_id": 5426,
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10,
"amount": 23.5,
"status": "active",
"timestamp": "2026-07-13T05:30:15.123456"
}
}Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| code | integer | 0 = éxito, negativo = error |
| msg | string | Mensaje legible por humanos |
| data.order_id | integer | Identificador interno de la orden |
| data.address | string | La dirección para la que se compraron los ciclos |
| data.cycles | integer | Número de ciclos comprados |
| data.amount | number | Total estimado de la orden, en TRX (solo de referencia — la facturación es por delegación) |
| data.status | string | "active" después de una orden exitosa |
| data.timestamp | string | Marca de tiempo ISO de la orden |
Respuestas de error
| code | msg | Causa |
|---|---|---|
| -1 | Invalid API key or IP not in whitelist | La autenticación falló |
| -1 | Invalid TRC-20 address format | Formato de dirección inválido |
| -1 | Cycle count must be 1 or more | cycles < 1 |
| -1 | Database error processing order | Error temporal del lado del servidor — reintente |
| -2 | Insufficient balance. Required: X TRX, Available: Y TRX | Saldo por debajo del total de la orden |
| -6 | Cannot buy cycles: There is an open order with … cycles for this address | Ya existe una orden abierta (incluido infinity) |
{
"code": -2,
"msg": "Insufficient balance. Required: 23.5 TRX, Available: 10.0 TRX"
}Dirección de destino no permitida (403)
La dirección se verifica antes de que se acepte la orden. Si la delegación de recursos hacia ella no está permitida, la solicitud se rechaza con HTTP 403 y no se escribe nada — no se crea ninguna orden y la dirección no se añade ni se activa. El cuerpo utiliza la estructura detail:
| code | msg | Significado |
|---|---|---|
| 1006 | Address is blocked. Contact support. | La dirección está bloqueada |
| 1007 | Energy rental to smart contracts is not supported. | La dirección es un contrato inteligente (las direcciones de billeteras GasFree también son contratos inteligentes) |
| 1010 | Resource delegation to this address is not available. | La delegación de recursos a esta dirección no está disponible |
| 1011 | This address is frozen and cannot receive resource delegation. | La dirección está congelada |
{ "detail": { "code": 1007, "msg": "Energy rental to smart contracts is not supported." } }Endpoints relacionados
- POST /apiv2/time/add — añadir la dirección primero
- POST /apiv2/time/infinitystart — ciclos ilimitados en lugar de una cantidad fija
- POST /apiv2/time/status — consultar los ciclos restantes
- POST /apiv2/time/stop — detener y cerrar la orden
Notas
- Si la dirección aún no está en Host Mode, realizar la orden también la registra y la activa.
- Solo se permite una orden abierta por dirección a la vez.
- Los ciclos comprados se consumen a razón de uno por delegación; cuando se agotan, la dirección se detiene automáticamente.