IOSOR База знань

Reject шаблону: без тихого fallback burn

Fail path: rejected template зупиняє send — без тихого SMS/session burn без іменованої fallback-політики, яку бачать product і finance.

Rejected template — жорсткий fail path, не жовтий чіп, який усе одно шле. Коли review повернув Rejected — або Live ID пішов mid-flight — prepaid не повинен тихо палити SMS segments чи session units «щоб користувач усе ж отримав код». Silent fallback без іменованої політики — wallet melt із зеленим UI. Ця сторінка — контракт fail-path, не гід із вибору каналу і не «який OTP rail, коли не Live».

Rejected означає stop, не вигадувати інший клас

Rejected, Retired і невідомі ID fails closed. Send не йде на rejected ID і не переписується в інший message class чи unit class, доки немає іменованої fallback-політики — owner, trigger, Approved target ID, unit class і debit tag записані до мови volume. Soft USD 1 000/міс вважає «впали в коді» боргом volume; USD 20 доводить: Rejected не дебетує без політики.

Як виглядає silent fallback burn

Подія Чесний шлях Anti-pattern silent burn
Rejected на send Status rejected; release hold / немає debit SMS або session усе одно йде
ID немає в каталозі Fail closed; експортний reject Rewrite у «будь-який OTP» ID
Reject mid-flight Стоп решти спроб; чесний статус Продовжують mint під старим ID
Політики немає Немає fallback; stop Hero-тред вигадує SMS backup

Іменований fallback або нічого

Fallback — опційний design, не невидимий default. Якщо політика дозволяє secondary path, вона називає клас reject, Approved target ID, unit class, debit tag і чи діють wallet stop-lines (фінансові межі гаманця перед production-трафіком). Будь-яке порожнє поле = no send.

Статусна правда для product і finance

Один export-рядок на intent: template ID + review state на момент рішення, brand-safe клас reject, fallback policy ID або «none», суми hold/release/refund, unit class якщо debit був, correlation ID. Soft USD 1 000/міс робить тихий SMS/session burn видимим; USD 20 доводить один коридор, де Rejected ніколи не малює sent.

Чекліст покупця: reject без тихого burn

  1. Rejected / Retired / unknown ID заблоковані від production send?
  2. Будь-який fallback потребує іменованої політики з Approved target + unit class?
  3. Немає тихого SMS чи session debit, доки політика порожня?
  4. Відкритий hold при reject знімається або refund з експортованим статусом?
  5. Abuse і wallet stops fails closed і на secondary path?
  6. Soft volume language blocked, доки reject-path у draft?

Почніть з IOSOR

Перевірте у консолі IOSOR шлюзи валідації шаблонів та переконайтеся, що відхилені або невідомі ідентифікатори миттєво блокують відправку без автоматичної заміни тексту. Налаштуйте явну політику резервного маршруту тільки для перевірених шаблонів зі збереженням кореляційного ID. Підключіть вебхук фінансового експорту, щоб отримувати розповсюджені статуси відхилення та автоматичне зняття резервування коштів у реальному часі.

Підсумок IOSOR

Цей матеріал довів, що мовчазне підмінювання відхилених шаблонів створює приховані фінансові втрати та руйнує узгодженість даних між продуктом і фінансами. Якщо ідентифікатор шаблону відхилено або виведено з експлуатації, система повинна зупиняти відправку та розблоковувати утримуваний баланс, а не самовільно перенаправляти трафік.

Чи був матеріал корисним?

Пов’язані гіди