# Bepaid

## **Как подключить**

Чтобы подключить **bePaid** платёжную систему, вам понадобится **Store ID**, **секретный ключ**, и **публичный ключ**. Как только вы получите эти данные, перейдите в настройки в **Salebot**.

{% hint style="info" %}
Чтобы получить **Store ID**, **секретный ключ**, и **публичный ключ**, пожалуйста, обратитесь в **baPaid** техническую поддержку за помощью.
{% endhint %}

В **MaviBot**откройте **«Платёжная система»** раздел и выберите **bePaid**. Затем введите полученные данные.

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

Обратите внимание, что последнее поле — это переключатель, который выбирает хостинг API в зависимости от страны использования: **Беларусь** или **Россия**.

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

## **Как сгенерировать ссылку на оплату**

Чтобы сгенерировать ссылку на оплату, нужно задать значение для переменной **payment\_sum** (например: **150** или **100.55** — используйте точку в качестве десятичного разделителя).

После того как переменная **payment\_sum** задана, переменная **bepaid\_pay\_url** автоматически появится. Вы можете вывести эту переменную на экран как ссылку или разместить её на кнопке с текстом **«Оплатить»**.

Ссылка на оплату будет выглядеть так:\
<https://checkout.bepaid.by/widget/hpp.html?token=a05eabd3f9368725efbc175614c7d469da08f198cc51916b07fb75e53f9a3e1a>

Перед установкой переменной **payment\_sum** вы также можете задать следующие необязательные переменные для настройки оплаты.

{% hint style="info" %}
По умолчанию валюта установлена на **белорусский рубль**. Если вам нужно использовать другую валюту, задайте значение для переменной **currency** .
{% endhint %}

<table><thead><tr><th width="209">Параметры функции</th><th width="242">Описание</th><th>Дополнительная информация</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>Валюта платежа в формате ISO 4217</td><td>Например: <strong>USD</strong></td></tr><tr><td><strong>language</strong></td><td><strong>Язык страницы оплаты</strong><br>По умолчанию: <strong>en</strong>.</td><td><p><strong>Допустимые значения:</strong></p><ul><li><strong>en</strong> – английский</li><li><strong>es</strong> – испанский</li><li><strong>tr</strong> – турецкий</li><li><strong>de</strong> – немецкий</li><li><strong>it</strong> – итальянский</li><li><strong>ru</strong> – русский</li><li><strong>zh</strong> – китайский</li><li><strong>fr</strong> – французский</li><li><strong>da</strong> – датский</li><li><strong>sv</strong> – шведский</li><li><strong>no</strong> – норвежский</li><li><strong>fi</strong> – финский</li><li><strong>pl</strong> – польский</li><li><strong>ja</strong> – японский</li><li><strong>uk</strong> – украинский</li><li><strong>be</strong> – белорусский</li><li><strong>ka</strong> – грузинский</li><li><strong>ro</strong> – румынский</li></ul></td></tr><tr><td><strong>payment_description</strong></td><td>Описание платежа</td><td></td></tr><tr><td><strong>link_expired</strong> </td><td><strong>Срок действия платёжной ссылки</strong><br>Установите дату истечения в формате <strong>дд.мм.гггг</strong> (например: <strong>25.06.2025</strong>).<br>По умолчанию платёж должен быть завершён в течение <strong>24 часов</strong>.</td><td><p>Вы также можете использовать поле <strong>«Assign Variables on Redirect»</strong> для установки:</p><ul><li><code>link_expired = current_date + 2</code> — ссылка будет действительна <strong>2 дня до 00:00</strong>.</li><li>Вы также можете указать точную дату и время истечения в формате <strong>дд.мм.гггг чч:мм</strong> (например: <strong>25.06.2025 12:23</strong>). По умолчанию платёж должен быть завершён в течение <strong>24 часов</strong>.</li></ul><p>Можно также использовать стандартные переменные. Например, чтобы установить срок действия ссылки на <strong>30 минут</strong>:<br>time = current_time + 30<br>link_expired = "#{current_date} #{time}"</p></td></tr><tr><td>russian_host</td><td><strong>Индикатор магазина, зарегистрированного на российском хосте bePaid</strong><br>Установите этот параметр в <strong>1</strong> если ваш магазин зарегистрирован на <strong>bepaid.tech</strong>.</td><td>Если нужно переключить хост на Беларусь, установите этот параметр в <strong>""</strong> (пустое значение).</td></tr><tr><td><strong>test_payments</strong></td><td>Эта переменная используется для <strong>тестовых платежей</strong>. Чтобы выполнить тестовый платёж, добавьте её с любым значением.</td><td></td></tr><tr><td><strong>bepaid_attempts</strong> </td><td>Указывает <strong>количество попыток оплаты</strong>. По умолчанию разрешена <strong>1 попытка</strong> .</td><td></td></tr><tr><td><strong>сustomer_data</strong></td><td>Массив, содержащий <strong>имя</strong>, <strong>фамилию</strong>, и <strong>email</strong>плательщика. Эти данные необходимы для отправки чека на email плательщика и могут быть отредактированы на странице оплаты.</td><td>Параметр должен передаваться как <strong>список пар ключ-значение в формате JSON</strong>.<br>Например:<br>customer_data = ‘{“first_name”: “Sam”, “last_name”: “Smith”, “email”: “sam_smith@mavibot.ai” }’</td></tr><tr><td><strong>bepaid_contract</strong> (условно обязателен)</td><td>Назначение платежа по токену</td><td><p><strong>Ожидаемые значения:</strong></p><ul><li><strong>“recurring”</strong> – для регулярных платежей с заданной периодичностью</li><li><strong>“card_on_file”</strong> – для разовых или нерегулярных платежей, например, постоплаты за услугу</li></ul></td></tr></tbody></table>

