# Stripe

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

Щоб підключити платіжну систему Stripe, вам знадобляться секретний API-ключ і ключ вебхука.

Ви можете скопіювати секретний API-ключ, перейшовши в розділ Developers -> API key і скопіювавши Secret key.

Крок 1. Перейдіть у розділ Developers -> API key:

<figure><img src="/files/9f39a60bd6ad4fe874fad72a6844ed6e49b2e809" alt="" width="563"><figcaption><p>Рис. 1 Як знайти розділ API</p></figcaption></figure>

Крок 2. Знайдіть і скопіюйте Secret key:

<figure><img src="/files/f109bd96f2aca19b3b072a5917c23baa955c19ac" alt=""><figcaption></figcaption></figure>

Далі потрібно налаштувати URL для callback-запитів. Це необхідно для того, щоб бот отримував сповіщення про оплату.

Перейдіть у розділ Webhooks і додайте адресу для вебхуків.

<figure><img src="/files/f91d82cc5f8db759b4d51f9e77ea8331c105bfd8" alt=""><figcaption></figcaption></figure>

Відкриється форма:

<figure><img src="/files/5c4d7161e64cfd20397f48d51cc9f27a14ab11ae" alt=""><figcaption></figcaption></figure>

Крок 1. Натисніть "+add destination".

Крок 2. Виберіть події:

<figure><img src="/files/93473b9f18059d229e279d9d2773ecdfa5530f30" alt=""><figcaption></figcaption></figure>

Крок 3. Виберіть тип "Webhook endpoint":

<figure><img src="/files/990c0f4a96ae3189c854b2c6e4e17cadd52ebf15" alt=""><figcaption></figcaption></figure>

Крок 4. Ознайомлюємося з типом запиту і натискаємо "Continue":

<figure><img src="/files/af3dacc6c456e55cbb066cab0fbc2b16826ac405" alt=""><figcaption></figcaption></figure>

Крок 5. Вписуємо назву та вказуємо URL endpoint:

<figure><img src="/files/e74d9c68338ad1a3011d0807562ad2648f200e25" alt=""><figcaption></figcaption></figure>

Specify URL - <https://chatter.salebot.pro/stripe_callback/result>

Крок 6. Буде створено два endpoint-и, ви можете переглянути налаштування перед додаванням:&#x20;

<figure><img src="/files/7d644e85910903613a7b59cb93f3bc1b9b5a5a92" alt="" width="563"><figcaption></figcaption></figure>

Крок 7. Далі натисніть кнопку "Add destinations". Після цього вебхуки буде збережено.

Крок 8. Натисніть кнопку "Done".

<figure><img src="/files/5024ec45b358bc8651f2f8176fe28f76e4bfbc0e" alt=""><figcaption></figcaption></figure>

Зберігаємо це і потрапляємо на сторінку з установленим вебхуком:

<figure><img src="/files/1a2a4088605a80df77139abb249eac0790e9655d" alt=""><figcaption></figcaption></figure>

Крок 9. Далі натисніть на вебхук, де ви вибрали всі події:

<figure><img src="/files/bf1df0bb3e44758d26f57803f946e56ebcce2a9d" alt=""><figcaption></figcaption></figure>

Крок 10. Знаходимо Signig key і зберігаємо його собі (у майбутньому він знадобиться для підключення до Salebot):

<figure><img src="/files/69bedafdc2067f0f68f1a2416b7512f6000aca06" alt=""><figcaption></figcaption></figure>

Після отримання ключів переходимо до підключення в Mavibot.

У Mavibot відкрийте розділ "Acquiring" і виберіть Stripe.

<figure><img src="/files/9b8d23f1eeea4bfcc343d507ec3e3414b3e27875" alt=""><figcaption></figcaption></figure>

На сторінці підключення потрібно ввести отримані ключі:

<figure><img src="/files/23c76192ae24ec89fb2bd223c38e9967c2cc0fbc" alt=""><figcaption></figcaption></figure>

Натисніть "Save Settings".

{% hint style="success" %}
Готово!&#x20;

На цьому підключення платіжної системи завершено!
{% endhint %}

## Як підключити callback про статус транзакції

Щоб отримати додатковий callback, нам потрібно підключити вебхук у **додаток до наявного.**

