Ir a contenido
Crea una cuenta
o
Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuenta
Iniciar sesión
Empieza ahora
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
Resumen
Acerca de Stripe Payments
Actualiza tu integración
Análisis de pagos
Pagos electrónicos
ResumenEncuentra tu caso de usoPagos administrados
Usa Payment Links
Crea una página del proceso de compra
Desarrolla una integración avanzada
Desarrolla una integración en la aplicación
Métodos de pago
Agrega métodos de pago
    Resumen
    Opciones de integración de métodos de pago
    Gestiona los métodos de pago predeterminados en el Dashboard
    Tipos de método de pago
    Tarjetas
    Paga con el saldo de Stripe
    Criptomonedas
    Débitos bancarios
    Redireccionamientos bancarios
    Transferencias bancarias
      Acepta un pago
      Saldo del cliente
      Reembolsos
    Transferencias de crédito (API Sources)
    Compra ahora, paga después
    Pagos en tiempo real
    Vales
    Billeteras
    Habilita métodos de pago locales por país
    Métodos de pago personalizados
Gestiona los métodos de pago
Finalización de compra más rápida con Link
Interfaces de pago
Payment Links
Checkout
Elements para la web
Elements en la aplicación
Escenarios de pago
Administrar varias monedas
Flujos de pago personalizados
Capacidad adquirente flexible
Orquestación
Pagos en persona
Terminal
Más allá de los pagos
Constituye tu empresa
Criptomonedas
Financial Connections
Climate
InicioPagosAdd payment methodsBank transfers

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.

Cuando un cliente paga un importe inferior:

Cuando un cliente paga un importe superior:

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 Stripe
Lado 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:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Crea o recupera un objeto Customer
Lado 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.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Crea y confirma un PaymentIntent
Lado 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.

Antes de crear un Payment Intent, asegúrate de activar Transferencia bancaria en la página de configuración de métodos de pago de tu Dashboard.

Nota

Con los métodos de pago dinámicos, Stripe gestiona la devolución de los métodos de pago elegibles en función de factores como el importe de la transacción, la moneda y el flujo de pagos.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d customer=
{{CUSTOMER_ID}}
\ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ --data-urlencode return_url="https://example.com/return_url" \ -d "payment_method_data[type]"=customer_balance \ -d confirm=true

En la última versión de la API, especificar el parámetro automatic_payment_methods es opcional porque Stripe habilita su funcionalidad de forma predeterminada.

Si el cliente ya tiene fondos suficientes en el saldo para cubrir el importe del pago, el PaymentIntent se concretará de inmediato y se mostrará el estado succeeded. Los clientes pueden acumular fondos en el saldo si pagan de más por una transacción por error, algo que es común en las transferencias bancarias. Debes conciliar los saldos del cliente en un plazo determinado en función de tu ubicación.

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_action. La respuesta tiene un campo next_action cuyo valor type es display_bank_transfer_instructions. El hash next_action[display_bank_transfer_instructions] 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.

CampoDescripción
typeEl tipo de transferencia bancaria que se usará. En Estados Unidos, el tipo debe ser us_bank_transfer.
referenceUn código de referencia único para identificar la transferencia bancaria. Indícale a tu cliente que incluya este código en el campo de referencia de su transferencia bancaria.
amount_remainingEl importe restante que se debe transferir para completar el pago. Indícale a tu cliente que transfiera este importe. Puede ser diferente del importe del PaymentIntent si se aplicaron fondos preexistentes en el saldo del cliente al PaymentIntent o si el cliente pagó menos dinero.
currencyLa moneda del importe restante.
financial_addressesLista de direcciones financieras de las cuentas bancarias de Estados Unidos. Los tipos incluidos son aba y swift. Consulta los detalles a continuación.
hosted_instructions_urlUn enlace a la página alojada que guía al cliente a lo largo del proceso de transferencia.

aba hash

Ejemplo de un hash aba:

{ "aba": { "account_number": "111222333444", "bank_name": "Wells Fargo Bank, NA", "routing_number": "444555666" }, "supported_networks": [ "ach", "domestic_wire_us" ], "type": "aba" }
CampoValoresDescripción
typeabaEl tipo de dirección financiera.
supported_networks
  • ach
  • domestic_wire_us
La lista de redes compatibles con esta dirección.
aba.account_number111222333444El número ABA de la cuenta.
aba.routing_number444555666El número ABA de enrutamiento.
aba.bank_nameWells Fargo Bank, NAEl nombre del banco.

hash de swift

Ejemplo de un hash swift:

{ "swift": { "account_number": "111222333444", "bank_name": "Wells Fargo Bank, NA", "swift_code": "AAAA-BB-CC-123" }, "supported_networks": [ "swift" ], "type": "swift" }
CampoValoresDescripción
typeswiftEl tipo de dirección financiera.
supported_networks
  • swift
La lista de redes compatibles con esta dirección.
swift.account_number111222333444El número SWIFT de la cuenta.
swift.swift_codeAAAA-BB-CC-123El código SWIFT.
swift.bank_nameWells Fargo Bank, NAEl nombre del banco.

Plazo de acreditación de fondos

Después de indicarle a tu cliente que inicie una transferencia en su banco con la información proporcionada, la transferencia puede tardar hasta cinco días en completarse. El plazo de acreditación de fondos depende de los canales bancarios a través de los cuales la transferencia llegó a Stripe:

  • Las transferencias de ACH llegan dentro de 1 a 3 días hábiles.
  • Las transferencias bancarias nacionales (Fedwire) llegan el mismo día (si la transferencia se envía antes de la hora límite del banco).
  • Las transferencias bancarias internacionales (SWIFT) llegan dentro de 1 a 5 días hábiles.

Confirma el PaymentIntent procesado correctamente

El estado del PaymentIntent permanece en requires_action 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_action a succeeded.

Debes configurar tu punto de conexión de webhook para empezar a recibir el evento payment_intent.partially_funded.

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.

EventoDescripciónPróximos pasos
payment_intent.requires_actionSe 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_action.Indícale a tu cliente que envíe una transferencia bancaria con el amount_remaining.
payment_intent.partially_fundedEl 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_remaining 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_intent.succeededEl 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

Ruby
require 'json' # Using Sinatra post '/webhook' do payload = request.body.read event = nil begin event = Stripe::Event.construct_from( JSON.parse(payload, symbolize_names: true)

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.

Command Line
cURL
curl https://api.stripe.com/v1/test_helpers/customers/ic_xxxxxxxxx/fund_cash_balance \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=usd \ -d reference=REF-4242

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ódigoDescripciónGestión
payment_method_rate_limit_exceededSe 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.

OpcionalCómo recopilar opciones de métodos de pago de tu cliente

OpcionalEnviar correos electrónicos con instrucciones de pago

¿Te fue útil esta página?
SíNo
¿Necesitas ayuda? Ponte en contacto con soporte.
Únete a nuestro programa de acceso anticipado.
Echa un vistazo a nuestro registro de cambios.
¿Tienes alguna pregunta? Contacto.
¿LLM? Lee llms.txt.
Con tecnología de Markdoc