> 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/es/integrations/payment/stripe.md).

# Stripe

## Cómo conectar

Para conectar el sistema de pago Stripe, necesitarás una clave API secreta y una clave de webhook.

La clave API secreta se puede copiar yendo a Developers → API keys y copiando la Secret key.

Paso 1. Ve a Developers → API keys:

<div data-with-frame="true"><figure><img src="/files/0e3c011e1a037f263c2a41f31eb38ad3e3d2afbc" alt=""><figcaption><p>Fig. 1. Cómo encontrar la sección api keys</p></figcaption></figure></div>

Paso 2. Encuentra y copia la Secret key:

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

A continuación, debes configurar una URL de callback. Esto permite que el bot reciba notificaciones de pago.

Ve a la sección Webhooks y añade la URL del webhook.

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

Aparecerá un formulario.

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

Paso 3. Haz clic en "+add destination".

Paso 4. Selecciona los eventos.

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

Paso 3. Selecciona el tipo "Webhook endpoint".

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

Paso 4. Revisa el tipo de solicitud y haz clic en "Continue".

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

Paso 5. Introduce un nombre y especifica la URL del endpoint.

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

Establece la URL en: <https://chatter.mavibot.ai/stripe\\_callback/result>

Paso 6. Se crearán dos endpoints — puedes revisar la configuración antes de agregarlos.

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

Paso 7. Haz clic en el botón "Add destinations". Los webhooks se guardarán.

Paso 8. Haz clic en "Done".

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

Guarda y serás llevado a la página con el webhook configurado.

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

Paso 9. Haz clic en el webhook en el que seleccionaste todos los eventos.

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

Paso 10. Encuentra la Signing key y guárdala (la necesitarás más adelante para conectarte a MaviBot).

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

Una vez que tengas las claves, procede a conectar en Mavibot.

En Mavibot, abre la sección "Acquiring" y selecciona Stripe.

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

En la página de conexión, introduce las claves que obtuviste.

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

Haz clic en "Save settings".

{% hint style="success" %}
¡Listo! Has conectado Stripe.
{% endhint %}

## Cómo conectar un callback del estado de la transacción

Para recibir un callback adicional, debes añadir un segundo webhook junto con el existente.

Establece la URL en: <https://chatter.mavibot.ai/stripe\\_callback/\\>\<api\_key>/charge\_status

y selecciona los siguientes eventos:

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

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

{% hint style="success" %}
Más detalles sobre cada tipo de webhook:

1. `charge.succeeded` — contiene información sobre una transacción completada correctamente (similar al callback de pago exitoso)
2. `charge.pending` — "transacción en curso", puede tardar hasta 7 días en completarse. El webhook tendrá el formato {primeros 10 caracteres}{tipo de webhook} Por ejemplo: sk\_test\_45LDPJLKT95d\_charge.pending
3. `charge.failed` — "transacción fallida". El webhook tendrá el formato {primeros 10 caracteres}{tipo de webhook} Por ejemplo: sk\_test\_45LDPJLKT95d\_charge.failed
   {% endhint %}

Añade la clave del webhook obtenida después de guardar en el campo de Mavibot — Webhook key2.

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

**stripe\_invoice\_id** — el identificador de la transacción para la cual no se recibió un callback de pago exitoso inmediatamente después del pago.

## Cómo configurar los impuestos

Para usar impuestos en los pagos, primero debes crearlos en tu panel de Stripe. Para ello, escribe "tax rates" en la barra de búsqueda:

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

Y haz clic en "+ Add tax rates".

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

Luego introduce la tasa de impuesto aplicable.

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

En el menú que se abre, selecciona el tipo de impuesto, la región a la que se aplica, el porcentaje y si el impuesto estará incluido en el importe del pago (Inclusive) o añadido encima de él (Exclusive).

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

Después de crear la tasa de impuesto, copia su ID en la variable stripe\_tax\_id antes de declarar el importe del pago.

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

Para evitar errores, se recomienda establecer la variable stripe\_tax\_id como una cadena vacía ("") después de recibir el enlace — así podrás aplicar el impuesto solo cuando sea necesario.

Si se hace correctamente, en el caso de una tasa de impuesto con el parámetro exclusive, verás lo siguiente:

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

Cómo obtener un enlace de pago

Para generar un enlace de pago, establece el valor de la variable payment\_sum (por ejemplo, 150 o 100.55 — ¡usa un punto, no una coma!). Después de eso, aparecerá la variable stripe\_pay\_url. Puedes mostrar esta variable como un enlace o ponerla en un botón con el texto "Pay".

El enlace se ve así:

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

{% hint style="warning" %}
Por defecto, la moneda está establecida en USD. Para usar una moneda diferente, establece el valor de la variable currency.
{% endhint %}

