# Pagamento no Telegram

## Como conectar um sistema de pagamento

O sistema de pagamento está integrado ao Telegram. Para aceitar pagamentos dentro do mensageiro, você precisa:

* Conectar um sistema de pagamento ao seu bot usando **BotFather**.
* Vá até as configurações do bot desejado e selecione **"Pagamentos"** no menu.

<div data-with-frame="true"><figure><img src="/files/7e974e80c72eb92c67d3f80a5668b27fc6079e4d" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/38ea896e435a64d92f49d34c4596a1035441da41" alt="" width="375"><figcaption></figcaption></figure></div>

Siga as instruções para conectar um sistema de pagamento disponível e copie o token fornecido.

<div data-with-frame="true"><figure><img src="/files/4eea8c654ebd3ed25ab481e3804bdbbae29890e0" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/99fea07d1017a3b85322325d9918ad61e8c75d5e" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/23fe23c65adfe80279bc9f82dd21c120f0a44723" alt="" width="375"><figcaption></figcaption></figure></div>

## **Como emitir uma fatura para um cliente**

Para enviar uma fatura no Telegram, use o método e especifique os parâmetros necessários.

**tg\_send\_invoice(provider\_token, platform\_id, title, description, currency, prices, photo\_url, payload, protect\_content, disable\_notification, need\_name, need\_phone\_number, need\_email, reply\_to\_message\_id, reply\_markup, message\_thread\_id, provider\_data)**

