Баланс в точности,
которую вы задали
У каждого потребителя свой кошелёк. Сколько знаков после запятой — решаете при создании счёта. Списания идут с ключом идемпотентности, возвраты и холды — проводками.
Кошелёк · cust_01jc7 RUB
4 ,87 ₽Валюты проекта
Возможности
Точность счёта
Точность задаётся при создании: два знака для обычных платежей, восемь — для цены токена. Сумма округляется ровно до неё, один раз.
Свои валюты
Код, название, точность. Курсы к другим валютам задаёте сами, обмен — по котировке. Подходит и для игровых кристаллов.
Списание с ключом
Каждое списание несёт ключ идемпотентности, который включает владельца. Повтор того же ключа не спишет второй раз.
Холды
Платёж счёта пополнения идёт под холдом: деньги зарезервированы, пока платёж не завершён.
Возвраты
Повтор после завершённого возврата не оставляет висячий холд — возврат либо проведён, либо нет.
Пополнение с чеком
Счёт на пополнение выставляется, только когда готов фискальный чек. Нет готовности — 503, счёта нет.
Четыре шага
Потребитель появляется
Через виджет или провижининг — одним путём, без дублей.
Кошелёк создаётся
В валюте и точности проекта.
Пополнение
Счёт под фискальный чек, деньги через мерчанта проекта.
Списания
Только посчитанное движком, с ключом идемпотентности.
Маршруты
POST /internal/customers/provision
{ "external_id": "u_8841",
"email": "dev@example.com" }
→ 201 cust_01jc7…
→ кошелёк RUB создан, 8 знаков Коротко о главном
Почему у одного человека не будет двух кошельков?
Потребитель заводится одним путём — resolveCustomer — и для виджета, и для провижининга. Ищется по external_id, потом по почте.
Что, если сумма точнее кошелька?
SDK отказывает, если знаков больше, чем держит кошелёк. Сумма периода округляется до точности кошелька на границе.
Пополнение без чека возможно?
Только для тестовых проектов из GENESIS_TOPUP_FISCAL_EXEMPT_PROJECTS. В остальных счёт без готового чека не выставляется.