# Stripe

## Como conectar

Para conectar o sistema de pagamento Stripe, você precisará de uma chave secreta de API e uma chave de webhook.

Você pode copiar a chave secreta de API acessando a seção Developers -> API key e copiando a Secret key.

Passo 1. Vá para a seção Developers -> API key:

<figure><img src="/files/06942bfb22f2e74e1ac577f5656bc8dc2bd4e80d" alt="" width="563"><figcaption><p>Fig. 1. Como encontrar a seção API</p></figcaption></figure>

Passo 2. Encontre e copie a Secret key:

<figure><img src="/files/f706cc4fd91109bb7c408f6a22098ba9052ff7e0" alt=""><figcaption></figcaption></figure>

Em seguida, você precisa definir a URL para callbacks. Isso é necessário para que o bot receba notificações de pagamento.

Vá para a seção Webhooks e adicione o endereço para os webhooks.

<figure><img src="/files/62c60efd76065fc6f215e538ddb645b991a4fd61" alt=""><figcaption></figcaption></figure>

O formulário é aberto:

<figure><img src="/files/cb8640924d28fe37e9138c0bedc1507473d5b177" alt=""><figcaption></figcaption></figure>

Passo 1. Clique em "+add destination".

Passo 2. Selecione os eventos:

<figure><img src="/files/c6092f1d5b61cd8b54d84014a72d85f267c4f00c" alt=""><figcaption></figcaption></figure>

Passo 3. Selecione o tipo de "Webhook endpoint":

<figure><img src="/files/00dd1a25cea6be7399bcfc7dc668bb6bc110e376" alt=""><figcaption></figcaption></figure>

Passo 4. Conhecemos o tipo de solicitação e clicamos em "Continue":

<figure><img src="/files/758c1d130e1dcf57b4df1f9534ceaffc362dcdb5" alt=""><figcaption></figcaption></figure>

Passo 5. Inserimos o nome e especificamos a URL do endpoint:

<figure><img src="/files/9e4672d0ec5e1fb0e222fea4de5357d97f2388d7" alt=""><figcaption></figcaption></figure>

Especificar URL - <https://chatter.salebot.pro/stripe_callback/result>

Passo 6. Dois endpoints serão criados; você pode visualizar as configurações antes de adicionar:&#x20;

<figure><img src="/files/f1e8a58656b8aad9ec80fc2949b3b1b1a20c4572" alt="" width="563"><figcaption></figcaption></figure>

Passo 7. Em seguida, clique no botão "Add destinations". Depois disso, os webhooks serão salvos.

Passo 8. Clique no botão "Done".

<figure><img src="/files/25f8c041e7ea13e78ecc0ef4bf5e7b4fb3dbedd7" alt=""><figcaption></figcaption></figure>

Salvamos e vamos para a página com o webhook instalado:

<figure><img src="/files/295f3012df73bc93129e712d1e204e6cbaefba7b" alt=""><figcaption></figcaption></figure>

Passo 9. Em seguida, clique no webhook em que você selecionou todos os eventos:

<figure><img src="/files/2cf55a0cdc02bf5e78c95cb49326a4938028dd41" alt=""><figcaption></figcaption></figure>

Passo 10. Encontramos a Signig key e a salvamos para nós (no futuro precisaremos dela para conectar ao Salebot):

<figure><img src="/files/744302171f2d3e3b4823987219e7852b47a7d899" alt=""><figcaption></figcaption></figure>

Depois de receber as chaves, prosseguimos para a conexão com o Mavibot.

No Mavibot, abra a seção "Acquiring" e selecione Stripe.

<figure><img src="/files/eba91e86b70c00b886f3d79e115849bc31796502" alt=""><figcaption></figcaption></figure>

Na página de conexão, você precisa inserir as chaves recebidas:

<figure><img src="/files/da2fdf9bcfdcbeb62b9334e66668b6ae6d4171f5" alt=""><figcaption></figcaption></figure>

Clique em "Save Settings".

{% hint style="success" %}
Pronto!&#x20;