También puedes establecer las siguientes variables opcionales antes de definir el valor de payment\_sum para configurar el pago.

<table><thead><tr><th width="271.8984375">Параметры функции</th><th>Описание паараметра</th></tr></thead><tbody><tr><td><strong>currency</strong></td><td>moneda del pedido. Los valores permitidos están aquí —<a href="https://stripe.com/docs/currencies">https://stripe.com/docs/currencies</a></td></tr><tr><td><strong>payment_description</strong></td><td>descripción del pago</td></tr><tr><td> <strong>stripe_tax_id</strong></td><td>identificador de la tasa de impuesto configurada en tu panel de Stripe. Las instrucciones de configuración se proporcionan en la sección "<a href="#how-to-set-up-taxes">Cómo configurar los impuestos</a>".</td></tr><tr><td><strong>stripe_invoice_enable</strong> </td><td>bandera para habilitar el guardado de facturas (recibos). Establece cualquier valor para habilitar esto — todos los documentos relevantes estarán disponibles en tu panel de Stripe.</td></tr><tr><td><strong>stripe_locale</strong></td><td><p>establece el idioma de la página de pago: en, de, etc. Todas las opciones disponibles: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale</p><p>Si stripe_locale no está configurado, se usará el idioma del navegador del cliente.</p></td></tr><tr><td><strong>stripe_payment_method_type</strong></td><td>método de pago; por defecto es pago con tarjeta. Puede reemplazarse con otros métodos de pago disponibles en Stripe. Los métodos disponibles se enumeran a continuación. Por ejemplo, <code>stripe_payment_method_type = "customer_balance"</code></td></tr><tr><td><strong>stripe_additional_payment_method_type</strong> </td><td>añade un método de pago adicional. Los métodos disponibles se enumeran a continuación. Por ejemplo, <code>stripe_additional_payment_method_type = "sepa_debit"</code></td></tr><tr><td><strong>coupon_id</strong></td><td>identificador del cupón de descuento</td></tr><tr><td>stripe_expired </td><td>tiempo de expiración del enlace de pago. Se especifica en segundos. El mínimo es 30 minutos, el máximo es 24 horas. El valor predeterminado es 24 horas.</td></tr><tr><td>stripe_automatic_tax</td><td>habilita el cálculo y la recaudación automáticos de impuestos al finalizar la compra. Envía "1" para habilitarlo. Para más detalles, consulta los <a href="https://docs.stripe.com/tax/set-up">artículos de Stripe.</a></td></tr></tbody></table>

{% hint style="warning" %}
¡Importante! Si usas ambas variables stripe\_payment\_method\_type y stripe\_additional\_payment\_method\_type, ¡los valores en ellas deben ser diferentes!
{% endhint %}

<details>

<summary>Lista de valores para stripe_payment_method_type y stripe_additional_payment_method_type</summary>

card\
acss\_debit\
affirm \
afterpay\_clearpay \
alipay\
eau\_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 más detalles sobre cada método y los países en los que están disponibles, consulta la documentación de Stripe](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)
{% endhint %}

### Ejemplo de generación de enlace de pago

Vamos a crear un enlace de pago para 1000 AED (la moneda predeterminada es USD).

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

{% hint style="warning" %}
Nota:&#x20;

— Primero, especifica los parámetros opcionales como first\_name, payment\_description, etc.&#x20;

— Luego, asigna el valor a la variable payment\_sum al final.

Las variables también se pueden establecer antes en la cadena, no necesariamente en el mismo bloque — esto es solo un ejemplo.
{% endhint %}

Luego muestra la variable stripe\_pay\_url, que contiene el enlace, en el punto deseado — ya sea en un bloque de mensaje o en un botón:

Ejemplo 1. Mostrar el enlace de pago directamente en un mensaje:

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

<div data-with-frame="true"><figure><img src="/files/2cb897355078759ac86a197b5c4480f1efe7bd24" alt="" width="563"><figcaption><p>Prueba en el bot.</p></figcaption></figure></div>

Ejemplo 2. Añadir el enlace de pago a un botón.

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

Cuando se hace clic en el botón o se sigue el enlace, tu pagador será redirigido a la página de pago.

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

El ejemplo muestra que se aplicaron los parámetros que especificamos en la calculadora en la configuración del bloque: descripción del pedido, moneda e importe.

Si pasas el parámetro de tasa de impuesto (stripe\_tax\_id) en el bloque.

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

La tasa de impuesto también se mostrará en el formulario de pago.

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

<details>

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

payment\_description = "test payment"&#x20;

currency = 'AED'&#x20;

stripe\_tax\_id = 'enter\_your\_stripe\_id\_tax'&#x20;

payment\_sum = 1000

</details>

