Все деньги продукта
в одном ядре
Тарифы, потребление, кошельки, платежи и промо — через один API. Genesis считает цену каждого события с той точностью, что задана счёту, остальные сервисы её только показывают.
Один счетовод —
ноль расхождений
Сумма цен всех событий равна итогу периода. Ровно, без копейки сверху.
Правило движка | цена события — прирост цены периодаработают вместе
Биллинг целиком,
а не по кускам
Включайте то, что нужно проекту. Модули говорят друг с другом через ядро: инвойсинг сам подтягивает кошельки, платежи и тарифы.
Тарифы и расчёт
(01)Шесть моделей начислений, ступени, пакеты и процент с транзакции. Цена события и закрытие периода — из одного движка, у тарифа есть версии.
Учёт потребления
(02)Сырые события пачками до тысячи за запрос, идемпотентно по transaction_id. Списание считает период целиком и снимает только разницу.
Кошельки
(03)Баланс каждого потребителя в точности счёта: сколько знаков после запятой, решаете при его создании. Списание идёт с ключом идемпотентности.
Платежи
(04)У каждого проекта свой мерчант: коннекторы, платежи и ключи изолированы. Счёт на пополнение — только когда готов фискальный чек.
Промо и партнёрка
(05)Скидки, бесплатные единицы, доля спонсора промо. Трекинг, атрибуция и реферальные выплаты — поверх тех же проводок.
Инвойсинг
(06)Счета и закрывающие документы по уже посчитанному. Цена за единицу уходит с полной точностью и не теряется при умножении.
Под какие продукты
это собрано
Площадка с комиссией
SaaS с оплатой по объёму
От ключа
до первого списания
Три шага. Остальное — тарифные версии, повторы, округления — Genesis держит сам.
Проект и ключ
Заведите проект в панели, выпустите ключ API и включите нужные модули.
Тариф
Соберите метрики и начисления в конструкторе или опубликуйте каталог через API. Каждая правка — новая версия.
События
Шлите объём потребления — до тысячи событий за запрос. Genesis посчитает период и спишет разницу с кошелька.
Всё, что нужно деньгам
Точность вместо округлений
Точность задаётся при создании счёта — хоть два знака, хоть двенадцать. Промежуточные шаги её не теряют, округление одно — на списании.
Повтор без двойного списания
Дубль события схлопывается по transaction_id. Прогон списания фиксируется до вызова кошелька, и таймаут после проводки не превращается во второе списание.
Каждый проект — отдельно
Свой мерчант, свои ключи, свои кошельки. Платежи и коннекторы одного проекта не видны другому.
Проводки по сторонам
Расчёт отдаёт не только сумму, но и ноги: покупатель, продавец, площадка, эквайер, спонсор промо. Бухгалтерии нечего сводить вручную.
Ядро и сервисы вокруг
Кошельки хранят, платежи принимают, каталог тратит — а цену каждому выдаёт ядро. Второго счетовода нет, значит нет и расхождений.
Кошельки
Баланс потребителя с точностью проекта, списание по ключу идемпотентности.
Платежи
Свой мерчант на проект, пополнение только при готовом фискальном чеке.
Промо
Скидки, бесплатные единицы, доля спонсора — правила промо, расчёт в ядре.
Инвойсинг
Счета и чеки по уже посчитанному, цена за единицу уходит с восемью знаками.
Каталог тарифов
Правка цены видна в обе стороны; побеждает последняя по времени.
Партнёрка
Трекинг, атрибуция и реферальные выплаты поверх тех же проводок.
Приложения, боты, SaaS —
один биллинг на всё
Genesis не знает, что вы продаёте. Он знает объём, тариф и кошелёк — этого хватает и боту за 99 ₽, и платёжной площадке с миллионом операций.
Приложения
Внутренний баланс: мелкая покупка списывается сразу, крупная — через холд и подтверждение.
wallet · hold → captureБоты
Оплата за сообщение, картинку или минуту голоса. Бот шлёт объём — цену считает Genesis.
usage · requestSaaS
База за период, ступени, пакеты и промо. Новая цена — новая версия тарифа.
graduated · packageТранзакционные сервисы
Процент и фикс с операции в пределах мин и макс, деньги делятся между сторонами.
percentage · splitПриложения для ТВ
Фильм поштучно или пакет каналов с баланса. Пополнение — по счёту с готовым чеком.
standard · walletСчета в любой валюте,
даже в своей
Каждому пользователю — счёт в нужной валюте с той точностью, что задали при создании. Каждая операция идёт с ключом идемпотентности: повтор запроса не спишет дважды.
Холд резервирует деньги до результата: такси, бронь, долгая генерация. Получилось — списываете, нет — отпускаете. Раздел отправляет части платежа продавцу, площадке и агенту одной операцией.
Один счетовод. Ноль расхождений.
Цену выдаёт Genesis. Кошельки её хранят, сервисы тратят, панель показывает.
Как это работает
в apihub
apihub — маркетплейс API и моделей ИИ. Продавцы ставят цену, покупатели платят за токены и запросы, а деньги считает Genesis. Пройдите путь одного рубля по шагам.
Продавец ставит цену
Продавец заводит предложение: модель и цену за входные и выходные токены. apihub публикует тариф в Genesis — по метрике на каждую корзину. Тот же набор второй раз версию не поднимает.
POST /api/v1/plans/publish
{
"code": "offer-acme-gpt-tokens-128",
"interval": "monthly",
"amount_cents": 0,
"metrics": [
"offer-acme-gpt-tokens-128-input",
"offer-acme-gpt-tokens-128-output",
"offer-acme-gpt-tokens-128-cache_read"
]
}
// упрощеноПокупатель приходит
Genesis заводит потребителя и его кошелёк. Один человек — один потребитель, через какой бы вход он ни пришёл: виджет или биржа.
POST /internal/customers/provision
{ "external_id": "u_8841", "email": "dev@example.com" }
→ 201 cust_01jc7…
→ кошелёк RUB созданПополняет баланс
Счёт на пополнение выставляется, только когда готов фискальный чек. Деньги приходят через мерчанта проекта и ложатся на кошелёк покупателя.
wallet_deposit 5 000,00 ₽ ↳ fiscal-readiness ok ↳ счёт выставлен ↳ payment.confirmed ↳ кошелёк +5 000,00 ₽
Делает запросы
На каждый запрос apihub шлёт только объём: сколько токенов вошло и вышло. Суммы в событии нет — запрос с полем amount или price отклоняется. Повтор с тем же transaction_id не запишется второй раз.
POST /internal/usage/events
{ "events": [
{ "transaction_id": "req_77f2",
"metric": "…-input", "value": 1820 },
{ "transaction_id": "req_77f2-o",
"metric": "…-output", "value": 480 }
] }Деньги списываются
Genesis считает период целиком и списывает разницу с уже списанным. Комиссия площадки и сбор эквайринга — отдельные проводки, продавец видит свою долю.
POST /internal/usage/charge запрос 0,13452264 ₽ buyer → seller начисление seller → platform комиссия списано с кошелька, ключ идемпотентности зафиксирован до вызова
Цена меняется
Правка в панели Genesis уходит в apihub вебхуком plan.updated, правка в кабинете — публикацией. Если цену правили в двух местах, побеждает последняя по времени.
POST hub.gnzs.pro/api/internal/genesis/webhook
X-Webhook-Signature: 3f9a…
{
"event": "plan.updated",
"priced_at": "2026-11-04T10:12:00Z"
}
→ apihub: новая версия ценыКаждое событие —
вашему сервису
Цена поменялась, счёт оплачен, промо сработало — Genesis сообщает сам. Не нужно опрашивать API, чтобы узнать, что произошло с деньгами.
Облако или
свой кластер
Один и тот же Genesis: подключитесь к нашему облаку за вечер или поставьте кластер в своём контуре, если деньги и данные не должны выходить наружу.
Облако
Создали проект, выпустили ключ — и шлёте события.
- Инфраструктура, обновления и резервные копии — на нас
- Каждый проект изолирован: свой ключ, свой мерчант, свои кошельки
- Панель и API доступны сразу
Свой кластер, on-premise
Ставится в ваш контур — ядро, кошельки, платежи и инвойсинг отдельными сервисами.
- Деньги, события и персональные данные не покидают периметр
- Масштабируете каждый сервис отдельно — под свою нагрузку
- Тот же API, что в облаке: переезд без переписывания кода
От первого продукта
до своей площадки
Один проект с тарифами по потреблению и кошельками покупателей.
- Тарифы и конструктор
- Учёт потребления
- Кошельки
- Панель и API
Несколько проектов, приём платежей, комиссии и выплаты сторонам.
- Всё из «Старта»
- Платежи со своим мерчантом
- Промо и партнёрка
- Инвойсинг и проводки
Частые
вопросы
Кто считает деньги, если у меня свой сервис?
Только Genesis. Событие потребления не несёт суммы: запрос с полем amount, cost, price или currency отклоняется. Ваш сервис шлёт объём, цену выдаёт движок.
Что будет, если событие придёт дважды?
Ничего. Повтор с тем же transaction_id не записывается второй раз, а прогон списания фиксируется до обращения к кошельку — повтор после таймаута идёт с тем же ключом.
Можно поменять цену тарифа на ходу?
Да. Правка создаёт новую версию тарифа и уходит вебхуком в связанные сервисы. Если цену правили в двух местах, побеждает последняя правка.
С какой точностью считаются суммы?
С той, что задана при создании счёта, — потолка в восемь знаков нет. Промежуточные шаги точность не теряют, округление одно: на списании, до точности счёта.
Можно поставить Genesis у себя?
Да. Кроме облака, Genesis ставится кластером в ваш контур: ядро, кошельки, платежи и инвойсинг — отдельными сервисами. API тот же, что в облаке.
Можно завести свою валюту?
Да. Валюта проекта создаётся с кодом, названием и точностью; курсы к другим валютам задаёте сами, обмен идёт по котировке. Подходит и для игровых кристаллов, и для счетов в разных странах.
Как принимать оплату?
Подключите модуль платежей: у проекта появится свой мерчант. Пополнение кошелька выставляется только тогда, когда чек готов к фискализации.