После завершения платежа переменная **bepaid\_callback\_data** будет добавлена для клиента. Она содержит ответ платёжной системы по завершённой транзакции. Вы можете извлечь необходимые данные из этого словаря с помощью метода **get** .

## **Как тестировать платежи**

Чтобы выполнить тестовый платёж, перед установкой переменной **payment\_sum** установите переменную **test\_payments** с любым значением.\
Не забудьте удалить её при запуске бота в **боевом режиме**!

**Тестовые карты:**

* 4200000000000000 — успех
* 4005550000000019 — ошибка

Если что-то не работает, сравните свои данные с официальной документацией: <https://docs.bepaid.by/ru/test-integration#test-card-number>

## **Пример генерации ссылки на оплату**

Давайте создадим ссылку на оплату для **100 белорусских рублей** (валюта по умолчанию).

Примечание: сначала задайте дополнительные переменные для настройки, затем установите **payment\_sum**. Переменные также можно задать раньше в сценарии, не обязательно в том же блоке — это лишь пример.

Наконец, выведите переменную **bepaid\_pay\_url** в нужном месте; она содержит сгенерированную ссылку на оплату.

## **Управление подписками**

Интеграция с платёжной системой позволяет создавать подписки для ваших клиентов.

Перед использованием этой функции в **Salebot**создайте план подписки в вашем **bePaid** аккаунте.

{% hint style="warning" %}
Если **«Планы»** и **«Подписки»** меню не отображаются в вашем аккаунте, пожалуйста, обратитесь к вашему менеджеру.
{% endhint %}

**Создание подписки и генерация ссылки на оплату**

Используйте **get\_bepaid\_subscription\_url** функцию, передав **plan\_id** параметр, где…

<table><thead><tr><th width="233"></th><th></th></tr></thead><tbody><tr><td>plan_id</td><td><strong>plan_id</strong> — это ID плана в <strong>bePaid</strong> системе.</td></tr></tbody></table>

В результате функция создаст подписку и вернёт ссылку на оплату.

Отправьте ссылку клиенту и дождитесь завершения оплаты.

После успешной оплаты подписка будет активирована. В сделке появятся переменные **bepaid\_subscription\_id** и **bepaid\_subscription\_status** , а в бота будет отправлен callback (см. раздел **«Как обработать результат»** ).

## **Получение информации о подписке**

Чтобы получить текущие данные подписки клиента, вызовите функцию **get\_bepaid\_subscription\_info** и передайте **subscription\_id** параметр (значение можно взять из **bepaid\_subscription\_id** переменной).

## **Отмена подписки**

Чтобы отменить подписку, используйте **cancel\_bepaid\_subscription** .

Эта функция принимает один параметр: **subscription\_id** (значение можно взять из **bepaid\_subscription\_id** переменной).

После успешной отмены **bepaid\_subscription\_status** переменная будет установлена в **«canceled»**, а в бота будет отправлен callback (см. **«Как обработать результат»** ).

## Статусы подписки

