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。
/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
}
}/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
}
}
}/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 | 租用时长。 |
address | Energy 接收 TRON 地址。 |
| 字段 | 含义 |
|---|---|
order_id | TRONENS 订单 ID。 |
external_id | 您的订单 ID,用于幂等和状态查询。 |
status | 当前公开订单状态。 |
idempotent | true 表示 external_id 已存在,没有创建新订单。 |
响应示例
HTTP 202
{
"success": true,
"data": {
"order_id": 123,
"external_id": "merchant_93481",
"status": "processing",
"idempotent": false
}
}批量 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"}
]
}
}/api/v1/status/订单状态
返回订单当前数据和状态。
GET /api/v1/status/?id=123
GET /api/v1/status/?external_id=merchant_93481| 字段 | 含义 |
|---|---|
id | TRONENS 订单 ID。 |
external_id | 您的外部 ID,未提供时为 null。 |
address | Energy 接收 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_at | Energy 确认交付时间,否则为 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 | 正在发送委托或等待确认。 |
delegated | Energy 已交付,租用生效。 |
undelegating | 租期结束,资源正在收回。 |
completed | 租用流程已完全结束。 |
review | 需要进一步核验,请勿创建重复订单。 |
failed | 已确认失败。refunded 表示是否已退款。 |
/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 字段。
| HTTP | error | 含义 |
|---|---|---|
| 401 | UNAUTHORIZED / TOKEN_EXPIRED | API 密钥无效或已过期。 |
| 403 | SCOPE_FORBIDDEN / IP_NOT_ALLOWED | 缺少所需权限或 IP 不在白名单中。 |
| 402 | INSUFFICIENT_BALANCE | TRX 余额不足。 |
| 400 | INVALID_JSON | JSON 请求体无效。 |
| 413 | REQUEST_TOO_LARGE | JSON 请求体过大。 |
| 400 | ID_REQUIRED | 查询状态需要 id 或 external_id。 |
| 404 | NOT_FOUND / PACKAGE_NOT_FOUND | 未找到订单或套餐。 |
| 422 | EXTERNAL_ID_INVALID | external_id 无效。 |
| 422 | INVALID_TRON_ADDRESS | TRON 地址无效。 |
| 422 | ADDRESS_NOT_ACTIVE | TRON 地址尚未激活,请先激活后再创建订单。 |
| 422 | PRODUCT_REQUIRED / PRODUCT_SELECTOR_CONFLICT | package_id 和 energy_amount 必须且只能提供一个。 |
| 422 | CUSTOM_ENERGY_DISABLED | 自定义 Energy 当前已禁用。 |
| 422 | CUSTOM_ENERGY_OUT_OF_RANGE | 自定义 Energy 数量超出当前限制。 |
| 422 | CUSTOM_ENERGY_INVALID_STEP | 自定义 Energy 数量不符合当前步进规则。 |
| 422 | RENTAL_DURATION_UNAVAILABLE / CUSTOM_DURATION_UNAVAILABLE / DURATION_PRICE_UNAVAILABLE | 请求的租用时长不可用。 |
| 503 | SERVICE_UNAVAILABLE | 服务暂时不可用,请稍后重试。 |
| 429 | RATE_LIMITED | API 密钥请求频率超限。 |
| 405 | METHOD_NOT_ALLOWED | HTTP 方法错误,请使用文档指定的方法。 |