# Telegram

## Як підключити платіжну систему&#x20;

### Платіжна система вбудована в Telegram.&#x20;

Щоб здійснювати платежі всередині месенджера, вам потрібно:&#x20;

* підключити платіжну систему до бота в боті BotFather&#x20;
* перейти в налаштування потрібного бота та в меню вибрати Payments&#x20;
* дотримуючись інструкцій, підключити доступну платіжну систему та скопіювати виданий токен

&#x20;                                           ![](/files/84edca40366bfdf78c005e264a12f4ab4d3d844f)<br>

![](/files/51803708ef8e332516c423e29fc6b8874663d91b)

## Як виставити рахунок клієнту&#x20;

Щоб надіслати рахунок у Telegram, використовуйте метод&#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) - необхідні параметри виділено жирним шрифтом&#x20;

**provider\_token** - токен, отриманий у BotFather після підключення платіжної системи&#x20;

**platform\_id** - одержувач - ідентифікатор користувача, групи або каналу&#x20;

**title** - назва товару, 1-32 символи

**description** - опис товару, 1-255 символів&#x20;

**currency** - валюта платежу (RUB, USD, UAH тощо <https://core.telegram.org/bots/payments#supported-currencies>) &#x20;

**payload** - перша частина примітки про платіж, за замовчуванням tg\_payment&#x20;

**prices** - деталізація ціни (опис нижче)&#x20;

**photo\_url** - посилання на зображення товару&#x20;

**disable\_notification** - 1 - надіслати з повідомленням, 0 - без повідомлення

**protect\_content** - 1 - захист від копіювання та скриншотів, 0 - без захисту&#x20;

**need\_name** - 1, якщо вам потрібне повне ім’я користувача для завершення замовлення, 0 - без запиту імені&#x20;

**need\_phone\_number** - 1, якщо вам потрібен номер телефону користувача для завершення замовлення, 0 - без запиту номера&#x20;

**need\_email** - 1, якщо вам потрібна електронна адреса користувача для завершення замовлення, 0 - без запиту пошти&#x20;

**reply\_to\_message\_id** - ідентифікатор повідомлення, на яке ми відповідаємо, '' — без відповіді&#x20;

**reply\_markup** - клавіатура, перша кнопка має бути кнопкою з типом pay

Якщо вказано один із параметрів need\_name, need\_phone\_number або need\_email, користувач запитає дані перед оплатою і збереже їх у змінні клієнта, якщо платіж буде успішним. На скріншоті нижче показано запит усіх даних для введення:

**prices** - масив масивів із даними про вартість товарів і додаткових послуг (доставка, пакування тощо). Відображається на сторінці оплати. Сума має бути вказана або цілим числом 125, або дробом через крапку 120.25. Наприклад: \[\["goods", 2000], \["VAT", 20.75], \["packaging", 100]

## Callback на оплату&#x20;

Після успішної оплати в чаті з користувачем прийде callback, як показано нижче:&#x20;

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

де phone\_best - payload - з запиту на створення рахунку 473737685 - id чату, куди спочатку було надіслано рахунок 2120.75 - повна сума платежу UAH - валюта 1955518436 - id платежу в системі продавця

Також, якщо ви запросили ім’я, телефон та/або email, клієнт запише змінні:&#x20;

**tg\_payment\_name, tg\_payment\_phone** та **tg\_payment\_email**

{% hint style="info" %}
У разі успіху callback буде надіслано в особисті повідомлення користувача. Для цього клієнт і бот повинні взаємодіяти до оплати (клієнт має бути підписаний на бота)!
{% endhint %}

{% hint style="info" %}
Після отримання hook про оплату платіж буде автоматично підтверджено через answerPreCheckoutQuery <https://core.telegram.org/bots/api#answerprecheckoutquery> . &#x20;
{% endhint %}

## Приклади&#x20;

`prices = [["product", 2000], ["NDS", 20.75], ["package", 100]]` \
`result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'phoneW-200', 'Найкраща модель на ринку', 'UAH', prices, 'https://images11.popmeh.ru/cropped.jpg', 'phone_best', 0, 0, 1, 0, 1)`

![](/files/9cbbb8be3efccaa566fe172470af79994af50fde)

### Приклад із мінімальним набором параметрів

`prices = [["дивовижний продукт", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Найкращий бот у світі!',`` `<mark style="color:purple;">`'Дивовижний курс! Будьте найкращими!'`</mark>`, 'UAH', prices)`

![](/files/2ca52be221fd982bb8d6e6e1baa44263b68c7e08)

### Приклад із клавіатурою&#x20;

`prices = [["product", 2000], ["NDS", 20.75], ["package", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'Найкраща модель на ринку', 'UAH', prices, 'https://helpix.ru/news/200405/181746/gf200_2.jpg', 'phone_best', 0, 0, 1, 1, 1, '', '{"inline_keyboard": [[{"text":"Сплатити", "pay":"True"}], [{"text":"Ще одна кнопка", "callback_data": "Ще одна кнопка"}]]}')`

![](/files/fba76ce99722eba821833aa718bb3848bf84e04a)


---

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