<table><thead><tr><th width="270">Parâmetros da função</th><th>Descrição do parâmetro</th></tr></thead><tbody><tr><td><mark style="color:vermelho;"><strong>!</strong></mark> provider_token </td><td>(parâmetro obrigatório) token obtido do BotFather após conectar o sistema de pagamento</td></tr><tr><td><mark style="color:vermelho;"><strong>!</strong></mark> platform_id </td><td>(parâmetro obrigatório) ID do destinatário - identificador do usuário, grupo ou canal</td></tr><tr><td><mark style="color:vermelho;"><strong>!</strong></mark> title </td><td>(parâmetro obrigatório) título do produto, de 1 a 32 caracteres</td></tr><tr><td><mark style="color:vermelho;"><strong>!</strong></mark> description </td><td>(parâmetro obrigatório) descrição do produto, de 1 a 255 caracteres</td></tr><tr><td><mark style="color:vermelho;"><strong>!</strong></mark> currency </td><td>(parâmetro obrigatório) moeda de pagamento (<mark style="color:padrão;background-color:red;"><strong>EUR</strong></mark>, USD, UAH etc.; para mais detalhes<a href="https://core.telegram.org/bots/payments#supported-currencies"> https://core.telegram.org/bots/payments#supported-currencies</a> )</td></tr><tr><td>prices</td><td><p>Uma matriz de matrizes contendo detalhes de preços do produto e serviços adicionais (entrega, embalagem etc.). Exibido na página de pagamento. O valor pode ser especificado como um número inteiro (por exemplo, 125) ou um número decimal usando ponto (por exemplo, 120.25).<br></p><p>Por exemplo: [["product", 2000], ["VAT", 20.75], ["packaging", 100]]</p></td></tr><tr><td>photo_url</td><td>URL da imagem do produto</td></tr><tr><td>payload </td><td>A primeira parte do callback de pagamento, o padrão é <strong>tg_payment</strong></td></tr><tr><td>protect_content</td><td>1 - protege contra cópias e capturas de tela, 0 - sem proteção</td></tr><tr><td>disable_notification </td><td>1 - enviar com notificação, 0 - sem notificação</td></tr><tr><td>need_name</td><td>1 - exigir o nome completo do usuário para concluir o pedido, 0 - não solicitar nome</td></tr><tr><td>need_phone_number</td><td>1 - exigir o número de telefone do usuário para concluir o pedido, 0 - não solicitar número de telefone</td></tr><tr><td>need_email </td><td>1 - exigir o e-mail do usuário para concluir o pedido, 0 - não solicitar e-mail</td></tr><tr><td>reply_to_message_id</td><td>ID da mensagem para responder; se você quiser enviar a fatura como uma mensagem separada, use duas aspas simples ('')</td></tr><tr><td>reply_markup</td><td>Teclado com o primeiro botão definido para o tipo <strong>pay</strong></td></tr><tr><td>message_thread_id </td><td>ID do tópico (disponível para supergrupos com a funcionalidade de fórum ativada)</td></tr><tr><td>provider_data </td><td>Dados da fatura em <strong>JSON</strong> formato para serem enviados ao provedor de serviços de pagamento. O sistema de pagamento deve fornecer descrições detalhadas dos campos obrigatórios.</td></tr></tbody></table>

{% hint style="warning" %}
**IMPORTANTE!** Todos os parâmetros devem ser passados na ordem especificada na função. Se você precisar especificar um parâmetro específico e omitir outros, deixe valores vazios ou valores conforme especificado na documentação para os parâmetros de que você não precisa.
{% endhint %}

Exemplo:

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

Se algum dos parâmetros `need_name`, `need_phone_number`, ou `need_email` estiver habilitado, o usuário será solicitado a fornecer essas informações antes de concluir o pagamento. Após o pagamento ser realizado com sucesso, os dados serão salvos nas variáveis correspondentes do cliente.

Exemplo:

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

O resultado: os dados são solicitados antes do pagamento.

## Callback de pagamento

Se o pagamento for bem-sucedido, um callback com o seguinte conteúdo será enviado ao chat do usuário:

tg\_payment 1372995196 120.75 <mark style="color:vermelho;">**USD**</mark> 2ff747b9-000f-5000-b000-16d7e3517aa&#x39;**,** onde&#x20;

1. course\_pay - payload - o payload da solicitação original de criação da fatura;&#x20;
2. 1372995196 - o ID do chat para o qual a fatura foi originalmente enviada;
3. 120.75 - o valor total do pagamento;
4. <mark style="color:vermelho;">**USD**</mark> - a moeda;
5. 2ff747b9-000f-5000-b000-16d7e3517aa9 - o ID do pagamento no sistema do comerciante.

<div data-with-frame="true"><figure><img src="/files/46209d90e4c0277dac0bd4a3877485498aad5250" alt="" width="563"><figcaption></figcaption></figure></div>

Além disso, se o nome, número de telefone e/ou e-mail do usuário forem solicitados, as variáveis correspondentes serão atribuídas ao cliente:

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

<div data-with-frame="true"><figure><img src="/files/066a98ba882d414ae457261e41bdea279470c2f6" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Um callback de sucesso do pagamento será enviado para as **mensagens diretas** do usuário com o bot.

O usuário **deve ter um chat existente** com o bot (ou seja, ele deve ter iniciado ou assinado o bot) **antes** para que o pagamento seja realizado. Caso contrário, o bot não poderá enviar a mensagem direta.
{% endhint %}

{% hint style="info" %}
Assim que o webhook de pagamento for recebido, o pagamento será confirmado automaticamente por meio do método answerPreCheckoutQuery. <https://core.telegram.org/bots/api#answerprecheckoutquery>
{% endhint %}

## Mensagem fixada com um botão de pagamento

Você precisa usar o recurso de fixar mensagem após conectar o sistema de pagamento.

**tg\_pin\_chat\_message(platform\_id, message\_id, disable\_notification)**

<table><thead><tr><th width="271">Parâmetros da função</th><th>Descrição</th></tr></thead><tbody><tr><td><mark style="color:vermelho;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID do chat do Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><strong>message_id</strong> </td><td>ID da mensagem a ser fixada</td></tr><tr><td><strong>disable_notification</strong> </td><td>Este parâmetro define se uma notificação deve ser enviada a todos os membros do chat sobre a nova mensagem fixada. As notificações são sempre desativadas em canais e chats privados.<br>Para desativar as notificações, defina o <strong>disable_notification</strong> parâmetro como 1; caso contrário, use 0.</td></tr></tbody></table>

Exemplo:

Etapa 1:\
prices = \[\["course", 100], \["VAT", 20.75]]

result=tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Curso sobre cursos', 'Criar cursos é fácil', '<mark style="color:vermelho;">**USD**</mark>', prices, '<mark style="color:vermelho;">**<https://salebot.pro/promo.png>'**</mark>, 'course\_pay','0', '0', '1', '1', '1', '', '{"inline\_keyboard": \[\[{"text":"Pagar", "pay":"True"}]]}')

Etapa 2:\
Como resultado da primeira etapa, você receberá uma resposta da qual precisa extrair o **message\_id** valor usando a **função get()** .\
res=get(result,'result')\
m\_id=get(res,'message\_id')

<div data-with-frame="true"><figure><img src="/files/898af4d217c18ece8cef917d214dac159df483ee" alt="" width="246"><figcaption></figcaption></figure></div>

Em seguida, fixe a mensagem: tg\_pin\_chat\_message(#{platform\_id}, #{m\_id}, 1)

### Exemplo: conjunto mínimo de parâmetros

prices = \[\["super course", 100]]

result= tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Curso sobre cursos', 'Criar cursos é super fácil', '<mark style="color:vermelho;">**USD**</mark>', prices)

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

### **Exemplo: teclado**

prices = \[\["course", 100], \["VAT", 20.75]]

tg\_send\_invoice('381764678:TEST:129736', platform\_id, 'Curso sobre cursos', 'Criar cursos é fácil, '<mark style="color:vermelho;">**USD**</mark>', prices, <mark style="color:vermelho;">**'<https://mavibot.ai/promo.png>**</mark>', 'course\_pay','0', '0', '1', '1', '1', '', '{"inline\_keyboard": \[\[{"text":"Pagar", "pay":"True"}], \[{"text":"Outro botão", "callback\_data": "Outro botão"}]]}')

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


---

# 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/pt/chatbot/mensageiros/telegram/api/payment.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.
