Как на самом деле устроен биллинг SMS: кредиты, кошелёк, автовыбор маршрута
Три модели биллинга, которые рано или поздно нужны любому бизнесу на рассылках, расчёт маржи по маршрутам и по клиентам и причина, по которой таблицы не справляются уже на двадцати клиентах.
В этом руководстве
- Три модели биллинга простыми словами
- Предоплата или постоплата: выбор, который касается всех трёх моделей
- Где на самом деле находится маржа: по маршрутам и по клиентам
- Счета на практике: предоплата, постоплата, регулярные счета, несколько валют
- Почему таблицы перестают работать на двадцати клиентах
- Как честно выбрать конфигурацию
Любая система биллинга SMS, как бы она себя ни преподносила, отвечает на один вопрос: когда этот клиент отправляет сообщение, чьи деньги движутся и сколько. Настройте эту логику правильно, и бизнес работает почти сам: счета сходятся, а маржа видна с первого взгляда. Ошибитесь, и вы отправляете сообщения в кредит, которого никогда не давали, спорите над таблицей в конце месяца и постепенно теряете спред, то есть разницу между ценой закупки и ценой продажи, которая и составляет всю вашу прибыль. Это руководство разбирает три модели биллинга, которые рано или поздно нужны любому оператору рассылок, показывает, где на самом деле находится маржа, и называет момент, когда электронная таблица незаметно перестаёт справляться.
Три модели биллинга простыми словами
Почти любая серьёзная платформа приходит к одним и тем же трём моделям, потому что они соответствуют трём разным типам клиентов. В Smppcube они называются CreditRoute, WalletRoute и AutoRoute, и названия точно описывают, что делает каждая из них.
Биллинг по кредитам даёт клиенту пул предоплаченных сообщений, привязанный к конкретному маршруту. Вы назначаете, например, 10 000 кредитов на маршруте A и 5 000 на маршруте B, и у каждого маршрута свой независимый баланс. Когда клиент отправляет через маршрут A, кредиты списываются из пула маршрута A. К этой модели реселлеры обращаются чаще всего, потому что она конкретна: клиент купил пакет сообщений на известном маршруте по известной цене, и обе стороны могут посчитать, сколько осталось. Она особенно хороша, когда клиенту важно, по какому маршруту идёт его трафик (премиальный маршрут для OTP, более дешёвый для маркетинга), и когда вы хотите продавать сообщения пакетами, а не в денежном выражении.
Биллинг через кошелёк хранит реальные деньги вместо количества сообщений. У учётной записи есть баланс, например 50,00 $, а единый тарифный план определяет стоимость по каждому направлению. Отправьте сообщение в страну с ценой 0,0090 $, и из кошелька спишется 0,0090 $. Эта модель подходит клиентам, которые отправляют сообщения во множество направлений по разным ценам и предпочитают считать деньги, а не жонглировать пулами кредитов по маршрутам. Один баланс, один план, а цена зависит от того, куда попадает сообщение.
Биллинг с автовыбором маршрута со стороны клиента выглядит так же, как кошелёк (баланс в валюте, цена по направлению), но меняет то, кто выбирает маршрут. Его выбирает платформа: она применяет ваши правила маршрутизации и отправляет каждое сообщение по лучшему допустимому пути для его направления. Клиент никогда не видит и не выбирает маршрут. Так вы организуете маршрутизацию по наименьшей стоимости или по уровням качества, не требуя от клиентов разбираться в вашей карте операторов, и именно к этой модели обычно приходит зрелый бизнес с большим количеством маршрутов для клиентов, которые не хотят вникать в детали.
Одно важное эксплуатационное замечание, на котором многие попадаются: тип биллинга задаётся при создании учётной записи и после этого фиксируется. Пулы кредитов, кошелёк и тарифные планы внутри устроены по-разному, поэтому переключить тип на месте нельзя. Перевод клиента на другую модель означает экспорт его данных, создание новой учётной записи с нужным типом и вывод старой из работы. Определяйтесь с моделью при онбординге, а не потом.
Предоплата или постоплата: выбор, который касается всех трёх моделей
Под этими тремя моделями есть второй выбор, который влияет на ваш денежный поток сильнее любой из них: платит клиент до отправки или после.
Предоплата используется по умолчанию, и так и должно быть. Клиент пополняет баланс, платформа следит за его соблюдением, и когда баланс доходит до нуля, отправка останавливается. Вам уже заплатили за каждое уходящее сообщение, а значит, вы никогда не финансируете трафик клиента из собственного кармана, пока ждёте платежа. Модели с кредитами и кошельком по своей природе предоплатные: пул или кошелёк и есть лимит.
Постоплата переворачивает схему. Клиент сначала отправляет, а вы выставляете счёт позже, обычно раз в месяц. Этого ожидают крупные организации (банк не станет пополнять кошелёк перед каждой рассылкой), и от этого может зависеть, получите вы статусного клиента или потеряете его. Но постоплата по сути является займом. Вы платите вышестоящему поставщику за терминацию в реальном времени, а деньги от клиента получаете через несколько недель, поэтому каждый клиент на постоплате означает замороженный оборотный капитал и небольшой кредитный риск, который вы несёте. Дисциплина здесь простая: предоставляйте постоплату только клиентам, с которыми у вас есть договор и история работы, установите даже для них жёсткий месячный лимит и пристально следите за сроками неоплаченных счетов. Большинство здоровых компаний ведут почти всех клиентов по предоплате и держат короткий, осознанно составленный список клиентов на постоплате.
Где на самом деле находится маржа: по маршрутам и по клиентам
Ваша прибыль заключается в спреде, и ловушка в том, чтобы измерять его только с одной стороны. Маржу нужно видеть в двух разрезах одновременно.
Разрез по маршрутам показывает сторону предложения. Вы покупаете маршрут A по 0,0060 $ и продаёте по 0,0090 $, спред составляет 0,0030 $. Если этот маршрут незаметно деградирует, а поставщик поднимет цену до 0,0072 $, чтобы сохранить доставку, ваш спред только что упал на 40%, и вы этого не почувствуете до закрытия месяца, если только биллинг не показывает себестоимость в сравнении с ценой продажи по каждому маршруту. Именно эта цифра показывает, какие отношения с поставщиками действительно приносят деньги.
Разрез по клиентам показывает сторону спроса, и это смешанная величина. У клиента, который отправляет 80% маркетинга по дешёвому маршруту и 20% OTP по премиальному, смешанная маржа, которую не покажет по отдельности показатель ни одного из маршрутов. Клиент, который выторговал у вас лучшую ставку и отправляет только через маршрут с самой тонкой маржой, может работать почти в ноль, хотя по объёму выглядит крупным. Маржа по клиентам показывает, кого беречь, кому пересмотреть цену и кто при больших объёмах незаметно обходится вам в убыток.
Пример с расчётом наглядно показывает, что поставлено на кону. Десять клиентов в среднем по 300 000 сообщений в месяц дают 3 000 000 сообщений. При здоровом смешанном спреде 0,0030 $ это 9 000 $ валовой маржи в месяц. Если цена одного маршрута сместится на 0,0010 $ на половине вашего объёма, вы потеряете 1 500 $, не изменив ни одной цены, которую видят клиенты. Возможности для дохода и биллинга созданы именно для этого: они показывают себестоимость против цены продажи по маршрутам и по клиентам, чтобы смещение было видно на панели мониторинга, а не в итогах плохого квартала. Общая картина того, откуда берутся деньги реселлера, описана в практическом руководстве по перепродаже.
Счета на практике: предоплата, постоплата, регулярные счета, несколько валют
Биллинг не ограничивается списанием с балансов: он должен формировать документы, которые примут и клиент, и налоговый орган. Как только у вас появляются реальные клиенты, проявляются четыре практических требования.
Пронумерованные счета с позициями. Пополнение кошелька или покупка кредитов должны формировать счёт с правильной нумерацией (например, INV-2026-000142), составленный из позиций (что куплено, количество, цена за единицу), а не одну общую сумму. Когда клиент задаёт вопрос по списанию, вы указываете на конкретную строку, а не на непонятную сумму. Исправления и возвраты оформляются кредит-нотами к исходному счёту, поэтому документальный след остаётся честным, а выставленный счёт никогда не меняется задним числом.
Налоги настраиваются один раз и правильно. На разных рынках нужны НДС, GST, налог на услуги или вообще ничего, и ставка принадлежит клиенту, а не вводится заново каждый раз. Эту задачу решают профили биллинга: профиль объединяет валюту, разрешённый способ оплаты и ставку налога по умолчанию, и вы назначаете его одним кликом. «Стандарт США» в USD без налога, «Клиенты ЕС» в EUR с НДС 20%: достаточно выбрать профиль при создании учётной записи.
Несколько валют, которые вы действительно можете получить. Как только вы обслуживаете больше одной страны, нужно выставлять счета в нескольких валютах, и важная защита здесь в том, что валюта профиля ограничена теми, которые могут принять ваши подключённые платёжные шлюзы. Подключите Stripe, PayPal, Paystack, Razorpay, оплату криптовалютой или офлайн-оплату банковским переводом, и валюты, которые поддерживают эти шлюзы, станут валютами, в которых вы можете безопасно выставлять счета. Вы никогда не выставите счёт в деньгах, которые не сможете получить.
Регулярные и постоплатные циклы. Клиенты на предоплате пополняют баланс по своему графику, но клиентам на постоплате и всем клиентам с фиксированным месячным планом нужны счета, которые формируются по циклу, автоматически, независимо от того, помнит ли о них кто-нибудь. Фоновый воркер регулярного биллинга запускает эти циклы, поэтому месячный счёт для вашего клиента-банка на постоплате появляется первого числа без участия человека. Автоматизация здесь не роскошь: только так постоплата остаётся безопасной по мере роста, потому что забытый счёт означает месяц бесплатного трафика.
Почему таблицы перестают работать на двадцати клиентах
Любой оператор начинает с таблицы, и для первых нескольких клиентов она действительно работает. Сбой происходит не резко, а постепенно, и всегда примерно в одной и той же точке: около двадцати клиентов.
Вот арифметика этой проблемы. Двадцать клиентов, у каждого своя ставка и по два-три маршрута, одни на предоплате, другие на постоплате, несколько во второй валюте, и все каждый день генерируют трафик, который нужно сверять с отчётами о доставке. Это не двадцать строк, а сотни чисел, которые меняются каждый час, и каждое из них может превратиться в реальные потери из-за опечатки или устаревшей скопированной строки. В таблице нельзя обеспечить соблюдение лимита предоплаты, поэтому клиент отправляет сверх баланса, а расходы ложатся на вас. В таблице не видно смещения маржи по маршрутам, поэтому деградировавший маршрут тихо съедает ваши деньги. Таблица не может по запросу сформировать пронумерованный счёт с правильными налогами, поэтому закрытие месяца превращается в два дня ручной сборки и одно неловкое исправление.
Более глубокая проблема в том, что таблица фиксирует то, что, по-вашему, произошло, а движок биллинга сам делает так, чтобы это произошло. Когда балансы хранятся в той же системе, которая тарифицирует отправку, лимит соблюдается в реальном времени, счёт формируется из фактического трафика, а отчёт о марже сводится к запросу, а не к вечеру сверки. Именно эту границу пересекает растущий бизнес: не «таблица неудобна», а «таблице больше нельзя доверять». Пересеките её раньше, чем вас вынудит к этому дорогая ошибка.
Как честно выбрать конфигурацию
Если у вас пока два клиента и вы только проверяете идею, ничего из этого не срочно, а внедрять полноценный движок биллинга в первый же день значит всё переусложнить. Предоплаченного кошелька, понятной ставки и счёта, составленного вручную, хватит, пока вы доказываете, что вообще можете продавать. Время строить всё как следует наступает тогда, когда вы чувствуете, что модели расходятся: одному клиенту нужны кредиты по маршрутам, другому кошелёк в валюте, банк настаивает на ежемесячной постоплате, и постепенно появляется вторая валюта. Именно для этого и существует платформа, и правильный выбор модели биллинга для каждого клиента при онбординге (предоплата по умолчанию, постоплата в виде исключения) и есть то единственное решение, которое не даёт заработанному с таким трудом спреду утекать по одному неучтённому сообщению за раз.
ВОПРОСЫ
Чем отличаются биллинг по кредитам, через кошелёк и с автовыбором маршрута?
Биллинг по кредитам даёт клиенту пул предоплаченных сообщений на конкретном маршруте, поэтому 10 000 кредитов на маршруте A можно потратить только на отправку через маршрут A. Биллинг через кошелёк хранит реальные деньги и списывает цену каждого сообщения по мере отправки по единому тарифному плану. Автовыбор маршрута тоже хранит деньги, но позволяет системе выбирать самый дешёвый допустимый маршрут для каждого направления, поэтому клиент вообще не выбирает маршрут.
Предоплата или постоплата: что выбрать реселлеру SMS?
Предоплату почти для всех. Клиент сначала пополняет баланс, а платформа останавливает отправку, когда баланс доходит до нуля, поэтому вам никогда не придётся добиваться возврата денег, которые вы уже потратили на терминацию. Постоплату (отправка сейчас, счёт раз в месяц) оставьте для организаций, которым вы доверяете и с которыми у вас есть договор, и даже для них задайте жёсткий кредитный лимит. Большинство операторов работают на 90% по предоплате и держат короткий список клиентов на постоплате.
Можно ли позже изменить тип биллинга клиента?
В рамках той же учётной записи нельзя. В Smppcube тип биллинга фиксируется после создания учётной записи, потому что пулы кредитов, кошельки и тарифные планы устроены внутри по-разному. Чтобы перевести клиента на другой тип, вы экспортируете его имена отправителя, шаблоны и логи, создаёте новую учётную запись с нужным типом, заново пополняете её баланс и выводите старую из работы после того, как клиент подтвердит, что новая работает. Выбирайте тип внимательно при создании.
Как выставлять счета клиентам в нескольких валютах?
Используйте профили биллинга. Профиль объединяет валюту, разрешённый способ оплаты и ставку налога по умолчанию, и вы назначаете его каждому клиенту. Доступные валюты ограничены теми, которые ваши подключённые платёжные шлюзы действительно могут принять, поэтому вы никогда не выставите счёт в валюте, которую не можете получить. Клиент из США получает профиль в USD, клиент из ЕС получает профиль в EUR с НДС, и оба работают на одной платформе.