</> REST API v1

TRONENS API

TRONENS API v1 完整说明:报价、Energy 估算、创建订单、订单状态、余额和 Webhook。

登录

响应格式

真实 API 响应始终包含 success,成功时包含 data。错误使用机器可读的 error 代码。诊断测试文件还会显示 method、url、http_code、duration_ms、request、response 和 curl_error;这些不是公开 API 的字段。真正的 TRONENS 响应位于测试器的 response 字段中。

{
  "success": true,
  "data": { ... }
}
{
  "success": false,
  "error": "ERROR_CODE"
}

认证

Authorization: Bearer te_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

在 Authorization 请求头中发送 Bearer token。密钥在账户中创建,并且完整值只显示一次。

权限用途
quote报价 + Energy 估算
orders:create创建订单 + 批量 API
orders:read订单状态
balance余额

每个密钥都可以设置 IP 白名单、每分钟请求限制和过期时间。响应包含 X-RateLimit-Limit 和 X-RateLimit-Remaining;HTTP 429 还包含 Retry-After。

GET/api/v1/quote/

报价

返回该客户价格,并应用账户折扣。

GET /api/v1/quote/?package_id=1&duration_minutes=15
GET /api/v1/quote/?energy_amount=65000&duration_minutes=60
字段含义
type报价类型:package 或 custom。
package_id套餐 ID;仅 package 报价。
name套餐名称;仅 package 报价。
energy_amount客户购买的 Energy 数量。
duration_minutes租用时长(分钟)。
base_price_trx账户折扣前的价格。
discount_percent实际应用的折扣百分比。
discount_trx折扣金额(TRX)。
price_trx最终从客户余额扣除的金额。

响应示例

{
  "success": true,
  "data": {
    "type": "custom",
    "energy_amount": 65000,
    "duration_minutes": 60,
    "base_price_trx": 1.961,
    "discount_percent": 0,
    "discount_trx": 0,
    "price_trx": 2.05
  }
}
POST/api/v1/estimate/

Energy 估算

根据指定 TRON 地址估算所需的 Energy。

{
  "recipient_address": "T...",
  "has_usdt": true
}
字段含义
recipient_address收款 TRON 地址。
has_usdt可选布尔值:是否计划进行 USDT TRC20 操作。
字段含义
estimated_energy预计所需 Energy 数量。
recommended_package匹配的有效套餐;没有时为 null。

响应示例

{
  "success": true,
  "data": {
    "estimated_energy": 65000,
    "recommended_package": {
      "id": 1,
      "name": "65 000 Energy",
      "energy_amount": 65000,
      "duration_minutes": 15
    }
  }
}
POST/api/v1/order/

创建订单

创建真实订单并从账户 TRX 余额扣款。收款 TRON 地址必须先在网络中激活。新 API 订单异步受理并返回 HTTP 202。建议始终传 external_id;重复相同值会返回已有订单,不会再次扣款。

{
  "external_id": "merchant_93481",
  "package_id": 1,
  "duration_minutes": 15,
  "address": "T..."
}
字段含义
external_id您的唯一 ID(最多 128 个字符:A-Z、a-z、0-9、. _ : -)。
package_id套餐 ID。package_id 与 energy_amount 二选一。
energy_amount自定义 Energy 数量。custom 使用可用时长,目前为 60 分钟。
duration_minutes租用时长。
addressEnergy 接收 TRON 地址。
字段含义
order_idTRONENS 订单 ID。
external_id您的订单 ID,用于幂等和状态查询。
status当前公开订单状态。
idempotenttrue 表示 external_id 已存在,没有创建新订单。

响应示例

HTTP 202
{
  "success": true,
  "data": {
    "order_id": 123,
    "external_id": "merchant_93481",
    "status": "processing",
    "idempotent": false
  }
}
POST

批量 API

/api/v1/orders/bulk/

单次请求最多创建 50 个订单。每项都有自己的 external_id 和 accepted/failed 结果,需要 orders:create 权限。

请求字段

{
  "orders": [
    {"external_id":"bulk-001","package_id":1,"duration_minutes":15,"address":"T..."},
    {"external_id":"bulk-002","energy_amount":65000,"duration_minutes":60,"address":"T..."}
  ]
}

1–50 个订单 · 权限:orders:create · HTTP 202 / 207

响应示例

{
  "success": true,
  "data": {
    "accepted": 1,
    "failed": 1,
    "results": [
      {"index":0,"external_id":"bulk-001","status":"accepted","order":{"id":123}},
      {"index":1,"external_id":"bulk-002","status":"failed","error":"INVALID_TRON_ADDRESS"}
    ]
  }
}
GET/api/v1/status/

订单状态

返回订单当前数据和状态。

