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.
Precaución
Stripe automatically presents your customers payment method options by evaluating their currency, payment method restrictions, and other parameters. We recommend that you configure your payment methods from the Stripe Dashboard using the instructions in Accept a payment.
If you want to continue manually configuring the payment methods you present to your customers with Checkout, use this guide. Otherwise, update your integration to configure payment methods in the Dashboard.
Bank transfer is a single-use payment method for Checkout where customers pay with a bank transfer using payment instructions presented. When selecting to pay, the user is redirected to a hosted page which displays bank transfer instructions and the status of the transfer payment.
Bank transfer is also a delayed notification payment method, which means that funds are not immediately available after payment.
Precaución
Bank transfers aren’t available on Checkout Sessions that didn’t include an existing Customer object as part of the of the session creation request.
Determinar compatibilidad
La sesión de Checkout debe cumplir las siguientes condiciones para aceptar Bank Transfer pagos:
Prices for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.
Solo puedes utilizar ítems únicos (las sesiones de Checkout para transferencias bancarias no aceptan planes de suscripción recurrentes).
Aceptar un pago
Nota
Build an integration to accept a payment with Checkout before using this guide.
Usa esta guía para habilitar Bank Transfer.
Crear o recuperar un objeto Customer
You must associate a Customer object to reconcile each bank transfer payment. If you have an existing Customer object, you can skip this step. Otherwise, create a new Customer object.
Habilitar Bank Transfer como método de pago
When creating a new Checkout Session, you need to:
- Configurar
customer
- Add
customer_
to the list ofbalance payment_
method_ types - Verifica que todos los
line_
usen la misma moneda.items
Redireccionamiento a la página alojada de instrucciones para transferencias bancarias de Stripe
Nota
Unlike card payments, the customer isn’t always redirected to the success_url with bank transfer payment.
Después de enviar satisfactoriamente el formulario de Checkout,
- If the customer already has a balance high enough to cover the request amount, the payment immediately succeeds and the customer is redirected to the success_url.
- If the customer balance isn’t high enough to cover the request amount, the customer is redirected to the hosted_instructions_url. The page has the instructions to guide your customer through completing the transfer.
Stripe permite la personalización de las interfaces de usuario del cliente en la página configuración de imagen de marca. Se puede aplicar la siguiente configuración de imagen de marca a la página de instrucciones alojada:
- Icon—your brand image and public business name
- Color de la marca: se utiliza como color de fondo
Completa los pedidos
Because bank transfer is a delayed notification payment method, you need to use a method such as webhooks to monitor the payment status and handle order fulfillment. Learn more about setting up webhooks and fulfilling orders.
Los siguientes eventos se envían cuando cambia el estado del pago:
Nombre del evento | Descripción | Next steps |
---|---|---|
checkout.session.completed | The customer has successfully submitted the Checkout form and is redirected to hosted_ . | Espera a que el cliente haga la transferencia bancaria. |
checkout.session.async_payment_succeeded | El cliente ha efectuado la transferencia bancaria con éxito. El PaymentIntent pasa a succeeded . | Entrega los bienes o servicios que el cliente compró. |
Prueba tu integración
Puedes probar tu integración simulando una transferencia bancaria entrante con la API, a través del Dashboard o con una versión beta de la CLI de Stripe.