> For the complete documentation index, see [llms.txt](https://docs.mavibot.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mavibot.ai/doc/uk/integrations/payment/prodamus-blr/prodamus.md).

# Prodamus (KZ)

## **Як підключити Prodamus**

Щоб підключити Prodamus, вам знадобляться URL платіжної форми та секретний ключ.

URL платіжної форми надається після реєстрації, його приклад: `demo.payform.ru`.

Секретний ключ можна отримати в особистому кабінеті, там само потрібно вказати URL, на який будуть надсилатися сповіщення (notification).

<div data-with-frame="true"><figure><img src="/files/a4b805b99cb6852a6ae6e6e255d1b0e2267f8c6f" alt=""><figcaption><p>Секретний ключ у налаштуваннях платіжної форми в особистому кабінеті платіжної системи «Продамус»</p></figcaption></figure></div>

[**Детальна інструкція про те, як це зробити**](https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch)

Адреса для сповіщень:\
<https://chatter.mavibot.ai/prodamus\\_callback/result>

Цю адресу потрібно вказати двічі в налаштуваннях.

На головній сторінці налаштувань можна вибрати режим роботи платіжної форми: деморежим без оплати або режим приймання платежів.

<div data-with-frame="true"><figure><img src="/files/09e956139d0845905d0ce24067f478459a13b910" alt=""><figcaption></figcaption></figure></div>

Адресу для сповіщень потрібно вказати двічі в налаштуваннях платіжної системи: **«Налаштування форми»** вкладка — для разових (звичайних) платежів і **«Підписки»** вкладка — для платежів за підпискою.

<div data-with-frame="true"><figure><img src="/files/60fc029bad9bbf8c3ab6afdc0a7be4c5d598aa9c" alt=""><figcaption></figcaption></figure></div>

**Адреса для сповіщень:**\
<https://chatter.mavibot.ai/prodamus\\_callback/result>

Для налаштування роботи з платежами за підпискою **«Підписки»** перейдіть у вкладку та вкажіть адресу для сповіщень:

<https://chatter.mavibot.ai/prodamus\\_callback/result>

<div data-with-frame="true"><figure><img src="/files/59ec0803d81f118c69f28549022d0c6cabf22581" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
**Увага!** Після введення URL обов’язково **«Зберегти»** натисніть кнопку.
{% endhint %}

Щоб підключити Prodamus, **«Еквайринг»** потрібно перейти до розділу.

<div data-with-frame="true"><figure><img src="/files/963aa5d2ccf5c51aa47c3eb155e29cdccd05e1c7" alt=""><figcaption></figcaption></figure></div>

Далі достатньо ввести наведені вище дані у форму:

<div data-with-frame="true"><figure><img src="/files/9e48f6624854a0a8c1655212ac9f781862cde6d3" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
**Важливо!** Коли вказуєте URL платіжної форми, **https\://** не додавайте.
{% endhint %}

Так підключення завершено. Тепер розглянемо, як користуватися цією функціональністю.

## Як створити посилання на оплату

### Кнопка з функцією «Сплатити»

**Посилання на оплату можна створити в кнопці з функцією «Сплатити».**

{% hint style="info" %}
[Про те, як створити таку кнопку, розповідається в цій статті.](/doc/uk/chatbot/builder/knopki/knopka-oplati.md)
{% endhint %}

Тепер розглянемо всі можливі параметри цієї кнопки.

### Обов’язкові параметри кнопки «Сплатити» для Prodamus

**Для створення посилання на оплату в налаштуваннях кнопки потрібно вказати обов’язкові параметри:**\
«Сума», «Назва товару», а також параметр «Оплачений контент» — якщо у вас немає власної онлайн-каси й ви хочете отримувати чек від Prodamus.

При переході на сторінку оформлення замовлення наперед відображаються дані про товар і його ціну, а клієнт лише вводить свої контактні дані.

Якщо в налаштуваннях кнопки вказано Email та/або телефон користувача, на сторінці оформлення замовлення будуть відображені контактні дані платника та інформація про товар і його ціну.

<div data-with-frame="true"><figure><img src="/files/8bfb123fb2c4379b97989aa6b268a626b8a0baed" alt="" width="563"><figcaption><p>Вікно налаштувань кнопки</p></figcaption></figure></div>

**Поле «Текст»** — цей текст відображається в повідомленні на кнопці з посиланням на оплату.

**Поле «Функція»** — для створення кнопки, що дає посилання на оплату, обираємо функцію «Сплатити».

**Поле «Платіжна система»** — підключені до проєкту платіжні системи відображаються в списку.\
Якщо до проєкту не підключено жодної платіжної системи, цей тип кнопки буде недоступний.

**Поле «Назва товару» (обов’язкове)** — потрібно вказати точну назву товару. Наприклад: не «Телефон», а «Смартфон Xiaomi, модель …».\
Примітка: у назві товару не можна використовувати подвійні лапки; видаліть їх або замініть одинарними.

**Поле «Сума» (обов’язкове)** — вказуємо ціну товару.

**Меню «Додаткова інформація»** — при натисканні на цю кнопку відкриються додаткові поля для створення посилання:

* Опис замовлення
* Знижка в рублях
* Змінна Email покупця
* Змінна номера телефону покупця
* Термін дії посилання
* ID товару для підписки (для автоплатежу)
* Оплачений контент

**Чекбокс «Повідомляти про натискання»** — можна увімкнути, щоб відстежувати перехід за посиланням на оплату. У цьому випадку при натисканні кнопки в діалог клієнта в Сейлботі надійде повідомлення про те, що було здійснено перехід за посиланням.

<div data-with-frame="true"><figure><img src="/files/aa8759d01f938e3ec14d246909d708bca0091e3f" alt="" width="431"><figcaption></figcaption></figure></div>

За цим повідомленням можна налаштувати подальшу логіку роботи бота.\
Багато платіжних систем підтримують хмарні онлайн-каси, які потрібні відповідно до вимог 54-ФЗ.

Ознайомтеся з особливостями оформлення чеків на сайті обраної платіжної системи, щоб не потрапити в неприємну ситуацію з податковою.

Ось так виглядає платіжна сторінка, що відкривається за посиланням у кнопці «Сплатити»:

<div data-with-frame="true"><figure><img src="/files/b47560772c2dd7f88fd07516eacd132ee7760d0e" alt="" width="375"><figcaption><p>Сторінка оплати: у кнопці заповнені лише основні параметри</p></figcaption></figure></div>

### Додаткові налаштування для створення посилання на оплату

<div data-with-frame="true"><figure><img src="/files/1d7de08ca816364cd7e8947497d4c78db31fbbf4" alt="" width="563"><figcaption></figcaption></figure></div>

**Поле «Опис замовлення»** — інформація, введена в це поле, на сторінці оплати **Додаткові дані** відображається в полі.

**Поле «Знижка»** — тут можна вказати розмір знижки в рублях або в рублях і копійках. Для копійок використовуйте крапку як роздільник: 50.99\
На сторінці оплати **Сума до оплати** поле відображається з урахуванням знижки, а базова ціна товару закреслюється.

**Поле «Змінна Email покупця»** (необов’язкове, якщо вказано номер телефону) — тут зазначається Email користувача (клієнта). Також можна використовувати змінну, у якій збережено Email, наприклад: `#{email}`

**Поле «Змінна номера телефону покупця»** (необов’язкове, якщо вказано Email) — тут можна використати змінну з номером телефону покупця, формат: 79000000000, наприклад: `#{phone}`\
Обов’язково має бути Email та/або телефон.

**Поле «Термін дії посилання»** — дату `дд.мм.рррр гг:хв` можна вказати у форматі (наприклад, 25.01.2021 11:00) або встановити термін дії посилання через змінну. Наприклад: `#{link_expired}`

**Поле «ID товару для підписки»** — для автоплатежу вкажіть значення ID товару. Для створення підписки потрібно створити товар для підписки.\
Детальна інструкція: [Створення та налаштування підписок Prodamus](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)\
Якщо для підписки вказано ID товару, сума платежу не враховується. Інформація про товар береться з картки товару в кабінеті Prodamus.\
Номер телефону, вказаний у платежі, буде потрібен для керування підпискою.\
Якщо для підписки вказано ID товару, при успішній оплаті в callback буде передано ID цього товару.

**Поле «Оплачений контент»** (умовно обов’язкове) — ці дані потрібні для фіскалізації платежу через Prodamus, якщо у вас немає власної онлайн-каси. У цьому полі вказуються опис покупки, її ціна та посилання на контент.\
Наприклад: Курс «Плетіння кіс», ціна 3000 рублів, посилання на сторінку курсу: `https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911`

### Кнопка з функцією «Сплатити»

Якщо ви вкажете термін дії посилання, станеться таке:\
Якщо користувач запросить платіжне посилання протягом терміну його дії (тобто коли час посилання ще не закінчився) і він перебуває в діалозі, здійснити оплату буде неможливо, і йому буде показано таке повідомлення:

<div data-with-frame="true"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcA1KJHoyMF5WmLMZiJPJrQEGJs79zxoXK5U3E9k4mVus-Fg0tI-djr6QTagp5ulwposSxmJ-aq8trUQOslQyE0UeaREuM6-T5Ongn-E5tACdVmypFXBtgOJDmVvHRgOdATChhnBQ?key=OB7qKicH0kn-_i_EzQLdRA" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Термін дії посилання має бути пізніше поточної дати, інакше клієнт не зможе оплатити за цим посиланням.
{% endhint %}

**2. Коли користувач запитує посилання, якщо воно зараз неактивне**\
У цьому випадку кнопка просто не відображатиметься. У змінних клієнта `"error_payment_button"` з’явиться змінна, значення якої буде таким:\
\&#xNAN;**"Помилка: термін дії посилання має бути пізніше поточної дати"**.

{% hint style="success" %}
Щоб користувач міг коректно оплатити, рекомендується додатково обробити таку ситуацію.
{% endhint %}

Створіть такий умовний блок:\
Якщо надійде таке повідомлення:\
`error_payment_button == "Помилка: термін дії посилання має бути пізніше поточної дати"`

Тоді виведіть такий текст:\
\&#xNAN;**"Вибачте, ви не встигли вчасно оплатити, платіжне посилання стало недійсним"**.

<div data-with-frame="true"><figure><img src="/files/3d4499b9a536e7fea754be18226f8916d3c4b90f" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/1f44780056189951de19ee20753e1f97c50563c9" alt=""><figcaption></figcaption></figure></div>

### Клієнтські змінні, які автоматично створюються при використанні кнопки з функцією «Сплатити»

Після того як користувач отримує блок із кнопкою «Сплатити», для клієнта автоматично створюються змінні:

**Службова клієнтська змінна `__payments`** — ця змінна зберігає суму й ідентифікатор створеного посилання та потрібна для визначення хука, що надходить від платіжної системи.

{% hint style="danger" %}
Службова клієнтська змінна `__payments`її не можна видаляти або змінювати!
{% endhint %}

**`error_payment_button` клієнтська змінна** створюється автоматично, якщо під час створення кнопки виникла помилка.\
У цю змінну записується текст помилки або помилкова відповідь від платіжної системи.

{% hint style="warning" %}
Значення змінних стають актуальними при переході до наступного блоку.
{% endhint %}

## Як обробляти результат

**Успішний платіж**\
Після успішної оплати до бота **АВТОМАТИЧНО надходить КОЛБЕК** який складається з перших 10 символів секретного ключа платіжної системи, `_success` слова та суми платежу.\
Для використання в налаштуванні схеми достатньо просто скопіювати його.

Наприклад: `ovg58keefc_success 44`, де:

* `ovg58keefc` — перші 10 символів секретного ключа платіжної системи
* `_success` — результат обробки запиту (успішний платіж)
* `44` — сума платежу

{% hint style="info" %}
Користувач не БАЧИТЬ **колбеки (сповіщення) від платіжної системи**. Вони відображаються лише **«Клієнти»** вкладка і видимі оператору.
{% endhint %}

**Приклад використання:**\
**Крок 1.** Додаємо до блоку «Є кнопка з оплатою» кнопки з функцією «Сплатити».\
**Крок 2.** Коли з цього блоку до блоку «Успішний платіж» **Умова зв’язку** полі вказуємо колбек.\
Аналогічно, якщо вказати колбек успішної оплати в умові блоку «Початкова умова», робота відбуватиметься аналогічно.

{% hint style="warning" %}
**Важливо:** Оберіть «Повна відповідність» або «За наявністю ключових слів».
{% endhint %}

❗️Якщо ви вирішите перевіряти оплату в стрілці, зазначеній за точною умовою, ретельно продумайте логіку вашої схеми. Якщо клієнт залишить блок, через який колбек має проходити за умовою, переходу в блок не буде. Такий спосіб перевірки краще використовувати лише тоді, коли клієнт не змінює своє місце у воронці.

У схемах, де клієнт рухається між блоками, ефективніше використовувати колбек **«Початкова умова»** у блоці.<br>

<div data-with-frame="true"><figure><img src="/files/ddfb8f935b293b4786a20dca2cb9a21fc9e261de" alt=""><figcaption><p>Колбек про успішну оплату в полі умови блоку.</p></figcaption></figure></div>

### Успішна оплата для товарів з автопідпискою

Після успішної оплати до бота **АВТОМАТИЧНО надходить КОЛБЕК** який складається з перших 10 символів секретного ключа платіжної системи, `_success` слова та ID товару для підписки.

Наприклад: `214009eefc_success 618117`, де:

* `009eefc` — перші 10 символів секретного ключа платіжної системи
* `_success` — результат обробки запиту (успішний платіж)
* `618117` — ID товару для підписки

<div data-with-frame="true"><figure><img src="/files/0c4a401154eb77ad9a587a0ed9c858c679a7b5dd" alt=""><figcaption><p>Приклад колбеку від Продамус для товарів з автопідпискою</p></figcaption></figure></div>

**Помилка платежу**\
У разі помилки під час проведення платежу до бота **АВТОМАТИЧНО надходить КОЛБЕК** який складається з перших 10 символів секретного ключа платіжної системи, `_fail` слова та суми платежу.

Наприклад: `ovg58keefc_fail 44`, де:

* `ovg58keefc` — перші 10 символів секретного ключа платіжної системи
* `_fail` — результат обробки запиту (платіж не виконано або сталася помилка)
* `44` — сума платежу

{% hint style="warning" %}
Це залежить від платіжної системи. Не всі платіжні системи надсилають колбек про помилку платежу.
{% endhint %}

Якщо сума, вказана в налаштуваннях кнопки, відрізняється від суми, сплаченої клієнтом, до бота **АВТОМАТИЧНО надходить КОЛБЕК** надійде. Вона складається з перших 10 символів секретного ключа платіжної системи, `_different_amounts` слова та унікального ID платежу.

Наприклад: `ovg58keefc_different_amounts 123456`, де:

* `ovg58keefc` — перші 10 символів секретного ключа платіжної системи
* `_different_amounts` — результат обробки запиту (сума платежу відрізняється від суми в посиланні)
* `123456` — унікальний ID платежу

## У калькуляторі `get_prodamus_payment_url` функція

Для створення посилання на оплату **у блоці Калькулятора `get_prodamus_payment_url` функцію** можна використовувати.\
**У полі Калькулятора** присвоюємо змінній значення цієї функції: `get_prodamus_payment_url`.&#x20;

{% hint style="info" %}
Назву змінної ви обираєте самостійно. На скриншотах наведено приклади назв змінних.
{% endhint %}

У цю змінну записується посилання на оплату. Змінну можна показати в повідомленні як посилання або розмістити в кнопці з текстом «Сплатити».

**Приклад посилання на оплату:** [https://payform.kz/7p3JR8/](https://payform.ru/7p3JR8/)

{% tabs %}
{% tab title="Калькулятор" %}
Приклад 1:

<figure><img src="/files/509838b76f0dcc2eb4eb0d3be51c84a632cbe298" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Опис параметрів" %}
&#x20;`your_variable =`` `**`get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)`**

Параметри функції:

<table><thead><tr><th width="253">Параметр</th><th>Значення параметра</th></tr></thead><tbody><tr><td><strong><code>amount</code></strong></td><td><strong>Сума платежу</strong> — може бути передана як ціле число або число з крапкою. Наприклад: <code>25</code> або <code>52.5</code>. (обов’язковий параметр)</td></tr><tr><td><strong><code>product_name</code></strong></td><td><strong>Назва товару</strong> (обов’язковий параметр)</td></tr><tr><td><strong><code>expired</code></strong></td><td><p><strong>Термін дії платіжного посилання</strong> — <code>дд.мм.рррр</code> у форматі (наприклад, 25.01.2021).<br>Також, <strong>Калькулятор</strong> у полі можна вказати так:<br><code>expired = current_date + 2</code> (посилання буде дійсним 2 дні до 00:00).</p><p>Також можна вказати точний час: <code>дд.мм.рррр гг:хв</code> (наприклад, 25.01.2021 12:23).</p><p>Можна використовувати й стандартні змінні, наприклад, встановити термін дії посилання на 30 хвилин:</p><pre class="language-python"><code class="lang-python">time = current_time + 30
expired = "#{current_date} #{time}"
</code></pre><p>Якщо ви хочете пропустити цей параметр, натомість можна вказати одинарні лапки, подвійні лапки або <code>None</code> значення.</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td><strong>Номер телефону покупця</strong> — необов’язково, якщо <code>customer_email</code> параметр вказано.<br>Якщо ви хочете пропустити цей параметр, натомість можна вказати одинарні або подвійні лапки.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td><strong>Електронна адреса покупця</strong> — необов’язково, якщо <code>customer_phone</code> параметр вказано.<br>Якщо ви хочете пропустити цей параметр, натомість можна вказати одинарні або подвійні лапки.</td></tr><tr><td><strong><code>discount</code></strong></td><td><strong>Розмір знижки</strong> — параметр можна передати як ціле число або число з крапкою: <code>25</code> або <code>63.5</code>.<br>Якщо ви хочете пропустити цей параметр, натомість можна вказати одинарні або подвійні лапки.</td></tr><tr><td><strong><code>description</code></strong></td><td><strong>Опис товару</strong> (якщо не вказано, автоматично <code>'Оплата рахунку order_id'</code> заповнюється).<br>Якщо ви хочете пропустити цей параметр, натомість можна вказати одинарні або подвійні лапки.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p><strong>Додаткові параметри</strong>, параметри, яких немає в цій функції.<br>Доступні додаткові параметри можна переглянути в документації з роботи з API платіжної системи: <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">Prodamus REST API</a></p><p>Наприклад:</p><pre class="language-python"><code class="lang-python">extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}
</code></pre><p>Якщо ви хочете пропустити цей параметр, натомість можна вказати одинарні/подвійні лапки або <code>None</code> значення.</p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>рядок від 50 до 4000 символів</strong> у форматі <code>"опис замовлення - ціна - посилання на ресурс, що купується"</code>.<br>Наприклад:<br><code>“Курс «Ловля ляща», ціна 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/"</code></p><p>Цей параметр є обов’язковим, якщо у вас немає власної онлайн-каси, і потрібен для фіскалізації платежу через Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Приклад" %}
extra\_params = {"payments\_limit": "3"}&#x20;

products\_for\_receipt = "Курс «Ловля ляща», ціна 4999 тенге, посилання на сторінку курсу: <https://www.lovilescha.ru/courses/poimai\\_kilogram/"&#x20>;

link\_prodamus\_url = get\_prodamus\_payment\_url(4999, 'Курс «Ловля ляща»', '27.03.2023 17:00', '79167777771', '<mail@mail.com>', 20, 'Найкращий курс на ринку', extra\_params, products\_for\_receipt

У цьому прикладі:

* `extra_params` — додаткові параметри (наприклад, ліміт платежів).
* `products_for_receipt` — інформація про товар, що вказується в чеку.
* `get_prodamus_payment_url` посилання на оплату створюється за допомогою функції.
  {% endtab %}
  {% endtabs %}

{% hint style="warning" %}
Якщо в блоці є кілька функцій отримання посилання і сталася помилка, значення помилки **`error_payment_func`** записується в змінну.

Помилка записується в Калькуляторі за останньою функцією.
{% endhint %}

## `payment_sum` створення посилання за допомогою змінної та додаткових параметрів

{% hint style="info" %}
**Увага:** `payment_sum` значення змінної береться з останньої змінної, тобто після необов’язкових змінних: `payment_description`, `product_name` тощо.
{% endhint %}

Для створення посилання на оплату **У полі Калькулятора `payment_sum` достатньо встановити значення змінної**.\
Після цього автоматично **`prodamus_pay_url`** з’являється змінна.

**Приклад посилання на оплату:** `https://payform.ru/7p3JR8/`

Цю змінну можна показати в повідомленні як посилання або розмістити в кнопці з текстом «Сплатити».

`payment_sum` Перед оголошенням змінної можна вказати такі необов’язкові змінні:

| Параметри функції          | Опис параметра                                                                                                                                                                                                                                                                                                                                                                                                                |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **product\_name**          | **Назва товару** (якщо не вказано, автоматично заповнюється "Оплата рахунку order\_id" — нижче на скриншоті показано, де саме це відображається.)                                                                                                                                                                                                                                                                             |
| **payment\_description**   | **Опис товару** (якщо не вказано, автоматично `'Оплата рахунку order_id'` заповнюється) — нижче на скриншоті показано, де саме це відображається.                                                                                                                                                                                                                                                                             |
| **discount\_value**        | **Розмір знижки** (наприклад, `discount_value = 25` або `discount_value = 50.25`)                                                                                                                                                                                                                                                                                                                                             |
| **customer\_phone**        | **Номер телефону покупця** — необов’язково, якщо вказано інший параметр.                                                                                                                                                                                                                                                                                                                                                      |
| **customer\_email**        | Електронна адреса покупця                                                                                                                                                                                                                                                                                                                                                                                                     |
| **link\_expired**          | <p><strong>Термін дії платіжного посилання</strong> — <code>дд.мм.рррр</code> у форматі (наприклад, 25.01.2021).<br>Також, <strong>Калькулятор</strong> у полі можна вказати так:<br><code>link\_expired = current\_date + 2</code> (посилання буде дійсним 2 дні до 00:00).</p>                                                                                                                                              |
| **link\_expired**          | <p>Також можна вказати точний час, формат: <code>дд.мм.рррр гг:хв</code> (наприклад, <code>25.01.2021 12:23</code>).<br>Також можна використовувати стандартні змінні, наприклад, встановити термін дії посилання на 30 хвилин:<br>time = current\_time + 30 link\_expired = "#{current\_date} #{time}"</p>                                                                                                                   |
| **currency**               | <p><strong>Валюта платежу</strong>, за замовчуванням <code>"rub"</code>.<br>Повний список аргументів:</p><ul><li><code>rub</code></li><li><code>usd</code></li><li><code>eur</code></li><li><code>kzt</code></li></ul><p>Цей параметр має бути вказаний малими літерами.</p>                                                                                                                                                  |
| **payment\_title**         | <p><strong>Назва платежу</strong> (до 127 символів). Якщо не вказано, автоматично заповнюється таким текстом:<br>“<strong>Оплата рахунку payment\_id</strong>” (<code>payment\_id</code> — ідентифікатор замовлення в MaviBot).</p>                                                                                                                                                                                           |
| **payment\_description**   | **Короткий опис платежу** (до 127 символів)                                                                                                                                                                                                                                                                                                                                                                                   |
| **locale**                 | <p><strong>Мова сторінки оплати</strong> — <code>en-US</code>, <code>fr-XC</code> і т. д. відображаються у форматі. Значення за замовчуванням — <code>ru-RU</code>.<br>Повний список можна переглянути за посиланням</p>                                                                                                                                                                                                      |
| **products\_for\_receipt** | <p><strong>рядок від 50 до 4000 символів</strong> у форматі <code>"опис замовлення - ціна - посилання на ресурс, що купується"</code>.<br>Наприклад:<br><code>«Курс “Ловля ляща”, ціна 4999 тенге, посилання на сторінку курсу: <https://www.lovilescha.ru/courses/poimai_kilogram/>"</code></p><p>Це обов’язковий параметр, якщо у вас немає власної онлайн-каси, він потрібен для фіскалізації платежів через Prodamus.</p> |
| **payment\_sum**           | (обов’язково) сума платежу                                                                                                                                                                                                                                                                                                                                                                                                    |

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/3FazAmQkph5i0_iKy4G_HNerzVQP9Bg3_PRB_5rHZQ6vAZB_1Hxv1imi3gJCl7pU_GY7eAiiwZExJA-i4Ps5PgSJt7OXKbSL-GT27gWca_u7rFM8YEsNJ7Z-VVXTAR-jSw_-p2I0" alt="" width="563"></div>

{% hint style="success" %}
`discount_value`, `customer_phone`, `customer_email` і `link_expired` змінні також актуальні для підписок.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/727f9a8f96b52bbd3d3b28e554fcf19f8cfbb1c2" alt="" width="524"><figcaption></figcaption></figure></div>

**Приклад реалізації.**\
У першому блоці встановлюємо суму платежу:

<div data-with-frame="true"><figure><img src="/files/267d62a974ca864968423924a2cef3f914012dcf" alt=""><figcaption></figcaption></figure></div>

На наступному кроці там, де потрібно **`prodamus_pay_url`** виводимо посилання:

<div data-with-frame="true"><figure><img src="/files/c78e459c4c4faaa180cd24543efb818175413a86" alt=""><figcaption></figcaption></figure></div>

**`prodamus_available_payment_methods`** змінна **`payment_sum`** визначається перед публікацією.\
Можливі значення:

<table><thead><tr><th width="323"></th><th></th></tr></thead><tbody><tr><td><strong>AC</strong></td><td>Оплата карткою, виданою в РФ</td></tr><tr><td><strong>ACkz</strong> </td><td>Оплата карткою Казахстану</td></tr><tr><td><strong>ACf</strong></td><td>Оплата картками країн СНД, окрім РФ</td></tr><tr><td><strong>ACEURNMBX</strong></td><td>Оплата карткою EUR усіх країн, окрім Росії та Білорусі</td></tr><tr><td><strong>SBP</strong></td><td>Швидкий платіж без введення даних карти. Для російських карток</td></tr><tr><td><strong>QW</strong> </td><td>Qiwi wallet </td></tr><tr><td><strong>PC</strong></td><td>Юmoney</td></tr><tr><td><strong>GP</strong></td><td>Платіжний термінал</td></tr><tr><td><strong>sbol</strong></td><td>Сбербанк Онлайн </td></tr><tr><td><strong>invoice</strong> </td><td>Оплата за рахунком</td></tr><tr><td><strong>installment</strong> </td><td>Розстрочка через Prodamus</td></tr><tr><td><strong>installment_5_21</strong></td><td>Розстрочка на 3 місяці через Prodamus</td></tr><tr><td><strong>installment_6_28</strong></td><td>Розстрочка на 6 місяців через Prodamus</td></tr><tr><td><strong>installment_10_28</strong></td><td>Розстрочка на 10 місяців через Prodamus</td></tr><tr><td><strong>installment_12_28</strong> </td><td>Розстрочка на 12 місяців через Prodamus</td></tr><tr><td><strong>installment_0_0_3</strong></td><td>Розстрочка на 3 місяці через Tinkoff</td></tr><tr><td><strong>installment_0_0_4</strong> </td><td>Розстрочка на 4 місяці через Tinkoff</td></tr><tr><td><strong>installment_0_0_6</strong></td><td>Розстрочка на 6 місяців через Tinkoff</td></tr><tr><td><strong>installment_0_0_10</strong></td><td>Розстрочка на 10 місяців через Tinkoff</td></tr><tr><td><strong>installment_0_0_12</strong></td><td>Розстрочка на 12 місяців через Tinkoff</td></tr><tr><td><strong>installment_0_0_24</strong> </td><td>Розстрочка на 24 місяці через Tinkoff</td></tr><tr><td><strong>installment_0_0_36</strong></td><td>Розстрочка на 36 місяців через Tinkoff</td></tr><tr><td><strong>credit</strong> </td><td>Кредит через Tinkoff</td></tr><tr><td><strong>vsegdada_installment_0_0_4</strong></td><td><strong>Розстрочка на 4 місяці через «ВсегдаДа»</strong> (не працює з available_payment_methods)</td></tr><tr><td>vs<strong>egdada_installment_0_0_6</strong></td><td><strong>Розстрочка на 6 місяців через «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_10</strong></td><td><strong>Розстрочка на 10 місяців через «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_12</strong></td><td><strong>Розстрочка на 12 місяців через «ВсегдаДа»</strong> </td></tr><tr><td>vs<strong>egdada_installment_0_0_24</strong></td><td><strong>Розстрочка на 24 місяці через «ВсегдаДа»</strong> </td></tr><tr><td><strong>vsegdada_installment_0_0_36</strong> </td><td><strong>Розстрочка на 36 місяців через «ВсегдаДа»</strong> </td></tr><tr><td><strong>sbrf_installment_0_0_6</strong></td><td>Розстрочка на 6 місяців через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_10</strong></td><td>Розстрочка на 10 місяців через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_12</strong></td><td>Розстрочка на 12 місяців через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_24</strong></td><td>Розстрочка на 24 місяці через Сбербанк</td></tr><tr><td><strong>sbrf_installment_0_0_36</strong> </td><td>Розстрочка на 36 місяців через Сбербанк</td></tr><tr><td><strong>otp_installment_0_0_6</strong></td><td>Розстрочка на 6 місяців через «OTP Банк»</td></tr><tr><td><strong>otp_installment_0_0_10</strong></td><td>Розстрочка на 10 місяців через «OTP Банк»</td></tr><tr><td><strong>otp_installment_0_0_12</strong> </td><td>Розстрочка на 12 місяців через «OTP Банк»</td></tr><tr><td><strong>otp_installment_0_0_24</strong></td><td>Розстрочка на 24 місяці через «OTP Банк»</td></tr><tr><td><strong>otp_installment_0_0_36</strong></td><td>Розстрочка на 36 місяців через «OTP Банк»</td></tr><tr><td><strong>mts_installment_0_0_6</strong></td><td>Розстрочка на 6 місяців через «МТС Банк»</td></tr><tr><td><strong>mts_installment_0_0_10</strong> </td><td>Розстрочка на 10 місяців через «МТС Банк»</td></tr><tr><td><strong>mts_installment_0_0_12</strong> </td><td>Розстрочка на 12 місяців через «МТС Банк»</td></tr><tr><td><strong>mts_installment_0_0_24</strong></td><td>Розстрочка на 24 місяці через «МТС Банк»</td></tr><tr><td> <strong>mts_installment_0_0_36</strong> </td><td>Розстрочка на 36 місяців через «МТС Банк»</td></tr><tr><td><strong>monetaworld</strong></td><td>Карти світових банків, окрім Росії</td></tr><tr><td><strong>sbrf_bnpl</strong></td><td>Розстрочка через Сбер</td></tr></tbody></table>

Декілька значень **через вертикальну риску** дозволено розділяти.\
Наприклад:

```python
prodamus_available_payment_methods = "AC|PC|QW"
```

`prodamus_currency` — це ще один додатковий параметр, який дозволяє вказати суму в певній валюті.

Можливі валюти:

* `kzt` — для тенге
* `eur` — для євро
* `usd` — для доларів

Отже, сума, вказана в посиланні, буде у вибраній валюті.

**Колбек `payment_callback` при отриманні** `currency` і `currency_sum` потрібно звернути увагу на параметри, у яких вказані валюта та сума.

{% hint style="warning" %}
Якщо не вказано, буде перехід на сторінку без способів оплати.\
Додати способи оплати можна через підтримку. Підключені способи можна переглянути в налаштуваннях сторінки або на тестовому посиланні оплати.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/c3648e428792aff093e10326b5ec4ff87ba07057" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/64eeb5932e9d46f834b7fba7c1416de796ea7f96" alt="" width="563"><figcaption></figcaption></figure></div>

### Як обробляти результат

**Успішний платіж**

**Важливо:** Після успішної або невдалої оплати в бота надходять колбеки (callback), за допомогою яких можна визначити, чи оплата пройшла успішно.

Колбеки в системі виглядають як повідомлення від користувача, але користувач не може їх надіслати. Вони мають вигляд зв’язки секретного ключа та статусу. Наприклад:

```
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
```

або

```
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
```

Після успішної оплати **prodamus\_payment\_completed** змінна автоматично `True` набуває значення.

**Примітка:** Колбеки надходять із невеликою затримкою, тому після надсилання посилання користувачу краще надіслати повідомлення:

> «Після оплати дочекайтеся успішного завершення платежу.»

***

**Структура колбека**

Для посилань, створених через кнопку Оплата або через функцію в Калькуляторі, після платежу в бота автоматично надходить колбек. Його склад:

```
<секретний_ключ>_success <сума_платежу>
```

Наприклад:

```
ovg58keefc_success
```

* `ovg58keefc` — повний секретний ключ платіжної системи
* `_success` — результат обробки запиту (успішний платіж)

***

**Практичне застосування**

Успішний платіж можна обробити через умовний блок і показати користувачу відповідне повідомлення.

<div data-with-frame="true"><figure><img src="/files/d91f4575ad051400b024394e5df061e6b7860819" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="danger" %}
Тип порівняння має бути "Full match" / "Повний збіг"

Для повторної оплати обов’язково **payment\_sum** потрібно обнулити змінну і видалити раніше створене посилання. Лише після цього **payment\_sum** можна присвоїти нове значення змінній
{% endhint %}

#### Деактивація/реактивація підписки

Також у системі Prodamus є повідомлення про те, що підписку активовано або зупинено:

<div data-with-frame="true"><figure><img src="/files/42667bce7fc08213d9b5615269a4f36eace5658f" alt=""><figcaption></figcaption></figure></div>

**«Підписку видалив користувач»** — якщо підписку зупинено вручну (наприклад, у разі відмови від підписки).\
Це повідомлення може надійти ще до завершення поточного оплаченого періоду. Дії залежать від вашого рішення: ігнорувати, взяти під контроль або спробувати повернути користувача.

**«Підписку повторно активував користувач»** — підписку відновлено.\
Це повідомлення може надійти, якщо користувач відновить підписку до завершення поточного оплаченого періоду. Дії залежать від вашого рішення: ігнорувати або прибрати з моніторингу.

**«Деактивація підписки»** — якщо підписку зупинено після кількох невдалих платежів.

### Збереження значень із колбека

Після повідомлення про успішну оплату **payment\_callback** у змінну записується колбек від Prodamus, у якому містяться всі дані про платіж. Ці дані можна зберігати та використовувати так, як вам потрібно.

Приклад колбека:

```json
{
  "date": "2021-03-30T11:44:43+03:00",
  "order_id": "757679",
  "order_num": "",
  "domain": "demo.payform.ru",
  "sum": "14.50",
  "customer_phone": "+77777777777",
  "customer_extra": "Товар",
  "payment_type": "Пластикова картка Visa, MasterCard, МИР",
  "commission": "3.5",
  "commission_sum": "0.51",
  "attempt": "1",
  "discount_value": "10.5",
  "products[0][name]": "Доступ до навчальних матеріалів",
  "products[0][price]": "14.50",
  "products[0][quantity]": "1",
  "products[0][sum]": "14.50",
  "payment_status": "success",
  "payment_status_description": "Успішна оплата",
  "payment_init": "manual"
}
```

Під час створення посилання **product\_name** і **payment\_description** можна вказувати змінні. Тоді при надходженні колбека їх можна отримати так:

```python
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')
```

<div data-with-frame="true"><figure><img src="/files/f783151d5b8f4a76e81a56ad6c9cb917921a578d" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
Увага: **payment\_sum** у змінну буде записано останнє значення, яке **після необов’язкових змінних** розташоване: **payment\_description**, **product\_name**.
{% endhint %}

Суму можна отримати так:

```python
summa = get(payment_callback, 'sum')
```

### **Доступні колбеки**

Окрім основних колбеків про успішну оплату, у чат надходитимуть повідомлення, які не бачить користувач:

<details>

<summary>колбеки</summary>

* Підписник деактивував підписку ([докладніше тут](#deaktivaciya-reaktivaciya-podpiski))
* Підписник реактивував підписку ([докладніше тут](#deaktivaciya-reaktivaciya-podpiski))
* Підписку завершено
* Невдала оплата — примітка з поясненням (на скриншоті вище)
* Повідомлення про майбутнє списання — дата і час майбутнього списання
* Заявка на розстрочку зі статусом

</details>

<details>

<summary><strong>Приклади колбеків у діалозі з клієнтом</strong></summary>

* **Підписник деактивував підписку**
* **Підписник реактивував підписку**
* **Підписку завершено**
* **Невдала оплата — недостатньо коштів.**
* **Невдала оплата — термін дії картки закінчився.**
* **Невдала оплата — перевищено ліміт по картці.**
* **Невдала оплата — картку втрачено**
* **Невдала оплата — системна помилка**&#x20;
* **Невдала оплата — операцію відхилено. Зверніться до банку, який випустив картку.**&#x20;
* **Невдала оплата — відмова в проведенні операції банком-емітентом.**
* **Невдала оплата — відмова в проведенні операції банком.**&#x20;
* **Повідомлення про майбутнє списання — дд.мм.рррр гг:хх**
* **Заявку на розстрочку схвалено**
* **Заявку на розстрочку скасовано**
* **Заявку на розстрочку відхилено**

</details>

За бажанням можна налаштувати надсилання користувачу будь-яких повідомлень. Наприклад, надсилати повідомлення в разі невдалої автоматичної оплати.

Можна налаштувати блоки відповіді на повідомлення про невдалу оплату за конкретною причиною так:

<div data-with-frame="true"><figure><img src="/files/7d43fa9affaf42d19b45cf948f2c9e7a0093afa4" alt=""><figcaption></figcaption></figure></div>

Щоб надсилати повідомлення для всіх невдалих платежів, незалежно від причини, можна налаштувати так:

<div data-with-frame="true"><figure><img src="/files/ce3f7640892dfeaa2fcad575f222074a01b47d00" alt=""><figcaption></figcaption></figure></div>

У всіх колбеках, якщо в тексті **«Платіж не пройшов»** є це слово, користувачу буде надіслано повідомлення з текстом, який ви вкажете.

## **Як зробити оплату за підпискою**

### **Як створити підписку**

Щоб створити підписку, спочатку потрібно **підписний товар** створити.\
Повна інструкція: [Як створити та налаштувати підписку](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)

Потім з підписного товару копіюємо **ID** Наприклад, нижче показано, де його взяти:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="Створення підписного товару"></div>

Щоб створити посилання на оплату підписки, **prodamus\_subscription** у змінну потрібно встановити **ID** ID підписного товару. Після цього автоматично **prodamus\_pay\_url** з’являється змінна.

<div data-with-frame="true"><figure><img src="/files/a53530856fc9ede24d9a841098769b83442cac93" alt="" width="563"><figcaption></figcaption></figure></div>

Переклад українською мовою (діловий стиль):

`prodamus_pay_url` змінну можна вивести на екран як посилання або розмістити на кнопці з текстом «Сплатити». Приклад посилання: <https://payform.kz/7p3JR8/>

Обробка результату відбувається так само, як і в одноразовому платежі (як ви прочитали вище).

Після успішної підписки користувачу додається введений під час оплати **customer\_phone** змінна. Номер телефону потрібен для керування підпискою.

Якщо **customer\_email** не вказано, для керування підпискою **customer\_phone** обов’язково.

### **`get_prodamus_subscription_url` як створити посилання на підписку за допомогою функції**

Розгляньмо інший спосіб створення посилання на оплату підписки на товар.

1. У кабінеті Prodamus створюється підписний товар.\
   Повну інструкцію можна переглянути за посиланням:\
   [Як створити та налаштувати підписку](https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski)
2. Потім з підписного товару копіюємо **ID** Наприклад, нижче показано, де його взяти:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="Створення підписного товару"></div>

Для отримання посилання на оплату товару за підпискою в Калькуляторі вказуємо функцію&#x20;

`get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

{% tabs %}
{% tab title="Калькулятор" %}
**Приклад 1:** Посилання на оплату товару за підпискою

<figure><img src="/files/d9aba0c1b076c0fa6c8ad4c7f56c994fc57fa5ad" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Опис параметра" %}
`link = get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

Параметри функції:

<table><thead><tr><th width="253">Параметр</th><th>Значення параметра</th></tr></thead><tbody><tr><td><strong><code>subscription_id</code></strong></td><td><strong>ID підписного продукту</strong> — можна скопіювати з кабінету Prodamus (обов’язковий параметр).</td></tr><tr><td><strong><code>product_name</code></strong></td><td><strong>Назва продукту</strong> (обов’язковий параметр).</td></tr><tr><td><strong><code>expired</code></strong></td><td><p><strong>Термін дії платіжного посилання</strong> — у форматі дд.мм.рррр (наприклад, 25.01.2021).</p><p>Також можна вказати у полі «Калькулятор»:</p><pre class="language-python"><code class="lang-python">expired = current_date + 2  # посилання буде дійсним 2 дні, до 00:00
</code></pre><p><code>expired</code> параметр можна також вказати з точним часом, формат: дд.мм.рррр гг:хх (наприклад, 25.01.2021 12:23).</p><p>Також можна використовувати стандартні змінні, наприклад, встановити час дії посилання на 30 хвилин:</p><pre class="language-python"><code class="lang-python">time = current_time + 30
expired = "#{current_date} #{time}"
</code></pre><p>Якщо хочете пропустити цей параметр, замість нього вкажіть одинарні або подвійні лапки, або <code>None</code> значення.</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td><p><strong>Номер телефону платника</strong> — необов’язково, якщо <code>customer_email</code> якщо задано параметр.</p><p>Якщо хочете пропустити цей параметр, замість нього вкажіть одинарні або подвійні лапки.</p></td></tr><tr><td><strong><code>customer_email</code></strong></td><td><p><strong>Email платника</strong> — необов’язково, якщо <code>customer_phone</code> якщо задано параметр.</p><p>Якщо хочете пропустити цей параметр, замість нього вкажіть одинарні або подвійні лапки.</p></td></tr><tr><td><strong><code>discount</code></strong></td><td><p><strong>Розмір знижки</strong> — параметр можна вказати як ціле число або десяткове число: 25 або 63.5.</p><p>Якщо хочете пропустити цей параметр, замість нього вкажіть одинарні або подвійні лапки.</p></td></tr><tr><td><strong><code>description</code></strong></td><td><p><strong>Опис товару</strong> — якщо не вказано, за замовчуванням <code>'Оплата рахунку order_id'</code> заповнюється.</p><p>Якщо хочете пропустити цей параметр, замість нього вкажіть одинарні або подвійні лапки.</p></td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p><strong>Додаткові параметри</strong>, це параметри, яких немає в цій функції.<br>Можливі додаткові параметри можна переглянути в документації API платіжної системи:<br><a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">Керівництво з Prodamus REST API</a></p><p><strong>Приклад:</strong></p><pre class="language-python"><code class="lang-python">extra_params = {"payments_limit": "3"}
</code></pre><p>Якщо хочете пропустити цей параметр, замість нього вкажіть одинарні/подвійні лапки або <code>None</code> значення.</p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>рядок із 50–4000 символів</strong>, формат: <code>"опис замовлення - ціна - посилання на ресурс, що купується"</code></p><p>Приклад:<br>Курс «Ловля ляща», ціна 4999 тенге, посилання на сторінку курсу: <a href="https://www.lovilescha.ru/courses/poimai_kilogram/">https://www.lovilescha.ru/courses/poimai_kilogram/</a>.</p><p>Цей параметр <strong>обов’язковий</strong>, якщо у вас немає власної онлайн-каси, він потрібен для фіскалізації платежів через Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Приклад коду для копіювання" %}
extra\_params = {"payments\_limit": "3"}&#x20;

products\_for\_receipt = "Курс ‘Ловля ляща’, вартість щомісячної підписки 2000 тенге, посилання на сторінку курсу: <https://www.lovilescha.ru/courses/poimai\\_kilogram/"&#x20>;

link\_prodamus\_sub = get\_prodamus\_subscription\_url(618988, 'Курс ‘Ловля ляща’', '27.03.2023 17:02', '79167777771', '<mail@mail.com>', 20, 'Найкращий курс на ринку', extra\_params, products\_for\_receipt)
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Якщо в блоці виникла помилка під час отримання посилання через кілька функцій, **значення помилки `error_payment_func` у змінну** запишеться.

Помилка записується в Калькуляторі за останньою функцією.
{% endhint %}

### **Як керувати статусом підписки**

Цей спосіб призначений лише для реальних підписок, у демо-режимі прив’язка картки відсутня.

Для керування підпискою обов’язково **`customer_phone`** або **`customer_email`** потрібно передати один із параметрів.

Щоб відписати користувача від підписки, потрібно створити блок і викликати таку функцію:\
[delete\_subscription\_prodamus](https://store.salebot.pro/function/delete_subscription_prodamus)

**Приклад параметрів:**

```json
{
  "customer_phone": "#{customer_phone}",
  "id_subscription":"#{prodamus_subscription}",
  "url":"https://demo.payform.ru/",
  "secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
  "switcher":"0",
  "profile_id":"12345"
}
```

* `url` – URL платіжної форми, отриманий із налаштувань у конструкторі
* `secret_key` – секретний ключ, отриманий із налаштувань
* `id_subscription` – ID товару підписки
* `customer_phone` – телефон власника підписки
* `switcher` – керування підпискою: `0` – зупинка підписки, `1` – повторна активація підписки
* `profile_id` – ID профілю в системі Продамус

**Примітка:**\
Якщо передано ID профілю, він **`profile_id`** зберігається у змінній.\
`profile_id` функцію **`customer_phone`** або **`customer_email`** можна передати та зупинити підписку.

**Приклад:** налаштування блоків підписки

<div data-with-frame="true"><figure><img src="/files/83992b59f8c8f37f43327098909dc87c3cd9e88a" alt=""><figcaption></figcaption></figure></div>

Зверніть увагу, функція **status** повертає status, його можна зберегти та обробити на власний розсуд. У разі успішної зупинки або повторної активації підписки **status = ok** буде.

### Функція для керування підпискою

prodamus\_subscription\_switch\_status(subscription\_id, switcher, customer\_phone, customer\_email, profile\_id) Параметри:

subscription\_id – ID підписки

switcher – керування підпискою: 0 – зупинити підписку, 1 – повторно активувати підписку

customer\_phone – телефон власника підписки; необов'язково, якщо вказано customer\_email

customer\_email – email-адреса власника підписки; необов'язково, якщо вказано customer\_phone

profile\_id – ID профілю в системі Продамус

<div data-with-frame="true"><figure><img src="/files/6cffdb5815e8a491b43c01dd789c2532d610f828" alt=""><figcaption><p>Приклад використання функції prodamus_subscription_switch_status</p></figcaption></figure></div>

Переклад українською мовою (діловий стиль):

**Приклад 1:** `customer_phone` параметр задано, `customer_email` пропущено:

```python
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
```

**Приклад 2:** `customer_email` параметр задано, `customer_phone` пропущено:

```python
stat = prodamus_subscription_switch_status('618117', '0', '', 'examp@mail.com')
```

{% hint style="success" %}
Якщо всі операції успішно завершено, **`ok`** повертає його або, у разі помилки, її опис.
{% endhint %}

## Керування знижками в підписці

Ця функція встановлює розмір знижки на наступні платежі за підпискою. Знижка **може бути обмеженою або необмеженою** за кількістю платежів.

```python
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
```

Параметри:

* `subscription_id` – ID підписки
* `discount` – десяткове число з точністю до двох знаків після крапки; значення має бути більшим за нуль і не перевищувати базову вартість підписки
* `customer_phone` – номер телефону клієнта, формат: `+79999999999` (необов'язково, якщо `customer_email` змінна присутня; вона з'являється після першого платежу)
* `num` – кількість платежів, до яких застосовуватиметься знижка (необов'язково; якщо не вказано, знижка застосовується до всіх платежів)
* `profile_id` – ID профілю в системі Продамус

Якщо запит виконано успішно, функція `'ok'` повертає його; якщо сталася помилка, функція повертає її опис.

{% hint style="warning" %}
**Розмір знижки та інтервал перезаписуються лише у разі повторного виклику функції з новими значеннями!**
{% endhint %}

**Приклади:**

**1. Надати знижку 1₽ на всі наступні автоплатежі** (номер телефону не вказується, оскільки він автоматично `customer_phone` береться зі змінної; сума знижки за замовчуванням застосовується на весь строк підписки):

```python
r = prodamus_subscription_discount('624034', '1')
```

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/_4i_sKKn39tHVdnb47xgj8fxfP_x9UGMWLaierBnpup9LCZMdVT0G9AmIOa8S_uMrVXWQIH6rvZnujCYPGcphkYvwFbCXEh819tWIjGIM4mHvd3afSlPzhZfcWk6D1z1tyBwFrZV" alt="" width="563"></div>

**2. Приклад надання знижки 2₽ на наступні 3 платежі** (номер телефону передається в порожніх лапках, оскільки він автоматично `customer_phone` береться зі змінної):

```python
r = prodamus_subscription_discount('624034', '2', '', '3')
```

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/IgutVRIqTFbaof9A14qdQRLCB6oop4mSAIew5s3lz62Kb4YVHdHJEt6GuC7AACStDgRiR1d_XEG1k5Dj7c2M-VNtci16JbklMTEla8_RNWD7wBNeG649g0lnFiMZilhri3phwKr-" alt="" width="563"></div>

**3. Приклад указання знижки десятковим дробом** (роздільник — крапка, значення вказуються без лапок), номер телефону можна передати через змінну.

<div data-with-frame="true"><figure><img src="/files/6fd993a7652588b3f90a2c5c16348e661be23d2e" alt="" width="563"><figcaption></figcaption></figure></div>

r = prodamus\_subscription\_discount(#{prodamus\_subscription}, 10.25, #{customer\_phone}, 3)

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/xJVbZ3Q5f6LzCsYtuX-JqaKYPc69lS6Wi4yA0ui2vBxmFkXXGIHSqgO2VoK0rzDPdNG-HxVpAnpRcmbZXQ_oSrtT7ijJcQA6ZOwjXLbKP8WsCFBip-4DwRnVHpz-fIPRt_Wldo0h" alt="" width="563"></div>

## **Як встановити дату наступного платежу за підпискою**

За допомогою цього методу можна перенести дату наступного платежу за підпискою. Дату можна переносити лише від поточно встановленої дати наступного платежу **«у майбутнє»** , щоб збільшити строк участі в клубі.

Наприклад, це можна використати як бонус для підписників.

Для цього потрібно використати таку функцію:

```python
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
```

Параметри:

* `subscription_id` – ідентифікатор підписки
* `date` – дата у форматі дд.мм.рррр гг:хх або дд.мм.рррр; якщо вказано лише дд.мм.рррр, час буде 00:00
* `customer_phone` – необов'язково; якщо не вказано, `customer_phone` береться зі змінної; якщо не знайдено, функція не працюватиме
* `profile_id` – ID профілю в системі Продамус

### Як передати параметри до Prodamus

Щоб передати потрібні параметри (наприклад, дату початку підписки, вимкнення розстрочки тощо) до системи Prodamus, до назви змінної **`prodamus_`** додайте префікс.

Після цього, коли створюватимете платіжне посилання, параметри з цієї змінної автоматично будуть передані до платіжної системи.

## Як протестувати платіж

{% hint style="info" %}
Тестуємо лише платіж!
{% endhint %}

Щоб під час налаштування інтеграції та платіжних воронок з вашого рахунку не списувалися кошти, **можна використовувати тестові картки**.

{% hint style="warning" %}
Спочатку переведіть вашу платіжну сторінку **у ДЕМО-режим** ⤵\
Не забудьте натиснути кнопку «Зберегти».
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/97a617f7e33247c5261048c22254885558dcf253" alt=""><figcaption></figcaption></figure></div>

#### Для здійснення тестового платежу можна використовувати тестові рахунки.

**Тестові картки Сбербанку:**

**МИР**\
Номер картки: 2202 2050 0001 2424\
Термін дії: 05/35\
Код перевірки на звороті (CVV): 669

**MasterCard**\
Номер картки: 5469 9801 0004 8525\
Термін дії: 05/26\
Код перевірки на звороті (CVV): 041\
Код перевірки 3-D Secure: 111111

**Visa**\
Номер картки: 4006 8009 0096 2514\
Термін дії: 05/26\
Код перевірки на звороті (CVV): 941\
Код перевірки 3-D Secure: 111111

{% hint style="success" %}
❗️Під час оплати через тестові рахунки всі налаштовані воронки та інтеграції **працюють так само, як і при звичайній оплаті**❗️
{% endhint %}

Форма перевірена

{% hint style="danger" %}
Форма для приймання реальних платежів **у робочий режим** потрібно перевести. Тобто перемикач демо-режиму **світло-червоний** стан.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/uk/integrations/payment/prodamus-blr/prodamus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