Dónde encontrar el ID del impuesto.

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

## Cómo configurar pagos recurrentes

Para pagos recurrentes (suscripciones), declara la variable stripe\_subscription antes de la variable payment\_sum y asígnale el nombre de la suscripción.

También puedes añadir las siguientes variables: interval — la duración del intervalo de la suscripción. Envía 'day' para días, 'week' para semanas, 'month' para meses, o 'year' para años. Si la variable no está configurada, se usará 'month' por defecto.

{% hint style="warning" %}
¡Importante!

La duración de un ciclo de suscripción no puede exceder 1 año (para el parámetro 'year'), 12 meses (para el parámetro 'month') o 52 semanas (para el parámetro 'week').
{% endhint %}

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

interval\_count — el número de intervalos especificados: cuántos días, semanas o meses están incluidos en la suscripción para el importe dado. El valor predeterminado es 1.

stripe\_payment\_method\_type — el método de pago; por defecto es pago con tarjeta. Puede reemplazarse con otros métodos de pago disponibles en Stripe. Los métodos disponibles se enumeran a continuación.

Por ejemplo, `stripe_payment_method_type = 'customer_balance'`

stripe\_additional\_payment\_method\_type — añade un método de pago adicional. Los métodos disponibles se enumeran a continuación.

Por ejemplo, `stripe_additional_payment_method_type = 'sepa_debit'`

{% hint style="warning" %}
¡Importante! Si usas ambas variables stripe\_payment\_method\_type y stripe\_additional\_payment\_method\_type, ¡los valores en ellas DEBEN ser DIFERENTES!
{% endhint %}

<details>

<summary>Lista de valores para stripe_payment_method_type y stripe_additional_payment_method_type:</summary>

card\
acss\_debit\
affirm \
afterpay\_clearpay \
alipay\
eau\_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 más detalles sobre cada método y los países en los que están disponibles, consulta la documentación de Stripe](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type).
{% endhint %}

{% hint style="warning" %}
¡Importante!

La duración de un ciclo de suscripción no puede exceder 1 año (para el parámetro 'year'), 12 meses (para el parámetro 'month') o 52 semanas (para el parámetro 'week').
{% endhint %}

En este ejemplo, se creará una suscripción llamada 'My\_subscription' con un precio de 1000 AED por 1 mes, y se cobrará un pago recurrente del mismo importe después de 1 mes.

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

Ejemplo para copiar:

`stripe_subscription = 'My_subscription' interval = 'month' payment_sum = 90`

Para cobrar el pago de la suscripción una vez cada dos, tres o cuatro meses, pasa el parámetro interval\_count:

`stripe_subscription = 'My_subscription'`

`interval = 'month'`

`interval_count = 3`

`payment_sum = 90`

Para cambiar el intervalo de pago de la suscripción de mensual a semanal, pasa la palabra week en el parámetro interval:

`stripe_subscription = 'My_subscription'`

`interval = 'week'`

`interval_count = 3`

`payment_sum = 90`

Después del pago, las variables de transacción del cliente incluirán stripe\_subscription\_id, que se necesita para configurar la cancelación de la suscripción, y stripe\_customer\_id, que luego se puede usar para comprobar el estado de la suscripción.

{% hint style="warning" %}
¡La notificación (callback) solo se envía para el primer pago recurrente!

NO habrá callback para los pagos posteriores. El seguimiento se realiza mediante la función y stripe\_customer\_id.
{% endhint %}

<figure><img src="/files/781e8fd7948e49174d1610e8f8cac16a74537a97" alt="" width="371"><figcaption></figcaption></figure>

## Configuración para volver a los pagos regulares

Para volver a los pagos regulares, asigna una cadena vacía a la variable de suscripción: stripe\_subscription = ''. En este caso, las variables interval e interval\_count no afectarán la generación del enlace.

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

## Configuración para cancelar una suscripción

Para cancelar una suscripción en la calculadora, usa el método stripe\_remove\_subscription(stripe\_subscription\_id), donde stripe\_subscription\_id es el identificador guardado en las variables de transacción después del pago.

Esto mantendrá la suscripción pagada activa hasta el final del período de facturación actual, pero no se realizarán más cargos, y la suscripción se cancelará una vez que expire el período.

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

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

stripe\_remove\_subscription — si tiene éxito, devuelve una respuesta con información sobre la fecha hasta la cual la suscripción cancelada permanecerá activa.

En este ejemplo, el resultado de la función se almacenará en la variable answer, lo que te permitirá verificar el resultado.

## Comprobación del estado de la suscripción

stripe\_check\_subscription(subscription\_id, customer\_id), donde

stripe\_subscription\_id — identificador de la suscripción stripe\_customer\_id — identificador del cliente en Stripe (parámetro opcional)

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

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

