Saltearse al contenido

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.

CampoQué hace
Credential (obligatorio)La credencial Stripe API de tu cuenta.
Operation (obligatorio)La acción que realiza el componente. Por defecto, Create. Consulta Operaciones.
ModeSolo en Get. By ID consulta un pago concreto; All devuelve la lista de pagos. Por defecto, By ID.
Payment Intent IDEl identificador del pago en Stripe (empieza por pi_). Obligatorio en Cancel, Capture, Confirm, Update y Get con By ID.
Customer IDEl 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.
AmountSolo 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.
CurrencySolo en Create, y obligatorio en ella. La moneda del pago, como eur o usd. Por defecto, usd.
DescriptionTexto libre que se guarda con el pago. En Create y Update.
Payment Method IDLa 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 ImmediatelySolo 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 MethodEn 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 RedirectsSolo 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 URLEn 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 UsageSolo 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.
LimitSolo 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 manual y 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 ID devuelve un pago; con All devuelve 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.

  1. Al confirmar la reserva, añade Stripe Payment Intent con Operation en Create.
  2. Pon Amount en 30000, Currency en eur, el Customer ID del cliente y su forma de pago en Payment Method ID.
  3. Pon Capture Method en manual y Confirm Immediately en true. El importe queda retenido.
  4. Guarda el identificador del pago con la reserva.
  5. Al devolver el coche, usa otro Stripe Payment Intent con Capture si hay que cobrar la fianza, o con Cancel para 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