# Bepaid

## **Cómo conectar**

Para conectar el **bePaid** sistema de pago, necesitará un **ID de tienda**, **clave secreta**, y **clave pública**. Una vez que reciba estas credenciales, vaya a la configuración en **Salebot**.

{% hint style="info" %}
Para obtener la **ID de tienda**, **clave secreta**, y **clave pública**, póngase en contacto con **baPaid** el soporte técnico para obtener ayuda.
{% endhint %}

En **MaviBot**, abra la **"Sistema de pago"** sección y seleccione **bePaid**. Luego introduzca las credenciales que recibió.

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

Tenga en cuenta que el último campo es un interruptor que selecciona el alojamiento de la API según el país de uso: **Bielorrusia** o **Rusia**.

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

## **Cómo generar un enlace de pago**

Para generar un enlace de pago, debe asignar un valor a la **payment\_sum** variable (por ejemplo: **150** o **100.55** — use un punto como separador decimal).

Una vez que se configure la **payment\_sum** variable, la **bepaid\_pay\_url** variable aparecerá automáticamente. Puede mostrar esta variable en pantalla como un enlace o colocarla en un botón con el texto **"Pagar"**.

El enlace de pago se verá así:\
<https://checkout.bepaid.by/widget/hpp.html?token=a05eabd3f9368725efbc175614c7d469da08f198cc51916b07fb75e53f9a3e1a>

Antes de configurar la **payment\_sum** variable, también puede definir las siguientes variables opcionales para personalizar el pago.

{% hint style="info" %}
De forma predeterminada, la moneda se establece en **rublo bielorruso**. Si necesita usar una moneda diferente, establezca un valor para la **currency** variable.
{% endhint %}

<table><thead><tr><th width="209">Parámetros de función</th><th width="242">Descripción</th><th>Más información</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>Moneda de pago en formato ISO 4217</td><td>Por ejemplo: <strong>USD</strong></td></tr><tr><td><strong>language</strong></td><td><strong>Idioma de la página de pago</strong><br>Predeterminado: <strong>en</strong>.</td><td><p><strong>Valores permitidos:</strong></p><ul><li><strong>en</strong> – Inglés</li><li><strong>es</strong> – Español</li><li><strong>tr</strong> – Turco</li><li><strong>de</strong> – Alemán</li><li><strong>it</strong> – Italiano</li><li><strong>ru</strong> – Ruso</li><li><strong>zh</strong> – Chino</li><li><strong>fr</strong> – Francés</li><li><strong>da</strong> – Danés</li><li><strong>sv</strong> – Sueco</li><li><strong>no</strong> – Noruego</li><li><strong>fi</strong> – Finlandés</li><li><strong>pl</strong> – Polaco</li><li><strong>ja</strong> – Japonés</li><li><strong>uk</strong> – Ucraniano</li><li><strong>be</strong> – Bielorruso</li><li><strong>ka</strong> – Georgiano</li><li><strong>ro</strong> – Rumano</li></ul></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><strong>Vencimiento del enlace de pago</strong><br>Establezca la fecha de vencimiento en el formato <strong>dd.mm.aaaa</strong> (por ejemplo: <strong>25.06.2025</strong>).<br>De forma predeterminada, el pago debe completarse en un plazo de <strong>24 horas</strong>.</td><td><p>También puede usar el campo <strong>"Asignar variables en la redirección"</strong> para establecer:</p><ul><li><code>link_expired = current_date + 2</code> — el enlace será válido durante <strong>2 días hasta las 00:00</strong>.</li><li>También puede especificar una fecha y hora exactas de vencimiento en el formato <strong>dd.mm.aaaa hh:mm</strong> (por ejemplo: <strong>25.06.2025 12:23</strong>). De forma predeterminada, el pago debe completarse en un plazo de <strong>24 horas</strong>.</li></ul><p>También se pueden usar variables estándar. Por ejemplo, para establecer la validez del enlace en <strong>30 minutos</strong>:<br>time = current_time + 30<br>link_expired = "#{current_date} #{time}"</p></td></tr><tr><td>russian_host</td><td><strong>Indicador de tienda registrada en el host ruso de bePaid</strong><br>Establezca este parámetro en <strong>1</strong> si su tienda está registrada en <strong>bepaid.tech</strong>.</td><td>Si necesita cambiar el host a Bielorrusia, establezca este parámetro en <strong>""</strong> (valor vacío).</td></tr><tr><td><strong>test_payments</strong></td><td>Esta variable se usa para <strong>pagos de prueba</strong>. Para realizar un pago de prueba, añádala con cualquier valor.</td><td></td></tr><tr><td><strong>bepaid_attempts</strong> </td><td>Especifica el <strong>número de intentos de pago</strong>. De forma predeterminada, <strong>1 intento</strong> está permitido.</td><td></td></tr><tr><td><strong>сustomer_data</strong></td><td>Una matriz que contiene el <strong>nombre</strong>, <strong>apellido</strong>, y <strong>correo electrónico</strong>del pagador. Estos datos son necesarios para enviar el recibo al correo electrónico del pagador y pueden editarse en la página de pago.</td><td>El parámetro debe pasarse como una <strong>lista de pares clave-valor en formato JSON</strong>.<br>Por ejemplo:<br>customer_data = ‘{“first_name”: “Sam”, “last_name”: “Smith”, “email”: “sam_smith@mavibot.ai” }’</td></tr><tr><td><strong>bepaid_contract</strong> (condicionalmente obligatorio)</td><td>Propósito del pago mediante token</td><td><p><strong>Valores esperados:</strong></p><ul><li><strong>“recurring”</strong> – para pagos regulares con una frecuencia establecida</li><li><strong>“card_on_file”</strong> – para pagos únicos o irregulares, por ejemplo, pago posterior por un servicio</li></ul></td></tr></tbody></table>

