# Stripe

## How to connect

To connect Stripe payment system, you will need a secret API key and a webhook key.

You can copy the secret API key by going to the Developers -> API key section and copying the Secret key.

Step 1. Go to the Developers -> API key section:

<figure><img src="/files/MmjCBcouN3mXJkDFZ0jy" alt="" width="563"><figcaption><p>Pic.1 How to find API section</p></figcaption></figure>

Step 2. Find and copy the Secret key:

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

Next, you need to set the URL for callbacks. This is necessary in order for the bot to receive payment notifications.

Go to the Webhooks section and add the address for the webhooks.

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

The form opens:

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

Step 1. Click on "+add destination".

Step 2. Select events:

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

Step 3. Select the type of "Webhook endpoint":

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

Step 4. We get acquainted with the type of request and click "Continue":

<figure><img src="/files/25kjAnJuekWwD45UwKPu" alt=""><figcaption></figcaption></figure>

Step 5. We write the name and specify the endpoint URL:

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

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

Step 6. Two endpoints will be created, you can view the settings before adding:&#x20;

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

Step 7. Next, click the "Add destinations" button. Then the webhooks will be saved.

Step 8. Click the "Done" button.

<figure><img src="/files/46bmhO6CQbhNJ4dWKrGm" alt=""><figcaption></figcaption></figure>

We save it and get to the page with the installed webhook:

<figure><img src="/files/3sCzIsXpa9ouIZxkvmTG" alt=""><figcaption></figcaption></figure>

Step 9. Next, click on the webhook where you have selected all the events:

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

Step 10. We find the Signig key and save it to ourselves (in the future we will need it to connect to Salebot):

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

After receiving the keys, we proceed to connect to Mavibot.

In Mavibot, open "Acquiring" section and select Stripe.

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

On the connection page, you need to enter the received keys:

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

Click "Save Settings".

{% hint style="success" %}
Done!&#x20;

This completes the connection of the payment system!
{% endhint %}

## How to connect a callback about the transaction status

To get an additional callback, we will need to connect a webhook in **addition to the existing one.**

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

and select the events:

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

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

{% hint style="success" %}
**Learn more about each type of webhook:**

1. **charge.succeeded** - contains information about the successful completion of the transaction (similar to a callback about a successful payment)
2. **charge.pending** - "the transaction is in progress", it may take up to 7 days to complete.\
   The webhook will look like {first 10 characters }{type of webhook}\
   *For example*: *sk\_test\_45LDPJLKT95d\_charge.pending*&#x20;
3. **charge.failed** *-* "the transaction failed."\
   The webhook will look like {first 10 characters }{type of webhook}\
   For example: *sk\_test\_45LDPJLKT95d\_charge.failed*
   {% endhint %}

We add the webhook received after saving to Mavibot field - Webhook key2:

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

**stripe\_invoice\_id** - Transaction ID for which the successful payment callback was not received immediately after the payment.

## How to connect taxes

To use taxes in payments, firstly you need to create them in Stripe's personal account. To do this, enter tax rates in the search bar:

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

And click "+ Add tax rates":

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

Next, specify the applicable tax rate:

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

In the opened menu, select the tax type, the region for where it applies, the tax rate, and the option indicating whether this tax should be included in the payment amount 'Inclusive' or will be added in excess of the amount - exclusive:

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

After creating the tax rate, copy its ID into the **stripe\_tax\_id** variable before setting the payment amount.

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

To avoid errors, put an empty string ("") in the stripe\_tax\_id variable after receiving the link, so that you can apply the tax only when it is needed.

If everything is done correctly, then in the case of the tax rate with the exclusive parameter, you will see the following

<figure><img src="/files/xCVAL1yrIjVtse1G3AHX" alt=""><figcaption><p>Example of a payment with an exclusive tax rate</p></figcaption></figure>

## **How to get payment link**&#x20;

To generate a payment link, you need to set the value of the **payment\_sum** variable (for example, 150 or 100.55 (separated by a dot!)), and the stripe\_pay\_url variable will appear after that. This variable can be displayed with a link or placed on a button with the text "Pay".

The link looks like:

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

{% hint style="warning" %}
By default, USD (dollar) is set, if you need another currency, you need to set the value of the **currency** variable.
{% endhint %}

Also, before setting the value of the **payment\_sum** variable, you can set the following optional variables to configure the payment.

