# Telegram

## Cómo conectar el sistema de pago&#x20;

### El sistema de pago está integrado en Telegram.&#x20;

Para realizar pagos dentro del mensajero, necesitas:&#x20;

* conectar el sistema de pago al bot en el botfather bot&#x20;
* ir a la configuración del bot deseado y en el menú seleccionar Payments&#x20;
* seguir las instrucciones para conectar un sistema de pago disponible y copiar el token emitido

&#x20;                                           ![](/files/7ebe3c28fa6e90177132abdfe4586314c80b5f62)<br>

![](/files/0e9762072c49df395ac78be67c8541ff15a1e6f5)

## Cómo facturar a un cliente&#x20;

Para enviar una factura a Telegram usa el método&#x20;

tg\_send\_invoice(provider\_token, platform\_id, title, description, currency, prices, photo\_url, payload, protect\_content, disable\_notification, need\_name, phone\_number, need\_email, reply\_to\_message\_id, reply\_markup, reply\_id) - los parámetros requeridos están resaltados en negrita&#x20;

**provider\_token** - token recibido en Botfather, después de conectar el sistema de pago&#x20;

**platform\_id** - destinatario - identificador de usuario, grupo o canal&#x20;

**title** - título del artículo, 1-32 caracteres

**description** - descripción de los productos, 1-255 caracteres&#x20;

**currency** - moneda de pago (RUB, USD, UAH y así sucesivamente <https://core.telegram.org/bots/payments#supported-currencies>) &#x20;

**payload** - la primera parte de la moneda sobre el pago, por defecto tg\_payment&#x20;

**prices** - desglose del precio (descripción abajo)&#x20;

**photo\_url** - enlace a la imagen del producto&#x20;

**disable\_notification** - 1 - enviar con notificación, 0 - sin notificación

**protect\_content** - 1 protección contra copias y capturas de pantalla, 0 - sin protección&#x20;

**need\_name** - 1 si necesitas un nombre completo para completar el pedido, 0 - sin pedir un nombre&#x20;

**need\_phone\_number** - 1 si requieres el número de teléfono del usuario para completar el pedido, 0 - sin solicitar número&#x20;

**need\_email** - 1 si requieres la dirección de correo electrónico del usuario para completar el pedido, 0 - sin solicitar correo&#x20;

**reply\_to\_message\_id** - el id del mensaje al que respondemos, '' no es la respuesta&#x20;

**reply\_markup** - teclado, el primer botón debe ser un botón con tipo de pago

Si se especifica uno de los parámetros need\_name, need\_phone\_number o need\_email, el usuario solicitará los datos antes de pagar y los guardará en las variables del cliente si el pago se realiza correctamente. En la captura de pantalla de abajo se muestra la solicitud de todos los datos de entrada:

**prices** - un array de arrays con datos sobre el costo de los productos y servicios adicionales (entrega, embalaje, etc.). Se muestra en la página de pago. El importe deberá indicarse ya sea con un entero de 125 o con un decimal mediante punto 120.25 Por ejemplo: \[\["productos", 2000], \["IVA", 20.75], \["embalaje", 100]

## Callback del pago&#x20;

Después de un pago exitoso, en el chat con el usuario llegará un colbeck de la siguiente manera:&#x20;

**phone\_best 4737685 2120.75 UAH 1955518436**&#x20;

donde phone\_best - payload - de la solicitud de creación de la factura 473737685 - un id de chat, al que originalmente se envió la factura 2120.75 - el importe total del pago UAH - moneda 1955518436 - id de pago en el sistema del comerciante

Además, si solicitaste un nombre, teléfono y/o correo electrónico, el cliente escribirá las variables:&#x20;

**tg\_payment\_name, tg\_payment\_phone** y **tg\_payment\_email**

{% hint style="info" %}
En caso de éxito, el kolbek se enviará a los mensajes personales del usuario. Para ello, el cliente y el bot deben cooperar antes del pago (¡el cliente debe estar suscrito al bot)!
{% endhint %}

{% hint style="info" %}
Después de recibir el hook sobre el pago, el pago se confirmará automáticamente mediante answerPreCheckoutQuery <https://core.telegram.org/bots/api#answerprecheckoutquery> . &#x20;
{% endhint %}

## Ejemplos&#x20;

`prices = [["product", 2000], ["NDS", 20.75], ["package", 100]]` \
`result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'phoneW-200', 'El mejor modelo del mercado', 'UAH', prices, 'https://images11.popmeh.ru/cropped.jpg', 'phone_best', 0, 0, 1, 0, 1)`

![](/files/cf7364845fccaea5a64d72d8f26ead6053346641)

### Ejemplo con conjuntos mínimos de parámetros

`prices = [["un producto asombroso", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, '¡El mejor bot de todos!',`` `<mark style="color:morado;">`'¡Un curso increíble! ¡Sé el mejor!'`</mark>`, 'UAH', prices)`

![](/files/30ef07fe25331b73c3fd45f36b1c5052ea2b33cc)

### Ejemplo con un teclado&#x20;

`prices = [["product", 2000], ["NDS", 20.75], ["package", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'Mejor modelo del mercado', 'UAH', prices, 'https://helpix.ru/news/200405/181746/gf200_2.jpg', 'phone_best', 0, 0, 1, 1, 1, '', '{"inline_keyboard": [[{"text":"Pagar", "pay":"True"}], [{"text":"Otro botón más", "callback_data": "Otro botón más"}]]}')`

![](/files/a541f19f62ca3d17256525b228ce8a13a28760ef)


---

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