IOSOR База знаний

Send end-user всё равно бьёт в один prepaid ledger

Встроенный Send списывает prepaid wallet ISV. Не выдумывайте второй ledger, который продукт не финансирует — hold, retry и idempotency остаются честными.

Встроенный messaging кажется бесплатным: тап Send в UI SaaS и зелёная галочка. Под стеклом каждый успешный submit бьёт в один prepaid ledger ISV. Второго wallet не появляется от факта embed. Если ISV не финансирует hold, send падает с честной product-ошибкой — не с fake delivered.

Fiction accounting — типовой провал: in-app credit meter без опоры на wallet IOSOR, refund в валюте SaaS при горящем prepaid ledger, retry без idempotency с двойным debit одного OTP. Embed прячет консоль; ISV остаётся funded party.

Строка в architecture doc: end-user send ≡ prepaid debit ISV. Каждый design review начинается с неё. Перед пилотом сверьте один OTP-intent в UI с одной строкой hold/debit в export — без этого join demo запрещён.

Один ledger, даже если UI показывает product credits

Message packs для tenant — commercial layer ISV. Они мапятся на prepaid hold и debit одного wallet IOSOR. Баланс tenant без сверки со строками ledger — бомба для support. Экспортируйте usage еженедельно против строк wallet.

Не открывайте второй аккаунт IOSOR на tenant, пока Partner isolation не явный контракт. Embed-пилоты живут на одном аккаунте ISV с fair-share caps.

Hold и idempotency обязательны на embed-пути

Server-side send использует idempotency keys для OTP и transactional SMS. Double-click не создаёт два debit на одно intent. Retry после timeout — тот же ключ до terminal DLR или mapped failure.

Если wallet не берёт hold, верните insufficient-funds или paused-send. Никогда HTTP 200 с семантикой delivered при провале hold.

Сверьте product-ошибки с правдой ledger

Сигнал UI SaaS Правда ledger Допустимый next step
Sent / delivered Есть debit + путь DLR Показать receipt id
Queued Hold открыт или submit принят Poll статуса
Failed / paused Hold отклонён или stop-гейт Retry только с новым intent
Fake success Нет debit / нет hold Запрещено

Обучите support средней колонке. Тикеты про UI green без строк ledger сжигают pilot week.

Handover каналов на том же wallet

Email или voice рядом с SMS садятся на тот же prepaid ledger, пока нет second-channel handover с подписью finance. Embed не даёт бесплатный side channel. Читайте Wallet adjacency до флипа Live-тайла в настройках SaaS.

Связанные пути

Начните с IOSOR

Настройте единый API-ключ ISV и сквозные ключи идемпотентности в консоли IOSOR для каждого пользовательского действия. Привяжите внутренние кредиты вашей SaaS-платформы к холдам и списаниям на основном предоплатном кошельке. Включите вебхуки статусов DLR для мгновенной синхронизации балансов субабонентов с реестром транзакций.

Итог IOSOR

Встроенная отправка сообщений конечными пользователями всегда опирается на один предоплатный леджер ISV, даже если в интерфейсе SaaS отображаются отдельные продуктовые балансы. Любое расхождение между пользовательскими кликами и записями в главном кошельке превращается в финансовый долг и проблемы поддержки.

Делайте еженедельную сверку списаний платформы с физическими транзакциями IOSOR и используйте строгую идемпотентность для всех OTP и SMS. Не пытайтесь создавать виртуальные кошельки без реального покрытия и не скрывайте ошибки холдирования за сфальсифицированными статусами в UI.

Был ли материал полезен?

Связанные гайды