Меню документации

Пакеты — Справочник API

Один запрос — множество получателей.

МетодПутьОписание
GET/v1/batchesСписок пакетов
POST/v1/batchesЗаказ для нескольких получателей в одном запросе
GET/v1/batches/{batchId}Прогресс выполнения пакета
POST/v1/batches/{batchId}/cancelОтмена еще не начатых элементов пакета

Сгенерировано из openapi.yaml во время сборки. Базовый URL https://api.tenergy.me/v1 или https://api-nile.tenergy.me/v1 в сети Nile (Окружения). Каждый запрос ниже подписывается в соответствии с разделом Аутентификация, если в строке Аутентификация не указано иное.

Список пакетов

GET /v1/batches · listBatches

Аутентификация: API-ключ (HMAC).

Параметры

ПараметрГдеТипОбязательныйОписание
limitqueryinteger
cursorquerystringНепрозрачный курсор из next_cursor предыдущего ответа.

Ответы

СтатусЗначение
200OK
401Отсутствуют, некорректны или отклонены учетные данные.
429Слишком много запросов.
500Ошибка на нашей стороне.

Поля ответа

ПолеТипОбязательноеОписание
dataarray of object (Batch)да
data[].idstringда
data[].client_batch_idstring | null
data[].statusenum: queued, processing, completed, partial, failed, cancelledдаСтатус пакета. partial означает, что часть получателей успешно обработана, а часть нет — проверяйте items.
data[].items_acceptedintegerда
data[].summaryobjectдаКоличество элементов по статусам.
data[].summary.totalinteger
data[].summary.queuedinteger
data[].summary.processinginteger
data[].summary.completedinteger
data[].summary.partialinteger
data[].summary.failedinteger
data[].summary.insufficient_fundsinteger
data[].summary.cancelledinteger
data[].itemsarray of object (BatchItem)да
data[].items[].receiverstringдаTRON-адрес Base58Check (начинается с T, 34 символа).
data[].items[].tracking_idstringда<client_batch_id>:<receiver> — идентификатор элемента в пакете.
data[].items[].statusenum: queued, processing, completed, partial, failed, insufficient_funds, cancelledда
data[].items[].resourceenum: energy, bandwidth, activationenergy — энергия TRON, ресурс для TRC-20 переводов. · bandwidth — пропускная способность TRON (net). · activation — разовая активация аккаунта.
data[].items[].amountinteger
data[].items[].tierenum: 5m, 15m, 1h, 1d, 3d, 30dСрок аренды. GET /v1/prices возвращает актуальные тарифы.
data[].items[].delivered_amountintegerФактически доставленный объем ресурсов.
data[].items[].order_idsarray of stringСозданные заказы для получателя (несколько, если объем был разбит на части). Это стандартные заказы: их можно проверять и отзывать отдельно.
data[].items[].delegate_hashesarray of string
data[].items[].charged_amount_suninteger (int64)Сумма списания в SUN (1 TRX = 1 000 000 SUN). Всегда целое число.
data[].items[].activationobject
data[].items[].bandwidthobject
data[].items[].attemptsinteger
data[].items[].started_atstring (date-time) | null
data[].items[].finished_atstring (date-time) | null
data[].items[].failurenull | object
data[].created_atstring (date-time)да
data[].finished_atstring (date-time) | null
next_cursorstring | nullда

Заказ для нескольких получателей в одном запросе

POST /v1/batches · createBatch

Аутентификация: API-ключ (HMAC).

До 100 получателей в одном запросе. Для каждого получателя платформа выполняет полную последовательность: активация адреса при необходимости, пополнение пропускной способности при ее нехватке и доставка основного ресурса с автоматическим дроблением больших объемов.

Ответ 202 Accepted: пакет поставлен в очередь, средства еще не списаны, ресурсы не доставлены. Проверяйте статус через GET /v1/batches/{id} или вебхуки.

Ошибка одного получателя никогда не влияет на остальных, а сбой шага активации или пропускной способности не останавливает доставку энергии.

Оплата рассчитывается индивидуально для каждого получателя по цене на момент исполнения. Используйте параметр max_price_sun для каждого элемента, чтобы ограничить максимальную цену.

Каждый получатель создает отдельный заказ со своим ID. client_batch_id служит ключом идемпотентности всего пакета: повторный запрос с тем же ID и телом возвращает исходный пакет; с другим телом — отклоняется с 3010 idempotency_conflict.

Параметры

ПараметрГдеТипОбязательныйОписание
Idempotency-KeyheaderstringПользовательский ключ идемпотентности для безопасных повторов (8–128 символов A-Z a-z 0-9 . _ : -). Хранится 24 часа.

Тело запроса

JSON (BatchRequest), обязательно.

