Расчёт и отправка
API CoinVertus: комиссии сети, подбор источников, план отправки, подтверждение, задачи и их статусы.
Содержание
Адрес API: https://api.coinvertus.net/v1
Отправка: порядок
- getfee — комиссия сети на уровнях fast, normal, low и комиссия сервиса; spendinfo — с каких адресов уйдут деньги.
- preparetx — план перевода: источники, получатели, комиссия, шаги. План ничего не резервирует и живёт 5 минут (expires_at).
- Проверьте план и подтвердите его: posttx с prepare_id и confirm = HMAC-SHA256(секрет ключа, «key_id.fingerprint.prepare_confirm.prepare_time»), где key_id — ID ключа, подготовившего план.
- posttx ставит задачу в очередь и списывает комиссию сервиса; очередь отправляет перевод в течение нескольких секунд. Итог — task/{TASK_ID} или вебхук task.done.
| Поле | Описание |
|---|---|
to | Получатели: address и amount; tag — тег назначения, comment — текст получателю до 120 символов, где сеть это поддерживает. Несколько получателей (до 100) — только у пар с multi_recipient; при send_all — один получатель без amount. |
from | Свои адреса-источники (address); без from адреса подбираются сами. В сетях с аккаунтами — один адрес. |
order | Порядок подбора источников: desc (по умолчанию) — сначала крупные адреса, asc — мелкие. |
fee | preparetx: fast, normal (по умолчанию) или low; в UTXO-сетях — ещё ставка числом в единицах fee_rate_unit. В сетях с аккаунтами — только normal; у токенов с оплатой энергии — ещё rent или burn. |
change | preparetx, UTXO-сети: куда вернуть сдачу — auto (по умолчанию, адрес самого крупного входа), new (новый адрес) или свой адрес этой сети. |
send_all | preparetx: true — отправить всё с источников за вычетом комиссии. |
getfee и spendinfo
getfee: те же to, from, order. fee_coin — монета комиссии сети (у токена — монета сети); fast, normal, low — amount и пять валют либо null, если уровня у сети нет или на нём сумма с комиссией не помещается (не помещается нигде — 409 A018); service_fee_usd — комиссия сервиса; extra — дополнительные расходы.
{
"coin": "DOGE",
"network": "dogecoin-mainnet",
"fee_coin": "DOGE",
"fast": {
"amount": "0.04452",
"usd": "0.2",
"eur": "0.01",
"rub": "0.5",
"cny": "0.04",
"inr": "0.47"
},
"normal": {
"amount": "0.02226",
"usd": "0.1",
"eur": "0.01",
"rub": "0.5",
"cny": "0.04",
"inr": "0.47"
},
"low": null,
"service_fee_usd": "0.10",
"extra": []
}extra.type | Что значит |
|---|---|
gas | На адресе токена мало монеты сети: amount придёт на него с другого вашего адреса, network_fee — комиссия этого перевода. |
rent | Без provider — создание счёта токена у получателя, если его ещё нет. |
burn, rent | С provider — способы оплаты энергии токена: сжигание (burn) или аренда (rent); selected — способ, который выберет fee normal. |
spendinfo: to и order. sources — адреса с деньгами по порядку order: address, balance (доступно), locked (занят незавершённым переводом), use — сколько с него возьмёт отправка; enough — хватит ли. У токена use — сумма токена, комиссию проверяют getfee и preparetx.
preparetx: план отправки
Запрос: network, to, from, order, fee, change, send_all. Ответ — план и данные для подтверждения в posttx. Не хватает платёжного баланса на комиссию сервиса — 409 A020.
{
"prepare_id": "prep_9a3f0c7d21b84e65f0a1c2d3",
"prepare_confirm": "5c0e8d1f7a2b4c6d9e3f1a0b2c4d6e8f",
"prepare_time": 1789647000,
"expires_at": "2026-09-17T12:15:00Z",
"fingerprint": "0995342725a2b11aa2260e7e84e6394754eef9dcc7412a222e2952b9d9589345",
"coin": "DOGE",
"network": "dogecoin-mainnet",
"tx": {
"sources": [
{
"address": "DLp4hPWtqM8sQZoyk2vRj3TfGcX5nA7bUe",
"amount": "150.5"
}
],
"recipients": [
{
"address": "D8vFz4p1L37jdg47HXKtSHA5uYLYxbGgPD",
"amount": "100"
}
],
"change": {
"address": "DLp4hPWtqM8sQZoyk2vRj3TfGcX5nA7bUe",
"amount": "50.47774"
},
"network_fee": "0.02226",
"fee_coin": "DOGE",
"fee_rate": "100",
"fee_rate_unit": "koinu/vB",
"size": 226,
"replaceable": false
},
"steps": [
{
"type": "send"
}
],
"service_fee_usd": "0.10"
}| Поле | Описание |
|---|---|
tx.sources | Адреса-источники и сколько уйдёт с каждого вместе с комиссией сети. |
tx.recipients | Получатели и суммы; в сетях с тегом или комментарием — tag и comment. |
tx.change | Сдача UTXO: адрес и сумма; без сдачи — null. |
tx.network_fee, tx.fee_coin | Комиссия сети и её монета. |
tx.fee_rate, tx.fee_rate_unit, tx.size, tx.replaceable | UTXO-сети: ставка и её единица, размер транзакции, можно ли заменить её транзакцией с большей комиссией. |
tx.fee_payer, tx.rent | Токены, у которых комиссию платит другой ваш адрес той же транзакцией: этот адрес и плата за создание счёта у получателя. |
steps | Шаги исполнения: gas — сначала пополнение газа (from, to, amount, network_fee), rent — аренда энергии (provider, energy, cost), send — сам перевод. |
expires_at, fingerprint | Срок плана и его отпечаток: подтвердить план можно только до expires_at. |
posttx и задача
posttx: prepare_id и confirm. Ответ — объект задачи. Повтор с тем же prepare_id возвращает ту же задачу — и после срока плана, так что при обрыве связи posttx можно повторить. Чужой план — 404 A021, срок вышел — 409 A021, неверный confirm — 400 A002. task/{TASK_ID} возвращает тот же объект.
{
"task_id": "task_6f1c2a9b0d4e8f7a3c5b1d20",
"task_info": "confirmed",
"task_start": "2026-09-17T12:10:00Z",
"task_sent": "2026-09-17T12:10:04Z",
"task_done": "2026-09-17T12:20:12Z",
"prepare_id": "prep_9a3f0c7d21b84e65f0a1c2d3",
"coin": "DOGE",
"network": "dogecoin-mainnet",
"txid": "b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7",
"gas_txid": null,
"confirmations": 6,
"error_code": null,
"tx": {
"sources": [
{
"address": "DLp4hPWtqM8sQZoyk2vRj3TfGcX5nA7bUe",
"amount": "150.5"
}
],
"recipients": [
{
"address": "D8vFz4p1L37jdg47HXKtSHA5uYLYxbGgPD",
"amount": "100"
}
],
"change": {
"address": "DLp4hPWtqM8sQZoyk2vRj3TfGcX5nA7bUe",
"amount": "50.47774"
},
"network_fee": "0.02226",
"fee_coin": "DOGE",
"fee_rate": "100",
"fee_rate_unit": "koinu/vB",
"size": 226,
"replaceable": false
},
"service_fee_usd": "0.1"
}task_info | Что значит |
|---|---|
queue | В очереди; задачу можно отменить. |
processing | Отправляется. |
gas | Ждёт подтверждения пополнения газа токена. |
rent | Ждёт аренды энергии. |
sent | В сети, ждёт подтверждений. |
unknown | Исход отправки неизвестен: нода не ответила. Не повторяйте перевод — итог определит сверка, и задача перейдёт дальше сама. |
confirmed | Подтверждена. |
failed | Не выполнена — причина в error_code. |
dropped | Транзакция выпала из сети без подтверждений. |
cancelled | Отменена клиентом. |
| Поле | Описание |
|---|---|
task_start, task_sent, task_done | Время постановки, отправки в сеть и конечного статуса; ещё не было — null. |
txid, gas_txid, confirmations | Транзакция перевода, транзакция пополнения газа и подтверждения; до отправки — null. |
error_code | Код причины, если задача не выполнена; иначе null. |
tx, service_fee_usd | План из preparetx и комиссия сервиса, списанная за задачу. |
error_code | Что значит |
|---|---|
A009 | Сеть или нода были недоступны дольше 30 минут, либо исход отправки неизвестен. |
A018 | К моменту отправки денег на адресе не хватило. |
A021 | План устарел (баланс, комиссия или адрес изменились после preparetx) либо аккаунт заблокирован. |
A023 | Сеть отклонила транзакцию; комиссия сети списана. |
A025 | Аренда энергии не удалась. |
task/{TASK_ID}/cancel отменяет задачу в queue — до первой попытки и между повторами; после отправки газа или заказа аренды отмены нет. Позже — 409 A024. Повтор по отменённой задаче возвращает её же.
Особенности сетей
- UTXO-сети: несколько получателей, уровни fast, normal, low или своя ставка, сдача — change; источники — входы с ваших адресов.
- Сети с аккаунтами: один адрес-источник и один получатель, только normal. Адрес с незавершённым переводом занят до его подтверждения — задача ждёт до 30 минут.
- Сети с тегом назначения (tag в assets): to[].tag уходит получателю; входящие на ваш адрес различаются по tag в transfers, а getnewaddress выдаёт новый тег к тому же адресу.
- Сеть с комментарием к переводу: to[].comment — текст до 120 символов; в остальных сетях поле отклоняется (400 A002).
- Токены: комиссия — монетой сети с того же адреса. Если её мало, план начинается шагом gas: пополнение с вашего самого крупного свободного адреса сети, а токен уходит после его подтверждения.
- Токены с оплатой энергии: fee normal — аренда у самого дешёвого подключённого провайдера, иначе сжигание; rent или burn — выбор вручную. Аренда не удалась — failed A025. Провайдеры подключаются в настройках аккаунта, вкладка «Помощники».
- Токены, у которых комиссию и создание счёта получателя платит ваш адрес с наибольшим остатком монеты сети той же транзакцией: в tx — fee_payer и rent, шага gas нет.
- Приватные сети: отправка с одного адреса, getfee — оценка сверху, точная комиссия — в preparetx, privkey недоступен; отправка через кошелёк ноды занимает до нескольких минут.
Комиссия сервиса и платёжный баланс
Комиссия сервиса — по тарифу: процент от суммы в USD с минимумом и максимумом; её показывают getfee и preparetx (service_fee_usd). Она списывается с платёжного баланса при posttx и возвращается, если перевод не дошёл до сети, выпал или задачу отменили. Подтверждённый перевод и отклонённый сетью (failed A023) комиссию не возвращают.
Чтобы отправки не вставали из-за баланса, включите автопополнение в кабинете (Платёжный баланс → Автопополнение); вебхук paybalance.low предупредит, если баланс опустится ниже порога.