Дайте клієнтам кредити й призначте операціям ціну в них
Додавайте своїх клієнтів, ведіть для кожного баланс кредитів, поповнюйте його, задавайте, скільки кредитів коштує операція, блокуйте клієнта й читайте, що було списано.
8 хв читання
Кредити — це одиниця, у якій ви рахуєте споживання своїх клієнтів. Slen веде баланс кредитів для кожного клієнта, бере кредити, коли флоу виконується для нього, і відхиляє запуск, який баланс не покриває. Ця стаття — про сторінку клієнтів у консолі.
Як працюють кредити
Клієнт — це ваш кінцевий клієнт. Slen знає клієнта за ідентифікатором, який йому дає ваш застосунок, — тим, що запит, який запускає флоу, надсилає в context.user_id. Використовуйте ідентифікатор вашої системи, а не адресу пошти й не ім’я.
Операція отримує ціну в кредитах. Кожен виклик моделі в запуску, який називає клієнта, резервує ціну на рахунку клієнта до того, як модель викликано. Кредити витрачаються, коли виклик розраховано, і повертаються, коли він не вдався.
| Запуск | Що відбувається з кредитами |
|---|---|
| Не називає клієнта | Кредити не беруть участі |
| Належить до операції без ціни або з ціною 0 | Кредити не беруть участі, кого б не назвали |
| Називає клієнта, якого проєкт не знає | Запуск відхиляється з кодом customer_not_found |
| Називає заблокованого клієнта | Запуск відхиляється з кодом customer_blocked |
| Коштує більше кредитів, ніж доступно на рахунку, або клієнт не має рахунку цього типу кредитів | Запуск відхиляється з кодом insufficient_credits |
| Вміщується в рахунок | Ціну резервують, потім витрачають або повертають |
Кредити — не гроші. Запуск, який резервує кредити, однаково перевіряється політиками й бюджетами.
Клієнт може мати кілька рахунків, по одному на кожен тип кредитів. Тип кредитів — це ім’я, яке ви вибираєте самі. Запит, який запускає флоу, називає його в context.credit_type, а запит, який його не називає, використовує default. Ціну шукають для операції й типу кредитів, тому тип кредитів, що не має ціни для операції, кредитів не бере.
Ваш застосунок може й сам знімати кредити — за те, що він продає поза флоу: вивантаження, місце. Таке списання робиться через API — Клієнти та кредити. Консоль не списує.
Де клієнти
Відкрийте Клієнти. Сторінка показує клієнтів проєкту, вибраного в шапці. Три вкладки під заголовком вибирають, що сторінка показує: Клієнти, Маржа або Ціни кредитів.
Сторінка відкривається всім, хто має дозвіл management:read. Додавання клієнта, рух кредитів, налаштування рахунку, блокування, видалення й ціни потребують management:write.
Додати клієнта
Натисніть Додати клієнта, введіть ідентифікатор клієнта в поле Ідентифікатор клієнта і знову натисніть Додати клієнта. Клієнта додано без кредитів і без рахунку, і відкривається його картка. Додавання клієнта, який уже є в списку, нічого не змінює.
Клієнт з’являється й тоді, коли ваш застосунок уперше поповнює його через API.
Прочитати список
Рядок вкладки Клієнти — це один клієнт: ідентифікатор, позначка Заблоковано, коли клієнта заблоковано, і для кожного рахунку — доступні кредити, зарезервовані кредити й час останньої зміни. Рахунок, якому дозволено йти в мінус, має позначку Овердрафт дозволено. Під списком сторінка рахує клієнтів у ньому.
Баланс — це те, що має клієнт. Зарезервовані кредити відкладено під виклики, які ще не закінчилися. Доступне — це баланс без зарезервованих кредитів, тому баланс — це обидві суми разом.
Пошук лишає клієнтів, чий ідентифікатор містить введений текст.
Доступно менше звужує список до клієнтів, які мають рахунок, де доступно менше кредитів, ніж введене число. Зарезервовані кредити при цьому не вважаються доступними.
Фільтри поруч лишають активних або заблокованих клієнтів і клієнтів із рахунком одного типу кредитів.
Натисніть на рядок, щоб відкрити картку клієнта. Картка перелічує рахунки з їхніми сумами й налаштуваннями, а Рух під ними перелічує рухи кредитів клієнта. Меню рядка веде одразу до дій Поповнити, Заблокувати та Видалити.
Налаштувати рахунок
Рахунок належить одному типу кредитів. Його створює перше поповнення або його налаштування, тож клієнтові можна дати рахунок раніше за будь-які кредити.
1. Відкрийте налаштування
У картці натисніть Додати рахунок для нового типу кредитів або Налаштування в рахунку, який уже є.
2. Виберіть тип кредитів
Для нового рахунку введіть його тип кредитів у поле Тип кредитів. Тип кредитів наявного рахунку змінити не можна.
3. Вирішіть щодо овердрафту
Залиште Дозволити цьому рахунку йти в мінус вимкненим, і холд, який рахунок не покриває, буде відхилено. Його можна вимкнути, поки баланс нижче нуля: захист діє з наступного руху.
4. Задайте попередження
У поле Попереджати, коли доступно менше введіть число кредитів. Рух, який опускає доступне нижче нього, надсилає подію вебхука customer.balance_low. 0 не надсилає попереджень.
5. Збережіть
Натисніть Зберегти налаштування. Обидва налаштування зберігаються разом.
Поповнити клієнта
1. Відкрийте поповнення
У картці натисніть Поповнити в рахунку. Для типу кредитів, рахунку якого клієнт не має, виберіть натомість Поповнити в меню рядка. У картці клієнта без рахунків ця кнопка стоїть над списком.
2. Назвіть тип кредитів
У поле Тип кредитів введіть тип кредитів рахунку. Поповнення типу кредитів, рахунку якого клієнт не має, створює рахунок.
3. Введіть кредити
У поле Скільки кредитів додати введіть суму більшу за нуль. Кредити мають чотири знаки після крапки. У полі Примітка можна написати, за що ці кредити, наприклад номер рахунку на оплату: примітку видно у виписці.
4. Додайте кредити
Натисніть Поповнити.
Поповнення ніколи не відхиляється через баланс, навіть на рахунку нижче нуля, і заблокованого клієнта теж можна поповнити.
Скоригувати баланс
У картці натисніть Скоригувати в рахунку. У поле Скільки кредитів додати або зняти введіть, скільки кредитів додати, або від’ємну суму, щоб зняти кредити, за бажання заповніть Примітка й натисніть Застосувати коригування. Нульова сума відхиляється.
Коригування не може опустити баланс нижче зарезервованих кредитів, якщо рахунку не дозволено йти в мінус.
Прочитати виписку
Рух у картці перелічує кожен рух кредитів клієнта, найновіший — першим, із балансом і доступними кредитами, які лишив кожен. Фільтр Рух лишає один вид рухів, а фільтр типу кредитів — рухи одного рахунку, коли клієнт має їх кілька. Примітка показує примітку, з якою зробили поповнення, списання або коригування.
| Рух | Що він робить |
|---|---|
| Поповнення | Додає кредити до балансу |
| Заброньовано | Знімає кредити з доступного. Баланс лишається тим самим |
| Витрачено | Знімає зарезервовані кредити з балансу |
| Повернуто | Повертає зарезервовані кредити в доступне |
| Скориговано | Коригування вгору або вниз |
| Списання | Кредити, які ваш застосунок зняв через API за те, що продав |
Не підсумовуйте рухи, щоб дізнатися, скільки витратив клієнт: виклик, який витратив кредити, спершу резервує їх, а потім витрачає, і скільки виклики коштували клієнту, показує лише Витрачено.
Заблокувати клієнта
Заблокуйте клієнта, щоб зупинити його запуски, наприклад після повернення платежу.
1. Відкрийте блокування
У картці натисніть Заблокувати або виберіть Заблокувати в меню рядка.
2. Вкажіть причину
У полі Причина можна написати, чому клієнта заблоковано. Причину видно в картці. Повторне блокування з порожньою причиною зберігає попередню причину.
3. Заблокуйте
Натисніть Заблокувати. Картка показує позначку Заблоковано з часом блокування.
Новий запуск заблокованого клієнта відхиляється з кодом customer_blocked до того, як щось створено. Його запуск, який уже йде, відхиляється на наступному холді кредитів. Запуск операції без ціни не резервує кредитів і доходить до кінця. Для заблокованого клієнта, як і раніше, можна поповнювати, списувати й коригувати кредити, змінювати налаштування й читати виписку, тож із клієнтом можна розрахуватися.
Щоб знову пустити клієнта, натисніть Розблокувати в картці. Розблокувати в меню рядка відкриває картку.
Видалити клієнта
У картці натисніть Видалити або виберіть Видалити в меню рядка, потім натисніть Видалити клієнта. Видаляється лише клієнт без історії: кожен рахунок на нулі, нічого не зарезервовано, і у виписці немає жодного руху. Клієнт і його порожні рахунки зникають.
Клієнт з історією лишається, бо виписка пояснює баланс. Картка пояснює чому й пропонує натомість заблокувати клієнта. Через API та сама відмова — це код customer_has_history.
Призначити ціну операції
1. Відкрийте ціни
Виберіть Ціни кредитів і натисніть Задати ціну.
2. Назвіть операцію
У поле Код операції введіть код операції, який називають ваші запити. У поле Тип кредитів введіть тип кредитів, у якому береться ціна.
3. Задайте ціну
У поле Кредитів за виклик введіть ціну. Ціна 0 робить операцію безплатною й лишає її в списку.
4. Збережіть
Натисніть Зберегти ціну. Повторна ціна для тієї самої операції й того самого типу кредитів замінює попередню.
Ціна вмикає кредити для операції. Відтоді її запуск для клієнта без рахунку цього типу кредитів відхиляється. Поповніть своїх клієнтів або налаштуйте їхні рахунки, перш ніж призначати ціну операції, яку вони вже запускають.
Нова ціна діє з наступного холду. Виклик, який уже зарезервував кредити, зберігає ціну, за якою їх зарезервував, і кожен виклик моделі в запуску резервує ціну один раз.
Порівняти кредити з вартістю
Маржа показує за вибраний період, скільки кредитів списано з кожного клієнта і скільки ті самі виклики коштували в грошах. Рахуються лише розраховані виклики, і списання вашого застосунку серед них не враховується. Дві суми — в різних одиницях, тому сторінка не показує їхнього співвідношення.
Що читати далі
Глосарій — клієнт, рахунок, кредити, списання й блокування, по одному рядку на кожне.
Політики — політика може застосовуватися до викликів одного клієнта.
Клієнти та кредити — клієнти, рахунки, поповнення, списання, блокування й ціни через API.
Клієнти та кредити — ті самі клієнти з SDK і запуск, оплачений кредитами клієнта.
Керування API-ключами — ключ, яким ваш застосунок веде своїх клієнтів.
Коди помилок — кожен код API: що він означає і що з ним робити.