<table data-header-hidden><thead><tr><th width="270"></th><th></th></tr></thead><tbody><tr><td>trial</td><td>Активна или отменена <strong>пробный период</strong> подписки.</td></tr><tr><td>active</td><td>Активная подписка с <strong>платежом, выполненным вовремя</strong>.</td></tr><tr><td>failed</td><td>Ошибка в подписке. <strong>bePaid</strong> не удалось обработать следующий платёж.</td></tr><tr><td>error</td><td>Произошла ошибка при <strong>bePaid</strong> пыталась обработать платёж.</td></tr><tr><td>canceled</td><td>Подписка была <strong>canceled</strong> и больше не активна.</td></tr></tbody></table>

## **Регулярные платежи**

Вы также можете настроить систему подписок **без создания плана** в вашем **bePaid** аккаунте.

Для этого вам понадобится **токен карты клиента**.

Чтобы получить токен карты, клиент должен совершить первоначальный платёж по ссылке, сгенерированной через **payment\_sum**.

Перед установкой переменной **payment\_sum** значение, установите **bepaid\_contract** переменную, чтобы указать назначение будущих платежей по токену:

* **“recurring”** – для регулярных платежей с заданной периодичностью
* **“card\_on\_file”** – для разовых или нерегулярных платежей, например, постоплаты за услугу

{% hint style="warning" %}
Текст **“card\_on\_file”** эта опция поддерживается не всеми эквайерами. Если вы хотите её использовать, пожалуйста, обратитесь к вашему менеджеру аккаунта.
{% endhint %}

После успешного платежа переменная **bepaid\_client\_card\_token** будет добавлена в сделку, сохраняя токен карты клиента. Этот токен позволяет списывать средства с карты клиента **без его участия**.

Далее настройте воронку и укажите дату или условие для автоматического списания, затем вызовите функцию **make\_bepaid\_token\_payment** , передав необходимые параметры.

Порядок параметров:\
**amount → currency → description → contract**

### Описание параметров

<table><thead><tr><th width="286"></th><th></th></tr></thead><tbody><tr><td>amount (обязательно)</td><td><strong>Сумма платежа</strong> – ожидаемое значение — <strong>целое</strong> или <strong>десятичное число</strong>, например: 100 или 100.5.</td></tr><tr><td>currency (обязательно)</td><td><strong>Валюта платежа</strong> в формате <strong>ISO 4217</strong> , например: <strong>“USD”</strong>.</td></tr><tr><td>description (обязательно)</td><td><strong>Описание списания</strong>, например: <strong>“Еженедельный платёж за подписку на участие в клубе по интересам”</strong>.</td></tr><tr><td>contract (обязательно)</td><td><strong>Назначение платежа по токену.</strong> Ожидаемые значения: <strong>“recurring”</strong> или <strong>“card_on_file”</strong>.</td></tr></tbody></table>

{% hint style="warning" %}
Текст **contract** значение должно **точно совпадать** со значением, указанным при создании первоначальной ссылки на оплату!
{% endhint %}

Если платёж успешен, функция вернёт сообщение **“Успешное списание через токен bePaid”**, вы получите callback об успешной оплате, а переменная сделки **bepaid\_token\_payment\_completed** будет установлена в **“True”**.

Если платёж не пройдёт, функция вернёт сообщение с причиной неудачной оплаты, в бота будет отправлен callback с суффиксом **“\_fail”** , а переменная сделки **bepaid\_token\_payment\_completed** будет установлена в **“False”**.

{% hint style="warning" %}
Банк может потребовать от клиента завершить платёж. В этом случае функция вернёт ссылку, предлагающую клиенту пройти **аутентификацию 3-D Secure**.
{% endhint %}

## **Как обработать результат**

В ответ на действия клиента бот получит callbacks, состоящие из **первых 20 символов секретного ключа** и суффикса, который зависит от типа и результата операции.

В системе callback отображается как сообщение от пользователя, но пользователь **не видит его**.

### **Для платежей**

Для платежей **не связанных с подписками**, вы получите одно из следующих сообщений:

* **keyNumber\_success** – при успешном платеже
* **keyNumber\_fail** – при неуспешном платеже

Вы также можете отслеживать статус последнего платежа с помощью переменных:

* **bepaid\_payment\_completed** – для платежей с участием клиента
* **bepaid\_token\_payment\_completed** – для **автоматических платежей по токену карты**

### **Для подписок**

После успешной активации подписки, как при первом, так и при повторном платеже, бот получит сообщение **keyNumber\_success**.

Если подписка отменена, вы получите **keyNumber\_canceled**.

В случае неуспешного платежа по подписке сообщение **keyNumber\_fail** будет отправлено.


---

# 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/ru/integrations/payment/bepaid.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.