## Cómo crear un cupón y obtener un ID de descuento

Para obtener un identificador de descuento, crea un cupón en tu panel en la sección "Coupons". ”[cupones](https://dashboard.stripe.com/coupons)”.

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

Al hacer clic en el botón "New" se abrirá una página donde debes especificar:

1. Nombre — el nombre del descuento;
2. ID — el identificador, generado automáticamente;
3. Tipo — el tipo de descuento: porcentaje o importe fijo;
4. Duración — la duración del descuento (único o continuo, por ejemplo para suscripciones) y otros parámetros.

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

El cupón de descuento aparecerá en el "Product catalogue" dentro de la sección "Coupons", y podrás ver el ID del descuento abriendo el menú del cupón.

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

Haz clic en el cupón para copiar el ID del cupón.

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

## Cómo aplicar un descuento a un pedido

1. Al generar un enlace de pago (funciona tanto para suscripciones como para pagos únicos).

En la calculadora del bloque, antes de declarar la variable payment\_sum, establece la variable coupon\_id y pasa el identificador del descuento desde tu panel de Stripe.

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

2. A una suscripción existente usando la función stripe\_add\_subscription\_discount.

Establece las condiciones de activación para el bloque y llama a la función especificada en la calculadora, pasando los parámetros stripe\_subscription\_id (ID de la suscripción) y coupon\_id (ID del descuento del cupón). El descuento se aplicará a los pagos posteriores de la suscripción.

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

<details>

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

stripe\_subscription = 'test subscription'&#x20;

interval = 'month'&#x20;

payment\_description = 'test payment'&#x20;

currency = 'AED'&#x20;

coupon\_id = 'BD8VIwi8' stripe\_add\_subscription\_discount(stripe\_subscription\_id, coupon\_id)

stripe\_tax\_id = 'Qfkiwiki29jcs'

payment\_sum = 90

</details>

Si el descuento se aplica correctamente, la función devolverá un mensaje con el ID de la suscripción, el tipo de descuento, el importe o porcentaje, y la fecha de expiración.

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

## Cómo eliminar o cambiar un descuento para una suscripción

Un descuento vinculado a una suscripción puede eliminarse o reemplazarse por otro descuento.

Para detener un descuento, establece las condiciones de activación para el bloque y llama a la función stripe\_remove\_subscription\_discount en la calculadora, pasando el parámetro stripe\_subscription\_id (ID de la suscripción).

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

Si la operación tiene éxito, la función devolverá un mensaje que contiene el ID de la suscripción y la fecha de cancelación del descuento.

Reemplazar un descuento, al igual que añadir uno nuevo, se hace usando la función stripe\_add\_subscription\_discount. Asegúrate de pasar los parámetros stripe\_subscription\_id y coupon\_id. Una solicitud exitosa actualizará el cupón vinculado a la suscripción y devolverá un mensaje con los detalles actualizados.

## Cómo manejar el resultado

Después de un pago exitoso, el bot recibirá callbacks que indican una transacción exitosa. En el sistema, estos callbacks aparecen como mensajes del usuario. Para evitar que los usuarios los envíen manualmente, consisten en los primeros 20 caracteres de la clave secreta seguidos de \_success, por ejemplo: sk\_live\_d35gky6d8ers\_success

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

Estos callbacks NO son visibles para el usuario — solo son visibles para el operador.

El tipo de comparación debe configurarse como "Exact match".

Después de un pago exitoso, la variable stripe\_payment\_completed también se establece en True.

Por ejemplo, puedes gestionar un pago exitoso usando un bloque condicional y mostrar el mensaje apropiado al usuario.

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

Después de completar el pago, la variable stripe\_callback\_data se añadirá a los datos del cliente, conteniendo la respuesta del sistema de pago para la transacción completada. Los datos necesarios se pueden extraer del diccionario resultante usando el método get.

{% hint style="warning" %}
Para procesar un pago repetido, primero debes restablecer payment\_sum y el enlace generado previamente, y solo entonces reasignar la variable payment\_sum para obtener un nuevo enlace. Puedes usar el valor anterior.
{% endhint %}

## Cómo probar los pagos

Para probar la integración, puedes usar la clave secreta del entorno de prueba. Para ello, cambia al entorno de prueba en el panel de Stripe usando el menú de la derecha.

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

Luego sigue los pasos de configuración descritos al comienzo de esta guía. Introduce la clave secreta de prueba y añade la URL del webhook en el entorno de prueba.

Para las pruebas, usa un número de tarjeta de pago de prueba ([puedes encontrar el número de tarjeta para tu país en el sitio web oficial de Stripe](https://stripe.com/docs/testing#regulatory-cards)).


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.mavibot.ai/doc/es/integrations/payment/stripe.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
