Как подключиться

Для подключения платежной системы 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