Stripe Payment Intent
Stripe Payment Intent gestiona pagos de Stripe de principio a fin. Un pago (en Stripe, payment intent) representa un cobro que quieres hacer a un cliente y pasa por varios pasos: se crea, se confirma con una forma de pago y se cobra. Con este componente puedes hacer cada paso desde un flujo, y también retener un importe para cobrarlo más tarde o cancelar un pago que ya no quieres hacer.
Es la forma de cobro que recomienda Stripe para pagos con tarjeta y otras formas de pago modernas. Para un cobro directo a un token de tarjeta, también tienes Stripe Charge.
Cuándo usarlo
- Quieres cobrar a un cliente con la forma de pago que ya tiene guardada en Stripe.
- Tienes un servicio de reservas y quieres retener el importe al reservar y cobrarlo cuando se presta el servicio.
- Una reserva se cancela y quieres liberar el importe retenido.
- Quieres consultar el estado de los pagos de un cliente para responder a una incidencia.
Configuración
Necesitas una credencial Stripe API con la clave secreta de tu cuenta de Stripe. Consulta Credenciales.
| Campo | Qué hace |
|---|---|
| Credential (obligatorio) | La credencial Stripe API de tu cuenta. |
| Operation (obligatorio) | La acción que realiza el componente. Por defecto, Create. Consulta Operaciones. |
| Mode | Solo en Get. By ID consulta un pago concreto; All devuelve la lista de pagos. Por defecto, By ID. |
| Payment Intent ID | El identificador del pago en Stripe (empieza por pi_). Obligatorio en Cancel, Capture, Confirm, Update y Get con By ID. |
| Customer ID | El identificador del cliente en Stripe (empieza por cus_). En Create, asocia el pago al cliente. En Get con All, muestra solo los pagos de ese cliente. |
| Amount | Solo en Create, y obligatorio en ella. El importe en la unidad más pequeña de la moneda, por ejemplo céntimos: 1000 son 10,00. |
| Currency | Solo en Create, y obligatorio en ella. La moneda del pago, como eur o usd. Por defecto, usd. |
| Description | Texto libre que se guarda con el pago. En Create y Update. |
| Payment Method ID | La forma de pago con la que se cobra (empieza por pm_). En Create, Update y Confirm. Viene vacío; en Update, vacío deja la forma de pago que ya tenía. Con la clave de pruebas puedes usar pm_card_visa, una tarjeta de pruebas de Stripe. |
| Confirm Immediately | Solo en Create. true confirma el pago en el momento de crearlo, sin pasar por Confirm. Vacío o false, el pago se queda esperando confirmación. |
| Capture Method | En Create y Update. automatic cobra en cuanto se confirma el pago; manual solo retiene el importe y lo cobras después con Capture. Vacío, se cobra en automático. |
| Allow Redirects | Solo en Create. never admite solo formas de pago que no necesitan llevar al cliente a otra página; es lo adecuado para flujos automáticos. always admite todas. Por defecto, never. |
| Return URL | En Create y Confirm. La página a la que vuelve el cliente si la forma de pago le lleva a otra página para autorizar el pago. En Create, solo se usa con Allow Redirects en always. |
| Setup Future Usage | Solo en Create. Guarda la forma de pago en el cliente para pagos futuros: on_session si el cliente estará presente en esos pagos, off_session si los cobrarás sin él. Vacío, no se guarda. |
| Limit | Solo en Get con All. Número máximo de pagos que se devuelven, entre 1 y 100. Por defecto, 100. |
Operaciones
- Cancel: cancela un pago que aún no se ha cobrado. Si tenía un importe retenido, se libera.
- Capture: cobra un pago que se creó con Capture Method en
manualy ya está confirmado. En cualquier otro caso el componente se detiene y explica por qué. - Confirm: confirma un pago con la forma de pago indicada, que es el paso que lanza el cobro o la retención.
- Create: crea un pago por el importe y la moneda indicados.
- Get: con
By IDdevuelve un pago; conAlldevuelve la lista de pagos, de un cliente si lo indicas. - Update: cambia la descripción, la forma de pago o el método de captura de un pago que aún no se ha completado.
Resultado
La salida Data devuelve el pago con el que has trabajado. Con Get y All, devuelve un elemento por cada pago. Cada elemento incluye, entre otros datos de Stripe, el identificador del pago, el importe, la moneda y su estado, por ejemplo requires_confirmation (pendiente de confirmar), requires_capture (importe retenido) o succeeded (cobrado).
Puedes conectarla a una condición que mire el estado, a un correo de confirmación o a tu sistema de pedidos. El componente también se puede conectar a un Agente como herramienta, para que el agente decida cuándo usarlo. Consulta Tool Mode.
Ejemplo
Un alquiler de coches retiene una fianza de 300 € al confirmar la reserva y la cobra solo si hay daños.
- Al confirmar la reserva, añade Stripe Payment Intent con Operation en
Create. - Pon Amount en
30000, Currency eneur, el Customer ID del cliente y su forma de pago en Payment Method ID. - Pon Capture Method en
manualy Confirm Immediately entrue. El importe queda retenido. - Guarda el identificador del pago con la reserva.
- Al devolver el coche, usa otro Stripe Payment Intent con
Capturesi hay que cobrar la fianza, o conCancelpara liberarla.
Buenas prácticas
- Prueba tus flujos con la clave de pruebas de Stripe y sus tarjetas de prueba antes de pasar a la clave real.
- Stripe solo mantiene un importe retenido durante un tiempo limitado. Captura o cancela los pagos retenidos sin dejarlos olvidados.
Componentes relacionados
- Stripe Customer: crea y gestiona clientes.
- Stripe Charge: cobros directos con token de tarjeta.
- Stripe Refund: devuelve un pago ya cobrado.