Specify URL - [https://chatter.salebot.pro/stripe\_callback/\<api\_key>/charge\_status](https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status)

і виберіть події:

* `charge.failed`
* `charge.pending`
* `charge.succeeded`

<figure><img src="/files/987ebcf0d5e4b36a36e9dd9223b9fc376c033151" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
**Детальніше про кожен тип вебхука:**

1. **charge.succeeded** - містить інформацію про успішне завершення транзакції (аналогічно callback про успішну оплату)
2. **charge.pending** - "транзакція виконується", її завершення може тривати до 7 днів.\
   Вебхук матиме вигляд {перші 10 символів }{тип вебхука}\
   *Наприклад*: *sk\_test\_45LDPJLKT95d\_charge.pending*&#x20;
3. **charge.failed** *-* "транзакція не вдалася."\
   Вебхук матиме вигляд {перші 10 символів }{тип вебхука}\
   Наприклад: *sk\_test\_45LDPJLKT95d\_charge.failed*
   {% endhint %}

Додаємо вебхук, отриманий після збереження, у поле Mavibot - Webhook key2:

<figure><img src="/files/24f971bec6bef7eb489d6a52bc4ae613fe0662f0" alt="" width="563"><figcaption></figcaption></figure>

**stripe\_invoice\_id** - ID транзакції, для якої callback про успішну оплату не був отриманий одразу після платежу.

## Як підключити податки

Щоб використовувати податки в платежах, спочатку потрібно створити їх в особистому кабінеті Stripe. Для цього введіть tax rates у пошуковий рядок:

<figure><img src="/files/cc56d7f8268039d037f3907d6cc26541eb23a622" alt=""><figcaption></figcaption></figure>

І натисніть "+ Add tax rates":

<figure><img src="/files/2df7208ea6177cf95bde760b1f68f0c575f8f327" alt=""><figcaption></figcaption></figure>

Далі вкажіть застосовну ставку податку:

<figure><img src="/files/a9fa411559ea5ef4e009d9748900412948dc9dad" alt=""><figcaption></figcaption></figure>

У відкритому меню виберіть тип податку, регіон, до якого він застосовується, ставку податку та опцію, що вказує, чи має цей податок бути включений у суму платежу — 'Inclusive', чи буде доданий понад суму — exclusive:

<figure><img src="/files/8151ae8a1455be3f22e42eb767a877c412b6bfa1" alt=""><figcaption></figcaption></figure>

Після створення ставки податку скопіюйте її ID у **stripe\_tax\_id** змінну перед встановленням суми платежу.

<figure><img src="/files/431468691b775d45c6cb9428406eae5aae3c8102" alt=""><figcaption></figcaption></figure>

Щоб уникнути помилок, після отримання посилання поставте в змінну stripe\_tax\_id порожній рядок (""), щоб застосовувати податок лише тоді, коли це потрібно.

Якщо все зроблено правильно, то у випадку ставки податку з параметром exclusive ви побачите таке

<figure><img src="/files/34e0121e4a92ae6b2968204878c7776727ef4942" alt=""><figcaption><p>Приклад платежу зі ставкою податку exclusive</p></figcaption></figure>

## **Як отримати посилання на оплату**&#x20;

Щоб згенерувати посилання на оплату, потрібно задати значення **payment\_sum** змінна (наприклад, 150 або 100.55 (через крапку!)), після чого з'явиться змінна stripe\_pay\_url. Цю змінну можна відобразити у вигляді посилання або розмістити на кнопці з текстом "Pay".

Посилання має вигляд:

`https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl`

{% hint style="warning" %}
За замовчуванням встановлено USD (долар), якщо вам потрібна інша валюта, потрібно встановити значення **currency** змінну.
{% endhint %}

Також перед встановленням значення **payment\_sum** змінної можна задати такі необов'язкові змінні для налаштування платежу.

<table><thead><tr><th width="255">Параметри функції</th><th>Опис параметрів</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>це валюта замовлення. Допустимі значення -<a href="https://stripe.com/docs/currencies">https://stripe.com/docs/currencies</a></td></tr><tr><td><strong>payment_description</strong></td><td>опис замовлення</td></tr><tr><td> <strong>stripe_tax_id</strong></td><td>Це ID ставки податку, налаштоване в особистому кабінеті Stripe.<br>Як його налаштувати, описано в розділі "Як налаштувати податки" посилання "<a href="#kak-podklyuchit-nalogi">Як підключити податки</a>"</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>Цей параметр вказує на необхідність збереження інвойсів (рахунків, квитанцій). Введіть будь-яке значення — тоді всі необхідні документи будуть доступні у вашому особистому кабінеті Stripe.</td></tr><tr><td><strong>stripe_locale</strong></td><td>встановити мову платіжного посилання: en, ru, de. Усі доступні мови тут: <a href="https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale ">https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale </a><br>Якщо <strong>stripe_local</strong> значення не вказано, за замовчуванням буде використано мову браузера клієнта.</td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td><p>це спосіб оплати, за замовчуванням оплата здійснюється карткою. Ви можете замінити його на інші доступні для Stripe способи оплати. Доступні методи перелічено нижче</p><p>Наприклад, <code>stripe_payment_method_type = "customer_balance"</code></p></td></tr><tr><td><strong>stripe_additional_payment_method_type</strong> </td><td>потрібно додати додатковий спосіб оплати. Доступні методи наведено нижче, наприклад, <code>stripe_additional_payment_method_type  = "sepa_debit"</code></td></tr><tr><td><strong>coupon_id</strong></td><td>ID купона зі знижкою</td></tr><tr><td>stripe_expired </td><td>це строк дії платіжного посилання. Вказується в секундах. Мінімальний час — 30 хвилин, максимальний — 24 години. За замовчуванням — 24 години</td></tr><tr><td>stripe_automatic_tax</td><td>увімкнення автоматичного розрахунку та стягнення податків під час оплати. Щоб увімкнути, передайте "1". Детальну інформацію про це налаштування можна знайти в документації Stripe. посилання <a href="https://docs.stripe.com/tax/set-up">в документації Stripe </a></td></tr></tbody></table>

{% hint style="warning" %}
Увага! Якщо ви використовуєте обидві  ***stripe\_payment\_method\_type** та  **stripe\_additional\_payment\_method\_type*** змінн&#x456;***, то значення в них МАЮТЬ БУТИ РІЗНИМИ!***
{% endhint %}

<details>

<summary><em><mark style="color:green;"><strong>Список значень для</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> та <strong>stripe_additional_payment_method_type</strong></em></summary>

card\
acss\_debit\
affirm \
afterpay\_clearpay \
alipay\
au\_becs\_debit \
bacs\_debit \
bancontact \
blik \
boleto \
cashapp \
customer\_balance \
eps \
fpx \
giropay \
grabpay \
ideal \
klarna \
konbini \
link \
oxxo \
p24 \
paynow \
paypal \
pix \
promptpay \
sepa\_debit \
sofort \
us\_bank\_account \
wechat\_pay zip

</details>

Докладніше про кожен із методів і для яких країн вони доступні можна дізнатися в документації Stripe: [подивитися на сайті ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)

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

Створимо посилання на оплату на суму 1000 рублів (за замовчуванням долар)

<figure><img src="/files/4b98a43c035c9acbf2e43c0767df4fb8471e6017" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Зверніть увагу:** \
\- Спочатку вказуєте необов'язкові параметри  **first\_name, payment\_description** тощо.\
\- І останньою присвоюємо значення змінної **payment\_sum**

Змінні можна задати і раніше в ланцюжку, а не в одному блоці, це приклад.
{% endhint %}

Далі в потрібному місці виводимо змінну **stripe\_pay\_url**, у якій міститься посилання в блоці або в кнопці:

Приклад 1. Виводимо посилання на оплату прямо в повідомленні:

<figure><img src="/files/93fe6355b203d5bcfc54f21517e05aafc254231b" alt=""><figcaption></figcaption></figure>

Тестування в боті:

<figure><img src="/files/fb1af257ca69386282d421919b86e77432fa2c7b" alt="" width="563"><figcaption></figcaption></figure>

Приклад 2. Додаємо посилання на оплату в кнопку:

<figure><img src="/files/0f19df71bd79ae5003d8a3a4e0257898e87b725e" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/658aef056520ccf4aafd67e30731646a0805a4b4" alt="" width="563"><figcaption></figcaption></figure>

Приклад 3. Додаємо посилання як вкладення до повідомлення:

<figure><img src="/files/d2bb27d867b31fcf2ee40aaeae8b3d1e2ba2fa15" alt=""><figcaption></figcaption></figure>

Тестування в боті:

<figure><img src="/files/1a22bd91fcd596b435506344c3130ccf0d2aaa39" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
Допустимі всі три варіанти для надсилання посилання на оплату в боті.&#x20;
{% endhint %}

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

<figure><img src="/files/9048a3ba356167b6cfc43d9eb725101123aba558" alt=""><figcaption></figcaption></figure>

У прикладі видно, що параметри, які ми вказували в калькуляторі в налаштуваннях блоку, були застосовані: опис замовлення, валюта і сума.&#x20;

Якщо передасте параметр податкової ставки (**stripe\_tax\_id)** у блоці:&#x20;

<figure><img src="/files/d595f9fa4b98588f17d4a24e9686c6919ca83da1" alt=""><figcaption></figcaption></figure>

То також буде відображено податкову ставку у формі оплати:

<figure><img src="/files/e3afce860f7c7acf1176477cb25fa0251593bf25" alt=""><figcaption></figcaption></figure>

<details>

<summary>Приклад коду для копіювання</summary>

`payment_description = 'Тестова оплата в Страйп'` \
`currency = 'RUB'` \
`stripe_tax_id = 'скопіюйте сюди ваш tax ID'` \
`payment_sum = 1000`

Де знайти tax ID:

<figure><img src="/files/94fe015ec72a229a76d2ba0a80585169fe252f8f" alt=""><figcaption></figcaption></figure>

</details>

## **Як налаштувати рекурентні платежі**

Для рекурентних платежів (підписок) потрібно до оголошення змінної **payment\_sum** оголосити змінну **stripe\_subscription** і присвоїти їй назву підписки.&#x20;

Також можна додати такі змінні: \
**interval** – тривалість інтервалу підписки, у цю змінну потрібно передати значення **‘day’** - для днів, **‘week’** - тижнів, **‘month’** - місяців, **‘year’** - років. \
Якщо змінну не оголошено, то ***за замовчуванням*** буде передано параметр **‘month’.**

{% hint style="warning" %}
**Важливо!** Тривалість одного циклу підписки не може бути більшою за 1 рік (для параметра ‘year’), більшою за 12 місяців (для параметра ‘month’), більшою за 52 тижні (для параметра ‘week’).
{% endhint %}

<figure><img src="/files/214c8b0424e65674117e8aec8235d95a78953a58" alt=""><figcaption></figcaption></figure>

**interval\_count** – кількість зазначених інтервалів, скільки днів, тижнів або місяців буде в підписці за вказану суму. ***За замовчуванням*** буде передано параметр, що дорівнює одиниці (**1**);

**stripe\_payment\_method\_type** - спосіб оплати, за замовчуванням встановлено оплату карткою (card). Можна замінити на інші доступні для Stripe способи оплати. Нижче вказані доступні методи.

Наприклад, `stripe_payment_method_type = 'customer_balance'`

**stripe\_additional\_payment\_method\_type** - додати додатковий спосіб оплати. Нижче вказані доступні методи

Наприклад, `stripe_additional_payment_method_type  = 'sepa_debit'`

{% hint style="warning" %}
Важливо! Якщо використовуєте обидві змінні ***stripe\_payment\_method\_type** і  **stripe\_additional\_payment\_method\_type, то значення в них ОБОВ'ЯЗКОВО мають бути РІЗНИМИ!***
{% endhint %}

<details>

<summary><em><mark style="color:green;"><strong>Список значень для</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> і  <strong>stripe_additional_payment_method_type:</strong></em></summary>

card\
acss\_debit\
affirm \
afterpay\_clearpay \
alipay\
au\_becs\_debit \
bacs\_debit \
bancontact \
blik \
boleto \
cashapp \
customer\_balance \
eps \
fpx \
giropay \
grabpay \
ideal \
klarna \
konbini \
link \
oxxo \
p24 \
paynow \
paypal \
pix \
promptpay \
sepa\_debit \
sofort \
us\_bank\_account \
wechat\_pay zip

</details>

{% hint style="info" %}
Докладніше про кожен із методів і для яких країн вони доступні дивіться в документації Stripe: див. сайт посилання [подивитися на сайті ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)
{% endhint %}

{% hint style="warning" %}
**Увага!** Тривалість підписки не може перевищувати 1 рік (для параметра ‘year’), більше ніж 12 місяців (для параметра ‘month’), більше ніж 52 тижні (для параметра ‘week’).
{% endhint %}

У цьому прикладі буде створено підписку з назвою 'My\_subscription' вартістю 90 USD на 3 місяці, і повторний платіж буде здійснено на ту саму суму через ці 1 місяць:

<figure><img src="/files/780872cd19c417acdbe27f1d14934672751d55b4" alt=""><figcaption></figcaption></figure>

Приклад для копіювання:

`stripe_subscription = 'My_subscription'` \
`interval = 'month'` \
`interval_count = 3` \
`payment_sum = 90`&#x20;

Після оплати у клієнта з'являться **stripe\_subscription\_id** змінні в змінних угоди, які знадобляться для налаштування скасування підписки, і **stripe\_customer\_id**, яку згодом можна використовувати для перевірки статусу підписки.

{% hint style="warning" %}
Сповіщення (callback) надходить лише при першому повторному платіжі!

Для повторних звернень callback НЕ БУДЕ. Контроль здійснюється через функцію і stripe\_customer\_id. [через функцію](#proverka-statusa-podpiski) посилання
{% endhint %}

<figure><img src="/files/3269384e686290dbc6cfa77bb0dd75e6714e6452" alt="" width="371"><figcaption></figcaption></figure>

### Повернення до налаштувань звичайних платежів

Щоб повернутися до звичайних платежів, присвойте змінній підписки порожній рядок **stripe\_subscription = "**. У цьому випадку змінні interval і interval\_count не впливатимуть на створення посилання.

<figure><img src="/files/7b48ed4ca76e0d8ba8cfb0a224fca04d51184911" alt=""><figcaption></figcaption></figure>

### **Скасування налаштувань підписки**

Щоб скасувати підписку в калькуляторі, використовуйте **stripe\_remove\_subscription(stripe\_subscription\_id)** метод, де **stripe\_subscription\_id** є ідентифікатор, який було збережено в інформації про угоду після оплати.

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

<figure><img src="/files/6a8af1d39069b5c0d5991a8dfb02a07e2d8cf75a" alt=""><figcaption></figcaption></figure>

answer = stripe\_remove\_subscription('#{stripe\_subscription\_id}')

stripe\_remove\_subscription -  У разі успіху ви отримаєте відповідь з інформацією про дату, до якої скасована підписка залишається дійсною.

У цьому прикладі результат виконання функції буде поміщено в змінну answer, і можна буде перевірити результат виконання.&#x20;

### Перевірка статусу підписки

**stripe\_check\_subscription(subscription\_id, customer\_id)**, де

**stripe\_subscription\_id** - ID підписки \
**stripe\_customer\_id** - ID клієнта в Stripe (необов'язковий параметр)

<figure><img src="/files/93221eea5d8b47f2ed8d71e9de368b05ec9c0908" alt=""><figcaption></figcaption></figure>

## Як створити купон і отримати ID знижки

Щоб отримати ID знижки, створіть купон у своєму особистому кабінеті в розділі ”coupons”. посилання ”[coupons](https://dashboard.stripe.com/coupons)».

<figure><img src="/files/1d1a6e509c72d2da4a0200d8534dbfb58eb2473a" alt=""><figcaption></figcaption></figure>

Після натискання кнопки “New” відкриється сторінка, де потрібно вказати:

1. &#x20;Name — назва знижки;
2. ID — ідентифікатор, який генерується автоматично.
3. Type — тип знижки: відсоткова або фіксована сума
4. Duration — тривалість знижки (одноразова або повторювана, наприклад, для підписок) та інші параметри.

<figure><img src="/files/f17009a11c4d1608f1c4fde0db9ad61e22ace85d" alt=""><figcaption></figcaption></figure>

Купон зі знижкою з'явиться в “Product catalog“ у розділі “Coupons”, а переглянути ID знижки можна, перейшовши в меню купона:

<figure><img src="/files/6eec70bcfd96d00c45a8330b895ebd4c464a384d" alt=""><figcaption></figcaption></figure>

Натисніть на купон, щоб скопіювати ID купона:

<figure><img src="/files/f6405cedfc064a101c40a4be453af129c160b9a2" alt=""><figcaption></figcaption></figure>

### Як додати знижку до замовлення

1. Під час генерації платіжного посилання (як для підписок, так і для одноразових платежів).

У калькуляторі блоку перед оголошенням **payment\_sum** змінної встановіть **coupon\_id** змінної, присвоївши їй ID знижки з особистого кабінету Stripe.

<figure><img src="/files/d0442c737c0446a72219528957b34918ebe3213c" alt=""><figcaption></figcaption></figure>

2. Щоб додати до наявної підписки за допомогою **stripe\_add\_subscription\_discount** функцію.

Встановіть умови для запуску блоку і викличте вказану функцію в калькуляторі, передавши їй параметри stripe\_subscription\_id (ID підписки) і coupon\_id (ID купона зі знижкою). Знижка буде застосована до наступних платежів за підпискою.

<figure><img src="/files/b90b105fa28e0d0114070652c96172ab2db49b48" alt=""><figcaption></figcaption></figure>

<details>

<summary>Приклад коду для копіювання</summary>

`stripe_subscription = 'Підписка преміум'` \
`interval = 'month'` \
`payment_description = 'Тестова оплата в Страйп'` \
`currency = 'USD'` \
`coupon_id = 'ID вашого купона'` \
`stripe_add_subscription_discount(stripe_subscription_id, coupon_id)` \
`stripe_tax_id = 'ID податку'` \
`payment_sum = 90`

</details>

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

<figure><img src="/files/8d8aa13242f34a786e62c852d7b00f99ae8b87a5" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Докладніше про створення підписки дивіться в розділі "Як налаштувати рекурентні платежі" посилання "[Як налаштувати рекурентні платежі](#kak-nastroit-rekurrentnye-platezhi)"
{% endhint %}

### Як видалити/змінити знижку на підписку

Знижку, прив'язану до підписки, можна видалити або замінити на іншу знижку.

Якщо ви хочете припинити дію знижки, встановіть умову для запуску блоку та викличте **stripe\_remove\_subscription\_discount** функцію в калькуляторі, передавши їй **stripe\_subscrition\_id** параметр (ID підписки).

<figure><img src="/files/971152089924bec873c8259dd1c5dc3b4c67b405" alt=""><figcaption></figcaption></figure>

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

Заміна знижки, а також додавання нової здійснюється за допомогою **stripe\_add\_subscription\_discount** функції. Не забудьте передати їй **stripe\_subscription\_id** та **coupon\_id** параметри.\
Успішний запит оновить купон, прив'язаний до підписки, і поверне повідомлення з актуальною інформацією.

{% hint style="info" %}
Про те, як отримати ID знижки, можна прочитати в розділі "Як створити купон і отримати ID знижки". посилання "[Як створити купон і отримати ID знижки](#kak-sozdat-kupon-i-poluchit-id-skidki)".
{% endhint %}

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

Після успішної оплати в бот надсилатимуться callback-и, які дадуть вам зрозуміти, що оплата була успішною. Ви бачите ці callback-и в системі як повідомлення від користувача, тому, щоб користувач не міг їх надсилати, вони складаються з перших 20 символів секретного ключа та постскрипту про успіх, наприклад: **sk\_live\_d35gky6d8ers\_success**&#x20;

<figure><img src="/files/4ad06608815cbb2ce5a5dba0a5574a61fee3c6fc" alt="" width="563"><figcaption></figcaption></figure>

Ці колбеки НЕ ВИДИМІ для користувача, вони відображаються лише оператору.

Тип порівняння має бути "**Exact Match"**

Також після успішної оплати **stripe\_payment\_completed** змінна встановлюється в **True.**

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

<figure><img src="/files/f5c4737d39a84e68e20d97851e9e3a51ed80e8c7" alt=""><figcaption></figcaption></figure>

Після завершення платежу **stripe\_callback\_data** змінна буде додана до клієнта, міститиме дані відповіді платіжної системи на завершену транзакцію. Ви можете отримати потрібні дані з отриманого словника за допомогою **get** методу.

{% hint style="warning" %}
Щоб виконати повторний платіж, потрібно скинути payment\_sum, попередньо згенероване посилання, а потім знову присвоїти змінну payment\_sum, щоб отримати нове посилання. Ви можете вказати попереднє значення.
{% endhint %}

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

Щоб протестувати інтеграцію, ви можете використовувати секретний ключ із тестового середовища. Для цього перемкніться в тестовий режим в особистому кабінеті Stripe за допомогою перемикача в правому меню&#x20;

![](https://lh5.googleusercontent.com/r-tuJboMES8alkTUpKwA4HKrmL_epNtSXdENrv12EyR9dGCtvRLBK6qw4UGcr59GA3unxc1cV1otCu80nqHEw9VhbEK05ovPQ1Ad8chBv50LAWPO16nEPC2hFhCAsCe3khtBJrob=s0)

Далі виконайте налаштування, описане на початку цього посібника. Введіть тестовий секретний ключ і додайте адресу вебхука до тестового середовища.

Тестовий номер картки

4242 4242 4242 4242\
будь-яка дата в майбутньому\
CVC - будь-які три цифри

Якщо щось не працює, звірте дані з даними на офіційному сайті. посилання[ на офіційному сайті.](https://stripe.com/docs/testing#regulatory-cards)


---

# Agent Instructions: 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/oplata/stripe.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.
