IOSOR База знаний

Debit доставки OTP — не сессия verify: две строки ledger, один пользователь

SMS-сегмент с кодом и сессия верификации — два prepaid-события на одну регистрацию. Не складывайте их в «стоимость OTP» дважды и не прячьте вторую строку от финансов.

Пользователь запросил код. Продукт увидел один OTP. Prepaid-кошелёк провёл две строки: messaging-debit за SMS (сегменты, направление, путь DLR) и Verify-debit за сессию (создание, окно TTL, проверка). Команды, которые сливают это в «стоимость OTP», либо дважды считают в board pack, либо прячут строку до конца месяца. Ни то ни другое не контроль.

IOSOR ведёт white-label prepaid Verify рядом с SMS на одном ledger. Каталог live — реальный канал; in setup — не бесплатная сессия. Около USD 1 000+ месячного usage строки SMS и сессий Verify — материал commercial review. Подписки «чтобы Verify был доступен» нет.

Одна сессия пользователя — две prepaid-строки

Путь один. Деньги — две.

  1. Debit доставки — SMS (или voice/email fallback) с кодом: encoding, сегменты, направление, терминальный DLR.
  2. Debit сессии verify — выдан, ждал, проверен, истёк, политика resend.

Debit доставки SMS ≠ debit сессии verify

Событие Что должен показать кошелёк Типичный сбой при слиянии
Код ушёл SMS Debit сегментов, destination, encoding «Один OTP» прячет UCS-2 multipart
Терминальный DLR Та же SMS-строка, обновлённый статус Retry списан дважды без сессии
Сессия создана Debit Verify, TTL, канал Сессия выглядит как ещё одно SMS
Check / expire Та же строка Verify, причина Истёкшие

Как команды дважды считают или прячут вторую строку

  • Board pack складывает SMS OTP плюс Verify «units», в которые эти отправки уже входят.
  • Финансы возвращают undelivered SMS и обнуляют сессию — дважды.
  • Дашборд продукта показывает успех сессии, пока SMS ещё pending DLR.
  • Ops вставляет upstream-ошибки пользователю и открывает второй тикет, потому что строка Verify «не использована».

Сверка SMS, DLR и попытки verify

Недельная сверка, один коридор:

  • Сессии created против попыток SMS (или fallback).
  • Терминальный DLR к терминалу сессии (delivered+checked, undelivered+expired, rejected+never checked).
  • Resend пользователя отдельно от system retry — разные владельцы, разный cooldown.
  • p95 от создания сессии → delivered code, не глобальный «OTP latency».

Красные флаги

  • Один смешанный «OTP fee» без разделения SMS и сессии
  • Verify как marketing blast
  • Возврат SMS без политики по строке сессии (или наоборот)
  • Кнопка resend, игнорирующая cooldown на одном из двух путей
  • Чужие бренды в ошибках, которые видит клиент
  • Verify обещан, пока канал in setup

Начните с IOSOR

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

Итог IOSOR

Попытка объединить физическую доставку SMS и логику сессии верификации в один тарифный элемент приводит к ошибкам финансового учета и некорректным возвратам. Физический транспорт зависит от кодировки, числа SMS-сегментов и статуса DLR, тогда как сессия управляет таймаутами, попытками ввода и фактом подтверждения кода.

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

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