<table><thead><tr><th width="255">Function parameters</th><th>Parameters description</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>is the order currency. Acceptable values -<a href="https://stripe.com/docs/currencies">https://stripe.com/docs/currencies</a></td></tr><tr><td><strong>payment_description</strong></td><td>order description</td></tr><tr><td> <strong>stripe_tax_id</strong></td><td>This is the tax rate ID, set up in Stripe's personal account.<br>How to set it up is described in the section "How to set taxes" ссылка "<a href="#kak-podklyuchit-nalogi">Как подключить налоги</a>"</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>This parameter indicates the need to save invoices (invoices,receipts). Enter any value — all necessary documents will then be available in your Stripe personal account.</td></tr><tr><td><strong>stripe_locale</strong></td><td>set language of the payment link: en, ru, de.  All available languages are here: <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>If the <strong>stripe_local</strong> value is not provided, the client’s browser language will be used by default.</td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td><p>is the payment method, the default payment is by card. You can replace it with other payment methods available for Stripe. The available methods are listed below</p><p>For example, <code>stripe_payment_method_type = "customer_balance"</code></p></td></tr><tr><td><strong>stripe_additional_payment_method_type</strong> </td><td>is to add an additional payment method. The available methods are listed below for example, <code>stripe_additional_payment_method_type  = "sepa_debit"</code></td></tr><tr><td><strong>coupon_id</strong></td><td>discount coupon ID</td></tr><tr><td>stripe_expired </td><td>is the lifetime of the payment link. Specified in seconds. The minimum time is 30 minutes, the maximum is 24 hours. The default is 24 hours</td></tr><tr><td>stripe_automatic_tax</td><td>enabling automatic taxes calculation and collection during payment. To enable it, pass "1". Detailed information about this setting can be found in the Stripe documentation. ссылка <a href="https://docs.stripe.com/tax/set-up">в документации Stripe </a></td></tr></tbody></table>

{% hint style="warning" %}
Attention! If you use both  ***stripe\_payment\_method\_type** and  **stripe\_additional\_payment\_method\_type*** variavle&#x73;***, then the values in them MUST be DIFFERENT!***
{% endhint %}

<details>

<summary><em><mark style="color:green;"><strong>List of values for</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> and <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/yHyxqnhE7pUDZzUPEp1Y" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Обратите внимание:** \
\- Сначала указываете необязательные параметры  **first\_name, payment\_description** и т.д.\
\- И последней присваиваем значение переменной **payment\_sum**

Переменные можно задать и ранее в цепочке, а не в одном блоке, это пример.
{% endhint %}

Далее в нужном месте выводим переменную **stripe\_pay\_url**, в которой содержится ссылка в блоке либо в кнопке:

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

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

Тестирование в боте:

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

Пример 2. Добавляем ссылку на оплату в кнопку:

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

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

Пример 3. Добавляем ссылку в качестве вложения к сообщению:

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

Тестирование в боте:

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

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

При клике на кнопку или при переходе по ссылке, вашего плательщика переадресует на платежную страницу:

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

В примере видно, что параметры, которые мы указывали в калькуляторе в настройках блока были применены: описание заказа, валюта и сумма.&#x20;

Если передадите параметр налоговой ставки (**stripe\_tax\_id)** в блоке:&#x20;

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

То также будет отображена налоговая ставка в форме оплаты:

<figure><img src="/files/RcIwwT4bm8lATHAiKhst" 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/6Myi3xVtv6YKOD1kFuZU" 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/u61dZjrwV8rECfVJokNO" 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>List of values for</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" %}
For more information about each of the methods and for which countries they are available, see the Stripe documentation: see the website ссылка [посмотреть на сайте ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)
{% endhint %}

{% hint style="warning" %}
**Attention!** The subscription duration cannot exceed 1 year (for the ‘year’ parameter), more than 12 months (for the ‘month’ parameter), more than 52 weeks (for the ‘week’ parameter).
{% endhint %}

In this example, a subscription named 'My\_subscription' will be created with a price of 90 USD for 3 months and a repeat payment will be made with the same amount after these 1 month:

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

An example to copy:

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

After payment, the client will have **stripe\_subscription\_id** variables in the deal variables, which will be required to configure subscription cancellation, and **stripe\_customer\_id**, which can later be used to check the subscription status.

{% hint style="warning" %}
The notification (callback) is received only at the first recurring payment!

