QvaPay API
Energía TRON

Alquilar energía

Cobrar del saldo y delegar energía a una dirección TRON.

POST /v2/energy/rent

Cobra de tu saldo QvaPay y delega la energía a la dirección indicada.

Autenticación

Cabeceras app-id / app-secret, o Authorization: Bearer <token>.

Request

curl -X POST https://api.qvapay.com/v2/energy/rent \
  -H "app-id: tu-app-id" \
  -H "app-secret: tu-app-secret" \
  -H "Content-Type: application/json" \
  -d '{
    "target_address": "TUo8pycbvje9w2XYsNnnzw67bpPs4GLFyD",
    "volume": 132000,
    "duration": "1h",
    "idempotency_key": "6f9c2a1e-3b7d-4c08-9f21-2e5a7c0b1d44",
    "quote_id": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
  }'

Parámetros

ParámetroTipoRequeridoDescripción
target_addressstringDirección TRON que recibe la energía (la que firma el envío)
volumenumberEnergía a alquilar: 32.000 – 5.000.000
durationstring1h, 1d, 3d o 7d
idempotency_keystring8–64 caracteres [A-Za-z0-9._-]. Ver abajo
quote_idstringNoCotización congelada con POST /v2/energy/quote
max_price_usdnumberNoSin quote_id: precio máximo que aceptas pagar

Manda siempre quote_id o max_price_usd. Sin ninguno de los dos aceptas el precio vivo sea cual sea, y la energía se mueve con la demanda de la red.

Idempotencia

idempotency_key es obligatoria y es lo que hace seguro reintentar.

SituaciónResultado
Misma clave, orden ya creada200 con la orden original y duplicate: true. No se cobra otra vez
Misma clave, petición todavía en curso409 DUPLICATE_REQUEST
Clave nuevaOrden nueva

Genera una clave nueva por cada compra, y reutiliza la misma al reintentar esa compra. Si una petición muere por timeout, repítela con la misma clave: o te devuelve la orden que sí se creó, o la crea. Nunca cobra dos veces.

Response — 201 entregada

{
  "data": {
    "uuid": "9c0d1e2f-3a4b-5c6d-7e8f-9a0b1c2d3e4f",
    "resource": "energy",
    "target_address": "TUo8pycbvje9w2XYsNnnzw67bpPs4GLFyD",
    "volume": 132000,
    "duration": "1h",
    "price_usd": 1.00,
    "status": "completed",
    "order_id": "1H76d06176b8",
    "txid": "db47c131876a504ceee32f023a46cf3aa23629362e28c8c272c10ced8f1f27a8",
    "explorer": "https://tronscan.org/#/transaction/db47c131876a...",
    "created_at": "2026-09-18T19:12:00.000Z",
    "completed_at": "2026-09-18T19:12:03.000Z"
  },
  "balance": 42.31
}

Response — 202 en curso

El saldo ya se cobró y la entrega sigue en marcha. Consulta GET /v2/energy/orders/{uuid} hasta que quede en completed o refunded; lo normal es que tarde menos de un minuto.

{
  "data": { "uuid": "9c0d1e2f-...", "status": "dispatching", "txid": null },
  "balance": 42.31
}

Estados de una orden

EstadoSignifica
pendingCobrada, pendiente de entregar
dispatchingEntrega en curso. Se reintenta automáticamente
completedEnergía delegada. Trae txid
refundedNo se pudo entregar y te devolvimos el saldo
needs_reviewLa entrega no se resolvió y la está revisando nuestro equipo

Errores

CódigocodeDescripción
400INVALID_ADDRESSLa dirección TRON no es válida (se comprueba el checksum completo)
400INVALID_VOLUME / INVALID_DURATIONFuera de los valores admitidos
400INSUFFICIENT_BALANCESaldo insuficiente
403LIMIT_EXCEEDEDSuperado el límite diario. La respuesta trae remaining
403SANCTIONS_BLOCKEDNo es posible completar la operación
409QUOTE_EXPIREDLa cotización caducó; pide una nueva
409PRICE_ABOVE_MAXEl precio vivo supera tu max_price_usd. Trae price_usd
409DUPLICATE_REQUESTHay una petición idéntica en curso
429RATE_LIMITEDDemasiadas solicitudes
502DELIVERY_FAILEDNo se pudo entregar; el saldo ya fue devuelto
503PROVIDER_UNAVAILABLEServicio no disponible ahora mismo

Rate Limiting

3 requests cada 3 segundos por cuenta.