# Botão de pagamento

Um botão com a função Pagamento simplifica o trabalho com sistemas de pagamento conectados ao fornecer um link de pagamento.

imagem

Observe que, em muitos mensageiros, os links só podem ser colocados em botões inline dentro do texto. Não se esqueça de selecionar o tipo de botão apropriado nas configurações do bloco após criar o botão.

O botão da função Pagamento está disponível para os seguintes sistemas de pagamento:

* Stripe

Dentro de um único bloco, você pode criar botões de "Pagamento" para diferentes sistemas de pagamento com valores de pagamento diferentes.

Se não houver sistemas de pagamento conectados ao projeto, esse tipo de botão não estará disponível.

imagem

**Campos principais do botão Pagamento:**

* **Campo de texto:** Este texto aparecerá no botão com o link de pagamento na mensagem.
* **Função:** Selecione o tipo de botão **Pagamento**.
* **Campo de função:** Para criar um botão que forneça um link de pagamento, escolha a **Pagamento** função.
* **Campo do sistema de pagamento:** A lista mostra os sistemas de pagamento conectados ao projeto.

Dependendo do sistema de pagamento escolhido, os campos obrigatórios para gerar o link e criar o comprovante variarão.

Você pode ver aqui as configurações do botão da função Pagamento para diferentes sistemas de pagamento:

O **campos obrigatórios para gerar o link de pagamento** são **Valor** e **Nome do produto/Descrição do produto**.

* **Campo de valor:** Insira aqui o valor do pagamento.
* **Campo de nome do produto:** Insira o nome do produto que será exibido na página de pagamento.

Aspas duplas **não poderá** ser usadas no nome do produto.

Você pode substituí-las por apóstrofos ou aspas simples.

Dependendo do sistema de pagamento escolhido, menus suspensos com os rótulos "Dados do comprovante" e/ou "Informações adicionais" aparecerão nas configurações do botão. Ao clicar neles, campos adicionais serão exibidos:

imagem

### Variáveis ao usar o botão da função Pagamento <a href="#variables-when-using-the-payment-function-button" id="variables-when-using-the-payment-function-button"></a>

Assim que o usuário receber o bloco com o botão "Pagamento", as seguintes variáveis do cliente são criadas automaticamente:

* **Variável de cliente do sistema `__payments`** – esta variável armazena o valor do pagamento e o identificador do link de pagamento gerado. Ela é usada para identificar a resposta do webhook do sistema de pagamento.

A variável de cliente do sistema `__payments` **não deve ser excluída ou modificada**!

A variável de cliente `error_payment_button` é criada se ocorrer um erro ao gerar o botão de pagamento.

Seu valor conterá a mensagem de erro ou a resposta de erro retornada pelo sistema de pagamento.

Os valores das variáveis tornam-se ativos (atualizados) quando o usuário avança para o próximo bloco.

#### Como tratar o resultado <a href="#how-to-handle-the-result" id="how-to-handle-the-result"></a>

**Pagamento bem-sucedido**

Após um pagamento bem-sucedido, o bot receberá um **callback** composto pelos 10 primeiros caracteres da chave secreta do sistema de pagamento, a palavra `_success`e o valor do pagamento separados por um espaço. Por exemplo: **`ovg58keefc_success 44`**, em que:

* `ovg58keefc`: os 10 primeiros caracteres da chave secreta do sistema de pagamento
* `_success`: indica o resultado da solicitação (pagamento bem-sucedido)
* `44`: o valor do pagamento

Os callbacks (notificações) do sistema de pagamento são **não visíveis para o usuário**. Eles são exibidos apenas na aba **Clientes** e são visíveis para o **operador**.

**Exemplo de uso:** **Passo 1.** No bloco com o botão **Pagamento** adicione botões com o **Pagamento** função. **Passo 2.** Na **Condição de conexão** campo deste bloco ao **Pagamento bem-sucedido** bloco, especifique o **callback**. Isso funciona da mesma forma se você especificar o callback de pagamento bem-sucedido no **Campo de condição** do bloco **Verificação da condição principal** .

Observação! Seleção do tipo de correspondência — **Correspondência exata** ou **Correspondência por palavra-chave.**

Dica útil

Para enviar uma notificação sobre um pagamento bem-sucedido ao cliente sem interromper o progresso dele pelo funil principal, crie **"Blocos sem estado com condições."**

**Pagamento com erro**

Se ocorrer **um erro de pagamento**, o bot receberá um **callback** composto pelos 10 primeiros caracteres da chave secreta do sistema de pagamento, a palavra `_fail`e o valor do pagamento separados por um espaço. Por exemplo: `ovg58keefc_fail 44`, em que:

* `ovg58keefc`: os 10 primeiros caracteres da chave secreta do sistema de pagamento
* `_fail`: o resultado do processamento da solicitação — pagamento falhou ou encontrou um erro
* `44`: o valor do pagamento

Isso depende do sistema de pagamento. **Nem todos os sistemas de pagamento enviam um callback para erros de pagamento.**

Se o valor especificado nas configurações do botão for diferente de **o valor realmente pago pelo cliente**, o bot receberá um **callback** composto pelos 10 primeiros caracteres da chave secreta do sistema de pagamento, a frase `_different_amounts`e um ID de pagamento exclusivo separados por um espaço. Por exemplo: `ovg58keefc_different_amounts 123456`, em que:

* `ovg58keefc`: os 10 primeiros caracteres da chave secreta do sistema de pagamento
* `_different_amounts`: o resultado do processamento da solicitação (o valor do pagamento difere do valor no link)
* `123456`: ID de pagamento exclusivo


---

# 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/builder/botoes/botao-de-pagamento.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.