GET /api/v1/status/?id=123
GET /api/v1/status/?external_id=merchant_93481
字段含义
idTRONENS 订单 ID。
external_id您的外部 ID,未提供时为 null。
addressEnergy 接收 TRON 地址。
energy_amount订购的 Energy 数量。
duration_minutes租用时长(分钟)。
price_trx该订单扣除的 TRX 金额。
status当前状态。
txid可用时为委托 TXID,否则为 null。
refunded如果订单金额已退回账户余额则为 true。
error_code安全公开代码:ORDER_REVIEW、ORDER_FAILED 或 null。
created_at订单创建时间。
delivered_atEnergy 确认交付时间,否则为 null。
completed_at租用完全结束时间,否则为 null。
updated_at订单最后更新时间。

时间字段格式为 YYYY-MM-DD HH:MM:SS,使用 TRONENS 服务器时区。

响应示例

{
  "success": true,
  "data": {
    "id": 123,
    "external_id": "merchant_93481",
    "address": "T...",
    "energy_amount": 65000,
    "duration_minutes": 15,
    "price_trx": 1.14,
    "status": "delegated",
    "txid": "...",
    "refunded": false,
    "error_code": null,
    "created_at": "2026-10-03 18:01:00",
    "delivered_at": "2026-10-03 18:01:12",
    "completed_at": null,
    "updated_at": "2026-10-03 18:01:12"
  }
}

状态

状态含义
processing订单已受理,正在处理。
delegating正在发送委托或等待确认。
delegatedEnergy 已交付,租用生效。
undelegating租期结束,资源正在收回。
completed租用流程已完全结束。
review需要进一步核验,请勿创建重复订单。
failed已确认失败。refunded 表示是否已退款。
GET/api/v1/balance/

余额

账户当前可用的 TRX 余额。

字段含义
balance_trx客户可用的 TRX 余额。
{"success":true,"data":{"balance_trx":125.5}}

Webhook

Webhook 会在订单状态变化时发送订单数据。请使用原始 JSON body 和 webhook secret 验证签名。

X-Webhook-Event: order.delegated
X-Webhook-Id: order-123-order.delegated-...
X-Webhook-Signature: sha256=<hex_hmac>

expected = HMAC_SHA256(raw_json_body, webhook_secret)
{
  "event": "order.delegated",
  "event_id": "order-123-order.delegated-...",
  "created_at": "2026-10-03T15:01:12Z",
  "data": {
    "order_id": 123,
    "external_id": "merchant_93481",
    "address": "T...",
    "energy_amount": 65000,
    "duration_minutes": 15,
    "price_trx": 1.14,
    "status": "delegated",
    "txid": "...",
    "refunded": false,
    "error_code": null,
    "created_at": "2026-10-03 18:01:00",
    "delivered_at": "2026-10-03 18:01:12",
    "completed_at": null,
    "updated_at": "2026-10-03 18:01:12"
  }
}

事件:order.processing、order.delegating、order.delegated、order.undelegating、order.completed、order.review、order.failed。HTTP 2xx 表示投递成功;临时错误最多重试 8 次并逐步延迟。请按 event_id 去重。

错误

error 代码用于程序处理。请使用 HTTP 状态码和 error 字段。

HTTPerror含义
401UNAUTHORIZED / TOKEN_EXPIREDAPI 密钥无效或已过期。
403SCOPE_FORBIDDEN / IP_NOT_ALLOWED缺少所需权限或 IP 不在白名单中。
402INSUFFICIENT_BALANCETRX 余额不足。
400INVALID_JSONJSON 请求体无效。
413REQUEST_TOO_LARGEJSON 请求体过大。
400ID_REQUIRED查询状态需要 id 或 external_id。
404NOT_FOUND / PACKAGE_NOT_FOUND未找到订单或套餐。
422EXTERNAL_ID_INVALIDexternal_id 无效。
422INVALID_TRON_ADDRESSTRON 地址无效。
422ADDRESS_NOT_ACTIVETRON 地址尚未激活,请先激活后再创建订单。
422PRODUCT_REQUIRED / PRODUCT_SELECTOR_CONFLICTpackage_id 和 energy_amount 必须且只能提供一个。
422CUSTOM_ENERGY_DISABLED自定义 Energy 当前已禁用。
422CUSTOM_ENERGY_OUT_OF_RANGE自定义 Energy 数量超出当前限制。
422CUSTOM_ENERGY_INVALID_STEP自定义 Energy 数量不符合当前步进规则。
422RENTAL_DURATION_UNAVAILABLE / CUSTOM_DURATION_UNAVAILABLE / DURATION_PRICE_UNAVAILABLE请求的租用时长不可用。
503SERVICE_UNAVAILABLE服务暂时不可用,请稍后重试。
429RATE_LIMITEDAPI 密钥请求频率超限。
405METHOD_NOT_ALLOWEDHTTP 方法错误,请使用文档指定的方法。