# Bepaid (ru)

## Cómo conectar

Para conectar el sistema de pago bePaid necesitará el ID de la tienda, la clave secreta y la clave pública. Después de obtenerlas, pasamos a la configuración en MaviBot.

En MaviBot abrimos la sección "Pasarela de pago", seleccionamos bePaid. Es necesario introducir los datos obtenidos.

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

Tenga en cuenta que el último campo es un selector del host de la API según el país de uso: Bielorrusia o Rusia.

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

## Cómo generar un enlace de pago

Para generar un enlace de pago, debe establecer el valor de la variable payment\_sum (por ejemplo 150 o 100.55 (¡con punto!)); inmediatamente después aparecerá la variable bepaid\_pay\_url. Esta variable se puede mostrar en pantalla como enlace o colocarla en un botón con el texto "Pagar".&#x20;

El enlace tiene el siguiente aspecto: \
<https://checkout.bepaid.by/widget/hpp.html?token=a05eabd3f9368725efbc175614c7d469da08f198cc51916b07fb75e53f9a3e1a>

Además, antes de establecer el valor de la variable payment\_sum, se pueden definir las siguientes variables opcionales para configurar el pago.

{% hint style="info" %}
Por defecto se establece el rublo bielorruso; si necesita otra moneda, debe establecer el valor de la variable currency
{% endhint %}

<table><thead><tr><th width="209">Parámetros de la función</th><th width="242">Descripción del parámetro</th><th>Adicionalmente</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>moneda de pago en <a href="http://en.wikipedia.org/wiki/ISO_4217">ISO-4217</a> formato</td><td>por ejemplo USD</td></tr><tr><td><strong>language</strong></td><td><p>idioma de la página de pago</p><p>Por defecto - en.</p></td><td><p>Valores permitidos:</p><p>en - Inglés</p><p>es - Español</p><p>tr - Turco</p><p>de - Alemán</p><p>it - Italiano</p><p>ru - Ruso</p><p>zh - Chino</p><p>fr - Francés</p><p>da - Danés</p><p>sv - Sueco</p><p>no - Noruego</p><p>fi - Finlandés</p><p>pl - Polaco</p><p>ja - Japonés</p><p>uk - Ucraniano</p><p>be - Bielorruso</p><p>ka - Georgiano</p><p>ro - Rumano</p></td></tr><tr><td><strong>payment_description</strong></td><td>descripción del pago</td><td></td></tr><tr><td><strong>link_expired</strong> </td><td><p>tiempo de vida del enlace de pago, en formato dd.mm.aaaa (por ejemplo 25.06.2025). </p><p>Por defecto, el pago debe realizarse en un plazo de 24 horas</p></td><td><p>También se puede en el campo <strong>"Asignación de variables al pasar"</strong> indicar: link_expired = current_date + 2 (el enlace será válido durante 2 días hasta las 00:00)</p><p><strong>link_expired</strong> también se puede indicar una fecha con hora exacta, separada por un espacio, en formato dd.mm.aaaa hh:mm (por ejemplo: 25.06.2025 12:23). Por defecto, el pago debe realizarse en un plazo de 24 horas</p><p>También se pueden usar variables estándar, por ejemplo, establezcamos el tiempo de validez del enlace en 30 minutos:</p><p>time = current_time + 30</p><p>link_expired = "#{current_date} #{time}"</p></td></tr><tr><td>russian_host</td><td>indicador de registro de la tienda en el host ruso de bePaid. Especifique este parámetro con el valor 1 si su tienda está registrada en el sitio bepaid.tech</td><td>Si es necesario cambiar el host al bielorruso, especifique el parámetro con el valor ''</td></tr><tr><td><strong>test_payments</strong></td><td>la variable se necesita para pagos de prueba; si se necesita un pago de prueba, añádala con cualquier valor.</td><td></td></tr><tr><td><strong>bepaid_attempts</strong> </td><td>indica el número de intentos para realizar un pago; por defecto se proporciona 1 intento.</td><td></td></tr><tr><td><strong>customer_data</strong></td><td>un arreglo que contiene <em>first_name, last_name y email</em> del pagador. Los datos son necesarios para enviar el recibo al correo del pagador y están disponibles para su edición en la página de pago. </td><td><p>El parámetro debe pasarse como una lista en formato JSON, compuesta por pares clave-valor</p><p><strong>por ejemplo</strong>:</p><p>customer_data = ‘{“first_name”: “Vladimir”, “last_name”: “Popov”, “email”: “v.popov@mavibot.ai” }’</p></td></tr><tr><td>bepaid_contract (condicionalmente obligatorio)</td><td>destino del pago por token.</td><td>Valores esperados: “recurring” (para pagos periódicos con una frecuencia definida) o “card_on_file” (para pagos no periódicos, por ejemplo, pago posterior por un servicio prestado)</td></tr></tbody></table>

