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

# Stripe

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

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

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

Крок 1. Перейдіть до Developers → API keys:

<div data-with-frame="true"><figure><img src="/files/489fbb983b1a827ceb4d7bd2503c7f2904abfbec" alt=""><figcaption><p>Рис. 1. Як знайти розділ api keys</p></figcaption></figure></div>

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

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

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

Перейдіть до розділу Webhooks і додайте URL webhook.

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

З'явиться форма.

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

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

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

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

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

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

Крок 4. Перевірте тип запиту та натисніть "Continue".

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

Крок 5. Введіть назву та вкажіть URL endpoint.

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

Встановіть URL: <https://chatter.mavibot.ai/stripe\\_callback/result>

Крок 6. Буде створено два endpoint'и — перед додаванням ви можете перевірити налаштування.

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

Крок 7. Натисніть кнопку "Add destinations". Webhook'и буде збережено.

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

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

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

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

Крок 9. Натисніть на webhook, де ви вибрали всі події.

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

Крок 10. Знайдіть ключ підпису і збережіть його (він знадобиться вам пізніше для підключення до MaviBot).

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

Після того як у вас будуть ключі, перейдіть до підключення в Mavibot.

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

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

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

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

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

{% hint style="success" %}
Готово! Ви підключили Stripe.
{% endhint %}

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

Щоб отримувати додатковий callback, потрібно додати другий webhook поруч із уже наявним.

Встановіть URL: <https://chatter.mavibot.ai/stripe\\_callback/\\>\<api\_key>/charge\_status

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

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

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

{% hint style="success" %}
Докладніше про кожен тип webhook:

1. `charge.succeeded` — містить інформацію про успішно завершену транзакцію (схоже на callback успішної оплати)
2. `charge.pending` — "транзакція в процесі", може тривати до 7 днів. Webhook матиме формат {перші 10 символів}{тип webhook} Наприклад: sk\_test\_45LDPJLKT95d\_charge.pending
3. `charge.failed` — "транзакція не вдалася". Webhook матиме формат {перші 10 символів}{тип webhook} Наприклад: sk\_test\_45LDPJLKT95d\_charge.failed
   {% endhint %}

Додайте ключ webhook, отриманий після збереження, у поле Mavibot — Webhook key2.

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

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

## Як налаштувати податки

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

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

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

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

Потім введіть відповідну ставку податку.

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

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

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

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

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

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

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

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

Як отримати платіжне посилання

Щоб згенерувати платіжне посилання, встановіть значення змінної 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="271.8984375">Параметри функції</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>ідентифікатор ставки податку, налаштований у вашій панелі Stripe.<br>Інструкції з налаштування наведені в "<a href="#how-to-set-up-taxes">Як налаштувати податки</a>" розділі.</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>прапорець для увімкнення збереження інвойсів (квитанцій). Встановіть будь-яке значення, щоб увімкнути цю функцію — усі відповідні документи будуть доступні у вашій панелі Stripe.</td></tr><tr><td><strong>stripe_locale</strong></td><td><p>встановіть мову сторінки оплати: en, de тощо. Усі доступні варіанти: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale</p><p>Якщо stripe_locale не задано, буде використано мову браузера клієнта.</p></td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td>спосіб оплати; за замовчуванням це оплата карткою. Можна замінити іншими способами оплати, доступними в Stripe. Доступні методи наведено нижче. Наприклад, <code>stripe_payment_method_type = "customer_balance"</code></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>ідентифікатор купона знижки</td></tr><tr><td>stripe_expired </td><td>час дії платіжного посилання. Вказується в секундах. Мінімум — 30 хвилин, максимум — 24 години. За замовчуванням — 24 години.</td></tr><tr><td>stripe_automatic_tax</td><td>увімкнути автоматичний розрахунок і стягнення податку під час оформлення замовлення. Передайте "1", щоб увімкнути. Докладніше дивіться в <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, значення в них мають бути різними!
{% endhint %}

<details>

<summary>Список значень для stripe_payment_method_type і stripe_additional_payment_method_type</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 %}

### Приклад генерації платіжного посилання

Створімо платіжне посилання для 1000 AED (валюта за замовчуванням — USD).

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

{% hint style="warning" %}
Примітка:&#x20;

