# Bepaid

## **Comment se connecter**

Pour connecter le **bePaid** système de paiement, vous aurez besoin d’un **ID du magasin**, **clé secrète**, et **clé publique**. Une fois ces identifiants reçus, allez dans les paramètres de **Salebot**.

{% hint style="info" %}
Pour obtenir la **ID du magasin**, **clé secrète**, et **clé publique**, veuillez contacter **baPaid** l’assistance technique pour obtenir de l’aide.
{% endhint %}

Dans **MaviBot**, ouvrez la section **« Système de paiement »** et sélectionnez **bePaid**. Ensuite, saisissez les identifiants que vous avez reçus.

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

Veuillez noter que le dernier champ est un interrupteur qui sélectionne l’hébergement de l’API selon le pays d’utilisation : **Biélorussie** ou **Russie**.

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

## **Comment générer un lien de paiement**

Pour générer un lien de paiement, vous devez définir une valeur pour la variable **payment\_sum** (par exemple : **150** ou **100.55** — utilisez un point comme séparateur décimal).

Une fois la variable **payment\_sum** définie, la variable **bepaid\_pay\_url** apparaîtra automatiquement. Vous pouvez afficher cette variable à l’écran sous forme de lien ou la placer sur un bouton avec le texte **« Payer »**.

Le lien de paiement ressemblera à ceci :\
<https://checkout.bepaid.by/widget/hpp.html?token=a05eabd3f9368725efbc175614c7d469da08f198cc51916b07fb75e53f9a3e1a>

Avant de définir la variable **payment\_sum** vous pouvez également définir les variables facultatives suivantes pour personnaliser le paiement.

{% hint style="info" %}
Par défaut, la devise est définie sur **rouble biélorusse**. Si vous devez utiliser une autre devise, définissez une valeur pour la variable **currency** .
{% endhint %}

<table><thead><tr><th width="209">Paramètres de la fonction</th><th width="242">Description</th><th>Plus d’informations</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>Devise de paiement au format ISO 4217</td><td>Par exemple : <strong>USD</strong></td></tr><tr><td><strong>language</strong></td><td><strong>Langue de la page de paiement</strong><br>Par défaut : <strong>en</strong>.</td><td><p><strong>Valeurs autorisées :</strong></p><ul><li><strong>en</strong> – anglais</li><li><strong>es</strong> – espagnol</li><li><strong>tr</strong> – turc</li><li><strong>de</strong> – allemand</li><li><strong>it</strong> – italien</li><li><strong>ru</strong> – russe</li><li><strong>zh</strong> – chinois</li><li><strong>fr</strong> – français</li><li><strong>da</strong> – danois</li><li><strong>sv</strong> – suédois</li><li><strong>no</strong> – norvégien</li><li><strong>fi</strong> – finnois</li><li><strong>pl</strong> – polonais</li><li><strong>ja</strong> – japonais</li><li><strong>uk</strong> – ukrainien</li><li><strong>be</strong> – biélorusse</li><li><strong>ka</strong> – géorgien</li><li><strong>ro</strong> – roumain</li></ul></td></tr><tr><td><strong>payment_description</strong></td><td>Description du paiement</td><td></td></tr><tr><td><strong>link_expired</strong> </td><td><strong>Expiration du lien de paiement</strong><br>Définissez la date d’expiration au format <strong>jj.mm.aaaa</strong> (par exemple : <strong>25.06.2025</strong>).<br>Par défaut, le paiement doit être effectué dans les <strong>24 heures</strong>.</td><td><p>Vous pouvez également utiliser le champ <strong>« Assign Variables on Redirect »</strong> pour définir :</p><ul><li><code>link_expired = current_date + 2</code> — le lien sera valide pendant <strong>2 jours jusqu’à 00:00</strong>.</li><li>Vous pouvez également spécifier une date et une heure d’expiration exactes au format <strong>jj.mm.aaaa hh:mm</strong> (par exemple : <strong>25.06.2025 12:23</strong>). Par défaut, le paiement doit être effectué dans les <strong>24 heures</strong>.</li></ul><p>Des variables standard peuvent également être utilisées. Par exemple, pour définir la validité du lien à <strong>30 minutes</strong> :<br>time = current_time + 30<br>link_expired = "#{current_date} #{time}"</p></td></tr><tr><td>russian_host</td><td><strong>Indicateur pour un magasin enregistré sur l’hôte russe de bePaid</strong><br>Définissez ce paramètre sur <strong>1</strong> si votre magasin est enregistré sur <strong>bepaid.tech</strong>.</td><td>Si vous devez basculer l’hôte vers la Biélorussie, définissez ce paramètre sur <strong>""</strong> (valeur vide).</td></tr><tr><td><strong>test_payments</strong></td><td>Cette variable est utilisée pour les <strong>paiements de test</strong>. Pour effectuer un paiement de test, ajoutez-la avec n’importe quelle valeur.</td><td></td></tr><tr><td><strong>bepaid_attempts</strong> </td><td>Spécifie le <strong>nombre de tentatives de paiement</strong>. Par défaut, <strong>1 tentative</strong> est autorisée.</td><td></td></tr><tr><td><strong>сustomer_data</strong></td><td>Un tableau contenant le <strong>prénom</strong>, <strong>nom</strong>, et <strong>e-mail</strong>du payeur. Ces données sont requises pour envoyer le reçu à l’e-mail du payeur et peuvent être modifiées sur la page de paiement.</td><td>Le paramètre doit être transmis sous forme de <strong>liste de paires clé-valeur au format JSON</strong>.<br>Par exemple :<br>customer_data = ‘{“first_name”: “Sam”, “last_name”: “Smith”, “email”: “sam_smith@mavibot.ai” }’</td></tr><tr><td><strong>bepaid_contract</strong> (conditionnellement requis)</td><td>Objet du paiement par jeton</td><td><p><strong>Valeurs attendues :</strong></p><ul><li><strong>« recurring »</strong> – pour les paiements réguliers à fréquence définie</li><li><strong>« card_on_file »</strong> – pour les paiements ponctuels ou irréguliers, par ex. paiement après prestation d’un service</li></ul></td></tr></tbody></table>