THERE WILL BE NO callback for repeat calls. The control goes through the function and the stripe\_customer\_id. [через функцию](#proverka-statusa-podpiski) ссылка
{% endhint %}

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

### Returning to regular payments settings

To return to regular payments, assign the subscription variable an empty string **stripe\_subscription = "**. In this case, the interval and interval\_count variables will not affect the creation of the link.

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

### **Cancelling subscription settings**

To cancel a subscription in the calculator, use the **stripe\_remove\_subscription(stripe\_subscription\_id)** method, where **stripe\_subscription\_id** is the identifier that was saved in the deal information after payment.

This will allow you to keep your paid subscription active until the end of the current paid period, but further charges won't happen, and the subscription will be canceled after the expiration date:

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

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

stripe\_remove\_subscription -  On success, you will receive a response with information about the date on which the cancelled subscription remains valid.

In this example, the result of the function execution will be placed in the answer variable and it will be possible to check the result of the execution.&#x20;

### Checking the subscription status

**stripe\_check\_subscription(subscription\_id, customer\_id)**, where

**stripe\_subscription\_id** - subscription ID \
**stripe\_customer\_id** - client ID in Stripe (optional parameter)

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

## How to create a coupon and get a discount ID

To receive the discount ID, create a coupon in your personal account in the ”coupons” section. ссылка ”[coupons](https://dashboard.stripe.com/coupons)”.

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

After clicking the “New” button, a page opens where you need to specify:

1. &#x20;Name — discount name;
2. ID — identifier that is generated automatically.
3. Type — type of discount: percentage or fixed amount
4. Duration — The duration of the discount (one-time or recurring, for example, for subscriptions) and other parameters.

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

The discount coupon will appear in the “Product catalog“ in the “Coupons” section, and you can view the discount ID by going to the coupon menu:

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

Click on the coupon to copy the coupon ID:

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

### How to add a discount to order

1. When generating a payment link (for both subscriptions and one-time payments).

In the block’s calculator, before declaring the **payment\_sum** variable, set the **coupon\_id** variable by assigning it the discount ID from Stripe personal account.

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

2. To add to an existing subscription using the **stripe\_add\_subscription\_discount** function.

Set the conditions for triggering the block and call the specified function in the calculator, giving the parameters stripe\_subscription\_id (subscription id) and coupon\_id (discount coupon id) to it. The discount will be applied for subsequent subscription payments.

<figure><img src="/files/SJYVp2uBEK2rE8y7mHBz" 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>

Upon successful addition, the function returns a message indicating the subscription ID, type, amount, or percentage of the discount and also its expiration date.

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

{% hint style="info" %}
For more information about creating a subscription, see the section "How to set up recurring payments"  ссылка "[Как настроить рекуррентные платежи](#kak-nastroit-rekurrentnye-platezhi)"
{% endhint %}

### How to delete/change the subscription discount

The discount attached to the subscription can be deleted or replaced with another discount.

If you want to terminate the discount, set a condition for the block to be triggered and call the **stripe\_remove\_subscription\_discount** function in the calculator, giving the **stripe\_subscrition\_id** parameter (subscription id) to it.

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

Upon successful completion of the operation, the function returns a message containing the subscription ID and the date of cancellation of the discount.

The discount replacing, as well as adding a new one is made by using **stripe\_add\_subscription\_discount** function. Don't forget to pass the **stripe\_subscription\_id** and **coupon\_id** parameters to it.\
A successful request will update the coupon attached to the subscription and return a message with current information.

{% hint style="info" %}
You can read how to get a discount ID in the section "How to create a coupon and get a discount ID".  ссылка "[Как создать купон и получить ID скидки](#kak-sozdat-kupon-i-poluchit-id-skidki)".
{% endhint %}

## How to process the result

After a successful payment, callbacks will be sent to the bot, which will let you know that the payment was successful. You see these callbacks in the system as messages from the user, so that the user cannot send them, they consist of the first 20 characters of the secret key and the success postscript, for example: **sk\_live\_d35gky6d8ers\_success**&#x20;

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

These callbacks are NOT VISIBLE TO the user, they are displayed only to the operator.

The type of comparison should be "**Exact Match"**

Also, after successful payment, the **stripe\_payment\_completed** variable is set to **True.**

For example, you can process a successful payment in a conditional block and display the corresponding message to the user:

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

After the payment is completed, the **stripe\_callback\_data** variable will be added to the client, containing the data of the payment system's response to the completed transaction. You can extract the necessary data from the resulting dictionary using the **get** method.

{% hint style="warning" %}
To make a repeat payment, you need to reset the payment\_sum, the previously generated link, and then reassign the payment\_sum variable to get a new link. You can specify the previous value.
{% endhint %}

## **How to test payments**

To test the integration, you can use the secret key from the test environment. To do this, switch to test mode in Stripe personal account using the toggle in the right menu&#x20;

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

Next, perform the configuration described at the beginning of this guide. Enter the test secret key and add the webhook address to the testing environment.

The test card number

4242 4242 4242 4242\
any date in the future\
CVC - any three numbers

If something doesn't work, compare the data with the data on the official website. ссылка[ на официальном сайте.](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/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.
