Aceptar una transferencia bancaria
Utiliza la API Payment Intents para aceptar pagos con transferencia bancaria.
The first time you accept a bank transfer payment from a customer, Stripe generates a virtual bank account for them, which you can then share with them directly. All future bank transfer payments from this customer get sent to this bank account. In some countries, Stripe also provides you with a unique transfer reference number that your customer should include with each transfer to make it easier to match the transfer against outstanding payments. Some countries have limits on the number of virtual bank account numbers that you can create for free.
Puedes encontrar un resumen de los pasos más comunes para aceptar un pago mediante transferencia bancaria en el siguiente diagrama de secuencia:
Handling underpayments and overpayments
With bank transfer payments, it’s possible that the customer sends you more or less than the expected payment amount. If the customer sends too little, Stripe partially funds an open payment intent. Invoices won’t be partially funded and remain open until incoming funds cover the full invoice amount.
If the customer sends more than the expected amount, Stripe attempts to reconcile the incoming funds against an open payment and keep the remaining excess amount in the customer cash balance. You can find more details on how Stripe handles reconciliation in the reconciliation section of our documentation.
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 tiene fondos suficientes para cubrir el importe solicitado, el estado del PaymentIntent es requires_
. La respuesta tiene un campo next_
que contiene un valor type
de display_
. El hash next_
contiene información que debes mostrar a tu cliente para que pueda completar la transferencia bancaria.
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 modo 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_
.
You can add a webhook from the 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 suficientes fondos en el saldo de cliente para conciliar el PaymentIntent; el PaymentIntent pasa a requires_ . | Indícale a tu cliente que envíe una transferencia bancaria con el amount_ . |
payment_ | The customer sent a bank transfer that was applied to the PaymentIntent, but wasn’t enough to complete the payment. This might happen because the customer transferred an insufficient amount (because of a mistaken underpayment or fees charged by their bank) or because a remaining customer balance was applied to this PaymentIntent. PaymentIntents that are partially funded aren’t reflected in your account balance until the payment is complete. | 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
View pending payments in the Dashboard
You can view all pending bank transfer PaymentIntents in the Dashboard by applying the Waiting on funding filter to Status .
Prueba tu integración
Puedes probar tu integración simulando una transferencia bancaria entrante a través del Dashboard o con una solicitud HTTP.
With the Dashboard
Para simular una transferencia bancaria usando el Dashboard, debes ir a la página del cliente en el Dashboard. En Métodos de pago, haz click en Agregar y selecciona Agregar fondos al saldo de caja (solo modo de prueba).
With the Stripe API
You can make an API call to simulate a bank transfer.
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 | Description | Handling |
---|---|---|
payment_ | Too many requests were made in quick succession for this payment method, which has stricter limits than the API-wide rate limits. | These errors can persist for several API requests when many of your customers try to use the same payment method, such as during an ongoing sale on your website. In this case, ask your customers to choose a different payment method. |
Precaución
Si prevés un consumo intensivo en general o debido a un próximo evento, contáctanos tan pronto como lo sepas.