Паспорт проверки до повторной отправки
ДоказательствоЧто зафиксироватьПризнак готовности
Активasset code и полный issuerПара совпадает в платеже и trustline
Линияbalance entry получателя или отправителяЛиния существует для той же пары
Доступauthorization flagsРазрешён именно нужный тип операции
Ёмкостьlimit, balance, buying liabilitiesПосле платежа лимит не превышен
Результатresult code конкретной Payment operationОперация успешна и ledger изменился
Паспорт проверки до повторной отправки
Доказательство
Актив
Что зафиксировать
asset code и полный issuer
Признак готовности
Пара совпадает в платеже и trustline
Доказательство
Линия
Что зафиксировать
balance entry получателя или отправителя
Признак готовности
Линия существует для той же пары
Доказательство
Доступ
Что зафиксировать
authorization flags
Признак готовности
Разрешён именно нужный тип операции
Доказательство
Ёмкость
Что зафиксировать
limit, balance, buying liabilities
Признак готовности
После платежа лимит не превышен
Доказательство
Результат
Что зафиксировать
result code конкретной Payment operation
Признак готовности
Операция успешна и ledger изменился

Код актива без issuer не определяет trustline

Выпущенный актив Stellar задаётся парой asset code + issuer. Две линии с одинаковым кодом, но разными issuer — разные активы. Скопируйте оба поля из операции или исходной заявки и ищите balance entry только по этой паре. Нативный XLM не требует trustline; он тоже может вернуть PAYMENT_LINE_FULL из-за ёмкости аккаунта, но формула trustline ниже относится только к выпущенным активам.

Result code показывает, какая сторона не прошла проверку

Что означает код Payment
КодГде проблемаМинимальное исправление
PAYMENT_NO_TRUSTУ получателя нет trustline к code + issuerПолучатель создаёт линию для точного актива
PAYMENT_SRC_NO_TRUSTУ отправителя нет нужной trustlineСоздать исходную линию для точного актива либо исправить ошибочно выбранный asset
PAYMENT_NOT_AUTHORIZEDПолучателю не разрешено держать активЭмитент меняет флаги линии, если перевод допустим
PAYMENT_SRC_NOT_AUTHORIZEDОтправителю не разрешено отправлять активЭмитент проверяет авторизацию исходной линии
PAYMENT_LINE_FULLПолучателю не хватает лимита с учётом buying liabilitiesОсвободить ёмкость либо повысить лимит
Что означает код Payment
Код
PAYMENT_NO_TRUST
Где проблема
У получателя нет trustline к code + issuer
Минимальное исправление
Получатель создаёт линию для точного актива
Код
PAYMENT_SRC_NO_TRUST
Где проблема
У отправителя нет нужной trustline
Минимальное исправление
Создать исходную линию для точного актива либо исправить ошибочно выбранный asset
Код
PAYMENT_NOT_AUTHORIZED
Где проблема
Получателю не разрешено держать актив
Минимальное исправление
Эмитент меняет флаги линии, если перевод допустим
Код
PAYMENT_SRC_NOT_AUTHORIZED
Где проблема
Отправителю не разрешено отправлять актив
Минимальное исправление
Эмитент проверяет авторизацию исходной линии
Код
PAYMENT_LINE_FULL
Где проблема
Получателю не хватает лимита с учётом buying liabilities
Минимальное исправление
Освободить ёмкость либо повысить лимит

Читайте код операции, а не только общий статус транзакции и текст кошелька. В одной транзакции может быть несколько операций: точная позиция неудачной Payment связывает ошибку с её source account, destination и asset.

Trustline может существовать, но не давать права на перевод

При включённом контроле доступа эмитент управляет флагами линии. Полная авторизация позволяет использовать актив в обычных операциях. Режим authorized to maintain liabilities ограниченнее: он позволяет сохранить или снять существующие обязательства, но не превращает линию в свободно принимающую новый платёж.

Получатель не может исправить NOT_AUTHORIZED новой попыткой Payment. Нужна операция эмитента над этой trustline. До неё не просите пользователя увеличивать лимит или пересоздавать ту же линию: эти действия не меняют флаг доступа.