Después de completar el pago, se añadirá al trato la variable **bepaid\_callback\_data**, que contiene los datos de respuesta del sistema de pago sobre la operación realizada. Del diccionario recibido se pueden extraer los datos necesarios mediante el método **get**.

## Cómo probar los pagos

Para realizar un pago de prueba antes de especificar la variable payment\_sum, debe definir la variable test\_payments con cualquier valor.

¡No olvide eliminarla al iniciar el bot en modo de producción!

Tarjetas para pruebas:

4200000000000000      éxito

4005550000000019        fallido

Si algo no funciona, compare los datos con los del sitio oficial: <https://docs.bepaid.by/ru/test-integration#test-card-number>&#x20;

## Ejemplo de creación del enlace de pago

Crearemos un enlace de pago por un importe de 100 rublos bielorrusos (moneda predeterminada)

Tenga en cuenta que primero definimos las variables adicionales para la configuración y luego payment\_sum. Las variables también se pueden definir antes en la cadena y no en un solo bloque; este es solo un ejemplo.

Luego, en el lugar necesario, mostramos la variable **bepaid\_pay\_url**, en la que se contiene el enlace

## Gestión de suscripciones

La integración del sistema de pago ofrece la posibilidad de crear suscripciones para sus clientes.

Antes de comenzar a usar la funcionalidad de MaviBot, cree un plan de suscripción en el área privada de bePaid.

{% hint style="warning" %}
Si en el área privada no aparece el menú “Planes” y “Suscripciones”, póngase en contacto con su gestor.
{% endhint %}

### Creación de una suscripción y obtención del enlace de pago

Utilice la función **get\_bepaid\_subscription\_url**, pasando el parámetro plan\_id, donde

<table><thead><tr><th width="233"></th><th></th></tr></thead><tbody><tr><td>plan_id</td><td>es el id del plan en el sistema bePaid.</td></tr></tbody></table>

Como resultado de la ejecución, la función creará una suscripción y devolverá un enlace para su pago.

Envíe el enlace al cliente y espere a que finalice el pago.

