> 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.md).

# Prodamus (BLR)

{% hint style="success" %}
Доступно лише на тарифі "Інфобіз".
{% endhint %}

## Як підключити Продамус

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

<mark style="color:зелений;">**URL платіжної форми**</mark> ви отримуєте після реєстрації, він <mark style="color:зелений;">**має вигляд: demo.payform.ru**</mark>

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

<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.salebot.pro/prodamus\\_callback/result>**

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

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

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

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

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

Адреса для сповіщень: **`https://chatter.salebot.pro/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=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
**ВАЖЛИВО!** URL платіжної форми вказуємо БЕЗ https\://&#x20;
{% endhint %}

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

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

{% hint style="success" %}
Сформувати посилання на оплату в блоці можна **ОДНИМ ІЗ** доступних способів:

* [Кнопка з функцією Оплата ](#knopka-s-funkciei-oplata)або
* [Функція get\_prodamus\_payment\_url у Калькуляторі](#funkciya-get_prodamus_payment_url-v-kalkulyatore) або
* [Створення посилання за допомогою змінної payment\_sum і додаткових параметрів](#sozdanie-ssylki-s-pomoshyu-peremennoi-payment_sum-i-dopolnitelnykh-parametrov) (застаріла робоча версія)
  {% endhint %}

## Кнопка з функцією Оплата

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

Розглянемо всі можливі параметри цієї кнопки.&#x20;

### **Обов'язкові параметри кнопки Оплата для Продамус**

Для формування посилання на оплату в налаштуваннях кнопки необхідно вказати <mark style="color:червоний;">**обов'язкові параметри**</mark> "**Сума**", "**Найменування товару**", а також параметр "**Оплачений контент**", якщо у вас **немає своєї онлайн-каси** і ви хочете отримувати чек від Prodamus.&#x20;

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

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

**поле Текст.** Цей текст буде вказано на кнопці з посиланням на оплату в повідомленні

**поле Функція.** Для створення кнопки для видачі посилання на оплату вибираємо функцію Оплата

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

{% hint style="warning" %}
Якщо до проєкту не підключені платіжні системи, цей тип кнопок буде недоступний
{% endhint %}

**поле Найменування товару (обов'язкове).** У цьому полі потрібно вказати назву товару. Чим точніше вказано назву товару, тим краще. Наприклад: не Телефон, а Смартфон Xiaomi модель …&#x20;

{% hint style="danger" %}
**НЕ МОЖНА** використовувати **подвійні лапки** у найменуванні товару: видаліть або замініть на одинарні лапки.&#x20;
{% endhint %}

**поле Сума (обов'язкове).**  У цьому полі вказуємо вартість товару.&#x20;

**меню Додаткова інформація.** Під час натискання на цю кнопку відкриються додаткові поля для формування посилання

* Опис замовлення
* Знижка в руб.
* Змінна з email покупця
* Змінна з номером телефону покупця
* Час життя посилання
* ID товару для підписки (для створення автоплатежів)
* Оплачений контент&#x20;

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

<div data-with-frame="true"><figure><img src="/files/aa8759d01f938e3ec14d246909d708bca0091e3f" alt="" width="431"><figcaption><p>Коллбек після переходу клієнтом за посиланням</p></figcaption></figure></div>

На це сповіщення можна налаштовувати подальшу логіку роботи бота.&#x20;

{% hint style="info" %}
Багато платіжних систем підтримують хмарні онлайн-каси, вони необхідні за 54-ФЗ.\
Прочитайте особливості оформлення чеків на сайті вибраної платіжної системи, щоб не потрапити в незручну ситуацію з податковою інспекцією.
{% endhint %}

А ось так виглядає сторінка оплати, яка відкривається під час переходу за посиланням у кнопці Оплата:

<div data-with-frame="true"><figure><img src="/files/b47560772c2dd7f88fd07516eacd132ee7760d0e" alt="" width="563"><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\
На сторінці оплати в полі Сума до оплати буде вказано з урахуванням знижки, а основна вартість товару буде перекреслена.&#x20;

**Поле Змінна з email покупця** (необов'язкове, якщо передано Номер телефону) У цьому полі вказується Email користувача (клієнта). Можна вказувати змінну, у якій зберігається email користувача.&#x20;

Наприклад, #{email}

**Поле Змінна з номером телефону покупця** (необов'язкове, якщо передано Email). У цьому полі можна вказати змінну, у якій записано номер телефону покупця у форматі 79000000000\
Наприклад, #{phone}

{% hint style="danger" %}
Обов'язково має бути email та/або телефон
{% endhint %}

**поле Час життя посилання.** Можна вказати дату у форматі дд.мм.рррр чч:мм (наприклад 25.01.2021 11:00) або використовувати змінні для призначення строку завершення дії посилання. \
Приклад використання змінної: `#{link_expired}`

