> For the complete documentation index, see [llms.txt](https://docs.mavibot.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mavibot.ai/doc/pt/integrations/payment/prodamus-blr.md).

# Prodamus (BLR)

{% hint style="success" %}
Disponível apenas no plano "Infobiz".
{% endhint %}

## Como conectar o Prodamus

Para conectar o Prodamus, você vai precisar da URL do formulário de pagamento e da chave secreta.

<mark style="color:verde;">**URL do formulário de pagamento**</mark> você recebe após o cadastro, ela <mark style="color:verde;">**tem o formato: demo.payform.ru**</mark>

A chave secreta pode ser obtida na área pessoal; lá mesmo você também precisa informar o endereço URL para notificações.

<div data-with-frame="true"><figure><img src="/files/a4fd90309ec906bfc7859a16d29f700177954c1a" alt=""><figcaption><p>Chave secreta nas configurações do formulário na área pessoal do sistema de pagamento "Prodamus"</p></figcaption></figure></div>

Instrução detalhada de como fazer isso: <https://help.prodamus.ru/payform.ru-onlain-oplaty/prochee/url-dlya-uvedomlenii-i-sekretnyi-klyuch>

Endereço para notificações: **<https://chatter.salebot.pro/prodamus\\_callback/result>**

Este endereço precisa ser informado nas configurações em dois lugares.

Na página principal de configurações, você pode escolher o modo de funcionamento do formulário: modo demo sem pagamentos ou modo de pagamentos:

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

O endereço para notificações precisa ser informado nas configurações do sistema de pagamento em dois lugares: aba Configuração do formulário - para pagamentos normais e aba Assinaturas - para pagamentos por assinatura.&#x20;

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

Endereço para notificações: **`https://chatter.salebot.pro/prodamus_callback/result`**

Para configurar o funcionamento com **pagamentos por assinatura**  vá para a aba Assinaturas e informe o endereço para notificações: <https://chatter.mavibot.ai/prodamus\\_callback/result>

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

{% hint style="warning" %}
Atenção! Depois de inserir a URL, обязательно clique no botão «Salvar».
{% endhint %}

Para conectar o Prodamus, é necessário ir para a seção "Cobrança"

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

Em seguida, basta informar os dados mencionados acima no formulário:

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

{% hint style="warning" %}
**IMPORTANTE!** a url do formulário de pagamento é informada SEM https\://&#x20;
{% endhint %}

Com isso, a conexão está concluída. Agora vamos entender como usar essa funcionalidade.

## Como gerar um link de pagamento

{% hint style="success" %}
Gerar um link de pagamento no bloco pode ser feito **POR UM DOS** métodos disponíveis:

* [Botão com a função Pagamento ](#knopka-s-funkciei-oplata)ou
* [Função get\_prodamus\_payment\_url na Calculadora](#funkciya-get_prodamus_payment_url-v-kalkulyatore) ou
* [Criação do link usando a variável payment\_sum e parâmetros adicionais](#sozdanie-ssylki-s-pomoshyu-peremennoi-payment_sum-i-dopolnitelnykh-parametrov) (versão funcional antiga)
  {% endhint %}

## Botão com a função Pagamento

{% hint style="info" %}
[O link de pagamento pode ser criado em um botão com a função "Pagamento". Sobre como criar esse botão, falamos neste artigo](/doc/pt/chatbot/builder/botoes/botao-de-pagamento.md)
{% endhint %}

Vamos considerar todos os parâmetros possíveis desse botão.&#x20;

### **Parâmetros obrigatórios do botão Pagamento para Prodamus**

Para gerar um link de pagamento nas configurações do botão, é necessário informar <mark style="color:vermelho;">**parâmetros obrigatórios**</mark> "**Valor**", "**Nome do produto**", além do parâmetro "**Conteúdo pago**", se você **não tiver uma caixa registradora online própria** e quiser receber a nota fiscal do Prodamus.&#x20;

Ao acessar a página de checkout, as informações do produto e do preço já estarão preenchidas antecipadamente, e o cliente só precisará informar seus contatos.\
\
Se nas configurações do botão você informar o e-mail e\ou telefone do usuário, na página de checkout serão exibidos os contatos do pagador e as informações do produto e do preço.

<div data-with-frame="true"><figure><img src="/files/ceb5e3449821ae07e499a981a98952c1413a003f" alt="" width="563"><figcaption><p>Janela de configurações do botão</p></figcaption></figure></div>

**campo Texto.** Este texto será exibido no botão com o link de pagamento na mensagem

**campo Função.** Para criar um botão para fornecer o link de pagamento, selecione a função Pagamento

**campo Sistema de pagamento.** Na lista são exibidos os sistemas de pagamento conectados ao projeto

{% hint style="warning" %}
Se não houver sistemas de pagamento conectados ao projeto, esse tipo de botão não estará disponível
{% endhint %}

**campo Nome do produto (obrigatório).** Neste campo você deve informar o nome do produto. Quanto mais preciso for o nome do produto, melhor. Por exemplo: não "Telefone", mas "Smartphone Xiaomi modelo …"&#x20;

{% hint style="danger" %}
**NÃO É PERMITIDO** usar **aspas duplas** no nome do produto: remova ou substitua por aspas simples.&#x20;
{% endhint %}

**campo Valor (obrigatório).**  Neste campo informamos o valor do produto.&#x20;

**menu Informações adicionais.** Ao clicar neste botão, serão abertos campos adicionais para gerar o link

* Descrição do pedido
* Desconto em rublos
* Variável com o e-mail do comprador
* Variável com o número de telefone do comprador
* Tempo de vida do link
* ID do produto para assinatura (para criar cobranças recorrentes)
* Conteúdo pago&#x20;

**caixa de seleção Notificar sobre clique.** Para acompanhar o acesso ao link de pagamento, você pode marcar a caixa. Nesse caso, ao clicar no botão, uma notificação chegará ao diálogo com o cliente no Salebot informando que o acesso pelo link foi realizado

<div data-with-frame="true"><figure><img src="/files/cc4d6f3e68b3098f49ae2d191c01fccf72c9c62f" alt="" width="431"><figcaption><p>Callback após o cliente acessar o link</p></figcaption></figure></div>

A partir dessa notificação, é possível configurar a lógica posterior de funcionamento do bot.&#x20;

{% hint style="info" %}
Muitos sistemas de pagamento oferecem suporte a caixas registradoras online em nuvem, elas são necessárias conforme a Lei 54-FZ.\
Leia as particularidades da emissão de recibos no site do sistema de pagamento escolhido para não passar por uma situação constrangedora com a Receita Federal.
{% endhint %}

E a página de pagamento que é aberta ao acessar o link no botão Pagamento tem esta aparência:

<div data-with-frame="true"><figure><img src="/files/d526bcc4c2d2f7e73fbd5deab411afa5ed957398" alt="" width="563"><figcaption><p>Página de pagamento: no botão, apenas os parâmetros principais estão preenchidos</p></figcaption></figure></div>

### Parâmetros adicionais para gerar o link de pagamento

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

**campo Descrição do pedido.**  As informações informadas neste campo serão exibidas na página de pagamento no campo Dados adicionais

**campo Desconto.** Neste campo você pode informar o valor do desconto em rublos ou em rublos e centavos. Para informar um valor com centavos, usamos ponto como separador: 50.99\
Na página de pagamento, o campo Valor a pagar será exibido já com o desconto, e o preço principal do produto ficará riscado.&#x20;

**Campo Variável com o e-mail do comprador** (opcional, se o número de telefone foi informado) Neste campo é informado o e-mail do usuário (cliente). É possível indicar a variável em que o e-mail do usuário está armazenado.&#x20;

Por exemplo, #{email}

**Campo Variável com o número de telefone do comprador** (opcional, se o e-mail foi informado). Neste campo você pode indicar a variável na qual o número de telefone do comprador está gravado no formato 79000000000\
Por exemplo, #{phone}

{% hint style="danger" %}
O e-mail e/ou telefone devem estar obrigatoriamente presentes
{% endhint %}

**campo Tempo de vida do link.** Você pode informar uma data no formato dd.mm.aaaa hh:mm (por exemplo 25.01.2021 11:00) ou usar variáveis para definir o prazo de validade do link. \
Exemplo de uso da variável: `#{link_expired}`

**campo ID do produto por assinatura.**  Para executar uma cobrança recorrente, envie o valor do ID do produto. Para criar uma assinatura, é necessário criar um produto de assinatura.&#x20;

Instrução detalhada de como criar um produto para assinatura: <https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski>

{% hint style="danger" %}
Se o valor do ID do produto por assinatura for informado, o valor do pagamento não será considerado. Os dados do produto serão obtidos do cartão do produto na área do Prodamus
{% endhint %}

O número de telefone informado no pagamento será necessário para o gerenciamento da assinatura.

{% hint style="warning" %}
Se você informar **ID do produto por assinatura**, então no callback, em caso de pagamento bem-sucedido, será enviado o ID desse produto
{% endhint %}

**Campo Conteúdo pago** (condicionalmente obrigatório). Os dados são necessários para a fiscalização do pagamento pelo Prodamus, se você não tiver uma caixa registradora online própria. Neste campo, você deve informar a descrição da compra, o valor e o link do recurso com o conteúdo.&#x20;

*Por exemplo*: *Curso ‘Trançado de cabelos’, valor de 3000 rublos, link para a página do curso:* [*https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911*](https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911).&#x20;

Esses dados são necessários para envio à Receita Federal.

#### Botão com a função Pagamento

Se você informar o tempo de vida do link, então, no caso de

1. Quando o usuário solicitou o link de pagamento durante seu período ativo (ou seja, quando seu prazo de validade ainda não terminou) e ele está no diálogo, ele não conseguirá pagar e receberá uma notificação deste tipo:

<div data-with-frame="true"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcA1KJHoyMF5WmLMZiJPJrQEGJs79zxoXK5U3E9k4mVus-Fg0tI-djr6QTagp5ulwposSxmJ-aq8trUQOslQyE0UeaREuM6-T5Ongn-E5tACdVmypFXBtgOJDmVvHRgOdATChhnBQ?key=OB7qKicH0kn-_i_EzQLdRA" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
O prazo de validade do link deve ser posterior à data atual, caso contrário, o cliente também não conseguirá pagar por esse link.&#x20;
{% endhint %}

2\. Quando o usuário solicita o link e ele já está inativo\
Nesse caso, o botão simplesmente não aparecerá. E nas variáveis do cliente aparecerá a variável "error\_payment\_button", que contém o seguinte valor: "Erro: O prazo de validade do link deve ser posterior à data atual".

{% hint style="success" %}
Para que o usuário consiga pagar corretamente, é recomendável tratar esse caso adicionalmente.&#x20;
{% endhint %}

Como fazer isso?

Crie um bloco com uma condição na qual você informe que, se chegar uma notificação desse tipo, error\_payment\_button == "Erro: O prazo de validade do link deve ser posterior à data atual"&#x20;

Com o texto: "Desculpe, você não chegou a tempo e o link de pagamento não é mais válido":

<div data-with-frame="true"><figure><img src="/files/4bbd1139b441fed4b27094f23ac1095e2738d372" alt=""><figcaption><p>Diálogo na seção "Clientes"</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/03acf2022197365fac54ab7a7a4eefbd1a6cb8b2" alt=""><figcaption><p>Configuração do bloco "Condição inicial"</p></figcaption></figure></div>

### Variáveis do cliente que serão criadas automaticamente ao usar o botão com a função Pagamento

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

Variável de serviço do cliente **`__payments`** , que armazena o valor, o identificador do link criado, necessário para identificar o webhook do sistema de pagamento.

{% hint style="danger" %}
A variável de serviço do cliente \_\_payments NÃO PODE ser excluída nem alterada!
{% endhint %}

Variável do cliente **`error_payment_button`** é criada se ocorrer um erro ao gerar o botão.

O valor da variável error\_payment\_button receberá o texto do erro ou a resposta com erro do sistema de pagamento.

{% hint style="warning" %}
Os valores das variáveis passam a ficar atualizados ao avançar para o próximo bloco&#x20;
{% endhint %}

### Como processar o resultado

**Pagamento bem-sucedido.**

Após o pagamento bem-sucedido, no bot <mark style="color:laranja;">**AUTOMATICAMENTE**</mark> chegará um CALLBACK, composto pelos primeiros 10 caracteres da chave secreta do sistema de pagamento, a palavra \_success e, depois de um espaço, o valor do pagamento. \
\&#xNAN;*Para usar nas configurações do esquema, basta copiá-lo.*&#x20;

Por exemplo: `ovg58keefc_success 44`, onde:&#x20;

ovg58keefc : primeiros 10 caracteres da chave secreta do sistema de pagamento

\_success : resultado do processamento da solicitação (pagamento bem-sucedido)

44 : valor do pagamento

{% hint style="info" %}
Os callbacks (notificações) do sistema de pagamento NÃO SÃO VISÍVEIS para o usuário. Eles são exibidos apenas na aba Clientes e ficam visíveis para o operador.
{% endhint %}

Exemplo de uso:\
Passo 1. No bloco "com botão Pagamento", adicionamos botões com a função Pagamento.&#x20;

Passo 2. No campo Condição de conexão deste bloco para o bloco "Pagamento bem-sucedido", informamos o callback. Funciona da mesma forma se você informar o callback de pagamento bem-sucedido no campo Condição do bloco "Condição inicial".

{% hint style="warning" %}
Importante: escolha da correspondência Igualdade exata ou Por presença de palavras-chave
{% endhint %}

❗️Se você decidir verificar o pagamento exatamente na seta pela condição, pense na lógica do seu funil. Caso o cliente saia do bloco com a transição por condição com callback, a transição para o bloco não acontecerá. Esse método de verificação faz sentido apenas quando o cliente não muda sua posição no funil (posição no esquema). \
Em esquemas nos quais o cliente se move entre blocos, é melhor usar a opção com a indicação do callback no bloco "Condição inicial". <br>

<div data-with-frame="true"><figure><img src="/files/698c7176f3adf676083ee13389875b7dc69b79ae" alt=""><figcaption><p>Callback de pagamento bem-sucedido no campo Condição do bloco.</p></figcaption></figure></div>

#### **Pagamento bem-sucedido para produtos com assinatura automática.**&#x20;

Após o pagamento bem-sucedido, no bot <mark style="color:laranja;">**AUTOMATICAMENTE**</mark> chegará um CALLBACK composto pelos 10 primeiros caracteres da chave secreta do sistema de pagamento, a palavra \_success e <mark style="color:verde;">**depois de um espaço, o ID do produto por assinatura**</mark>

Por exemplo: `214009eefc_success 618117`, onde:&#x20;

`009eefc` : 10 caracteres da chave secreta do sistema de pagamento

\_success : resultado do processamento da solicitação (pagamento bem-sucedido)

`618117`: ID do produto por assinatura

<div data-with-frame="true"><figure><img src="/files/83305cf68fdc20e30ae1e90132fe2ff3e7d6b077" alt=""><figcaption><p>Exemplo de callback do Prodamus para produtos com assinatura automática</p></figcaption></figure></div>

**Pagamento com erro**

<mark style="color:azul;">**Em caso de erro no processamento do pagamento**</mark> no bot <mark style="color:laranja;">**AUTOMATICAMENTE**</mark> chegará um CALLBACK composto pelos 10 caracteres da chave secreta do sistema de pagamento, a palavra \_fail e, depois de um espaço, o valor do pagamento

Por exemplo, `ovg58keefc_fail 44` , onde

`ovg58keefc` : 10 caracteres da chave secreta do sistema de pagamento

`_fail` : resultado do processamento da solicitação - o pagamento não foi concluído ou ocorreu um erro.&#x20;

`44` : valor do pagamento

{% hint style="warning" %}
Depende do sistema de pagamento. Nem todos os sistemas enviam callback de erro de pagamento.
{% endhint %}

Se o valor informado nas configurações do botão <mark style="color:azul;">**for diferente do valor que o cliente pagou**</mark>, então <mark style="color:laranja;">**AUTOMATICAMENTE**</mark> chegará um CALLBACK composto por 10 caracteres da chave secreta do sistema de pagamento, a palavra \_different\_amounts e, depois de um espaço, o ID exclusivo do pagamento

Por exemplo: `ovg58keefc_different_amounts 123456` , onde:&#x20;

`ovg58keefc` : 10 caracteres da chave secreta do sistema de pagamento

`_different_amounts` : resultado do processamento da solicitação (o valor pago é diferente do valor no link)

`123456` : ID exclusivo do pagamento

## Função get\_prodamus\_payment\_url na Calculadora

Para gerar o link de pagamento, você pode usar a função `get_prodamus_payment_url` no bloco Calculadora.

No campo Calculadora, atribuímos um valor à variável usando a função `get_prodamus_payment_url`&#x20;

{% hint style="info" %}
O nome da variável é definido por você. Nas capturas de tela há exemplos de nomes de variáveis.&#x20;
{% endhint %}

Nessa variável será gravado o link de pagamento. A variável pode ser exibida na tela como um link na mensagem ou colocada em um botão com o texto "Pagar".&#x20;

**EXEMPLO de link de pagamento:** <https://payform.ru/7p3JR8/>

{% tabs %}
{% tab title="Calculadora" %}
Exemplo 1:

<figure><img src="/files/e5bbed97365646330410838a83f38809c9c59f5e" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Descrição dos parâmetros" %}
`sua_variável =`` `**`get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)`**

**Parâmetros da função:**

<table><thead><tr><th width="253">Parâmetro</th><th>Valor do parâmetro</th></tr></thead><tbody><tr><td><strong><code>amount</code></strong></td><td>valor a pagar. É possível informar um número inteiro e um número com ponto. Por exemplo 25 ou 52.5  <mark style="color:verde;">(parâmetro obrigatório)</mark> </td></tr><tr><td><strong><code>product_name</code></strong></td><td>Nome do produto. <mark style="color:verde;">(parâmetro obrigatório)</mark></td></tr><tr><td><strong><code>expired</code></strong></td><td><p>tempo de vida do link de pagamento, no formato <strong>dd.mm.aaaa</strong> (por exemplo 25.01.2021). Também é possível no campo "Calculadora<em>"</em> informar: <em>expired = current_date + 2</em> (o link será válido por 2 dias até 00:00).  <code>expired</code> também é possível informar a data com horário exato, separado por espaço, no formato <strong>dd.mm.aaaa hh:mm</strong> (por exemplo: <em>25.01.2021 12:23</em>). Também é possível usar variáveis padrão, por exemplo, vamos definir o tempo de validade do link para 30 minutos: </p><p><code>time = current_time + 30</code><br><code>expired = "#{current_date} #{time}"</code><br><br>Para pular esse parâmetro, envie no lugar dele um par de aspas simples ou duplas, ou o valor None</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td>número de telefone do comprador, não é obrigatório se o parâmetro <code>customer_email</code> Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td>e-mail do comprador, não é obrigatório se o parâmetro <code>customer_phone</code> Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>discount</code></strong></td><td>valor do desconto. Envie um número ou um número com ponto: 25 ou 63.5   Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>description</code></strong></td><td>descrição do produto (se não for informada, é preenchido com 'Pagamento da fatura order_id') Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td><p>parâmetros adicionais que não existem nesta função.<br>Os possíveis parâmetros adicionais podem ser vistos no link da documentação de trabalho com a API do sistema de pagamento <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov</a><br><br>Exemplo: extra_params = {"payments_limit": "3", "payment_method": "vsegdada_installment_0_0_6"}<br></p><p><em>Para pular esse parâmetro, envie no lugar dele um par de aspas simples/um par de aspas duplas ou o valor None.</em></p></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>Linha de 50 a 4000 caracteres no formato</strong> "descrição do pedido - valor - link para o recurso adquirido”. </p><p>Por exemplo:</p><p>“Curso ‘Pesca de brema’, valor de 4999 rublos, link para a página do curso: https://www.lovilescha.ru/courses/poimai_kilogram/". <strong>Obrigatório</strong>, se você não tiver uma caixa registradora online própria, para a fiscalização dos pagamentos via Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Exemplo de código para copiar" %}
**extra\_params** = {<mark style="color:vermelho;">"payments\_limit"</mark>: <mark style="color:vermelho;">"3"</mark>}&#x20;

**products\_for\_receipt** = "<mark style="color:vermelho;">Curso ‘Pesca de brema’</mark>, <mark style="color:vermelho;">valor de 4999 rublos</mark>, <mark style="color:vermelho;">link para a página do curso: <https://www.lovilescha.ru/courses/poimai\\_kilogram/>"</mark>&#x20;

**link\_prodamus\_url** = get\_prodamus\_payment\_url(<mark style="color:azul;">4999</mark>, <mark style="color:vermelho;">'Curso ‘Pesca de brema’'</mark>, <mark style="color:vermelho;">'27.03.2023 17:00', '79167777771'</mark>, <mark style="color:vermelho;">'<mail@mail.com>'</mark>, <mark style="color:azul;">20</mark>, <mark style="color:vermelho;">'Melhor curso do mercado'</mark>, extra\_params, products\_for\_receipt)
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Se houver várias funções no bloco para obter o link e ocorrer um erro, o valor do erro será gravado na variável  **`error_payment_func`**

\
O erro será registrado na última função na Calculadora
{% endhint %}

## Criação do link usando a variável payment\_sum e parâmetros adicionais

{% hint style="info" %}
Atenção: à variável **payment\_sum** é atribuído o último valor, após as variáveis opcionais **payment\_description, product\_name** etc.&#x20;
{% endhint %}

Para gerar o link de pagamento, basta definir na campo Calculadora o valor da variável **payment\_sum.** Logo em seguida aparecerá a variável **prodamus\_pay\_url**.&#x20;

**EXEMPLO de link de pagamento:**: <https://payform.ru/7p3JR8/>

Essa variável pode ser exibida na tela como um link na mensagem ou colocada em um botão com o texto "Pagar".&#x20;

Antes da declaração da variável **payment\_sum** também é possível informar as seguintes variáveis opcionais:&#x20;

| Parâmetros da função       | Descrição do parâmetro                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **product\_name**          | nome do produto (se não for informado, é preenchido com 'Pagamento da fatura order\_id') - na captura abaixo é mostrado onde isso aparece                                                                                                                                                                                                                                                                                                                                        |
| **payment\_description**   | descrição do produto (se não for informada, é preenchido com 'Pagamento da fatura order\_id', veja a captura abaixo) - na captura abaixo é mostrado onde isso aparece                                                                                                                                                                                                                                                                                                            |
| **discount\_value**        | valor do desconto (por exemplo discount\_value = 25 ou discount\_value = 50.25)                                                                                                                                                                                                                                                                                                                                                                                                  |
| **customer\_phone**        | número de telefone do comprador, não é obrigatório se o parâmetro                                                                                                                                                                                                                                                                                                                                                                                                                |
| **customer\_email**        | e-mail do comprador                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **link\_expired**          | tempo de vida do link de pagamento, no formato **dd.mm.aaaa** (por exemplo 25.01.2021). Também é possível no campo "*Calculadora"* informar: *link\_expired = current\_date + 2* (o link será válido por 2 dias até 00:00)                                                                                                                                                                                                                                                       |
| **link\_expired**          | <p>também é possível informar a data com horário exato, separado por espaço, no formato <strong>dd.mm.aaaa hh:mm</strong> (por exemplo: <em>25.01.2021 12:23</em>). Também é possível usar variáveis padrão, por exemplo, vamos definir o tempo de validade do link para 30 minutos: </p><p>time = current\_time + 30<br>link\_expired = "#{current\_date} #{time}"</p>                                                                                                          |
| **currency**               | <p>moeda do pagamento, por padrão "rub". <br>Lista completa de argumentos: </p><p>rub</p><p>usd</p><p>eur</p><p>kzt<br>Este parâmetro deve ser informado em letras minúsculas.</p>                                                                                                                                                                                                                                                                                               |
| **payment\_title**         | título do pagamento (até 127 caracteres). Se não for informado, será preenchido com o texto: “Pagamento da fatura payment\_id” (payment\_id - identificador do pedido no Salebot)                                                                                                                                                                                                                                                                                                |
| **payment\_description**   | descrição curta do pagamento (até 127 caracteres)                                                                                                                                                                                                                                                                                                                                                                                                                                |
| **locale**                 | idioma da página de pagamento, informado como en-US, fr-XC etc. Por padrão - ‘ru-Ru’. A lista completa está disponível no link <https://developer.paypal.com/api/rest/reference/locale-codes/>                                                                                                                                                                                                                                                                                   |
| **products\_for\_receipt** | <p><strong>Linha de 50 a 4000 caracteres no formato</strong> "descrição do pedido - valor - link para o recurso adquirido”. </p><p>Por exemplo:</p><p>“Curso ‘Pesca de brema’, valor de 4999 rublos, link para a página do curso: <https://www.lovilescha.ru/courses/poimai_kilogram/>". </p><p><mark style="color:vermelho;"><strong>Obrigatório</strong></mark>, se você não tiver uma caixa registradora online própria, para a fiscalização dos pagamentos via Prodamus.</p> |
| **payment\_sum**           | (obrigatório) valor do pagamento                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/3FazAmQkph5i0_iKy4G_HNerzVQP9Bg3_PRB_5rHZQ6vAZB_1Hxv1imi3gJCl7pU_GY7eAiiwZExJA-i4Ps5PgSJt7OXKbSL-GT27gWca_u7rFM8YEsNJ7Z-VVXTAR-jSw_-p2I0" alt=""></div>

{% hint style="success" %}
Variáveis **discount\_value**, **customer\_phone**, **customer\_email** e **link\_expired** também são válidas para assinaturas.
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/339c0cb780b8f06c91c01c8b96bfa67ba7c04f37" alt="" width="524"><figcaption></figcaption></figure></div>

Exemplo de implementação.

No primeiro bloco definimos o valor do pagamento:

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

Depois, exibimos no local desejado a URL, o link prodamus\_pay\_url:

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

**prodamus\_available\_payment\_methods** é declarado antes de payment\_sum.

Possíveis valores: &#x20;

<table><thead><tr><th width="323"></th><th></th></tr></thead><tbody><tr><td><strong>AC</strong></td><td>pagamento com cartão emitido na Rússia </td></tr><tr><td><strong>ACkz</strong> </td><td>pagamento com cartão do Cazaquistão </td></tr><tr><td><strong>ACf</strong></td><td>pagamento com cartões de países da CEI, exceto a Rússia</td></tr><tr><td><strong>ACEURNMBX</strong></td><td>Pagamento com cartão em EUR de todos os países, exceto RF e RB </td></tr><tr><td><strong>SBP</strong></td><td>Pagamento rápido, sem inserir os dados do cartão. Para cartões da RF </td></tr><tr><td><strong>QW</strong> </td><td>Carteira Qiwi </td></tr><tr><td><strong>PC</strong></td><td>Юmoney </td></tr><tr><td><strong>GP</strong></td><td>terminal de pagamento </td></tr><tr><td><strong>sbol</strong></td><td>Sberbank Online <strong>fatura</strong> - Pagamento por fatura <strong>parcelamento</strong> - Em parcelas da Prodamus </td></tr><tr><td><strong>installment_5_21</strong></td><td>Em parcelas da Prodamus por 3 meses </td></tr><tr><td><strong>installment_6_28</strong></td><td>Em parcelas da Prodamus por 6 meses </td></tr><tr><td><strong>installment_10_28</strong></td><td>Em parcelas da Prodamus por 10 meses </td></tr><tr><td><strong>installment_12_28</strong> </td><td>Em parcelas da Prodamus por 12 meses <strong>installment_0_0_3</strong> - Parcelamento da Tinkoff por 3 meses</td></tr><tr><td><strong>installment_0_0_4</strong> </td><td>Parcelamento da Tinkoff por 4 meses </td></tr><tr><td><strong>installment_0_0_6</strong></td><td>Parcelamento da Tinkoff por 6 meses </td></tr><tr><td><strong>installment_0_0_10</strong></td><td>Parcelamento da Tinkoff por 10 meses</td></tr><tr><td><strong>installment_0_0_12</strong></td><td>Parcelamento da Tinkoff por 12 meses</td></tr><tr><td><strong>installment_0_0_24</strong> </td><td>Parcelamento da Tinkoff por 24 meses</td></tr><tr><td><strong>installment_0_0_36</strong></td><td>Parcelamento da Tinkoff por 36 meses </td></tr><tr><td><strong>crédito</strong> </td><td>Crédito da Tinkoff</td></tr><tr><td><strong>vsegdada_installment_0_0_4</strong></td><td>Parcelamento SempreSim por 4 meses (não funciona com available_payment_methods) </td></tr><tr><td>vs<strong>egdada_installment_0_0_6</strong></td><td>Parcelamento da SempreSim por 6 meses</td></tr><tr><td><strong>vsegdada_installment_0_0_10</strong></td><td>Parcelamento da SempreSim por 10 meses</td></tr><tr><td><strong>vsegdada_installment_0_0_12</strong></td><td>Parcelamento da SempreSim por 12 meses sem juros</td></tr><tr><td>vs<strong>egdada_installment_0_0_24</strong></td><td>Parcelamento da SempreSim por 24 meses</td></tr><tr><td><strong>vsegdada_installment_0_0_36</strong> </td><td>Parcelamento da SempreSim por 36 meses</td></tr><tr><td><strong>sbrf_installment_0_0_6</strong></td><td>Parcelamento do SberBank por 6 meses </td></tr><tr><td><strong>sbrf_installment_0_0_10</strong></td><td>Parcelamento do SberBank por 10 meses</td></tr><tr><td><strong>sbrf_installment_0_0_12</strong></td><td>Parcelamento do SberBank por 12 meses</td></tr><tr><td><strong>sbrf_installment_0_0_24</strong></td><td>Parcelamento do SberBank por 24 meses</td></tr><tr><td><strong>sbrf_installment_0_0_36</strong> </td><td>Parcelamento do SberBank por 36 meses</td></tr><tr><td><strong>otp_installment_0_0_6</strong></td><td>Parcelamento do Banco OTP por 6 meses</td></tr><tr><td><strong>otp_installment_0_0_10</strong></td><td>Parcelamento do Banco OTP por 10 meses</td></tr><tr><td><strong>otp_installment_0_0_12</strong> </td><td>Parcelamento do Banco OTP por 12 meses</td></tr><tr><td><strong>otp_installment_0_0_24</strong></td><td>Parcelamento do Banco OTP por 24 meses</td></tr><tr><td><strong>otp_installment_0_0_36</strong></td><td>Parcelamento do Banco OTP por 36 meses</td></tr><tr><td><strong>mts_installment_0_0_6</strong></td><td>Parcelamento do Banco MTS por 6 meses</td></tr><tr><td><strong>mts_installment_0_0_10</strong> </td><td>Parcelamento do Banco MTS por 10 meses</td></tr><tr><td><strong>mts_installment_0_0_12</strong> </td><td>Parcelamento do Banco MTS por 12 meses</td></tr><tr><td><strong>mts_installment_0_0_24</strong></td><td>Parcelamento do Banco MTS por 24 meses</td></tr><tr><td> <strong>mts_installment_0_0_36</strong> </td><td>Parcelamento do Banco MTS por 36 meses</td></tr><tr><td><strong>monetaworld</strong></td><td>Cartões de bancos do mundo, exceto RF </td></tr><tr><td><strong>sbrf_bnpl</strong></td><td>Parcelado do Sber</td></tr></tbody></table>

É permitido enviar vários valores, separados por uma barra vertical. \
Exemplo: prodamus\_available\_payment\_methods = "AC|PC|QW"

**prodamus\_currency** - outro parâmetro adicional para informar o valor em uma moeda específica.\
Valores possíveis de moeda: \
**kzt** - para tenge \
**eur** - para euro \
**usd** - para dólar

Então o valor indicado no link estará na moeda especificada.

Ao receber o callback **payment\_callback** é preciso se orientar pelo parâmetro **currency** e **currency\_sum,** nos quais haverá a moeda e o valor na moeda.

{% hint style="warning" %} <mark style="color:vermelho;">**Importante!**</mark> Verifique se há na sua página um método de pagamento na moeda necessária, pois, se ele estiver ausente, haverá redirecionamento para uma página sem métodos de pagamento.\
Os métodos são conectados via suporte. Você pode ver os que estão ativos nas configurações da página ou gerando o link de pagamento
{% endhint %}

<div data-with-frame="true"><figure><img src="/files/68e2ef1852fe80bd35122e256d4ddc0ab51a3649" alt=""><figcaption><p>Configurações da página de pagamento do sistema de pagamento "Prodamus"</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/4bcef8faad2e309826c84b6d6cabfede0973a32f" alt=""><figcaption><p>Formas de pagamento conectadas à sua página</p></figcaption></figure></div>

## Como processar o resultado

### Pagamento bem-sucedido

Importante! Após um pagamento bem-sucedido ou malsucedido, o bot receberá callbacks, pelos quais você poderá entender que houve um pagamento bem-sucedido. Esses callbacks no sistema são vistos por você como mensagens do usuário; para que o usuário não possa enviá-los, eles consistem em uma chave secreta e um sufixo com o status, por exemplo: 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b6&#x36;**\_success** ou 453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b6&#x36;**\_fail**. Além disso, após um pagamento bem-sucedido, a variável **prodamus\_payment\_completed** é definida como **True**.

{% hint style="warning" %}
Atenção! Os callbacks chegam com atraso, então, após exibir o link de pagamento ao usuário, recomendamos enviar uma mensagem do tipo: “Após o pagamento, aguarde a mensagem de conclusão bem-sucedida do pagamento”
{% endhint %}

{% hint style="warning" %}
IMPORTANTE!\
Para links criados com o botão com a função Pagamento ou com a função no Calculador, após o pagamento no bot <mark style="color:laranja;">**AUTOMATICAMENTE**</mark> chegará um CALLBACK, que consiste em caracteres da chave secreta do sistema de pagamento, da palavra \_success e, após um espaço, o valor do pagamento. \
\&#xNAN;*Para usar nas configurações do esquema, basta copiá-lo.*&#x20;

Por exemplo: `ovg58keefc_success`, onde:&#x20;

ovg58keefc : chave secreta **inteiramente**

\_success : resultado do processamento da solicitação (pagamento bem-sucedido)
{% endhint %}

Por exemplo, é possível tratar o pagamento bem-sucedido com um bloco com condição e exibir a mensagem correspondente ao usuário:

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

{% hint style="danger" %}
O tipo de comparação deve ser "**Correspondência exata**"
{% endhint %}

{% hint style="warning" %}
Para realizar um novo pagamento, é obrigatório zerar payment\_sum, o link gerado anteriormente e só então reatribuir a variável payment\_sum para obter um novo link&#x20;
{% endhint %}

### Desativação/reactivação da assinatura

Também no Prodamus existem notificações sobre ativação/desativação de assinatura:

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

1. "O assinante desativou a assinatura" - se a assinatura foi cancelada manualmente (por exemplo, desistiu da assinatura).

Pode chegar antes do fim do período pago atual. Implica uma ação a seu critério - ignorar ou colocar em monitoramento, tentando recuperar o assinante.

2. "O assinante reativou a assinatura" - restauração da assinatura.&#x20;

Pode chegar se o assinante reativou a assinatura antes do fim do período pago atual. Implica uma ação a seu critério - ignorar ou remover da lista de monitoramento para recuperação.

3. "Desativação da assinatura" - se a assinatura for desativada após várias cobranças malsucedidas

### **Como salvar valores do callback**

Após receber a notificação de pagamento bem-sucedido, será gravado na solicitação do cliente (variável payment\_callback) o callback do Prodamus, com todos os dados do pagamento recebido. A partir dele, é possível salvar os dados necessários e usá-los como quiser. Exemplo de callback:

`{"date": "2021-03-30T11:44:43+03:00", "order_id": "757679", "order_num": "", "domain": "demo.payform.ru", "sum": "14.50", "customer_phone": "+77777777777", "customer_extra": "Aqui está a descrição do produto", "payment_type": "Cartão de plástico Visa, MasterCard, МИР", "commission": "3.5", "commission_sum": "0.51", "attempt": "1", "discount_value": "10.5", "products[0][name]": "Acesso aos materiais de estudo", "products[0][price]": "14.50", "products[0][quantity]": "1", "products[0][sum]": "14.50", "payment_status": "success", "payment_status_description": "Pagamento bem-sucedido", "payment_init": "manual"}`

Ao gerar o link, você pode informar variáveis **product\_name** e **payment\_description**. Então, ao receber o callback, será possível obtê-las assim&#x20;

`product = get(payment_callback,'products[0][name]')`&#x20;

`description = get(payment_callback,'customer_extra')`

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

{% hint style="info" %}
Atenção: à variável **payment\_sum** é atribuído o último valor, após as variáveis opcionais **payment\_description, product\_name**
{% endhint %}

O valor pode ser obtido assim\
`summa = get(payment_callback,'sum')`

### Quais callbacks estão disponíveis

Além dos callbacks principais de pagamento bem-sucedido, também é exibida no chat com o usuário uma mensagem que ele não vê, com os seguintes textos:

1. O assinante desativou a assinatura ([mais detalhes aqui](#deaktivaciya-reaktivaciya-podpiski))
2. O assinante reativou a assinatura ([mais detalhes aqui](#deaktivaciya-reaktivaciya-podpiski))
3. Assinatura encerrada
4. Pagamento malsucedido - acréscimo com explicação (na captura de tela acima)
5. Notificação de próxima cobrança - data e hora da próxima cobrança
6. Solicitação de parcelamento com status

Exemplos de callbacks no diálogo com o cliente:&#x20;

* **O assinante desativou a assinatura**
* **O assinante reativou a assinatura**
* **Assinatura encerrada**
* **Pagamento malsucedido - Saldo insuficiente.**
* **Pagamento malsucedido - O cartão expirou.**
* **Pagamento malsucedido - Limite do cartão excedido.**
* **Pagamento malsucedido - Cartão perdido**
* **Pagamento malsucedido - Erro do sistema**&#x20;
* **Pagamento malsucedido - Operação recusada. Entre em contato com o banco emissor do cartão.**&#x20;
* **Pagamento malsucedido - Recusa da operação pelo banco emissor.**
* **Pagamento malsucedido - Recusa da operação pelo banco.**&#x20;
* **Notificação de próxima cobrança - dd.mm.aaaa hh:mm**
* **Solicitação de parcelamento aprovada**
* **Solicitação de parcelamento cancelada**
* **Solicitação de parcelamento rejeitada**

Você pode ler mais detalhes sobre a descrição dos erros aqui:

{% embed url="<https://help.prodamus.ru/payform/integracii/tekhnicheskaya-dokumentaciya-po-avtoplatezham/kody-oshibok>" %}
Prodamus: códigos de erro
{% endembed %}

Opcionalmente, é possível configurar o envio de alguma mensagem ao usuário. Como exemplo, enviaremos a mensagem de que a cobrança automática falhou.\
\
Na notificação de **pagamento malsucedido com uma causa específica**, é possível configurar um bloco com resposta, por exemplo, assim:

<div data-with-frame="true"><figure><img src="/files/6ccddda4dcd427d1584ebe2a69b548cea480790b" alt=""><figcaption><p>exemplo de bloco para notificações de Pagamento malsucedido com uma causa específica</p></figcaption></figure></div>

Para enviar uma mensagem **para todas as cobranças malsucedidas, independentemente do motivo**, é possível configurar da seguinte forma:

<div data-with-frame="true"><figure><img src="/files/d6cc2385ebc55242b5bb1428fdde03621b4bfc68" alt=""><figcaption><p>exemplo de bloco para notificações de Pagamento malsucedido com qualquer explicação de motivo</p></figcaption></figure></div>

E para todos os callbacks nos quais esteja presente o texto **Pagamento malsucedido**, o usuário receberá uma mensagem com o texto que você especificou.

## Como criar pagamentos por assinatura

### Como criar uma assinatura

Para criar uma assinatura, é necessário criar um produto de assinatura. Instruções detalhadas de como fazer isso: <https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski>

Em seguida, copiamos o ID do produto de assinatura; abaixo é mostrado onde encontrá-lo:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="Criação do produto de assinatura"></div>

Para gerar o link de pagamento da assinatura, você precisa definir o valor (id do produto de assinatura) da variável **prodamus\_subscription**, logo em seguida aparecerá a variável **prodamus\_pay\_url**.&#x20;

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

A variável **prodamus\_pay\_url** pode ser exibida na tela como um link ou colocada em um botão com o texto "Pagar". O link tem a seguinte forma: <https://payform.ru/7p3JR8/><br>

O processamento do resultado acontece da mesma forma que no pagamento único (ler acima).

Após a assinatura bem-sucedida, será adicionada ao usuário uma variável com o número de telefone informado no pagamento, customer\_phone. O número de telefone é necessário para gerenciar a assinatura.<br>

{% hint style="warning" %}
customer\_phone é necessário para gerenciar a assinatura, se customer\_email não for informado
{% endhint %}

### Como criar um link de assinatura com a função get\_prodamus\_subscription\_url

Vamos considerar outro modo de gerar o link de pagamento do produto por assinatura.&#x20;

Criamos um produto de assinatura na área do Prodamus.  Instruções detalhadas de como fazer isso: <https://help.prodamus.ru/payform/rekurrent-i-kluby/kak-sozdat-i-nastroit-podpiski>

Em seguida, copiamos o ID do produto de assinatura; abaixo é mostrado onde encontrá-lo:

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/YuaI5KhrMPHNozN0JNOE9kD_Jcw7a8LE6GigaM0vrVtmsDBvlHvK8GCX5IcNvaJuSQE8iWWYl0KCgR5JpYpcp9Sa2531RGDYWVLjhE72ipScrpodUWeb4KDrECRbBhz4kO-3lMvs" alt="Criação do produto de assinatura"></div>

Para obter o link de pagamento do produto por assinatura na Calculadora, indicamos a função&#x20;

`get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

{% tabs %}
{% tab title="Calculadora" %}
Exemplo 1: Link de pagamento do produto por assinatura

<figure><img src="/files/744f2b8a7738f4df4c5a09489604692e94433e4c" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Descrição dos parâmetros" %}
`link = get_prodamus_subscription_url`(subscription\_id, product\_name, expired, customer\_phone, customer\_email, discount, description, extra\_params, products\_for\_receipt)

**Parâmetros da função:**

<table><thead><tr><th width="253">Parâmetro</th><th>Valor do parâmetro</th></tr></thead><tbody><tr><td><strong><code>subscription_id</code></strong></td><td><strong>ID do produto por assinatura</strong>. O ID pode ser copiado na área do Prodamus  <mark style="color:verde;">(parâmetro obrigatório)</mark> </td></tr><tr><td><strong><code>product_name</code></strong></td><td>Nome do produto. <mark style="color:verde;">(parâmetro obrigatório)</mark></td></tr><tr><td><strong><code>expired</code></strong></td><td><p>tempo de vida do link de pagamento, no formato <strong>dd.mm.aaaa</strong> (por exemplo 25.01.2021). Também é possível no campo "Calculadora<em>"</em> informar: <em>expired = current_date + 2</em> (o link será válido por 2 dias até 00:00).  <code>expired</code> também é possível informar a data com horário exato, separado por espaço, no formato <strong>dd.mm.aaaa hh:mm</strong> (por exemplo: <em>25.01.2021 12:23</em>). Também é possível usar variáveis padrão, por exemplo, vamos definir o tempo de validade do link para 30 minutos: </p><p><code>time = current_time + 30</code><br><code>expired = "#{current_date} #{time}"</code><br><br>Para pular esse parâmetro, envie no lugar dele um par de aspas simples ou duplas, ou o valor None</p></td></tr><tr><td><strong><code>customer_phone</code></strong></td><td>número de telefone do comprador, não é obrigatório se o parâmetro <code>customer_email</code> Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>customer_email</code></strong></td><td>e-mail do comprador, não é obrigatório se o parâmetro <code>customer_phone</code> Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>discount</code></strong></td><td>valor do desconto. Envie um número ou um número com ponto: 25 ou 63.5   Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>description</code></strong></td><td>descrição do produto (se não for informada, é preenchido com 'Pagamento da fatura order_id') Para pular esse parâmetro, envie no lugar dele aspas simples ou duplas.</td></tr><tr><td><strong><code>extra_params</code></strong></td><td>parâmetros adicionais que não existem nesta função.<br>Os possíveis parâmetros adicionais podem ser vistos no link da documentação de trabalho com a API do sistema de pagamento <a href="https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov">https://help.prodamus.ru/payform/integracii/rest-api/instrukcii-dlya-samostoyatelnaya-integracii-servisov</a><br><br>Exemplo: <code>extra_params = {"payments_limit": "3"}</code><br><br><em>Para pular esse parâmetro, envie no lugar dele um par de aspas simples/um par de aspas duplas ou o valor None.</em></td></tr><tr><td><strong><code>products_for_receipt</code></strong> </td><td><p><strong>Linha de 50 a 4000 caracteres no formato</strong> "descrição do pedido - valor - link para o recurso adquirido”. </p><p>Por exemplo:</p><p>“Curso ‘Pesca de brema’, valor de 4999 rublos, link para a página do curso: https://www.lovilescha.ru/courses/poimai_kilogram/". </p><p><strong>Obrigatório</strong>, se você não tiver uma caixa registradora online própria, para a fiscalização dos pagamentos via Prodamus.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Exemplo de código para copiar" %}
**extra\_params** = {<mark style="color:vermelho;">"payments\_limit"</mark>: <mark style="color:vermelho;">"3"</mark>}&#x20;

**products\_for\_receipt** = <mark style="color:vermelho;">"Curso ‘Pesca de brema’</mark>, <mark style="color:vermelho;">valor da assinatura mensal de 2000 rublos</mark>, <mark style="color:vermelho;">link para a página do curso: <https://www.lovilescha.ru/courses/poimai\\_kilogram/>"</mark>&#x20;

**link\_prodamus\_sub** = get\_prodamus\_subscription\_url(<mark style="color:azul;">618988</mark>, <mark style="color:vermelho;">'Curso ‘Pesca de brema’</mark>', <mark style="color:vermelho;">'27.03.2023 17:02', '79167777771', '<mail@mail.com>'</mark>, <mark style="color:vermelho;">20</mark>, <mark style="color:vermelho;">'Melhor curso do mercado'</mark>, extra\_params, products\_for\_receipt)
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Se houver várias funções no bloco para obter o link e ocorrer um erro, o valor do erro será gravado na variável  **`error_payment_func`**

\
O erro será registrado na última função na Calculadora
{% endhint %}

### Como gerenciar o status da assinatura

{% hint style="info" %}
O método funciona apenas em assinaturas reais; no modo demo não há vinculação com cartão
{% endhint %}

{% hint style="warning" %}
Para gerenciar a assinatura, deve ser informado um dos parâmetros obrigatórios customer\_phone ou customer\_email.
{% endhint %}

Para permitir o cancelamento da assinatura pelo usuário, é necessário criar um bloco e chamar a função: **<https://store.salebot.pro/function/delete\\_subscription\\_prodamus>**

Com os parâmetros:

**{**\
**"customer\_phone": "#{customer\_phone}",**\
**"id\_subscription":"#{prodamus\_subscription}",**\
**"url":"<https://demo.payform.ru/>", "secret\_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",**\
**"switcher":"0"**\
**"profile\_id":"12345"**\
**}**

**url** - URL do formulário de pagamento especificada nas configurações do construtor\
**secret\_key** - chave secreta das configurações\
**id\_subscription** - id do produto de assinatura\
**customer\_phone** - telefone do assinante\
**switcher** = 0 significa interromper a assinatura; se você passar 1, a assinatura será ativada novamente.\
**profile\_id** - ID do perfil no sistema Prodamus

{% hint style="danger" %}
Atenção!

Se o ID do perfil chegar, o valor será salvo na variável profile\_id.

profile\_id pode ser passada para a função delete\_subscription\_prodamus em vez de customer\_phone ou customer\_email para cancelar a assinatura.
{% endhint %}

Exemplo de configuração do bloco de assinatura:

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

Observe que a função retorna status, que salvamos e podemos tratar como quisermos, em caso de desativação\reativação bem-sucedida **status** é igual a **ok**

### Função para gerenciar assinatura

prodamus\_subscription\_switch\_status(subscription\_id, switcher, customer\_phone, customer\_email, profile\_id)

&#x20;**id\_subscription** - id do produto de assinatura&#x20;

**switcher** = 0 significa interromper a assinatura; se você passar 1, a assinatura será ativada novamente.&#x20;

**customer\_phone** - telefone do assinante - opcional, se customer\_email for informado&#x20;

**customer\_email** - email do assinante - opcional, se customer\_phone for informado

profile\_id - ID do perfil no sistema Prodamus

<div data-with-frame="true"><figure><img src="/files/4b7a567af5145846e2f7981cf5a27b3f261f772e" alt=""><figcaption><p>Exemplo de uso da função prodamus_subscription_switch_status</p></figcaption></figure></div>

Exemplo: parâmetro **customer\_phone,** customer\_email omitido\
`stat = prodamus_subscription_switch_status`(`'618117', '0', '75431312321')`

Exemplo 2: parâmetro **customer\_email,** customer\_phone omitido\
`stat = prodamus_subscription_switch_status('618117', '0', '', 'examp@mail.com')`

{% hint style="success" %}
A função retornará ok se tudo tiver ocorrido com sucesso ou a descrição do erro
{% endhint %}

### Gerenciamento de descontos na assinatura

A função define o valor do desconto para os pagamentos seguintes da assinatura. O desconto pode ser definido para uma quantidade limitada ou ilimitada de cobranças.

**prodamus\_subscription\_discount(subscription\_id, discount, customer\_phone, num, profile\_id)**\
**onde:**\
**subscription\_id** - ID da assinatura\
**discount** - número decimal com precisão de até duas casas após **o ponto**, o valor deve ser maior que zero e não pode exceder o custo base da assinatura\
**customer\_phone** - número de telefone do cliente no formato: +79999999999 (parâmetro opcional, se existir a variável customer\_email (aparece após o primeiro pagamento, descrição acima))\
**num** - quantidade de pagamentos aos quais o desconto será aplicado (parâmetro opcional; se não for informado, a quantidade de pagamentos com desconto será ilimitada)

profile\_id - ID do perfil no sistema Prodamus\
\
**Se a solicitação for executada com sucesso, a função retornará 'ok'; se a solicitação falhar, a função retornará a descrição do erro.**

{% hint style="warning" %}
O valor do desconto e o intervalo são regravados SOMENTE se a função for chamada novamente com novos valores!
{% endhint %}

#### **Exemplos:**

1\. Concessão de desconto de 1 rublo em todos os pagamentos automáticos subsequentes (o número de telefone não é informado, pois será obtido automaticamente da variável customer\_phone, e a quantidade de cobranças com desconto, por padrão, é por todo o período da assinatura)&#x20;

r = prodamus\_subscription\_discount('624034', '1')

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/_4i_sKKn39tHVdnb47xgj8fxfP_x9UGMWLaierBnpup9LCZMdVT0G9AmIOa8S_uMrVXWQIH6rvZnujCYPGcphkYvwFbCXEh819tWIjGIM4mHvd3afSlPzhZfcWk6D1z1tyBwFrZV" alt="Exemplo 1" width="563"></div>

2\. Concessão de desconto de 2 rublos nas próximas 3 cobranças (o número de telefone é substituído por aspas vazias, pois será obtido automaticamente da variável customer\_phone)&#x20;

r = prodamus\_subscription\_discount('624034', '2', '', '3')

<div data-with-frame="true"><img src="https://lh5.googleusercontent.com/IgutVRIqTFbaof9A14qdQRLCB6oop4mSAIew5s3lz62Kb4YVHdHJEt6GuC7AACStDgRiR1d_XEG1k5Dj7c2M-VNtci16JbklMTEla8_RNWD7wBNeG649g0lnFiMZilhri3phwKr-" alt="Exemplo 2" width="563"></div>

3\. Exemplo de concessão de desconto como número com parte fracionária até centésimos (separador ponto), os dados numéricos são informados sem aspas, o número de telefone é passado por variável

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

r = prodamus\_subscription\_discount(#{prodamus\_subscription}, 10.25, #{customer\_phone}, 3)

<div data-with-frame="true"><img src="https://lh3.googleusercontent.com/xJVbZ3Q5f6LzCsYtuX-JqaKYPc69lS6Wi4yA0ui2vBxmFkXXGIHSqgO2VoK0rzDPdNG-HxVpAnpRcmbZXQ_oSrtT7ijJcQA6ZOwjXLbKP8WsCFBip-4DwRnVHpz-fIPRt_Wldo0h" alt="Exemplo 3" width="563"></div>

### Como definir a data do próximo pagamento da assinatura

Com este método, é possível deslocar a data do próximo pagamento da assinatura. A data só pode ser deslocada "para o futuro" em relação à data atual já definida para o próximo pagamento. Assim, aumenta-se o tempo de permanência no clube.

{% hint style="success" %}
Por exemplo, pode ser usado como bônus para assinantes.
{% endhint %}

Para isso, é necessário usar a função:

**prodamus\_subscription\_payment\_date(subscription\_id, date, customer\_phone, profile\_id)**&#x20;

onde:

**subscription\_id** - ID da assinatura \
**date** - data no formato dd.mm.aaaa hh:mm ou dd.mm.aaaa; nesse caso, o horário será 00:00\
**customer\_phone** - não é obrigatório; se não for informado, será obtido da variável customer\_phone; se também não for encontrado ali, não funcionará\
**profile\_id** - ID do perfil no sistema Prodamus

## Como enviar parâmetros para o Prodamus

Para enviar ao Prodamus os parâmetros que você precisa (por exemplo, data de início da assinatura, desativação do parcelamento etc.), acrescente no início do nome da variável prodamus\_&#x20;

Então, ao gerar o link de pagamento, esses parâmetros serão enviados automaticamente ao sistema de pagamento.

## Como testar o pagamento

{% hint style="info" %}
Testamos apenas o pagamento!
{% endhint %}

Para que não sejam debitados valores da sua conta durante os testes de integração e configuração dos funis de pagamento, você pode usar cartões de teste&#x20;

{% hint style="warning" %}
Primeiro, coloque sua página de pagamento no modo DEMO ⤵

Não se esqueça de clicar no botão "Salvar"
{% endhint %}

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

#### Para realizar um pagamento de teste, você pode usar contas de teste

Cartões de teste do Sberbank:&#x20;

МИР\
Número do cartão 2202 2050 0001 2424\
Data de validade 05/35\
Código de verificação no verso 669

MasterCard\
Número do cartão 5469 9801 0004 8525\
Data de validade 05/26\
Código de verificação no verso 041\
Código de verificação 3-D Secure 111111

Visa\
Número do cartão 4006 8009 0096 2514\
Data de validade 05/26\
Código de verificação no verso 941\
Código de verificação 3-D Secure 111111

{% hint style="success" %}
! Ao pagar com contas de teste, todos os funis e integrações configurados funcionarão como em um pagamento normal !&#x20;
{% endhint %}

Formulário testado

{% hint style="danger" %}
Para receber pagamentos com dinheiro real, é necessário colocar o formulário em modo de produção. Ou seja, mover o controle deslizante do modo demo para a posição em que ele fique em vermelho-claro
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/integrations/payment/prodamus-blr.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.