ПолеТипОбязательноеОписание
client_batch_idstringВаш идентификатор пакета и ключ идемпотентности. Обязателен, если не передан заголовок Idempotency-Key.
defaultsobject (BatchItemOptions)Параметры по умолчанию для всех элементов пакета.
defaults.resourceenum: energy, bandwidth, activationenergy, bandwidth или activation.
defaults.amountinteger
defaults.tierenum: 5m, 15m, 1h, 1d, 3d, 30dСрок аренды.
defaults.activateboolean
defaults.bandwidthbooleanПополнять пропускную способность получателя при нехватке перед передачей энергии.
defaults.bandwidth_amountintegerКоличество единиц bandwidth для пополнения.
defaults.max_price_suninteger (int64)Максимальная цена в SUN.
defaults.client_order_id_prefixstringПрефикс для генерации client_order_id = "<prefix>-<receiver>".
itemsarray of objectдаСписок получателей. Дублирующиеся адреса отклоняются с 2006 duplicate_receiver.
items[].receiverstringдаTRON-адрес Base58Check (начинается с T, 34 символа).
items[].resourceenum: energy, bandwidth, activation
items[].amountinteger
items[].tierenum: 5m, 15m, 1h, 1d, 3d, 30d
items[].activateboolean
items[].bandwidthboolean
items[].bandwidth_amountinteger
items[].max_price_suninteger (int64)
items[].client_order_id_prefixstring

Пример тела запроса из контракта (значения для иллюстрации):

json
{
  "client_batch_id": "acme-payout-2026-09-11-01",
  "defaults": {
    "resource": "energy",
    "tier": "1h",
    "amount": 65000,
    "activate": true,
    "bandwidth": true,
    "bandwidth_amount": 400
  },
  "items": [
    {"receiver":"TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"},
    {"receiver":"TXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","amount":131000},
    {"receiver":"TYYyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy","bandwidth":false}
  ]
}

Ответы

СтатусЗначение
200Повторный запрос с тем же client_batch_id и телом — возвращен исходный пакет.
202Пакет принят и поставлен в очередь. Списаний пока не производилось.
400Некорректный запрос — невалидный JSON, неизвестное поле или неверный тип.
401Отсутствуют, некорректны или отклонены учетные данные.
402Недостаточно средств для покрытия заказа.
409Конфликт идемпотентности или состояния.
422Синтаксически корректный запрос, но действие невозможно.
429Слишком много запросов.
500Ошибка на нашей стороне.
503Временно недоступно.

Поля ответа (Batch)

ПолеТипОбязательноеОписание
idstringда
client_batch_idstring | null
statusenum: queued, processing, completed, partial, failed, cancelledдаСтатус выполнения пакета.
items_acceptedintegerда
summaryobjectдаСводка по элементам.
summary.totalinteger
summary.queuedinteger
summary.processinginteger
summary.completedinteger
summary.partialinteger
summary.failedinteger
summary.insufficient_fundsinteger
summary.cancelledinteger
itemsarray of object (BatchItem)да
items[].receiverstringдаTRON-адрес Base58Check (начинается с T, 34 символа).
items[].tracking_idstringда<client_batch_id>:<receiver>.
items[].statusenum: queued, processing, completed, partial, failed, insufficient_funds, cancelledда
items[].resourceenum: energy, bandwidth, activation
items[].amountinteger
items[].tierenum: 5m, 15m, 1h, 1d, 3d, 30d
items[].delivered_amountinteger
items[].order_idsarray of stringID созданных заказов.
items[].delegate_hashesarray of stringХеши транзакций делегирования.
items[].charged_amount_suninteger (int64)Списанная сумма в SUN.
items[].activationobject
items[].activation.statusenum: planned, not_needed, done, failed, skipped
items[].activation.hashstring | null
items[].bandwidthobject
items[].bandwidth.statusenum: planned, enough, done, failed, skipped
items[].bandwidth.order_idstring | null
items[].bandwidth.skip_reasonenum: option_off, amount_large | null
items[].attemptsinteger
items[].started_atstring (date-time) | null
items[].finished_atstring (date-time) | null
items[].failurenull | object
items[].failure.codeinteger
items[].failure.slugstring
items[].failure.messagestring
created_atstring (date-time)да
finished_atstring (date-time) | null

Прогресс выполнения пакета

GET /v1/batches/{batchId} · getBatch

Аутентификация: API-ключ (HMAC).

Параметры

ПараметрГдеТипОбязательныйОписание
batchIdpathstringдаID пакета (bat_…) или cid:<client_batch_id>.
receiverquerystringФильтр для получения элемента только по данному адресу вместо всего пакета.

Ответы

СтатусЗначение
200OK
401Отсутствуют, некорректны или отклонены учетные данные.
404Объект не найден или принадлежит другому аккаунту.
429Слишком много запросов.
500Ошибка на нашей стороне.

Поля ответа (Batch)

Те же поля, что описаны выше в ответе POST /v1/batches.

Отмена еще не начатых элементов пакета

POST /v1/batches/{batchId}/cancel · cancelBatch

Аутентификация: API-ключ (HMAC).

Удаляет из очереди всех получателей, обработка которых еще не началась. Получатели, уже находящиеся в процессе обработки, не прерываются.

Параметры

ПараметрГдеТипОбязательныйОписание
batchIdpathstringда

Ответы

СтатусЗначение
200OK
401Отсутствуют, некорректны или отклонены учетные данные.
404Объект не найден или принадлежит другому аккаунту.
429Слишком много запросов.
500Ошибка на нашей стороне.

Поля ответа

ПолеТипОбязательноеОписание
idstringда
cancelledintegerдаКоличество получателей, снятых с очереди.

    ↑ ↓ — выбрать · Enter — открыть · Esc — закрыть