# Notificaciones de pagos de Stripe en tu iPhone

> Una notificación en el móvil por cada pago fallido, disputa y transferencia fallida de Stripe, y por cada venta si quieres. Una URL de webhook, sin código.

Source: https://honk-honk.app/es/guias/notificaciones-pagos-stripe

Conecta Stripe con Honk y recibirás en el iPhone una notificación por cada pago fallido, cada disputa y cada transferencia fallida y, si quieres, un Bip-bip por cada venta. No hay que escribir código: Stripe envía sus eventos a una sola URL, y Honk comprueba la firma de Stripe, da a cada evento un nivel de la escala de Honk y agrupa las repeticiones.

Los problemas de pago llegan a la misma bandeja de entrada que tu tienda, tu web y tus servidores. Si la tarjeta de un cliente falla cinco veces seguidas, es un grupo con un recuento, no cinco alertas sueltas.

## Antes de empezar

- Una cuenta de Honk. De momento, por invitación: [solicita acceso](https://honk-honk.app/es/solicitar-acceso).
- Un proyecto para los pagos, por ejemplo «Tienda», en un espacio de trabajo en el que seas propietario o administrador.
- Una cuenta de Stripe en la que puedas añadir webhooks.

## 1. Crea la conexión en Honk

En la app web de Honk, abre el proyecto, entra en **Conexiones** y haz clic en **Conectar un servicio**. Elige **Stripe**, deja el nombre o cámbialo, y haz clic en **Conectar**.

Honk muestra la **URL del webhook** de la conexión, que empieza por `https://honk-honk.app/v1/hooks/stripe/`. Cópiala y deja la página abierta: en el paso 3 pegarás aquí el secreto de firma de Stripe.

_Una conexión de Stripe recién creada en Honk: la URL del webhook para copiar, los pasos de configuración, el campo del secreto de firma y los eventos que se convierten en mensajes._

## 2. Añade un destino de eventos en Stripe

En el Dashboard de Stripe, abre **Workbench ▸ Webhooks** y haz clic en **Create an event destination**. Después:

- Elige **Your account** y **Snapshot** como formato del payload. Honk lee los eventos snapshot, el formato que incluye el propio pago. Stripe recomienda **Thin**, pero un evento thin solo lleva un ID, así que Honk lo rechaza y la conexión muestra un error.
- Selecciona los eventos: `payment_intent.payment_failed`, `invoice.payment_failed`, `charge.dispute.created` y `payout.failed`. Para las ventas, añade `checkout.session.completed` o `payment_intent.succeeded`; para los reembolsos, `charge.refunded`, y para las cancelaciones, `customer.subscription.deleted`.
- Elige **Webhook endpoint** como tipo de destino y pega la URL de Honk como **Endpoint URL**.

Elige solo uno de los dos eventos de venta. Un pago con Stripe Checkout envía los dos, así que, si seleccionas ambos, te enterarás de cada venta dos veces.

## 3. Pega el secreto de firma en Honk

En la página del nuevo destino, Stripe muestra un secreto de firma que empieza por `whsec_`. Haz clic en **Reveal secret** y cópialo. En Honk, pégalo en **Secreto de firma** y haz clic en **Guardar secreto**.

Honk rechaza las entregas de Stripe hasta que guardes el secreto. A partir de ahí, comprueba la firma de cada entrega, y ninguna con una firma que no coincida, o firmada hace más de 5 minutos, se convierte en mensaje.

## 4. Pruébalo en un sandbox

Un entorno de prueba (sandbox) de Stripe tiene sus propios destinos de eventos y sus propios secretos de firma, así que necesita su propia conexión en Honk. Crea una segunda conexión de la misma forma, añade el destino en el entorno de prueba y envía un evento de prueba con la CLI de Stripe:

```sh
# with the Stripe CLI, signed in to the sandbox
stripe trigger payment_intent.payment_failed
```

En unos segundos llega un Bocinazo fuerte. Los eventos del entorno de prueba llevan el entorno `test`, así que nunca se mezclan con los reales. Con el plan Free, la conexión de prueba es la segunda y última que tienes: elimínala cuando hayas visto que funciona. Con los eventos reales, la conexión muestra la hora de la última entrega de Stripe, o el último error, como una firma que no coincide.

## Qué genera cada evento

- **Un pago fallido** (`payment_intent.payment_failed`) o **un pago de factura fallido** (`invoice.payment_failed`): un Bocinazo fuerte con el título «Payment failed: 49.00 EUR» (Honk escribe estos títulos en inglés), el motivo que da Stripe y el cliente. Cada cliente tiene su propio grupo, así que los fallos repetidos de un mismo cliente se agrupan.
- **Una disputa nueva** (`charge.dispute.created`): un Bocinazo largo, con el importe y el motivo.
- **Una transferencia fallida** (`payout.failed`): un Bocinazo largo, con la explicación de Stripe.
- **Una venta** (`checkout.session.completed` o `payment_intent.succeeded`): un Bip-bip, «New sale: 49.00 EUR» o «Payment received: 49.00 EUR». Todas las ventas comparten un grupo.
- **Un reembolso** (`charge.refunded`): un Bocinazo suave, «Payment refunded: 49.00 EUR» o, si es parcial, «Partial refund: 20.00 EUR», con la parte del pago que supone. Los reembolsos de cada cliente se agrupan.
- **Una suscripción cancelada** (`customer.subscription.deleted`): un Bocinazo suave.

Los demás tipos de evento se aceptan y se descartan. Los importes se muestran en la unidad principal de la moneda, y la mayoría de los mensajes enlazan al pago, la disputa, la transferencia o la suscripción en el Dashboard de Stripe.

El primer evento de un grupo te avisa al momento. Los siguientes del mismo tipo llegan como una actualización con el recuento, como mucho una cada 5 minutos. Tras 24 horas sin eventos (el valor predeterminado), el grupo empieza de cero y el siguiente evento vuelve a avisar. Stripe nunca informa de que un pago fallido se haya resuelto, así que son eventos, no incidentes: no hay ninguna recuperación que esperar. Cuando fallan los pagos de varios clientes en pocos minutos, cada uno te llega igualmente, pero solo el primero suena.

## Elige de qué quieres enterarte

Todos los tipos de evento de arriba están activados por defecto. En **Eventos que se convierten en mensajes**, en la conexión, desmarca los que no quieras, por ejemplo las ventas, y haz clic en **Guardar**.

Para que las ventas no te lleguen como notificación pero sigan a la vista, añade una regla en **Reglas** del proyecto: cuando **Canal** es igual a `payment_intent.succeeded` (o `checkout.session.completed`), pon **Notificaciones** en **Solo resumen**. Las ventas llegarán entonces en un resumen, cada 15 minutos por defecto, mientras que las disputas y las transferencias fallidas te seguirán avisando al momento.

## Planes y límites

Cada conexión cuenta para el plan de tu espacio de trabajo: Free incluye 2, Pro 20 y Team 100. Los mensajes de Stripe cuentan para los límites diarios de mensajes y notificaciones del plan, como cualquier otro; los encontrarás en [precios](https://honk-honk.app/es/precios).

Las notificaciones llegan a [Honk para iPhone](https://honk-honk.app/es/iphone) y a tu Apple Watch. Si también vendes con Shopify o WooCommerce, la [guía de Shopify](https://honk-honk.app/es/guias/notificaciones-pedidos-shopify) y la [guía de WooCommerce](https://honk-honk.app/es/guias/notificaciones-pedidos-woocommerce) llevan los pedidos a la misma bandeja de entrada, y la página de [integraciones](https://honk-honk.app/es/integraciones) reúne todas las demás formas de enviar avisos a Honk.