Después de completar el pago, la **bepaid\_callback\_data** variable se añadirá para el cliente. Contiene la respuesta del sistema de pago para la transacción completada. Puede extraer los datos necesarios de este diccionario usando el método **get** .

## **Cómo probar pagos**

Para realizar un pago de prueba, antes de configurar la **payment\_sum** variable, establezca la **test\_payments** variable con cualquier valor.\
Recuerde eliminarla cuando ejecute el bot en **modo en vivo**!

**Tarjetas de prueba:**

* 4200000000000000 — éxito
* 4005550000000019 — fallido

Si algo no funciona, compare sus datos con la documentación oficial: <https://docs.bepaid.by/ru/test-integration#test-card-number>

## **Ejemplo de generación de un enlace de pago**

Vamos a crear un enlace de pago para **100 rublos bielorrusos** (moneda predeterminada).

Nota: primero, configure las variables adicionales para la configuración y luego establezca **payment\_sum**. Las variables también pueden configurarse antes en el flujo de trabajo, no necesariamente en el mismo bloque: esto es solo un ejemplo.

Finalmente, muestre la **bepaid\_pay\_url** variable en la ubicación deseada; contiene el enlace de pago generado.

## **Gestión de suscripciones**

La integración del sistema de pago le permite crear suscripciones para sus clientes.

Antes de usar esta funcionalidad en **Salebot**, cree un plan de suscripción en su **bePaid** cuenta.

{% hint style="warning" %}
Si el **“Planes”** y **“Suscripciones”** los menús no aparecen en su cuenta, póngase en contacto con su gestor.
{% endhint %}

**Creación de una suscripción y generación de un enlace de pago**

Use la **get\_bepaid\_subscription\_url** función, 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><strong>plan_id</strong> es el ID del plan en el <strong>bePaid</strong> sistema.</td></tr></tbody></table>

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

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

Una vez que el pago sea exitoso, la suscripción se activará. El trato recibirá las variables **bepaid\_subscription\_id** y **bepaid\_subscription\_status** y se enviará una devolución de llamada al bot (consulte la sección **“Cómo manejar el resultado”** ).

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

Para obtener los detalles actuales de la suscripción de un cliente, llame a la **get\_bepaid\_subscription\_info** función y pase el parámetro **subscription\_id** (el valor puede tomarse de la **bepaid\_subscription\_id** variable).

## **Cancelación de una suscripción**

Para cancelar una suscripción, use la **cancel\_bepaid\_subscription** función.

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

Tras una cancelación exitosa, la **bepaid\_subscription\_status** variable se establecerá en **“canceled”**, y se enviará una devolución de llamada al bot (consulte la sección **“Cómo manejar el resultado”** ).

## Estados de suscripción