Une fois le paiement effectué, la variable **bepaid\_callback\_data** sera ajoutée pour le client. Elle contient la réponse du système de paiement pour la transaction terminée. Vous pouvez extraire les données requises de ce dictionnaire à l’aide de la méthode **get** .

## **Comment tester les paiements**

Pour effectuer un paiement de test, avant de définir la variable **payment\_sum** définissez la variable **test\_payments** avec n’importe quelle valeur.\
N’oubliez pas de la supprimer lorsque vous lancez le bot en **mode réel**!

**Cartes de test :**

* 4200000000000000 — succès
* 4005550000000019 — échec

Si quelque chose ne fonctionne pas, comparez vos données avec la documentation officielle : <https://docs.bepaid.by/ru/test-integration#test-card-number>

## **Exemple de génération d’un lien de paiement**

Créons un lien de paiement pour **100 roubles biélorusses** (devise par défaut).

Remarque : commencez par définir les variables supplémentaires de configuration, puis définissez **payment\_sum**. Les variables peuvent également être définies plus tôt dans le workflow, pas nécessairement dans le même bloc — ceci n’est qu’un exemple.

Enfin, affichez la variable **bepaid\_pay\_url** à l’emplacement souhaité ; elle contient le lien de paiement généré.

## **Gestion des abonnements**

L’intégration du système de paiement vous permet de créer des abonnements pour vos clients.

Avant d’utiliser cette fonctionnalité dans **Salebot**, créez un plan d’abonnement dans votre compte **bePaid** .

{% hint style="warning" %}
Si le **« Plans »** et **« Subscriptions »** les menus n’apparaissent pas dans votre compte, veuillez contacter votre responsable.
{% endhint %}

**Création d’un abonnement et génération d’un lien de paiement**

Utilisez la fonction **get\_bepaid\_subscription\_url** en passant le paramètre **plan\_id** où…

<table><thead><tr><th width="233"></th><th></th></tr></thead><tbody><tr><td>plan_id</td><td><strong>plan_id</strong> est l’identifiant du plan dans le système <strong>bePaid</strong> .</td></tr></tbody></table>

En conséquence, la fonction créera un abonnement et renverra un lien de paiement.

Envoyez le lien au client et attendez que le paiement soit effectué.

Une fois le paiement réussi, l’abonnement sera activé. L’affaire recevra les variables **bepaid\_subscription\_id** et **bepaid\_subscription\_status** et un callback sera envoyé au bot (voir la section **« Comment traiter le résultat »** ).

## **Récupération des informations d’abonnement**

Pour obtenir les détails actuels de l’abonnement d’un client, appelez la fonction **get\_bepaid\_subscription\_info** et transmettez le paramètre **subscription\_id** (la valeur peut être prise à partir de la variable **bepaid\_subscription\_id** ).

## **Annulation d’un abonnement**

Pour annuler un abonnement, utilisez **cancel\_bepaid\_subscription** fonction.

Cette fonction accepte un seul paramètre : **subscription\_id** (la valeur peut être prise à partir de la variable **bepaid\_subscription\_id** ).

En cas d’annulation réussie, la variable **bepaid\_subscription\_status** sera définie sur **« canceled »**, et un callback sera envoyé au bot (voir la section **« Comment traiter le résultat »** ).

## Statuts des abonnements