— Спочатку вкажіть необов'язкові параметри, такі як first\_name, payment\_description тощо.&#x20;

— Потім останнім задайте значення змінної payment\_sum.

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

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

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

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

<div data-with-frame="true"><figure><img src="/files/9cbf81af918678e69913ba62882a99513d5b6a31" alt="" width="563"><figcaption><p>Тестування в боті.</p></figcaption></figure></div>

Приклад 2. Додати платіжне посилання на кнопку.

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

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

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

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

Якщо ви передаєте у блоці параметр ставки податку (stripe\_tax\_id).

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

Ставка податку також буде відображена у формі оплати.

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

<details>

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

payment\_description = "test payment"&#x20;

currency = 'AED'&#x20;

stripe\_tax\_id = 'enter\_your\_stripe\_id\_tax'&#x20;

payment\_sum = 1000

</details>

Де знайти податковий ID.

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

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

Для повторюваних платежів (підписок) оголосіть змінну stripe\_subscription перед змінною payment\_sum і присвойте їй назву підписки.

Ви також можете додати такі змінні: interval — тривалість інтервалу підписки. Передайте 'day' для днів, 'week' для тижнів, 'month' для місяців або 'year' для років. Якщо змінну не задано, за замовчуванням буде використано 'month'.

{% hint style="warning" %}
Важливо!

Тривалість одного циклу підписки не може перевищувати 1 рік (для параметра 'year'), 12 місяців (для параметра 'month') або 52 тижні (для параметра 'week').
{% endhint %}

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

interval\_count — кількість заданих інтервалів: скільки днів, тижнів або місяців включено в підписку на вказану суму. За замовчуванням — 1.

stripe\_payment\_method\_type — спосіб оплати; за замовчуванням це оплата карткою. Можна замінити іншими способами оплати, доступними в 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>Список значень для stripe_payment_method_type і stripe_additional_payment_method_type:</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' ціною 1000 AED за 1 місяць, а після 1 місяця буде списано повторний платіж на таку саму суму.

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

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

`stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90`

Щоб списувати платіж за підпискою раз на два, три або чотири місяці, передайте параметр interval\_count:

`stripe_subscription = 'My_subscription'`

`interval = 'month'`

`interval_count = 3`

`payment_sum = 90`

Щоб змінити інтервал оплати підписки з щомісячного на щотижневий, передайте слово week у параметрі interval:

`stripe_subscription = 'My_subscription'`

`interval = 'week'`

`interval_count = 3`

`payment_sum = 90`

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

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

Для наступних платежів callback НЕ надсилатиметься. Відстеження виконується через функцію та stripe\_customer\_id.
{% endhint %}

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

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

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

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

## Налаштування для скасування підписки

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

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

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

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

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

У цьому прикладі результат функції буде збережено у змінній answer, що дає змогу перевірити результат.

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

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

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

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

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

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

Щоб отримати ідентифікатор знижки, створіть купон у своїй панелі в розділі "Coupons". ”[купони](https://dashboard.stripe.com/coupons)”.

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

Натискання кнопки "New" відкриє сторінку, де потрібно вказати:

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

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

Купон зі знижкою з'явиться в "Product catalogue" у розділі "Coupons", а переглянути ID знижки можна, відкривши меню купона.

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

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

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

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

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

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

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

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

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

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

<details>

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

stripe\_subscription = 'test subscription'&#x20;

interval = 'month'&#x20;

payment\_description = 'test payment'&#x20;

currency = 'AED'&#x20;

coupon\_id = 'BD8VIwi8' stripe\_add\_subscription\_discount(stripe\_subscription\_id, coupon\_id)

stripe\_tax\_id = 'Qfkiwiki29jcs'

payment\_sum = 90

</details>

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

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

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

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

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

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

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

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

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

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

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

Ці callback-и НЕ видно користувачу — їх бачить лише оператор.

Тип порівняння має бути встановлено як "Exact match".

Після успішної оплати змінну stripe\_payment\_completed також буде встановлено в True.

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

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

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

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

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

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

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

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

Для тестування використовуйте тестовий номер платіжної картки ([номер картки для вашої країни можна знайти на офіційному сайті Stripe](https://stripe.com/docs/testing#regulatory-cards)).


---

# 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/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.