<table data-header-hidden><thead><tr><th width="270"></th><th></th></tr></thead><tbody><tr><td>trial</td><td>Activa o cancelada <strong>período de prueba</strong> suscripción.</td></tr><tr><td>active</td><td>Suscripción activa con <strong>pago realizado a tiempo</strong>.</td></tr><tr><td>failed</td><td>Suscripción fallida. <strong>bePaid</strong> no pudo procesar el siguiente pago.</td></tr><tr><td>error</td><td>Se produjo un error mientras <strong>bePaid</strong> intentaba procesar el pago.</td></tr><tr><td>canceled</td><td>La suscripción ha sido <strong>canceled</strong> y ya no está activa.</td></tr></tbody></table>

## **Pagos recurrentes**

También puede configurar un sistema de suscripción **sin crear un plan** en su **bePaid** cuenta.

Para ello, necesitará el **token de la tarjeta**.

del cliente. Para obtener el token de la tarjeta, el cliente debe realizar un pago inicial usando un enlace generado mediante **payment\_sum**.

Antes de configurar la **payment\_sum** valor, establezca la **bepaid\_contract** variable para especificar el propósito de futuros pagos mediante token:

* **“recurring”** – para pagos regulares con una frecuencia establecida
* **“card\_on\_file”** – para pagos únicos o irregulares, por ejemplo, pago posterior por un servicio

{% hint style="warning" %}
El **“card\_on\_file”** la opción no es compatible con todos los adquirentes. Si desea usarla, póngase en contacto con su gestor de cuenta.
{% endhint %}

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

A continuación, configure su embudo y especifique una fecha o condición para el cargo automático, luego llame a la **make\_bepaid\_token\_payment** función, pasando los parámetros requeridos.

Orden de los parámetros:\
**amount → currency → description → contract**

### Descripciones de parámetros

<table><thead><tr><th width="286"></th><th></th></tr></thead><tbody><tr><td>amount (obligatorio)</td><td><strong>Importe del pago</strong> – el valor esperado es un <strong>entero</strong> o <strong>número decimal</strong>, por ejemplo: 100 o 100.5.</td></tr><tr><td>currency (obligatorio)</td><td><strong>Moneda del pago</strong> en <strong>ISO 4217</strong> formato, por ejemplo: <strong>“USD”</strong>.</td></tr><tr><td>description (obligatorio)</td><td><strong>Descripción del cargo</strong>, por ejemplo: <strong>“Pago semanal de suscripción para participar en el club de aficionados”</strong>.</td></tr><tr><td>contract (obligatorio)</td><td><strong>Propósito del pago mediante token.</strong> Valores esperados: <strong>“recurring”</strong> o <strong>“card_on_file”</strong>.</td></tr></tbody></table>

{% hint style="warning" %}
El **contract** debe **coincidir exactamente** con el valor especificado al crear el enlace de pago inicial!
{% endhint %}

Si el pago es exitoso, la función devolverá el mensaje **“Cobro exitoso mediante token de bePaid”**, recibirá una devolución de llamada por el pago exitoso y la variable del trato **bepaid\_token\_payment\_completed** se establecerá en **“True”**.

Si el pago falla, la función devolverá un mensaje indicando el motivo del fallo del pago, se enviará al bot una devolución de llamada con el sufijo **“\_fail”** y la variable del trato **bepaid\_token\_payment\_completed** se establecerá en **“False”**.

{% hint style="warning" %}
El banco puede requerir que el cliente complete el pago. En este caso, la función devolverá un enlace que solicita al cliente que realice **la autenticación 3-D Secure**.
{% endhint %}

## **Cómo manejar el resultado**

En respuesta a las acciones del cliente, el bot recibirá devoluciones de llamada compuestas por los **primeros 20 caracteres de la clave secreta** y un sufijo, que depende del tipo y del resultado de la operación.

En el sistema, la devolución de llamada aparece como un mensaje del usuario, pero el usuario **no la ve**.

### **Para pagos**

Para pagos **no relacionados con suscripciones**, recibirá uno de los siguientes mensajes:

* **keyNumber\_success** – para un pago exitoso
* **keyNumber\_fail** – para un pago fallido

También puede seguir el estado del último pago usando las variables:

* **bepaid\_payment\_completed** – para pagos que involucran al cliente
* **bepaid\_token\_payment\_completed** – para **pagos automáticos mediante token de tarjeta**

### **Para suscripciones**

Después de que una suscripción se active correctamente, ya sea en el primer pago o en uno recurrente, el bot recibirá el mensaje **keyNumber\_success**.

Si la suscripción se cancela, recibirá **keyNumber\_canceled**.

En caso de un pago de suscripción fallido, se enviará el mensaje **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/es/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.