<table data-header-hidden><thead><tr><th width="270"></th><th></th></tr></thead><tbody><tr><td>trial</td><td>Actif ou annulé <strong>période d’essai</strong> de l’abonnement.</td></tr><tr><td>active</td><td>Abonnement actif avec <strong>paiement effectué à temps</strong>.</td></tr><tr><td>failed</td><td>Abonnement en échec. <strong>bePaid</strong> n’a pas pu traiter le paiement suivant.</td></tr><tr><td>error</td><td>Une erreur s’est produite lors de <strong>bePaid</strong> tentait de traiter le paiement.</td></tr><tr><td>canceled</td><td>L’abonnement a été <strong>canceled</strong> et n’est plus actif.</td></tr></tbody></table>

## **Paiements récurrents**

Vous pouvez également mettre en place un système d’abonnement **sans créer de plan** dans votre **bePaid** .

Pour cela, vous aurez besoin du **jeton de carte**.

du client. Pour obtenir le jeton de carte, le client doit effectuer un paiement initial à l’aide d’un lien généré via **payment\_sum**.

Avant de définir la variable **payment\_sum** valeur, définissez la **bepaid\_contract** variable pour préciser l’objet des futurs paiements par jeton :

* **« recurring »** – pour les paiements réguliers à fréquence définie
* **« card\_on\_file »** – pour les paiements ponctuels ou irréguliers, par ex. paiement après prestation d’un service

{% hint style="warning" %}
Le **« card\_on\_file »** n’est pas pris en charge par tous les acquéreurs. Si vous souhaitez l’utiliser, veuillez contacter votre gestionnaire de compte.
{% endhint %}

Après un paiement réussi, la variable **bepaid\_client\_card\_token** sera ajoutée à l’affaire, stockant le jeton de carte du client. Ce jeton vous permet de débiter la carte du client **sans son intervention**.

Ensuite, configurez votre tunnel et indiquez une date ou une condition pour le débit automatique, puis appelez la fonction **make\_bepaid\_token\_payment** en transmettant les paramètres requis.

Ordre des paramètres :\
**amount → currency → description → contract**

### Descriptions des paramètres

<table><thead><tr><th width="286"></th><th></th></tr></thead><tbody><tr><td>amount (requis)</td><td><strong>Montant du paiement</strong> – la valeur attendue est un <strong>entier</strong> ou <strong>nombre décimal</strong>, par exemple : 100 ou 100.5.</td></tr><tr><td>currency (requis)</td><td><strong>Devise du paiement</strong> au <strong>format ISO 4217</strong> , par exemple : <strong>« USD »</strong>.</td></tr><tr><td>description (requis)</td><td><strong>Description du débit</strong>, par exemple : <strong>« Paiement hebdomadaire de l’abonnement pour la participation au club de loisirs »</strong>.</td></tr><tr><td>contract (requis)</td><td><strong>Objet du paiement par jeton.</strong> Valeurs attendues : <strong>« recurring »</strong> ou <strong>« card_on_file »</strong>.</td></tr></tbody></table>

{% hint style="warning" %}
Le **contract** la valeur doit **correspondre exactement** à la valeur spécifiée lors de la création du lien de paiement initial !
{% endhint %}

Si le paiement réussit, la fonction renverra le message **« Débit réussi via le jeton bePaid »**, vous recevrez un callback pour le paiement réussi, et la variable de l’affaire **bepaid\_token\_payment\_completed** sera définie sur **« True »**.

Si le paiement échoue, la fonction renverra un message indiquant la raison de l’échec, un callback avec le suffixe **« \_fail »** sera envoyé au bot, et la variable de l’affaire **bepaid\_token\_payment\_completed** sera définie sur **« False »**.

{% hint style="warning" %}
La banque peut exiger que le client finalise le paiement. Dans ce cas, la fonction renverra un lien invitant le client à passer par **l’authentification 3-D Secure**.
{% endhint %}

## **Comment traiter le résultat**

En réponse aux actions du client, le bot recevra des callbacks composés des **20 premiers caractères de la clé secrète** et d’un suffixe, qui dépend du type et du résultat de l’opération.

Dans le système, le callback apparaît comme un message de l’utilisateur, mais l’utilisateur **ne le voit pas**.

### **Pour les paiements**

Pour les paiements **sans lien avec les abonnements**, vous recevrez l’un des messages suivants :

* **keyNumber\_success** – pour un paiement réussi
* **keyNumber\_fail** – pour un paiement échoué

Vous pouvez également suivre le statut du dernier paiement à l’aide des variables :

* **bepaid\_payment\_completed** – pour les paiements impliquant le client
* **bepaid\_token\_payment\_completed** – pour **les paiements automatiques par jeton de carte**

### **Pour les abonnements**

Après l’activation réussie d’un abonnement, que ce soit lors du premier paiement ou d’un paiement récurrent, le bot recevra le message **keyNumber\_success**.

Si l’abonnement est annulé, vous recevrez **keyNumber\_canceled**.

En cas d’échec du paiement d’un abonnement, le message **keyNumber\_fail** sera envoyé.


---

# 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/fr/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.