Tras un pago exitoso, la suscripción se activará, al trato se añadirán las variables bepaid\_subscription\_id y bepaid\_subscription\_status, y al bot llegará un callback (véase la sección “[Cómo procesar el resultado](#kak-obrabotat-rezultat)”).

### Obtención de información sobre la suscripción

Para obtener los datos de la suscripción actual del cliente, llame a la función get\_bepaid\_subscription\_info, pasando el parámetro subscription\_id (el valor se puede tomar de la variable bepaid\_subscription\_id).

### Cancelación de la suscripción

Para cancelar la suscripción, utilice la función cancel\_bepaid\_subscription.&#x20;

Esta función acepta un único parámetro subscription\_id (el valor se puede tomar de la variable bepaid\_subscription\_id).

Al cancelarse correctamente, la variable bepaid\_subscription\_status tomará el valor “canceled”, y al bot llegará un callback (véase la sección “[Cómo procesar el resultado](#kak-obrabotat-rezultat)”).

### Estados de las suscripciones

<table data-header-hidden><thead><tr><th width="270"></th><th></th></tr></thead><tbody><tr><td>trial</td><td>Suscripción activa o cancelada del período de prueba.</td></tr><tr><td>active</td><td>Suscripción activa, cuyo pago se realizó a tiempo.</td></tr><tr><td>failed</td><td>Suscripción fallida. bePaid no pudo procesar el siguiente pago.</td></tr><tr><td>error</td><td>Se produjo un error al intentar bePaid procesar el pago.</td></tr><tr><td>canceled</td><td>La suscripción está cancelada y ya no está vigente.</td></tr></tbody></table>

### Pagos recurrentes

También puede organizar un sistema de suscripciones sin crear un plan en el área privada de bePaid.

Para ello necesitará el token de la tarjeta del cliente.

Para obtener el token de la tarjeta, el cliente debe realizar un pago inicial mediante el enlace generado a través de payment\_sum.

Antes de establecer el valor de payment\_sum, defina la variable bepaid\_contract, en la que indique el destino de los futuros pagos por token: “recurring” para pagos periódicos con una frecuencia definida o “card\_on\_file” para pagos no periódicos (por ejemplo, pago posterior por un servicio prestado).

{% hint style="warning" %}
La opción “card\_on\_file” no es compatible con todos los adquirentes. Si desea usarla, póngase en contacto con su account manager.
{% endhint %}

Después de un pago exitoso, se añadirá al trato la variable bepaid\_client\_card\_token, donde se guardará el token de la tarjeta del cliente. Este token permite debitar fondos de la tarjeta del cliente sin su participación.

Luego configure el embudo y establezca la fecha o la condición para el cargo automático y llame a la función del calculador make\_bepaid\_token\_payment, pasándole los parámetros necesarios.

**Orden de los parámetros**:

amount -> currency -> description -> contract

#### Descripción de los parámetros:

<table><thead><tr><th width="286"></th><th></th></tr></thead><tbody><tr><td>amount (obligatorio)</td><td>importe del pago, el valor esperado es un número entero o decimal, por ejemplo 100 o 100.5;</td></tr><tr><td>currency (obligatorio)</td><td>moneda de pago en<a href="http://en.wikipedia.org/wiki/ISO_4217"> ISO-4217</a> formato, por ejemplo “USD”</td></tr><tr><td>description (obligatorio)</td><td>descripción del motivo del cargo, por ejemplo, “Pago de la suscripción semanal para participar en el club de intereses”;</td></tr><tr><td>contract (obligatorio)</td><td>destino del pago por token. Valores esperados: “recurring” o “card_on_file”. </td></tr></tbody></table>

{% hint style="warning" %}
¡El valor de contract обязательно debe coincidir con el valor indicado al crear el enlace para el pago inicial!
{% endhint %}

Si el pago se realizó correctamente, la función devolverá el mensaje “Cargo exitoso por token bePaid“, recibirá un callback de pago exitoso y la variable del trato bepaid\_token\_payment\_completed tomará el valor “True”.

Si el pago no se realizó, la función devolverá un mensaje indicando el motivo del fallo, al bot llegará un callback con el sufijo “\_fail”, y la variable del trato bepaid\_token\_payment\_completed tomará el valor “False”.

{% hint style="warning" %}
El banco puede solicitar que el cliente complete el pago. En ese caso, la función devolverá un enlace con la solicitud de autenticación 3-D Secure.
{% endhint %}

## Cómo procesar el resultado

En respuesta a las acciones del cliente, llegarán al bot callbacks compuestos por los 20 primeros caracteres de la clave secreta y un sufijo que depende del tipo y del resultado de la operación.

En el sistema, el callback aparece como un mensaje del usuario, sin embargo, el propio usuario no lo ve.

### Para pagos

Como resultado de un pago que no esté relacionado con una suscripción, recibirá uno de los mensajes:

<mark style="color:verde;">**numeroClave\_success**</mark> - en caso de pago exitoso;

<mark style="color:rojo;">**numeroClave\_fail**</mark> - en caso de pago fallido;

El estado del último pago también se puede seguir mediante las variables bepaid\_payment\_completed (para pagos con participación del cliente) y bepaid\_token\_payment\_completed (para pagos sin aceptación por token de tarjeta)

### Para suscripciones

Después de la activación exitosa de la suscripción, en el primer o en el pago repetido, llegará al bot el mensaje <mark style="color:verde;">**numeroClave\_success**</mark>.

Si la suscripción fue cancelada, recibirá <mark style="color:naranja;">**numeroClave\_canceled**</mark>.

En caso de pago fallido de la suscripción, recibirá el mensaje *<mark style="color:rojo;">**numeroClave**</mark>*<mark style="color:rojo;">\_fail.</mark>


---

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