Как подключиться
Для подключения платежной системы bePaid вам понадобятся Store ID, секретный ключ и публичный ключ. После получения этих данных перейдите в настройки платежной системы в MaviBot.
Чтобы получить Store ID, секретный ключ и публичный ключ, обратитесь в техническую поддержку bePaid.
В MaviBot откройте раздел Эквайринг, выберите bePaid и введите полученные учетные данные.

Примечание: Последнее поле — это переключатель, который выбирает конечную точку API в зависимости от страны использования: Беларусь или Россия.
Как создать платежную ссылку
Чтобы создать платежную ссылку, присвойте значение переменной payment_sum (например: 150 или 100.55; используйте точку в качестве десятичного разделителя).
После установки переменной payment_sum переменная bepaid_pay_url создается автоматически. Вы можете отобразить эту переменную как ссылку в сообщении или использовать ее в кнопке с текстом «Оплатить».
| Параметр функции | Описание | Дополнительная информация |
|---|---|---|
| currency | Валюта платежа в формате ISO 4217. | Например: USD |
| language | Язык страницы оплаты. По умолчанию: en. |
Допустимые значения: • en — английский• es — испанский• tr — турецкий• de — немецкий• it — итальянский• ru — русский• zh — китайский• fr — французский• da — датский• sv — шведский• no — норвежский• fi — финский• pl — польский• ja — японский• uk — украинский• be — белорусский• ka — грузинский• ro — румынский |
| payment_description | Описание платежа. | — |
| link_expired |
Срок действия платежной ссылки. Установите дату истечения в формате дд.мм.гггг (например: 25.06.2025). По умолчанию платеж должен быть завершен в течение 24 часов. |
Вы также можете использовать поле Назначить переменные при перенаправлении: • link_expired = current_date + 2 — ссылка будет действительна в течение 2 дней до 00:00.• Вы можете указать точную дату и время истечения в формате дд.мм.гггг чч:мм (например: 25.06.2025 12:23).Также можно использовать стандартные переменные. Пример для ссылки, действительной в течение 30 минут: python\ntime = current_time + 30\nlink_expired = "#{current_date} #{time}"\n
|
| russian_host |
Индикатор для магазина, зарегистрированного на российском хосте bePaid. Установите этот параметр в 1, если ваш магазин зарегистрирован на bepaid.tech. |
Чтобы переключиться на белорусский хост, установите этот параметр в "" (пустое значение). |
| test_payments | Включает тестовые платежи. Присвойте любое значение этой переменной перед созданием платежной ссылки. | — |
| bepaid_attempts | Указывает количество попыток платежа. По умолчанию разрешена 1 попытка. | — |
| customer_data | JSON-объект, содержащий first_name, last_name и email плательщика. Эта информация необходима для отправки квитанции об оплате и может быть отредактирована на странице оплаты. | Параметр должен быть передан как объект в формате JSON. Пример: python\ncustomer_data = {\n \"first_name\": \"Sam\",\n \"last_name\": \"Smith\",\n \"email\": \"[email protected]\"\n}\n
|
| bepaid_contract (условно обязательно) | Назначение платежа для платежей по токену. |
Допустимые значения: • recurring — для регулярных платежей с фиксированным графиком.• card_on_file — для разовых или нерегулярных платежей, например, списание средств с клиента после оказания услуги. |
Пример платежной ссылки:
https://checkout.bepaid.by/widget/hpp.html?token=a05eabd3f9368725efbc175614c7d469da08f198cc51916b07fb75e53f9a3e1a
Перед присвоением значения payment_sum вы можете определить дополнительные необязательные переменные для настройки платежа.
По умолчанию валюта платежа — белорусский рубль (BYN). Если вы хотите использовать другую валюту, присвойте значение переменной currency.
После завершения платежа клиенту добавляется переменная bepaid_callback_data. Она содержит ответ платежной системы о выполненной транзакции.
Вы можете получить необходимые значения из этого словаря с помощью функции get().
Как тестировать платежи
Для выполнения тестового платежа присвойте любое значение переменной test_payments до установки переменной payment_sum.
Важно: Удалите переменную
test_paymentsперед переключением бота в рабочий режим.
Тестовые карты
| Номер карты | Результат |
|---|---|
4200000000000000 |
Успешный платеж |
4005550000000019 |
Неудачный платеж |
Пример создания платежной ссылки
В следующем примере создается платежная ссылка на 100 белорусских рублей (валюта по умолчанию).
Примечание: Сначала присвойте любые дополнительные переменные конфигурации, затем присвойте значение
payment_sum. Эти переменные также могут быть присвоены ранее в вашем рабочем процессе — они не обязательно должны находиться в одном блоке.
Наконец, отобразите переменную bepaid_pay_url там, где это необходимо. Она содержит сгенерированную платежную ссылку.
Управление подписками
Интеграция bePaid позволяет создавать подписки для ваших клиентов.
Перед использованием этой функции в MaviBot создайте план подписки в своей учетной записи bePaid.
Если разделы Планы и Подписки недоступны в вашей учетной записи, обратитесь к своему менеджеру.
Создание подписки и генерация платежной ссылки
Используйте функцию get_bepaid_subscription_url и передайте параметр plan_id.
Функция создает подписку и возвращает платежную ссылку.
Отправьте сгенерированную ссылку клиенту и дождитесь завершения платежа.
После успешного платежа:
- подписка активируется;
- сделка получает переменные:
-
bepaid_subscription_id; -
bepaid_subscription_status;
-
- боту отправляется обратный вызов (см. Как обработать результат).
Получение информации о подписке
Чтобы получить текущую информацию о подписке, используйте функцию get_bepaid_subscription_info.
Передайте параметр subscription_id. Его значение можно взять из переменной bepaid_subscription_id.
Отмена подписки
Чтобы отменить подписку, используйте функцию cancel_bepaid_subscription.
Функция принимает один параметр:
-
subscription_id— значение можно взять из переменнойbepaid_subscription_id.
После успешной отмены:
- переменная
bepaid_subscription_statusустанавливается в"canceled"; - боту отправляется обратный вызов (см. Как обработать результат).
Статусы подписок
| Статус | Описание |
|---|---|
| trial | Активная или отмененная подписка пробного периода. |
| active | Активная подписка с своевременной оплатой. |
| failed | Неудачная подписка. bePaid не смогла обработать следующий платеж. |
| error | Произошла ошибка при попытке bePaid обработать платеж. |
| canceled | Подписка отменена и больше не активна. |
Регулярные платежи
Вы также можете настроить регулярные платежи без создания плана подписки в своей учетной записи bePaid.
Для этого вам понадобится токен карты клиента.
Получение токена карты
Чтобы получить токен карты клиента, клиент должен выполнить первоначальный платеж с использованием платежной ссылки, созданной с помощью переменной payment_sum.
Перед присвоением значения payment_sum установите переменную bepaid_contract, чтобы определить назначение будущих платежей по токену.
Поддерживаемые значения:
-
recurring— для регулярных платежей с предопределенным графиком. -
card_on_file— для разовых или нерегулярных платежей, например, списание средств с клиента после оказания услуги.
Примечание: Опция
card_on_fileподдерживается не всеми банками-эквайерами. Обратитесь к своему менеджеру, если планируете использовать эту опцию.
После успешного платежа в сделку добавляется переменная bepaid_client_card_token. Она хранит токен карты клиента, который можно использовать для будущих платежей без участия клиента.
Затем настройте свой рабочий процесс, определите необходимую дату или условие для списания средств с клиента и вызовите функцию make_bepaid_token_payment.
Параметры должны передаваться в следующем порядке:
amount → currency → description → contract
Описание параметров
Значение параметра contract должно точно совпадать со значением, указанным при создании первоначальной платежной ссылки.
| Параметр | Описание |
|---|---|
| amount (обязательно) |
Сумма платежа. Значение должно быть целым или десятичным числом, например: 100 или 100.5. |
| currency (обязательно) |
Валюта платежа в формате ISO 4217, например: USD. |
| description (обязательно) |
Описание платежа, например: "Еженедельная оплата подписки на участие в клубе по интересам". |
| contract (обязательно) |
Назначение платежа по токену. Допустимые значения: recurring или card_on_file. |
Если платеж успешен:
- функция возвращает сообщение "Successful charge via bePaid token";
- бот получает обратный вызов об успешном платеже;
- переменная
bepaid_token_payment_completedустанавливается вTrue.
Если платеж не удался:
- функция возвращает сообщение с описанием причины неудачи;
- бот получает обратный вызов с суффиксом
_fail; - переменная
bepaid_token_payment_completedустанавливается вFalse.
Если банк требует дополнительной проверки клиента, функция возвращает ссылку, по которой клиент может пройти 3-D Secure аутентификацию.
Как обработать результат
В ответ на действия клиента бот получает обратные вызовы, состоящие из первых 20 символов секретного ключа, за которыми следует суффикс, указывающий тип операции и результат.
Обратный вызов отображается в системе как сообщение пользователя, но он не виден клиенту.
Обратные вызовы платежей
Для разовых платежей бот получает один из следующих обратных вызовов:
-
keyNumber_success— успешный платеж. -
keyNumber_fail— неудачный платеж.
Вы также можете отслеживать результат платежа с помощью следующих переменных:
-
bepaid_payment_completed— платеж завершен клиентом. -
bepaid_token_payment_completed— автоматический платеж завершен с использованием токена карты клиента.
Обратные вызовы подписок
После успешной активации подписки, будь то первоначальный платеж или регулярный платеж, бот получает:
keyNumber_success
Если подписка отменена, бот получает:
keyNumber_canceled
Если платеж по подписке не удался, бот получает:
keyNumber_fail