Aceptar una transferencia bancaria
Utiliza la API Payment Intents para aceptar pagos con transferencia bancaria.
La primera vez que aceptas un pago mediante transferencia bancaria de un cliente, Stripe genera una cuenta bancaria virtual para ese cliente, que luego puedes compartir con esa persona directamente. Todos los pagos futuros con transferencia bancaria de ese cliente se envían a esta cuenta bancaria. En algunos países, Stripe también te proporciona un número de referencia para transferencias exclusivo que tu cliente debe incluir en cada transferencia a fin de facilitar la comparación entre la transferencia y los pagos pendientes. En algunos países hay límites en la cantidad de números de cuentas bancarias virtuales que puedes crear gratis.
Puedes encontrar un resumen de los pasos más comunes para aceptar un pago mediante transferencia bancaria en el siguiente diagrama de secuencia:
Manejo de pagos insuficientes y sobrepagos
En el caso de los pagos con transferencia bancaria, es posible que el cliente te envíe un importe mayor o menor que el importe de pago previsto. Si el cliente envía un importe menor, Stripe cubre parte de un Payment Intent abierto. Las facturas no se cubren en parte, sino que quedan abiertas hasta que se reciben fondos para cubrir el importe total.
Si el cliente envía un importe mayor que el previsto, Stripe intenta conciliar los fondos recibidos con un pago abierto y mantendrá lo que sobre del importe en el saldo de caja del cliente. Puedes encontrar más detalles sobre cómo Stripe gestiona la conciliación en la sección Conciliación de nuestra documentación.
Cómo gestionar varias facturas o pagos abiertos
Puedes tener varias facturas o pagos abiertos que se pueden saldar con una transferencia bancaria. Según la configuración predeterminada, Stripe hará el intento de conciliar automáticamente la transferencia bancaria utilizando datos como el código de referencia de la transferencia o el importe transferido.
Puedes deshabilitar la conciliación automática y conciliar manualmente pagos y facturas tú mismo. Puedes omitir el comportamiento de conciliación automática por cliente configurando el modo de conciliación en manual.
Configura StripeLado del servidor
Primero, necesitas una cuenta de Stripe. Inscríbete ahora.
Usa nuestras bibliotecas oficiales para acceder a la API de Stripe desde tu aplicación:
Crea o recupera un objeto CustomerLado del servidor
Debes asociar un objeto Customer para conciliar cada pago mediante transferencia bancaria. Si ya tienes un objeto Customer, puedes omitir este paso. De lo contrario, crea un nuevo objeto Customer.
Crea y confirma un PaymentIntentLado del servidor
Un PaymentIntent es un objeto que representa tu intención de cobrarle a un cliente y hace el seguimiento del ciclo de vida del proceso de pago en cada etapa. Crea y confirma un PaymentIntent en el servidor y especifica el importe y la moneda del cobro. También debes completar el parámetro del cliente de la solicitud de creación de PaymentIntent. Las transferencias bancarias no están disponibles en PaymentIntents sin un cliente.
Indícale a tu cliente que complete una transferencia bancaria.Lado del cliente
Si el saldo del cliente no es suficiente para cubrir el importe solicitado, el estado del PaymentIntent es requires_
. La respuesta tiene un campo next_
cuyo valor type
es display_
. El hash next_
contiene información que debes mostrar a tu cliente para que pueda completar la transferencia bancaria. Para garantizar la acreditación de los fondos, indica a tus clientes que utilicen los datos exactos que se proporcionan, en especial el nombre y el número de cuenta, si corresponde.
Nota
En modo activo, Stripe proporciona a cada cliente un conjunto único de datos de transferencias bancarias. Por el contrario, Stripe ofrece datos de transferencias bancarias no válidos para todos los clientes en entornos de prueba. A diferencia del modo activo, es posible que estos datos no válidos no siempre sean únicos.
Confirma el PaymentIntent procesado correctamente
El estado del PaymentIntent permanece en requires_
hasta que los fondos llegan a la cuenta bancaria. Cuando los fondos están listos, el estado del PaymentIntent se actualiza y pasa de requires_
a succeeded
.
Debes configurar tu punto de conexión de webhook para empezar a recibir el evento payment_
.
Puedes agregar un webhook desde el Dashboard.
Como opción, puedes usar la API Webhook Endpoints para empezar a recibir el evento payment_intent.partially_funded.
Stripe envía los siguientes eventos durante el movimiento de los fondos del pago cuando actualizamos el PaymentIntent.
Evento | Descripción | Próximos pasos |
---|---|---|
payment_ | Se envía durante la confirmación cuando no hay fondos suficientes en el saldo de cliente para conciliar el PaymentIntent. El estado del PaymentIntent pasa a requires_ . | Indícale a tu cliente que envíe una transferencia bancaria con el amount_ . |
payment_ | El cliente envió una transferencia bancaria que se aplicó al PaymentIntent, pero no fue suficiente para completar el pago. Esto puede deberse a que el cliente transfirió un importe insuficiente (a causa de un error en el pago o a comisiones cobradas por el banco) o a que se le aplicó al PaymentIntent un saldo restante del cliente. Los PaymentIntents pagados en forma parcial no se reflejan en el saldo de tu cuenta hasta que se completa el pago. | Solicítale a tu cliente que envíe otra transferencia bancaria con el nuevo amount_ para efectivizar el pago. Si quieres efectivivizar el pago con los fondos aplicados en forma parcial, puedes actualizar el amount y confirmar el PaymentIntent nuevamente. |
payment_ | El pago del cliente se efectuó correctamente. | Entrega los bienes o servicios que el cliente compró. |
Precaución
Cuando cambias el importe de un PaymentIntent parcialmente financiado, los fondos se devuelven al saldo del cliente. Si hay otros PaymentIntents abiertos, Stripe los financia automáticamente. Si el cliente está configurado para realizar la conciliación manual, tienes que aplicar los fondos de nuevo.
Te recomendamos usar webhooks para confirmar que el cobro se haya efectuado correctamente y notificar al cliente que se efectivizó el pago.
Código de ejemplo
Ver los pagos pendientes en el Dashboard
Puedes ver todos los PaymentIntents pendientes asociados con transferencias bancarias en el Dashboard aplicando el filtro En espera de fondos al campo Estado.
Prueba tu integración
Puedes probar tu integración simulando una transferencia bancaria entrante a través del Dashboard o con una solicitud HTTP.
Con el Dashboard
Para simular una transferencia bancaria usando el Dashboard en un entorno de prueba, navega a la página del cliente en el Dashboard. En Métodos de pago, haz clic en Agregar y selecciona Agregar fondos al saldo de caja (solo modo de prueba).
Con la API de Stripe
Puedes realizar una llamada API para simular una transferencia bancaria.
Cómo gestionar problemas temporales de disponibilidad
Los siguientes códigos de error indican errores temporales en la disponibilidad del método de pago:
Código | Descripción | Gestión |
---|---|---|
payment_ | Se realizaron demasiadas solicitudes en poco tiempo para este método de pago, cuyos límites son más estrictos que los límites de frecuencia de toda la API. | Estos errores pueden aparecer en varias solicitudes de API si muchos clientes intentan usar el mismo método de pago, por ejemplo, porque se ofrece una rebaja en tu sitio web. En este caso, pídeles a los clientes que usen otro método de pago. |
Precaución
Si prevés un consumo intensivo en general o debido a un próximo evento, contáctanos tan pronto como lo sepas.