Isso conclui a conexão do sistema de pagamento!
{% endhint %}

## Como conectar um callback sobre o status da transação

Para obter um callback adicional, precisaremos conectar um webhook em **além do existente.**

Especificar URL - [https://chatter.salebot.pro/stripe\_callback/\<api\_key>/charge\_status](https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status)

e selecione os eventos:

* `charge.failed`
* `charge.pending`
* `charge.succeeded`

<figure><img src="/files/3c5ac5f4bc489ee93b3e1f5cdc8fe5a7aec53fdf" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
**Saiba mais sobre cada tipo de webhook:**

1. **charge.succeeded** - contém informações sobre a conclusão bem-sucedida da transação (semelhante a um callback sobre um pagamento bem-sucedido)
2. **charge.pending** - "a transação está em andamento", ela pode levar até 7 dias para ser concluída.\
   O webhook ficará como {primeiros 10 caracteres}{tipo de webhook}\
   *Por exemplo*: *sk\_test\_45LDPJLKT95d\_charge.pending*&#x20;
3. **charge.failed** *-* "a transação falhou."\
   O webhook ficará como {primeiros 10 caracteres}{tipo de webhook}\
   Por exemplo: *sk\_test\_45LDPJLKT95d\_charge.failed*
   {% endhint %}

Adicionamos o webhook recebido após salvar no campo do Mavibot - Webhook key2:

<figure><img src="/files/b5ff6af9ad61842fea189243e9b0869f46054d66" alt="" width="563"><figcaption></figcaption></figure>

**stripe\_invoice\_id** - ID da transação para a qual o callback de pagamento bem-sucedido não foi recebido imediatamente após o pagamento.

## Como conectar impostos

Para usar impostos nos pagamentos, primeiro você precisa criá-los na conta pessoal do Stripe. Para isso, digite tax rates na barra de pesquisa:

<figure><img src="/files/77cf429f6d24e272d5523ad28ea84d9c9b70e2d5" alt=""><figcaption></figcaption></figure>

E clique em "+ Add tax rates":

<figure><img src="/files/b385945f312b3b7ac3a2fdc677097095272de340" alt=""><figcaption></figcaption></figure>

Em seguida, especifique a taxa de imposto aplicável:

<figure><img src="/files/c9cd8fa205ffda11b96d0051d4898d473699ed69" alt=""><figcaption></figcaption></figure>

No menu aberto, selecione o tipo de imposto, a região em que ele se aplica, a taxa de imposto e a opção indicando se esse imposto deve ser incluído no valor do pagamento como 'Inclusive' ou se será adicionado ao valor como extra - exclusive:

<figure><img src="/files/915999b29fe2c2b4badd32d7d5c082c06bec0e4a" alt=""><figcaption></figcaption></figure>

Após criar a taxa de imposto, copie o ID dela para a **stripe\_tax\_id** variável antes de definir o valor do pagamento.

<figure><img src="/files/e4be36591184bf558be8bd4b831d8503cecc2784" alt=""><figcaption></figcaption></figure>

Para evitar erros, coloque uma string vazia ("") na variável stripe\_tax\_id após receber o link, para que você possa aplicar o imposto apenas quando necessário.

Se tudo for feito corretamente, então, no caso da taxa de imposto com o parâmetro exclusive, você verá o seguinte

<figure><img src="/files/15e6373da9afd009c6373e4399d9072719129345" alt=""><figcaption><p>Exemplo de pagamento com uma taxa de imposto exclusiva</p></figcaption></figure>

## **Como obter o link de pagamento**&#x20;

Para gerar um link de pagamento, você precisa definir o valor da **payment\_sum** variável (por exemplo, 150 ou 100,55 (separado por ponto!)), e depois disso a variável stripe\_pay\_url aparecerá. Essa variável pode ser exibida com um link ou colocada em um botão com o texto "Pagar".

O link se parece com:

`https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl`

{% hint style="warning" %}
Por padrão, USD (dólar) está definido; se precisar de outra moeda, você precisa definir o valor da **currency** variável.
{% endhint %}

Além disso, antes de definir o valor da **payment\_sum** variável, você pode definir as seguintes variáveis opcionais para configurar o pagamento.

<table><thead><tr><th width="255">Parâmetros da função</th><th>Descrição dos parâmetros</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>é a moeda do pedido. Valores aceitos -<a href="https://stripe.com/docs/currencies">https://stripe.com/docs/currencies</a></td></tr><tr><td><strong>payment_description</strong></td><td>descrição do pedido</td></tr><tr><td> <strong>stripe_tax_id</strong></td><td>Este é o ID da taxa de imposto, configurado na conta pessoal do Stripe.<br>Como configurá-lo está descrito na seção "Como configurar impostos" ссылка "<a href="#kak-podklyuchit-nalogi">Como conectar impostos</a>"</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>Este parâmetro indica a necessidade de salvar faturas (invoices, receipts). Insira qualquer valor — todos os documentos necessários ficarão então disponíveis na sua conta pessoal do Stripe.</td></tr><tr><td><strong>stripe_locale</strong></td><td>define o idioma do link de pagamento: en, ru, de. Todos os idiomas disponíveis estão aqui: <a href="https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale ">https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale </a><br>Se o <strong>stripe_local</strong> se nenhum valor for fornecido, o idioma do navegador do cliente será usado por padrão.</td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td><p>é o método de pagamento; por padrão, o pagamento é feito por cartão. Você pode substituí-lo por outros métodos de pagamento disponíveis no Stripe. Os métodos disponíveis estão listados abaixo</p><p>client_id = 1202020202 <code>stripe_payment_method_type = "customer_balance"</code></p></td></tr><tr><td><strong>stripe_additional_payment_method_type</strong> </td><td>serve para adicionar um método de pagamento adicional. Os métodos disponíveis estão listados abaixo, por exemplo, <code>stripe_additional_payment_method_type  = "sepa_debit"</code></td></tr><tr><td><strong>coupon_id</strong></td><td>ID do cupom de desconto</td></tr><tr><td>stripe_expired </td><td>é o tempo de validade do link de pagamento. Especificado em segundos. O tempo mínimo é 30 minutos, o máximo é 24 horas. O padrão é 24 horas</td></tr><tr><td>stripe_automatic_tax</td><td>habilita o cálculo e a cobrança automática de impostos durante o pagamento. Para ativá-lo, passe "1". Informações detalhadas sobre essa configuração podem ser encontradas na documentação do Stripe. ссылка <a href="https://docs.stripe.com/tax/set-up">na documentação do Stripe </a></td></tr></tbody></table>

{% hint style="warning" %}
Atenção! Se você usar ambas  ***stripe\_payment\_method\_type** e  **stripe\_additional\_payment\_method\_type*** variávei&#x73;***, então os valores nelas DEVEM ser DIFERENTES!***
{% endhint %}

<details>

<summary><em><mark style="color:verde;"><strong>Lista de valores para</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> e <strong>stripe_additional_payment_method_type</strong></em></summary>

card\
acss\_debit\
affirm\
afterpay\_clearpay\
alipay\
au\_becs\_debit\
bacs\_debit\
bancontact\
blik\
boleto\
cashapp\
customer\_balance\
eps\
fpx\
giropay\
grabpay\
ideal\
klarna\
konbini\
link\
oxxo\
p24\
paynow\
paypal\
pix\
promptpay\
sepa\_debit\
sofort\
us\_bank\_account\
wechat\_pay zip

</details>

Mais detalhes sobre cada um dos métodos e para quais países eles estão disponíveis podem ser encontrados na documentação do Stripe: [ver no site ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)

### **Exemplo de geração do link de pagamento**

Vamos criar um link de pagamento no valor de 1000 rublos (por padrão, dólar)

<figure><img src="/files/51f686e0796940f4491d9e3a4f7b45f668864c16" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Atenção:** \
\- Primeiro você define parâmetros opcionais  **first\_name, payment\_description** e assim por diante.\
\- E por último atribuímos o valor à variável **payment\_sum**

As variáveis também podem ser definidas antes na sequência, e não em um único bloco; este é apenas um exemplo.
{% endhint %}

Em seguida, no local desejado, exibimos a variável **stripe\_pay\_url**, que contém o link no bloco ou no botão:

Exemplo 1. Exibimos o link de pagamento diretamente na mensagem:

<figure><img src="/files/a68c91d813a3891eb971b5b9d75e6d6e06daf544" alt=""><figcaption></figcaption></figure>

Teste no bot:

<figure><img src="/files/6f9ca1db376acf9aa91fc9d45122e3d442d0e87c" alt="" width="563"><figcaption></figcaption></figure>

Exemplo 2. Adicionamos o link de pagamento em um botão:

<figure><img src="/files/85c59883554fca68dafc586518debf786bbb3053" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/b35ca0d66788e21e910238ed414f5253fb2d41c5" alt="" width="563"><figcaption></figcaption></figure>

Exemplo 3. Adicionamos o link como anexo à mensagem:

<figure><img src="/files/d40f7dff7043505db5f5a258aba5fd33ffd8c009" alt=""><figcaption></figcaption></figure>

Teste no bot:

<figure><img src="/files/a0bd79ac25836fd4f5c3092baabc08ba8ba5fb4a" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
Todos os três formatos são permitidos para enviar o link de pagamento no bot.&#x20;
{% endhint %}

Ao clicar no botão ou ao acessar o link, o pagador será redirecionado para a página de pagamento:

<figure><img src="/files/6369b7530304b6b1e1c8f1386a8cdbdc382c3c22" alt=""><figcaption></figcaption></figure>

No exemplo, é видно que os parâmetros que indicamos na calculadora nas configurações do bloco foram aplicados: descrição do pedido, moeda e valor.&#x20;

Se você passar o parâmetro de taxa de imposto (**stripe\_tax\_id)** no bloco:&#x20;

<figure><img src="/files/ae4bb143ea8a5985ba89f5991680be046618e996" alt=""><figcaption></figcaption></figure>

Então a taxa de imposto também será exibida no formulário de pagamento:

<figure><img src="/files/380c2e9a3783754b5335437c8ae7e9d5b84c278c" alt=""><figcaption></figcaption></figure>

<details>

<summary>Exemplo de código para copiar</summary>

`payment_description = 'Pagamento de teste no Stripe'` \
`currency = 'RUB'` \
`stripe_tax_id = 'copie aqui o seu tax ID'` \
`payment_sum = 1000`

Onde encontrar o tax ID:

<figure><img src="/files/6a09cf3629c06a17b587a5bdb3cad78dd5171652" alt=""><figcaption></figcaption></figure>

</details>

## **Como configurar pagamentos recorrentes**

Para pagamentos recorrentes (assinaturas), é necessário, antes de declarar a variável **payment\_sum** declarar a variável **stripe\_subscription** e atribuir a ela o nome da assinatura.&#x20;

Também é possível adicionar as seguintes variáveis: \
**interval** – duração do intervalo da assinatura; nessa variável é preciso passar o valor **‘day’** - para dias, **‘week’** - semanas, **‘month’** - meses, **‘year’** - anos.\
Se a variável não for declarada, então ***por padrão*** será passado o parâmetro **‘month’.**

{% hint style="warning" %}
**Importante!** A duração de um ciclo de assinatura não pode ser superior a 1 ano (para o parâmetro ‘year’), mais de 12 meses (para o parâmetro ‘month’) e mais de 52 semanas (para o parâmetro ‘week’).
{% endhint %}

<figure><img src="/files/75584eafebcee86a727c130843a5a70bc28afce5" alt=""><figcaption></figcaption></figure>

**interval\_count** – quantidade de intervalos especificados; quantos dias, semanas ou meses haverá na assinatura pelo valor indicado. ***Por padrão*** será passado o parâmetro igual a um (**1**);

**stripe\_payment\_method\_type** - método de pagamento; por padrão, o pagamento é feito por cartão (card). Você pode substituí-lo por outros métodos de pagamento disponíveis no Stripe. Abaixo estão listados os métodos disponíveis.

Por exemplo, `stripe_payment_method_type = 'customer_balance'`

**stripe\_additional\_payment\_method\_type** - adicionar um método de pagamento adicional. Abaixo estão listados os métodos disponíveis

Por exemplo, `stripe_additional_payment_method_type  = 'sepa_debit'`

{% hint style="warning" %}
Importante! Se você usar ambas as variáveis ***stripe\_payment\_method\_type** e  **stripe\_additional\_payment\_method\_type, então os valores nelas DEVEM ser DIFERENTES!***
{% endhint %}

<details>

<summary><em><mark style="color:verde;"><strong>Lista de valores para</strong></mark><strong>  </strong><strong>stripe_payment_method_type</strong> e  <strong>stripe_additional_payment_method_type:</strong></em></summary>

card\
acss\_debit\
affirm\
afterpay\_clearpay\
alipay\
au\_becs\_debit\
bacs\_debit\
bancontact\
blik\
boleto\
cashapp\
customer\_balance\
eps\
fpx\
giropay\
grabpay\
ideal\
klarna\
konbini\
link\
oxxo\
p24\
paynow\
paypal\
pix\
promptpay\
sepa\_debit\
sofort\
us\_bank\_account\
wechat\_pay zip

</details>

{% hint style="info" %}
Para mais informações sobre cada um dos métodos e para quais países eles estão disponíveis, consulte a documentação do Stripe: veja o site ссылка [ver no site ](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)
{% endhint %}

{% hint style="warning" %}
**Atenção!** A duração da assinatura não pode exceder 1 ano (para o parâmetro ‘year’), mais de 12 meses (para o parâmetro ‘month’) e mais de 52 semanas (para o parâmetro ‘week’).
{% endhint %}

Neste exemplo, será criada uma assinatura chamada 'My\_subscription' com o valor de 90 USD por 3 meses, e um pagamento recorrente será feito com o mesmo valor após esse 1 mês:

<figure><img src="/files/7b0531d4034881fd17da5c923318734c3b880653" alt=""><figcaption></figcaption></figure>

Um exemplo para copiar:

`stripe_subscription = 'My_subscription'` \
`interval = 'month'` \
`interval_count = 3` \
`payment_sum = 90`&#x20;

Após o pagamento, o cliente terá **stripe\_subscription\_id** variáveis nas variáveis do negócio, que serão necessárias para configurar o cancelamento da assinatura, e **stripe\_customer\_id**, que depois poderá ser usado para verificar o status da assinatura.

{% hint style="warning" %}
A notificação (callback) é recebida apenas no primeiro pagamento recorrente!

NÃO HAVERÁ callback para chamadas repetidas. O controle ocorre pela função e pelo stripe\_customer\_id. [por meio da função](#proverka-statusa-podpiski) ссылка
{% endhint %}

<figure><img src="/files/31391a71a80738970aec1ad166a415b7f5e5f6d7" alt="" width="371"><figcaption></figcaption></figure>

### Retornando às configurações de pagamentos regulares

Para voltar aos pagamentos regulares, atribua à variável de assinatura uma string vazia **stripe\_subscription = "**. Nesse caso, as variáveis interval e interval\_count não afetarão a criação do link.

<figure><img src="/files/09d6016c208beac923c34f73839601ea82c8f6c3" alt=""><figcaption></figcaption></figure>

### **Cancelando as configurações da assinatura**

Para cancelar uma assinatura na calculadora, use o **stripe\_remove\_subscription(stripe\_subscription\_id)** método, onde **stripe\_subscription\_id** é o identificador que foi salvo nas informações do negócio após o pagamento.

Isso permitirá que você mantenha sua assinatura paga ativa até o fim do período pago atual, mas não haverá mais cobranças, e a assinatura será cancelada após a data de expiração:

<figure><img src="/files/9d478b6f0ceb3a23c034b67aac82fd15e0a3eb78" alt=""><figcaption></figcaption></figure>

answer = stripe\_remove\_subscription('#{stripe\_subscription\_id}')

stripe\_remove\_subscription - Em caso de sucesso, você receberá uma resposta com informações sobre a data até a qual a assinatura cancelada permanece válida.

Neste exemplo, o resultado da execução da função será colocado na variável answer e será possível verificar o resultado da execução.&#x20;

### Verificando o status da assinatura

**stripe\_check\_subscription(subscription\_id, customer\_id)**, onde

**stripe\_subscription\_id** - ID da assinatura \
**stripe\_customer\_id** - ID do cliente no Stripe (parâmetro opcional)

<figure><img src="/files/8822d8cf0b623f8c46d779077fb3d181eda07b5a" alt=""><figcaption></figcaption></figure>

## Como criar um cupom e obter um ID de desconto

Para receber o ID do desconto, crie um cupom na sua conta pessoal na seção “coupons”. ссылка ”[coupons](https://dashboard.stripe.com/coupons)”.

<figure><img src="/files/eb2cd30b1b6f29a2faf197a5d6da688445f08035" alt=""><figcaption></figcaption></figure>

Depois de clicar no botão “New”, abre-se uma página onde você precisa especificar:

1. &#x20;Name — nome do desconto;
2. ID — identificador gerado automaticamente.
3. Type — tipo de desconto: percentual ou valor fixo
4. Duration — a duração do desconto (único ou recorrente, por exemplo, para assinaturas) e outros parâmetros.

<figure><img src="/files/74300020e1f795cb59e5825f477bebf1e3846438" alt=""><figcaption></figcaption></figure>

O cupom de desconto aparecerá no “Catálogo de produtos” na seção “Coupons”, e você poderá ver o ID do desconto acessando o menu do cupom:

<figure><img src="/files/a140d485cae51f9299dcdee660572af995a78f82" alt=""><figcaption></figcaption></figure>

Clique no cupom para copiar o ID do cupom:

<figure><img src="/files/85855b05f89c47cd7bcc674c6d4218e356f81ec9" alt=""><figcaption></figcaption></figure>

### Como adicionar um desconto ao pedido

1. Ao gerar um link de pagamento (tanto para assinaturas quanto para pagamentos únicos).

Na calculadora do bloco, antes de declarar a **payment\_sum** defina a variável **coupon\_id** variável, atribuindo a ela o ID do desconto da conta pessoal do Stripe.

<figure><img src="/files/5706bc2d64191672d7b830e7074f52cb4f224d65" alt=""><figcaption></figcaption></figure>

2. Para adicionar a uma assinatura existente usando o **stripe\_add\_subscription\_discount** função.

Defina as condições para acionar o bloco e chame a função especificada na calculadora, passando a ela os parâmetros stripe\_subscription\_id (ID da assinatura) e coupon\_id (ID do cupom de desconto). O desconto será aplicado aos pagamentos subsequentes da assinatura.

<figure><img src="/files/a6ab0f71c4452be2d4899214d71255cca4845fc5" alt=""><figcaption></figcaption></figure>

<details>

<summary>Exemplo de código para copiar</summary>

`stripe_subscription = 'Assinatura premium'` \
`interval = 'month'` \
`payment_description = 'Pagamento de teste no Stripe'` \
`currency = 'USD'` \
`coupon_id = 'ID do seu cupom'` \
`stripe_add_subscription_discount(stripe_subscription_id, coupon_id)` \
`stripe_tax_id = 'ID do imposto'` \
`payment_sum = 90`

</details>

Após a adição bem-sucedida, a função retorna uma mensagem indicando o ID da assinatura, o tipo, o valor ou percentual do desconto e também sua data de expiração.

<figure><img src="/files/e6559631c48648f9eb8d8f47d16f20a4ffe0c35e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Para mais informações sobre como criar uma assinatura, consulte a seção "Como configurar pagamentos recorrentes" ссылка "[Como configurar pagamentos recorrentes](#kak-nastroit-rekurrentnye-platezhi)"
{% endhint %}

### Como excluir/alterar o desconto da assinatura

O desconto vinculado à assinatura pode ser excluído ou substituído por outro desconto.

Se você quiser encerrar o desconto, defina uma condição para acionar o bloco e chame a **stripe\_remove\_subscription\_discount** função na calculadora, passando a ela o **stripe\_subscrition\_id** parâmetro (ID da assinatura).

<figure><img src="/files/f964aa99107d3e63770ead0594d4efd943060dd0" alt=""><figcaption></figcaption></figure>

Após a conclusão bem-sucedida da operação, a função retorna uma mensagem contendo o ID da assinatura e a data de cancelamento do desconto.

A substituição do desconto, assim como a adição de um novo, é feita usando **stripe\_add\_subscription\_discount** função. Não se esqueça de passar os **stripe\_subscription\_id** e **coupon\_id** parâmetros a ela.\
Uma solicitação bem-sucedida atualizará o cupom vinculado à assinatura e retornará uma mensagem com as informações atuais.

{% hint style="info" %}
Você pode ler como obter um ID de desconto na seção "Como criar um cupom e obter um ID de desconto". ссылка "[Como criar um cupom e obter um ID de desconto](#kak-sozdat-kupon-i-poluchit-id-skidki)".
{% endhint %}

## Como processar o resultado

Após um pagamento bem-sucedido, callbacks serão enviados ao bot, o que permitirá que você saiba que o pagamento foi realizado com sucesso. Você vê esses callbacks no sistema como mensagens do usuário; para que o usuário não possa enviá-las, eles consistem nos primeiros 20 caracteres da chave secreta e no sufixo de sucesso, por exemplo: **sk\_live\_d35gky6d8ers\_success**&#x20;

<figure><img src="/files/de8db8463359aeaef1fb7e58c0318341e04c4371" alt="" width="563"><figcaption></figcaption></figure>

Esses callbacks NÃO SÃO VISÍVEIS PARA o usuário, eles são exibidos apenas para o operador.

O tipo de comparação deve ser "**Correspondência exata"**

Além disso, após o pagamento bem-sucedido, a **stripe\_payment\_completed** variável é definida como **True.**

Por exemplo, você pode processar um pagamento bem-sucedido em um bloco condicional e exibir a mensagem correspondente ao usuário:

<figure><img src="/files/d1beb9f9113a1429331ef44aaa7b03ac8b490a80" alt=""><figcaption></figcaption></figure>

Após a conclusão do pagamento, a variável **stripe\_callback\_data** variável será adicionada ao cliente, contendo os dados da resposta do sistema de pagamento para a transação concluída. Você pode extrair os dados necessários do dicionário resultante usando o **get** .

{% hint style="warning" %}
Para fazer um pagamento repetido, você precisa redefinir o payment\_sum, o link gerado anteriormente e, então, reatribuir a variável payment\_sum para obter um novo link. Você pode especificar o valor anterior.
{% endhint %}

## **Como testar pagamentos**

Para testar a integração, você pode usar a chave secreta do ambiente de teste. Para isso, mude para o modo de teste na conta pessoal do Stripe usando o botão no menu à direita&#x20;

![](https://lh5.googleusercontent.com/r-tuJboMES8alkTUpKwA4HKrmL_epNtSXdENrv12EyR9dGCtvRLBK6qw4UGcr59GA3unxc1cV1otCu80nqHEw9VhbEK05ovPQ1Ad8chBv50LAWPO16nEPC2hFhCAsCe3khtBJrob=s0)

Em seguida, faça a configuração descrita no início deste guia. Insira a chave secreta de teste e adicione o endereço do webhook ao ambiente de testes.

O número do cartão de teste

4242 4242 4242 4242\
qualquer data no futuro\
CVC - quaisquer três números

Se algo não funcionar, compare os dados com os dados no site oficial. ссылка[ no site oficial.](https://stripe.com/docs/testing#regulatory-cards)


---

# 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/pagamento/stripe.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.