**поле ID товару за підпискою.**  Щоб виконати автоплатіж, передайте значення ID товару. Для створення підписки потрібно створити товар для підписки.&#x20;

Детальна інструкція, як створити товар для підписки: <https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski>

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

Номер телефону, вказаний під час оплати, буде необхідний для керування підпискою.

{% hint style="warning" %}
Якщо передати **ID товару за підпискою**, то в колбеку при успішному платежі буде передано ID цього товару
{% endhint %}

**Поле Оплачений контент** (умовно обов'язкове). Дані необхідні для фіскалізації оплати Prodamus, якщо у вас немає своєї онлайн-каси. У цьому полі потрібно вказати опис покупки, її вартість і посилання на ресурс із контентом.&#x20;

*Наприклад*: *Курс ‘Плетіння кіс’, вартість 3000 рублів, посилання на сторінку курсу:* [*https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911*](https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911).&#x20;

Ці дані необхідні для передання до ФНС.

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

Якщо ви вказуєте час життя посилання, то в разі

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

<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=""><figcaption></figcaption></figure></div>

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

2\. Коли користувач запитує посилання, а воно вже неактивне\
У такому разі кнопка просто не з'явиться. І в змінних клієнта з'явиться змінна "error\_payment\_button", яка містить таке значення: "Помилка: Термін дії посилання має бути пізніше поточної дати".

{% hint style="success" %}
Щоб користувач міг оплатити коректно, бажано додатково обробити такий випадок.&#x20;
{% endhint %}

Як це зробити?

Створіть блок з умовою, у якому вкажіть: якщо надійшло сповіщення подібного типу, error\_payment\_button == "Помилка: Термін дії посилання має бути пізніше поточної дати"&#x20;

З виведенням тексту: "Вибачте, ви не встигли і посилання на оплату більше недійсне":

<div data-with-frame="true"><figure><img src="/files/3d4499b9a536e7fea754be18226f8916d3c4b90f" alt=""><figcaption><p>Діалог у розділі "Клієнти"</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/1f44780056189951de19ee20753e1f97c50563c9" alt=""><figcaption><p>Налаштування блоку "Стартова умова"</p></figcaption></figure></div>

### Змінні клієнта, які будуть створені автоматично під час використання кнопки з функцією Оплата

Щойно користувач отримає блок із кнопкою "Оплата", автоматично будуть створені змінні клієнта:

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

{% hint style="danger" %}
Службову змінну клієнта \_\_payments НЕ МОЖНА видаляти або змінювати!
{% endhint %}

Змінна клієнта **`error_payment_button`** створюється, якщо під час формування кнопки виникла помилка.

У значення змінної error\_payment\_button запишеться або текст помилки, або відповідь платіжної системи з помилкою.

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

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

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

Після успішної оплати в бота <mark style="color:помаранчевий;">**АВТОМАТИЧНО**</mark> надійде КОЛЛБЕК, який складається з перших 10 символів секретного ключа платіжної системи, слова \_success і через пробіл сума платежу. \
\&#xNAN;*Для використання в налаштуваннях схеми достатньо його скопіювати.*&#x20;

Наприклад: `ovg58keefc_success 44`, де:&#x20;

ovg58keefc : перші 10 символів секретного ключа платіжної системи

\_success : результат обробки запиту (успішний платіж)

44 : сума платежу

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

Приклад використання:\
Крок 1. У блоці "з кнопкою Оплата" додаємо кнопки з функцією Оплата.&#x20;

Крок 2. У полі Умова з'єднання від цього блоку до блоку "Успішна оплата" вказуємо коллбек. Аналогічно працює, якщо вказати коллбек про успішну оплату в полі Умова блоку "Стартова умова".

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

❗️Якщо ви вирішили перевіряти оплату саме в стрілці за умовою, то продумайте логіку вашої схеми. У разі якщо клієнт залишить блок із переходом за умовою з коллбеком, то переходу в блок не буде. Такий спосіб перевірки логічно використовувати лише тоді, коли клієнт не змінює свою позицію у воронці (положення в схемі). \
У схемах, у яких клієнт переміщується між блоками, краще використовувати варіант із зазначенням коллбека в блоці "Стартова умова". <br>

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

#### **Успішний платіж для товарів з автопідпискою.**&#x20;

Після успішної оплати в бота <mark style="color:помаранчевий;">**АВТОМАТИЧНО**</mark> надійде КОЛЛБЕК, який складається з перших 10 символів секретного ключа платіжної системи, слова \_success і <mark style="color:зелений;">**через пробіл ID товару за підпискою**</mark>

Наприклад: `214009eefc_success 618117`, де:&#x20;

`009eefc` : 10 символів секретного ключа платіжної системи

\_success : результат обробки запиту (успішний платіж)

`618117`: ID товару за підпискою

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

**Платіж з помилкою**

<mark style="color:синій;">**У разі помилки проведення оплати**</mark> в бота <mark style="color:помаранчевий;">**АВТОМАТИЧНО**</mark> надійде КОЛЛБЕК, який складається з 10 символів секретного ключа платіжної системи, слова \_fail і через пробіл сума платежу

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

`ovg58keefc` : 10 символів секретного ключа платіжної системи

`_fail` : результат обробки запиту - платіж не виконано або з помилкою.&#x20;

`44` : сума платежу

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

Якщо сума, зазначена в налаштуваннях кнопки <mark style="color:синій;">**відрізняється від суми, яку клієнт оплатив**</mark>, то <mark style="color:помаранчевий;">**АВТОМАТИЧНО**</mark> надійде КОЛЛБЕК, який складається з 10 символів секретного ключа платіжної системи, слова \_different\_amounts і через пробіл унікальний ID платежу

Наприклад: `ovg58keefc_different_amounts 123456` , де:&#x20;

`ovg58keefc` : 10 символів секретного ключа платіжної системи

`_different_amounts` : результат обробки запиту (сума оплати відрізняється від суми в посиланні)

`123456` : унікальний ID платежу

## Функція get\_prodamus\_payment\_url у Калькуляторі

Для формування посилання на оплату можна скористатися функцією `get_prodamus_payment_url` у блоці Калькулятор.

У полі Калькулятор змінній присвоїмо значення функції `get_prodamus_payment_url`&#x20;

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

У цю змінну запишеться посилання на оплату. Змінну можна вивести на екран як посилання в повідомленні або розмістити на кнопці з текстом "Оплатити".&#x20;

**ПРИКЛАД посилання на оплату:** <https://payform.ru/7p3JR8/>

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

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

{% tab title="Опис параметрів" %}
`ваша_змінна =`` `**`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>сума до оплати. Можна передати значення цілим числом і числом з крапкою. Наприклад 25 або 52.5  <mark style="color:зелений;">(обов'язковий параметр)</mark> </td></tr><tr><td><strong><code>product_name</code></strong></td><td>Назва товару. <mark style="color:зелений;">(обов'язковий параметр)</mark></td></tr><tr><td><strong><code>expired</code></strong></td><td><p>час життя посилання на оплату, у форматі <strong>дд.мм.рррр</strong> (наприклад 25.01.2021). Також можна в полі "Калькулятор<em>"</em> вказати: <em>expired = current_date + 2</em> (посилання буде дійсним 2 дні до 00:00).  <code>expired</code> також можна вказати дату з точним часом, через пробіл, у форматі <strong>дд.мм.рррр чч:мм</strong> (наприклад: <em>25.01.2021 12:23</em>). Також можна використовувати стандартні змінні, наприклад задамо час дії посилання 30 хвилин: </p><p><code>time = current_time + 30</code><br><code>expired = "#{current_date} #{time}"</code><br><br>Щоб пропустити цей параметр, передайте замість нього пару одинарних або подвійних лапок, або значення None</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td>номер телефону покупця, не обов'язково, якщо передано параметр <code>customer_email</code> Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td>email покупця, не обов'язково, якщо передано параметр <code>customer_phone</code> Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>discount</code></strong></td><td>розмір знижки. Передаємо параметр числом або числом з крапкою: 25 або 63.5. Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>description</code></strong></td><td>опис товару (якщо не вказати, заповнюється 'Оплата рахунку order_id'). Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p>додаткові параметри, яких немає в цій функції.<br>Можливі додаткові параметри можна подивитися за посиланням у документації щодо роботи з API платіжної системи <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov</a><br><br>Приклад: extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}<br></p><p><em>Щоб пропустити цей параметр, передайте замість нього пару одинарних/ пару подвійних лапок або значення None.</em></p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>Рядок від 50 до 4000 символів у форматі</strong> "опис замовлення - вартість - посилання на ресурс, що купується". </p><p>Наприклад:</p><p>“Курс ‘Рибалка на ляща’, вартість 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/". <strong>Обов'язковий</strong>, якщо у вас немає своєї онлайн-каси, для фіскалізації оплат через Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Приклад коду для копіювання" %}
**extra\_params** = {<mark style="color:червоний;">"payments\_limit"</mark>: <mark style="color:червоний;">"3"</mark>}&#x20;

**products\_for\_receipt** = "<mark style="color:червоний;">Курс ‘Рибалка на ляща’</mark>, <mark style="color:червоний;">вартість 4999 рублів</mark>, <mark style="color:червоний;">посилання на сторінку курсу: <https://www.lovilescha.ru/courses/poimai\\_kilogram/>"</mark>&#x20;

**link\_prodamus\_url** = get\_prodamus\_payment\_url(<mark style="color:синій;">4999</mark>, <mark style="color:червоний;">'Курс ‘Рибалка на ляща’'</mark>, <mark style="color:червоний;">'27.03.2023 17:00', '79167777771'</mark>, <mark style="color:червоний;">'<mail@mail.com>'</mark>, <mark style="color:синій;">20</mark>, <mark style="color:червоний;">'Найкращий курс на ринку'</mark>, extra\_params, products\_for\_receipt)
{% endtab %}
{% endtabs %}

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

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

## Створення посилання за допомогою змінної payment\_sum і додаткових параметрів

{% hint style="info" %}
Зверніть увагу: змінній **payment\_sum** присвоюється значення останньої, після необов'язкових змінних **payment\_description, product\_name** тощо&#x20;
{% endhint %}

Для генерації посилання на оплату вам достатньо в полі Калькулятор установити значення змінної **payment\_sum.** Одразу після цього з'явиться змінна **prodamus\_pay\_url**.&#x20;

**ПРИКЛАД посилання на оплату:**: <https://payform.ru/7p3JR8/>

Цю змінну можна вивести на екран як посилання в повідомленні або розмістити на кнопці з текстом "Оплатити".&#x20;

До оголошення змінної **payment\_sum** також можна вказати такі необов'язкові змінні:&#x20;

| Параметри функції          | Опис параметра                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **product\_name**          | найменування товару (якщо не вказати, заповнюється 'Оплата рахунку order\_id') - на скриншоті нижче показано, де відображається                                                                                                                                                                                                                                                                                                                    |
| **payment\_description**   | опис товару (якщо не вказати, заповнюється 'Оплата рахунку order\_id', нижче скрин) - на скриншоті нижче показано, де відображається                                                                                                                                                                                                                                                                                                               |
| **discount\_value**        | розмір знижки (наприклад discount\_value = 25 або discount\_value = 50.25)                                                                                                                                                                                                                                                                                                                                                                         |
| **customer\_phone**        | номер телефону покупця, не обов'язково, якщо передано параметр                                                                                                                                                                                                                                                                                                                                                                                     |
| **customer\_email**        | email покупця                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **link\_expired**          | час життя посилання на оплату, у форматі **дд.мм.рррр** (наприклад 25.01.2021). Також можна в полі "*Калькулятор"* вказати: *link\_expired = current\_date + 2* (посилання буде дійсним 2 дні до 00:00)                                                                                                                                                                                                                                            |
| **link\_expired**          | <p>також можна вказати дату з точним часом, через пробіл, у форматі <strong>дд.мм.рррр чч:мм</strong> (наприклад: <em>25.01.2021 12:23</em>). Також можна використовувати стандартні змінні, наприклад задамо час дії посилання 30 хвилин: </p><p>time = current\_time + 30<br>link\_expired = "#{current\_date} #{time}"</p>                                                                                                                      |
| **currency**               | <p>валюта платежу, за замовчуванням "rub". <br>Повний список аргументів: </p><p>rub</p><p>usd</p><p>eur</p><p>kzt<br>Цей параметр має бути переданий у нижньому регістрі.</p>                                                                                                                                                                                                                                                                      |
| **payment\_title**         | заголовок платежу (до 127 символів). Якщо не вказати, заповнюється текстом: “Оплата рахунку payment\_id” (payment\_id - ідентифікатор замовлення в Salebot)                                                                                                                                                                                                                                                                                        |
| **payment\_description**   | короткий опис платежу (до 127 символів)                                                                                                                                                                                                                                                                                                                                                                                                            |
| **locale**                 | мова сторінки оплати, вказується у вигляді en-US, fr-XC тощо. За замовчуванням - ‘ru-Ru’. Повний список доступний за посиланням <https://developer.paypal.com/api/rest/reference/locale-codes/>                                                                                                                                                                                                                                                    |
| **products\_for\_receipt** | <p><strong>Рядок від 50 до 4000 символів у форматі</strong> "опис замовлення - вартість - посилання на ресурс, що купується". </p><p>Наприклад:</p><p>“Курс ‘Рибалка на ляща’, вартість 4999 рублів, посилання на сторінку курсу: <https://www.lovilescha.ru/courses/poimai_kilogram/>". </p><p><mark style="color:червоний;"><strong>Обов'язковий</strong></mark>, якщо у вас немає своєї онлайн-каси, для фіскалізації оплат через 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=""></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>

Далі в потрібному місці виводимо URL, посилання prodamus\_pay\_url:

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

**prodamus\_available\_payment\_methods** оголошується до оголошення payment\_sum.

Можливі значення: &#x20;

<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 </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>Сбербанк Онлайн <strong>рахунок</strong> - Оплата за рахунком <strong>розстрочка</strong> - Частинами від Продамус </td></tr><tr><td><strong>installment_5_21</strong></td><td>Частинами від Продамус на 3 місяці </td></tr><tr><td><strong>installment_6_28</strong></td><td>Частинами від Продамус на 6 місяців </td></tr><tr><td><strong>installment_10_28</strong></td><td>Частинами від Продамус на 10 місяців </td></tr><tr><td><strong>installment_12_28</strong> </td><td>Частинами від Продамус на 12 місяців <strong>installment_0_0_3</strong> - Розстрочка від Тінькофф на 3 місяці</td></tr><tr><td><strong>installment_0_0_4</strong> </td><td>Розстрочка від Тінькофф на 4 місяці </td></tr><tr><td><strong>installment_0_0_6</strong></td><td>Розстрочка від Тінькофф на 6 місяців </td></tr><tr><td><strong>installment_0_0_10</strong></td><td>Розстрочка від Тінькофф на 10 місяців</td></tr><tr><td><strong>installment_0_0_12</strong></td><td>Розстрочка від Тінькофф на 12 місяців</td></tr><tr><td><strong>installment_0_0_24</strong> </td><td>Розстрочка від Тінькофф на 24 місяці</td></tr><tr><td><strong>installment_0_0_36</strong></td><td>Розстрочка від Тінькофф на 36 місяців </td></tr><tr><td><strong>кредит</strong> </td><td>Кредит від Тінькофф</td></tr><tr><td><strong>vsegdada_installment_0_0_4</strong></td><td>Розстрочка ВсегдаДа на 4 місяці (не працює з available_payment_methods) </td></tr><tr><td>vs<strong>egdada_installment_0_0_6</strong></td><td>Розстрочка від ВсегдаДа на 6 місяців</td></tr><tr><td><strong>vsegdada_installment_0_0_10</strong></td><td>Розстрочка від ВсегдаДа на 10 місяців</td></tr><tr><td><strong>vsegdada_installment_0_0_12</strong></td><td>Розстрочка від ВсегдаДа на 12 місяців без переплати</td></tr><tr><td>vs<strong>egdada_installment_0_0_24</strong></td><td>Розстрочка від ВсегдаДа на 24 місяці</td></tr><tr><td><strong>vsegdada_installment_0_0_36</strong> </td><td>Розстрочка від ВсегдаДа на 36 місяців</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 місяців</td></tr><tr><td><strong>otp_installment_0_0_10</strong></td><td>Розстрочка «ОТП Банку» на 10 місяців</td></tr><tr><td><strong>otp_installment_0_0_12</strong> </td><td>Розстрочка «ОТП Банку» на 12 місяців</td></tr><tr><td><strong>otp_installment_0_0_24</strong></td><td>Розстрочка «ОТП Банку» на 24 місяці</td></tr><tr><td><strong>otp_installment_0_0_36</strong></td><td>Розстрочка «ОТП Банку» на 36 місяців</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>

Дозволяється передавати кілька значень, розділяючи їх вертикальною рискою. \
Наприклад: prodamus\_available\_payment\_methods = "AC|PC|QW"

**prodamus\_currency** - ще один додатковий параметр для передавання суми в певній валюті.\
Можливі значення валюти: \
**kzt** - для тенге \
**eur** - для євро \
**usd** - для долара

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

Під час отримання колбека **payment\_callback** потрібно орієнтуватися на параметр **currency** і **currency\_sum,** в яких буде валюта і сума у валюті.

{% hint style="warning" %} <mark style="color:червоний;">**Важливо!**</mark> Перевірте, чи є у вас на сторінці метод оплати в потрібній валюті, оскільки якщо він відсутній, то буде перехід на сторінку без методів оплати.\
Методи підключаються через підтримку. Подивитися увімкнені можна в налаштуваннях сторінки або сформувавши посилання на оплату
{% endhint %}

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

<div data-with-frame="true"><figure><img src="/files/64eeb5932e9d46f834b7fba7c1416de796ea7f96" alt=""><figcaption><p>Варіанти оплати, які підключені для вашої сторінки</p></figcaption></figure></div>

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

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

Важливо! Після успішної або неуспішної оплати в бот надійдуть колбеки, за якими ви зможете зрозуміти, що була успішна оплата. Ці колбеки в системі ви бачите як повідомлення від користувача, щоб їх не міг надіслати користувач, вони складаються із секретного ключа та приписки зі статусом, наприклад: 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b6&#x36;**\_success** або 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b6&#x36;**\_fail**. Також після успішної оплати змінна **prodamus\_payment\_completed** встановлюється в **True**.

{% hint style="warning" %}
Увага! Колбеки приходять із затримкою, тож після виведення посилання на оплату користувачу рекомендуємо надіслати повідомлення типу: “Після оплати дочекайтеся повідомлення про успішне завершення оплати”
{% endhint %}

{% hint style="warning" %}
ВАЖЛИВО!\
Для посилань, створених за допомогою кнопки з функцією Оплата або за допомогою функції в Калькуляторі, після оплати в бота <mark style="color:помаранчевий;">**АВТОМАТИЧНО**</mark> надійде КОЛБЕК, який складається із символів секретного ключа платіжної системи, слова \_success і через пробіл сума платежу. \
\&#xNAN;*Для використання в налаштуваннях схеми достатньо його скопіювати.*&#x20;

Наприклад: `ovg58keefc_success`, де:&#x20;

ovg58keefc : секретний ключ **цілком**

\_success : результат обробки запиту (успішний платіж)
{% endhint %}

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

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

{% hint style="danger" %}
Тип порівняння повинен бути "**Повне співпадіння**"
{% endhint %}

{% hint style="warning" %}
Для здійснення повторного платежу обов'язково потрібно обнулити payment\_sum, раніше сформоване посилання і вже після цього переназначити змінну payment\_sum для отримання нового посилання&#x20;
{% endhint %}

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

Також у Продамусі існують сповіщення щодо активації/деактивації підписки:

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

1. «Підписник деактивував підписку» - якщо підписку скасовано вручну (наприклад, відмовився від підписки).

Може надійти до завершення поточного оплаченого періоду. Передбачає дію на ваш розсуд - ігнорування або взяття на контроль, спробу повернути підписника.

2. «Підписник реактивував підписку» - відновлення підписки.&#x20;

Може надійти, якщо підписник реактивував підписку до завершення поточного оплаченого періоду. Передбачає дію на ваш розсуд - ігнорування або видалення зі списку моніторингу на повернення.

3. «Деактивація підписки» - якщо підписку деактивовано після кількох невдалих списань

### **Як зберегти значення з колбека**

Після отримання сповіщення про успішну оплату клієнту в заявку (змінна payment\_callback) запишеться колбек від Продамуса з усіма даними щодо отриманого платежу. З нього можна зберегти потрібні дані й використовувати на власний розсуд. Приклад колбека:

`{"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**. Тоді під час отримання колбека їх можна буде дістати ось так&#x20;

`product = get(payment_callback,'products[0][name]')`&#x20;

`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 %}

Суму можна отримати так\
`summa = get(payment_callback,'sum')`

### Які колбеки доступні

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

1. Підписник деактивував підписку ([докладніше тут](#deaktivaciya-reaktivaciya-podpiski))
2. Підписник реактивував підписку ([докладніше тут](#deaktivaciya-reaktivaciya-podpiski))
3. Підписка завершена
4. Невдала оплата - приписка з поясненням (на скриншоті вище)
5. Сповіщення про майбутнє списання - дата і час майбутнього списання
6. Заявка на розстрочку зі статусом

Приклади колбеків у діалозі з клієнтом:&#x20;

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

Докладніше прочитати опис помилок можна тут:

{% embed url="<https://help.prodamus.ru/payform/integracii/tekhnicheskaya-dokumentaciya-po-avtoplatezham/kody-oshibok>" %}
Продамус: коди помилок
{% endembed %}

За бажанням можна налаштувати надсилання користувачу якогось повідомлення. Для прикладу надішлемо повідомлення, що автоматичне списання не вдалося.\
\
На сповіщення про **невдалу оплату з конкретною причиною**, можна налаштувати блок із відповіддю, наприклад, ось так:

<div data-with-frame="true"><figure><img src="/files/7d43fa9affaf42d19b45cf948f2c9e7a0093afa4" alt=""><figcaption><p>приклад блоку для сповіщень про невдалу оплату з конкретною причиною</p></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/ce3f7640892dfeaa2fcad575f222074a01b47d00" alt=""><figcaption><p>приклад блоку для сповіщень про невдалу оплату з будь-яким поясненням причини</p></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>

Для генерації посилання на оплату підписки вам необхідно встановити значення (id підписного товару) змінної **prodamus\_subscription**, одразу після цього з'явиться змінна **prodamus\_pay\_url**.&#x20;

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

Змінну **prodamus\_pay\_url** можна вивести на екран посиланням або розмістити на кнопці з текстом "Оплатити". Посилання має вигляд: <https://payform.ru/7p3JR8/><br>

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

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

{% hint style="warning" %}
customer\_phone потрібен для керування підпискою, якщо не передано customer\_email
{% endhint %}

### Як створити посилання на підписку функцією get\_prodamus\_subscription\_url

Розглянемо інший спосіб сформувати посилання на оплату товару за підпискою.&#x20;

Створюємо підписний товар у кабінеті Продамус.  Детальна інструкція, як це зробити: <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>

Для отримання посилання для оплати товару за підпискою в Калькуляторі вказуємо функцію&#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>. Отримати ID можна скопіювати в кабінеті Продамус  <mark style="color:зелений;">(обов'язковий параметр)</mark> </td></tr><tr><td><strong><code>product_name</code></strong></td><td>Назва товару. <mark style="color:зелений;">(обов'язковий параметр)</mark></td></tr><tr><td><strong><code>expired</code></strong></td><td><p>час життя посилання на оплату, у форматі <strong>дд.мм.рррр</strong> (наприклад 25.01.2021). Також можна в полі "Калькулятор<em>"</em> вказати: <em>expired = current_date + 2</em> (посилання буде дійсним 2 дні до 00:00).  <code>expired</code> також можна вказати дату з точним часом, через пробіл, у форматі <strong>дд.мм.рррр чч:мм</strong> (наприклад: <em>25.01.2021 12:23</em>). Також можна використовувати стандартні змінні, наприклад задамо час дії посилання 30 хвилин: </p><p><code>time = current_time + 30</code><br><code>expired = "#{current_date} #{time}"</code><br><br>Щоб пропустити цей параметр, передайте замість нього пару одинарних або подвійних лапок, або значення None</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td>номер телефону покупця, не обов'язково, якщо передано параметр <code>customer_email</code> Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td>email покупця, не обов'язково, якщо передано параметр <code>customer_phone</code> Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>discount</code></strong></td><td>розмір знижки. Передаємо параметр числом або числом з крапкою: 25 або 63.5. Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>description</code></strong></td><td>опис товару (якщо не вказати, заповнюється 'Оплата рахунку order_id'). Щоб пропустити цей параметр, передайте замість нього одинарні або подвійні лапки.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td>додаткові параметри, яких немає в цій функції.<br>Можливі додаткові параметри можна подивитися за посиланням у документації щодо роботи з API платіжної системи <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov</a><br><br>Приклад: <code>extra_params = {"payments_limit": "3"}</code><br><br><em>Щоб пропустити цей параметр, передайте замість нього пару одинарних/ пару подвійних лапок або значення None.</em></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>Рядок від 50 до 4000 символів у форматі</strong> "опис замовлення - вартість - посилання на ресурс, що купується". </p><p>Наприклад:</p><p>“Курс ‘Рибалка на ляща’, вартість 4999 рублів, посилання на сторінку курсу: https://www.lovilescha.ru/courses/poimai_kilogram/". </p><p><strong>Обов'язковий</strong>, якщо у вас немає своєї онлайн-каси, для фіскалізації оплат через Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Приклад коду для копіювання" %}
**extra\_params** = {<mark style="color:червоний;">"payments\_limit"</mark>: <mark style="color:червоний;">"3"</mark>}&#x20;

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

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

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

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

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

{% hint style="info" %}
Метод працює лише на реальних підписках, у демо-режимі прив'язки до картки немає
{% endhint %}

{% hint style="warning" %}
Для керування підпискою має бути передано один із обов'язкових параметрів customer\_phone або customer\_email.
{% endhint %}

Для можливості відписки користувача від підписки потрібно створити блок і викликати функцію: **<https://store.salebot.pro/function/delete\\_subscription\\_prodamus>**

З параметрами:

**{**\
**"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 профілю в системі Продамус

{% hint style="danger" %}
Звертаємо увагу!

Якщо надійде id профілю, то значення буде збережено в змінну profile\_id.

profile\_id можна передати у функцію delete\_subscription\_prodamus замість customer\_phone або customer\_email для скасування підписки.
{% endhint %}

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

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

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

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

prodamus\_subscription\_switch\_status(subscription\_id, switcher, customer\_phone, customer\_email, profile\_id)

&#x20;**id\_subscription** - id підписного товару&#x20;

**switcher** = 0 — це зупинка підписки, якщо передати 1, підписка знову активується.&#x20;

**customer\_phone** - телефон підписника — необов'язковий, якщо передано customer\_email&#x20;

**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>

Приклад: передано параметр **customer\_phone,** пропущено customer\_email\
`stat = prodamus_subscription_switch_status`(`'618117', '0', '75431312321')`

Приклад 2: передано параметр **customer\_email,** пропущено customer\_phone\
`stat = prodamus_subscription_switch_status('618117', '0', '', 'examp@mail.com')`

{% hint style="success" %}
Функція поверне ok, якщо все пройшло успішно, або опис помилки
{% endhint %}

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

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

**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, а кількість списань зі знижкою за замовчуванням — на весь період підписки)&#x20;

r = prodamus\_subscription\_discount('624034', '1')

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/_4i_sKKn39tHVdnb47xgj8fxfP_x9UGMWLaierBnpup9LCZMdVT0G9AmIOa8S_uMrVXWQIH6rvZnujCYPGcphkYvwFbCXEh819tWIjGIM4mHvd3afSlPzhZfcWk6D1z1tyBwFrZV" alt="Приклад 1" width="563"></div>

2\. Оформлення знижки 2 грн на наступні 3 списання (номер телефону замінено порожніми лапками, оскільки буде автоматично взято зі змінної customer\_phone)&#x20;

r = prodamus\_subscription\_discount('624034', '2', '', '3')

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/IgutVRIqTFbaof9A14qdQRLCB6oop4mSAIew5s3lz62Kb4YVHdHJEt6GuC7AACStDgRiR1d_XEG1k5Dj7c2M-VNtci16JbklMTEla8_RNWD7wBNeG649g0lnFiMZilhri3phwKr-" alt="Приклад 2" 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="Приклад 3" width="563"></div>

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

За допомогою цього методу можна зсунути дату наступного платежу за підпискою. Зсувати дату можна лише "в майбутнє" щодо поточної встановленої дати наступного платежу. Таким чином збільшуючи термін перебування в клубі.

{% hint style="success" %}
Наприклад, можна застосовувати як бонус для підписників.
{% endhint %}

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

**prodamus\_subscription\_payment\_date(subscription\_id, date, customer\_phone, profile\_id)**&#x20;

де:

**subscription\_id** - id підписки \
**date** - дата у форматі дд.мм.рррр гг:хх або дд.мм.рррр, тоді час буде 00:00\
**customer\_phone** - не обов'язковий, якщо не передати, підтягнеться зі змінної customer\_phone, якщо і там не знайде, то не спрацює\
**profile\_id** - ID профілю в системі Продамус

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

Щоб передати в Продамус потрібні вам параметри (наприклад, дата старту підписки, вимкнення розстрочки тощо), у назві змінної дописуйте на початку prodamus\_&#x20;

Тоді під час формування посилання на оплату ці параметри передаватимуться до платіжної системи автоматично.

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

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

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

{% hint style="warning" %}
Спочатку переведіть свою платіжну сторінку в ДЕМО режим ⤵

Не забудьте натиснути кнопку "Зберегти"
{% endhint %}

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

#### Щоб провести тестовий платіж, ви можете скористатися тестовими рахунками

Тестові картки Сбербанку:&#x20;

МИР\
Номер картки 2202 2050 0001 2424\
Термін дії до 05/35\
Перевірочний код на зворотному боці 669

MasterCard\
Номер картки 5469 9801 0004 8525\
Термін дії до 05/26\
Перевірочний код на зворотному боці 041\
Перевірочний код 3-D Secure 111111

Visa\
Номер картки 4006 8009 0096 2514\
Термін дії до 05/26\
Перевірочний код на зворотному боці 941\
Перевірочний код 3-D Secure 111111

{% hint style="success" %}
! Під час оплати з тестових рахунків усі налаштовані воронки й інтеграції спрацюють, як під час звичайної оплати !&#x20;
{% 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