LINE_FULL учитывает не только видимый balance

Для входящего Payment выпущенного актива проверьте условие: balance + buying liabilities + amount не превышает limit. Buying liabilities — объём актива, зарезервированный под возможное исполнение открытых offers. Поэтому линия может выглядеть незаполненной по одному balance и всё равно отклонить перевод.

Как освободить ёмкость без лишних изменений

  1. 1
    Сверьте значения

    Прочитайте limit, balance и buying liabilities из одного актуального ledger snapshot.

  2. 2
    Найдите источник liabilities

    Проверьте открытые offers получателя для этого актива. Не удаляйте их, пока владелец не подтвердил назначение.

  3. 3
    Выберите одно изменение

    Увеличьте limit, уменьшите balance переводом по согласованному адресу либо отмените конкретное предложение.

  4. 4
    Пересчитайте запас

    Убедитесь, что новый amount помещается после обновления ledger, и только затем формируйте новую Payment.

Успех доказывают код операции и новое состояние линии

Решение после проверки
НаблюдениеДействиеКонтроль результата
Линии нетВладелец создаёт Change Trust для точного code + issuer, имея XLM на fee и reserveТранзакция SUCCESS, trustline появилась в новом ledger
Линия есть, доступ закрытЗапросить действие эмитентаAuthorization flag изменился on-chain
Не хватает ёмкостиИзменить ровно limit, balance или нужные offersНеравенство для amount выполняется
Payment уже успешнаНе отправлять дубльУ операции success и balance изменился на ожидаемую величину
Причина осталась неяснойОстановить повтор и сохранить envelope, tx hash, operation indexОшибка воспроизводимо относится к той же операции
Решение после проверки
Наблюдение
Линии нет
Действие
Владелец создаёт Change Trust для точного code + issuer, имея XLM на fee и reserve
Контроль результата
Транзакция SUCCESS, trustline появилась в новом ledger
Наблюдение
Линия есть, доступ закрыт
Действие
Запросить действие эмитента
Контроль результата
Authorization flag изменился on-chain
Наблюдение
Не хватает ёмкости
Действие
Изменить ровно limit, balance или нужные offers
Контроль результата
Неравенство для amount выполняется
Наблюдение
Payment уже успешна
Действие
Не отправлять дубль
Контроль результата
У операции success и balance изменился на ожидаемую величину
Наблюдение
Причина осталась неясной
Действие
Остановить повтор и сохранить envelope, tx hash, operation index
Контроль результата
Ошибка воспроизводимо относится к той же операции

Не переотправляйте старый envelope после исправления. Сначала проверьте исходный hash: при timeout ответ мог потеряться уже после приёма транзакции. Если прежняя попытка точно не прошла, загрузите актуальный sequence, соберите и подпишите новую транзакцию намеренно — иначе диагностическая попытка может стать дублем.

После новой отправки найдите транзакцию и конкретную Payment operation, проверьте successful, transaction_successful, code + issuer, from, to, amount и состояние линии в следующем ledger. Если в той же транзакции были другие операции с этим активом, учитывайте их отдельно и не приписывайте весь итоговый delta одной Payment. Общий порядок подтверждения перевода помогает не принять надпись интерфейса за доказательство, а разбор raw balance пригодится, если расходятся отображаемые знаки после запятой.

Fee bump отвечает за оплату комиссии и inner result, а sponsored reserves — за резервные обязательства аккаунта. Они могут встречаться рядом с Payment, но не заменяют проверку trustline и не являются исправлением этих трёх кодов.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Stellar Developers — Accounts Stellar Development Foundation · Проверено 30 августа 2026 г. в 16:16 GMT+5
  2. Stellar Developers — Assets Stellar Development Foundation · Проверено 30 августа 2026 г. в 16:16 GMT+5
  3. Stellar Developers — Control Asset Access Stellar Development Foundation · Проверено 30 августа 2026 г. в 16:16 GMT+5
  4. Stellar Horizon — Payment result codes Stellar Development Foundation · Проверено 30 августа 2026 г. в 16:16 GMT+5
  5. Stellar Developers — List of Operations Stellar Development Foundation · Проверено 30 августа 2026 г. в 16:16 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.