IOSOR База знаний

Unit class шаблона на debit rows

Каждая prepaid debit row должна нести именованный unit class — template, session, segment или verify — чтобы finance стыковал spend без folklore-таблиц.

Settled debit без unit class — деньги без product-истории. Finance не отличает template send от session unit, SMS segment или verify attempt — recon превращается в Slack-археологию. Эта страница — контракт метки на ledger: каждая production debit row несёт тот же unit class, что product замапил в каталоге — не эссе про session-window pricing.

Связанные: Ворота review шаблона и unit class, debit и delivery status в одном ledger, Fraud burn rows на prepaid ledger.

IOSOR — white-label prepaid.

Unit class — поле ledger, не заметка в чате

Product может сказать «OTP template» в треде; finance нужен filterable field: unit class, template ID (если применимо), amount, correlation ID, UTC timestamp. Pin в чате — не ledger of record. Soft USD 1 000/мес считает «мы знаем, какой это был class» долгом volume; USD 20 доказывает: blank class не settles.

Именованные классы, которые finance фильтрует

Unit class Типичный send Ожидание finance
Template unit Approved outbound template Per-send template debit + template ID
Session unit User-initiated window Debit session-class, не folklore template
SMS segment Templated или plain SMS Segment × list; class всё равно named
Verify attempt OTP / code check Attempt или verify row — не «misc messaging»

Стыковка правды каталога с каждым debit

Каталог держит template ID, review state и unit class. Debit row должна стыковать эти поля за то же UTC-окно. Version bump снова входит в Approved; bumped ID не наследует вчерашний class silently. Retire останавливает production debit под старым ID. Нет join-колонок — утренние recon tickets.

Пустой или mismatched class — fail closed

Нет unit class → нет production settle. Class на debit ≠ class в каталоге → fail closed или hold release с честным status — никогда silent rewrite в другой class. Unknown template ID → нет settle. Общий словарь статусов гасит hero-коды: product и finance открывают одну лексику. Soft USD 1 000/мес делает class mismatch exportable; USD 20 доказывает коридор, где blank class не дебетует.

Чеклист покупателя: unit class на debit rows

  1. Каждый settled production debit несёт named unit class?
  2. Template send включает template ID + template unit (или mapped segment) для join?
  3. Session и verify классы раздельны — не схлопнуты в «messaging»?
  4. Unit class каталога совпадает с debit row за то же UTC-окно?
  5. Blank / mismatched class блокирует settle с честным status?
  6. Soft volume language blocked, пока маркировка class в draft?

Начните с IOSOR

Настройте строгую валидацию атрибута unit class для всех списаний по шаблонам в консоли IOSOR перед выпуском в продакшен. Включите автоматическую блокировку шлюза при отсутствии ID шаблона или расхождении класса дебета с каталогом. Сверьте выгрузку вебхуков списания за текущее UTC-окно, чтобы убедиться в разделении сессионных юнитов и SMS-сегментов.

Итог IOSOR

Наличие названия шаблона в чате поддержки не является финансовым реестром. Данная статья доказала, что каждый дебет должен содержать явный класс юнита, ID шаблона, correlation ID и временную метку UTC, жестко связанные со статусом в каталоге.

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

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