Acepta un pago de Afterpay o Clearpay
Descubre cómo aceptar Afterpay (también conocido como Clearpay en Reino Unido), un método de pago en EE. UU., CA, Reino Unido, AU y NZ.
Precaución
El contenido de esta sección se refiere a un producto heredado. En su lugar, debes usar la guía Aceptar un pago para el proceso de integración más reciente. Aunque Stripe sigue aceptando este producto, podría dejar de aceptarlo si el producto queda obsoleto.
Los usuarios de Stripe pueden utilizar la API Payment Intents, una ruta de integración única para crear pagos usando cualquier método aceptado, para aceptar pagos con Afterpay de clientes de los siguientes países:
- Australia
- Canadá
- Nueva Zelanda
- Reino Unido
- Estados Unidos
Afterpay es un método de pago de uso único y de notificación inmediata que requiere que el cliente autentique su pago. Se redirige a los clientes al sitio web de Afterpay, donde aceptan las condiciones del plan de pago en cuotas. Cuando el cliente acepta las condiciones, se garantizan los fondos y se transfieren a tu cuenta de Stripe. El cliente paga a Afterpay directamente a lo largo del tiempo.
Nota
Antes de iniciar la integración, asegúrate de que tu cuenta sea apta para Afterpay. Para ello, accede a la configuración de los métodos de pago.
Primero, necesitas una cuenta de Stripe. Regístrate ahora.
Usa nuestras bibliotecas oficiales para acceder a la API de Stripe desde tu aplicación:
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. Primero, crea un PaymentIntent
en tu servidor y especifica el importe que hay que cobrar y la divisa. Si ya tienes una integración que utiliza la API Payment Intents, añade afterpay_
a la lista de tipos de métodos de pago para tu PaymentIntent
.
Puedes gestionar los métodos de pago desde el Dashboard. Stripe gestiona la devolución de métodos de pago que cumplan los requisitos en función de factores como el importe de la transacción, la divisa y el flujo de pago. En el siguiente ejemplo se usa el atributo automatic_payment_methods, pero puedes enumerar afterpay_
con tipos de métodos de pago. En la última versión de la API, especificar el parámetro automatic_
es opcional porque Stripe habilita sus funciones de forma predeterminada. Independientemente de la opción que elijas, asegúrate de habilitar Afterpay Clearpay en el Dashboard.
Recupera el secreto del cliente
El PaymentIntent incluye un secreto de cliente que el lado del cliente utiliza para completar el proceso de pago de forma segura. Puedes usar diferentes métodos para pasar el secreto del cliente al lado del cliente.
Opciones de métodos de pago adicionales
Puedes especificar un parámetro reference
opcional en las opciones del método de pago para tu PaymentIntent
que establece un identificador de pedido interno para el pago. Aunque esto no suele ser visible ni para la empresa ni para el consumidor, el equipo de soporte interno de Afterpay puede acceder a él durante las solicitudes de soporte manuales. El identificador tiene un límite de 128 caracteres y solo puede contener letras, dígitos, guiones bajos, barras diagonales inversas y guiones.
En este paso, efectivizarás los pagos de Afterpay en el lado del cliente con Stripe.js.
Configura Stripe.js
Cuando un cliente haga clic para pagar con Afterpay, recomendamos utilizar Stripe.js para enviar el pago a Stripe. Stripe.js es nuestra biblioteca JavaScript principal para crear flujos de pago. Automáticamente gestiona las complejidades como los redireccionamientos que se describen a continuación, y te dan la posibilidad de ampliar fácilmente tu integración a otros métodos de pago en el futuro. Incluye la secuencia de comandos de Stripe.js en tu página de proceso de compra añadiéndola al encabezado de tu archivo HTML.
Crea una instancia de Stripe.js con el siguiente JavaScript en tu página de finalización de compra.
En lugar de enviarle al cliente el objeto PaymentIntent completo, utiliza el secreto de cliente del paso 2. Esta clave es diferente de las claves de API que autentican las solicitudes de API de Stripe.
Aún debes administrar el secreto de cliente con cuidado porque sirve para completar el cargo. No lo registres, no lo insertes en URL ni lo expongas a nadie excepto al cliente.
Usa stripe.confirmAfterpayClearpayPayment para gestionar la redirección fuera de tu página y completar el pago. Añade un return_url a esta función para especificar a dónde redirige Stripe al usuario después de completar el pago en el sitio web o la aplicación móvil de Afterpay.
Cuando tu cliente envía un pago, Stripe lo redirige a la return_
e incluye los siguientes parámetros de consulta de URL. La página de retorno puede usarlos para obtener el estado del PaymentIntent y mostrarle al cliente el estado del pago.
Cuando especifiques el return_
, también puedes anexar tus propios parámetros de consulta para usarlos en la página de retorno.
Parámetro | Descripción |
---|---|
payment_ | El identificador único del PaymentIntent . |
payment_ | El secreto de cliente del objeto PaymentIntent . Para las integraciones de suscripciones, este client_secret también se expone en el objeto Invoice a través de confirmation_ |
Cuando se redirige al cliente de nuevo a tu sitio web, puedes usar el payment_
para consultar el PaymentIntent y mostrarle al cliente el estado de la transacción.
Opcionalmente, puedes aceptar los datos de la partida para proporcionar más señales de riesgo a Afterpay. Actualmente, esta función está disponible en versión beta privada. Si quieres solicitar acceso a dicha función, contáctanos.
A diferencia de la autorización y captura separadas para los pagos con tarjeta, Afterpay cobra al cliente la primera cuota del pago en el momento de la autorización. Tienes hasta 13 días después de la autorización para capturar el resto del pago. Si no registras el pago en este período, el cliente recibirá el reembolso de la primera cuota y no se le cobrará ninguna otra. En estos casos, Stripe también cancela el PaymentIntent y envía un evento payment_intent.canceled.
Si sabes que no puedes capturar el pago, te recomendamos que canceles el PaymentIntent en lugar de esperar a que transcurra el plazo de 13 días. La cancelación proactiva del PaymentIntent reembolsa inmediatamente la primera cuota a tu cliente, evitando cualquier confusión sobre los cargos en su extracto.
Indicarle a Stripe que autorice solamente
Para indicar que quieres separar la autorización y la captura, establece capture_method en manual
al crear el PaymentIntent. Este parámetro le indica a Stripe que solo debe autorizar el importe en la cuenta del cliente de Afterpay.
Una vez que la autorización se realiza correctamente, Stripe envía un evento payment_intent.amount_capturable_updated. Consulta nuestra guía de eventos para obtener ayuda.
Capturar los fondos
Una vez que la autorización se realiza correctamente, el estado del PaymentIntent pasa a requires_
. Para capturar los fondos autorizados, realiza una petición de captura del PaymentIntent. De forma predeterminada, se captura el importe total autorizado; no puedes capturar más de ese importe, pero sí menos.
Opcional Cancela la autorización
Si necesitas cancelar una autorización, puedes cancelar el PaymentIntent.
Te recomendamos que uses Stripe.js para gestionar las redirecciones y los pagos de Afterpay del lado del cliente con confirmAfterpayClearpayPayment
. El uso de Stripe.js te ayuda a ampliar tu integración a otros métodos de pago. No obstante, también puedes redirigir manualmente a tus clientes en tu servidor siguiendo estos pasos:
Crea y confirma un PaymentIntent del tipo
afterpay_
. Debes proporcionar la propiedadclearpay payment_
que requiere Afterpay.method_ data. billing_ details payment_
es opcional, pero se recomienda para mejorar las tasas de autenticación. Al especificarintent. shipping payment_
, Stripe crea un PaymentMethod y lo usará inmediatamente con este PaymentIntent.method_ data También debes proporcionarle la URL de redireccionamiento a tu cliente después de que complete el pago en el campo
return_
. En esta URL, también puedes aportar tus propios parámetros de consulta. Estos parámetros se incluyen en la URL final tras completar el flujo de redireccionamiento.url El
PaymentIntent
que se ha creado tiene el estadorequires_
y el tipo paraaction next_
esaction redirect_
.to_ url Redirige al cliente a la URL proporcionada en la propiedad
next_
. El código de ejemplo aquí es aproximado; el método de redireccionamiento puede ser diferente en tu entorno web.action. redirect_ to_ url. url
Cuando el cliente finaliza el proceso de pago, se le envía al return_
configurado en el paso 1. Los parámetros de consulta de URL payment_
y payment_
están incluidos, y puedes especificar tus propios parámetros de consulta, tal y como se ha descrito anteriormente.
Te recomendamos recurrir a los webhooks para confirmar el estado del pago.
Stripe envía un evento payment_intent.succeeded cuando se completa el pago. Utiliza el Dashboard, un webhook personalizado o una solución de socio para recibir estos eventos y ejecutar acciones como, por ejemplo, enviar un correo electrónico para confirmar el pedido al cliente, registrar la venta en una base de datos o iniciar el flujo de tareas de envío.
Escucha estos eventos en lugar de esperar una devolución de llamada del cliente. Por su parte, el cliente puede cerrar la ventana del navegador o salir de la aplicación antes de que se ejecute la devolución de llamada y los clientes malintencionados podrían manipular la respuesta. Configurar tu integración para escuchar eventos asincrónicos también te ayudará a aceptar más métodos de pago en el futuro. Obtén más información sobre las diferencias entre todos los métodos de pago aceptados.
Gestiona eventos manualmente en el Dashboard
Utiliza el Dashboard para ver tus pagos de prueba en el Dashboard, enviar recibos por correo electrónico, gestionar pagos o reintentar pagos fallidos.
Crea un webhook personalizado
Crea un webhook personalizado para escuchar eventos y crear flujos de pago asíncronos personalizados. Prueba y depura tu integración de webhooks de forma local con la CLI de Stripe.
Integra una aplicación prediseñada
Gestiona eventos empresariales comunes, como la automatización o la comercialización y ventas, integrando una aplicación asociada.
Para probar tu integración de Afterpay con las claves de la API en modo de prueba, consulta la página de redireccionamiento. Puedes probar el caso de pago satisfactorio autenticando el pago en la página de redireccionamiento. El PaymentIntent pasará de requires_
a succeeded
.
Para probar el caso en el que el usuario no pueda autenticarse, utiliza las claves de la API en modo de prueba y consulta la página de redireccionamiento. En la página de redireccionamiento, haz clic en Error en el pago en modo de prueba. El PaymentIntent pasará de requires_
a requires_
.
Para la captura manual de PaymentIntents en modo de prueba, el PaymentIntent no capturado vencerá automáticamente 10 minutos después de la autorización satisfactoria.
El Payment Method Messaging Element es un componente integrable de interfaz de usuario que ayuda a tus clientes a saber qué opciones de pago de «compra ahora, paga después» tienen en el proceso de compra directamente desde tus páginas de producto, carrito o pago.
Para añadir el Payment Method Messaging Element a tu sitio web, consulta Mostrar mensajes de métodos de pago.

Pagos fallidos
Afterpay tiene en cuenta varios factores a la hora de decidir si acepta o rechaza una transacción (por ejemplo, el tiempo que el comprador lleva utilizando Afterpay, el importe pendiente de pago del cliente, el valor del pedido actual).
Siempre debes presentar más opciones de pago como card
en el flujo del proceso de compra, ya que los pagos con Afterpay tiene una tasa de rechazos superior que muchos métodos de pago. En estos casos, el PaymentMethod se separa y el estado del objeto PaymentIntent pasa automáticamente a requires_
.
Para un PaymentIntent de Afterpay con un estado de requires_
, los clientes deben efectivizar el pago en el transcurso de las 3 horas posteriores a redirigirles al sitio de Afterpay (esto no se aplica a los pagos rechazados). Si no realiza ninguna acción en el transcurso de 3 horas, el PaymentMethod se separa y el estado del objeto del PaymentIntent pasa automáticamente a requires_
.
En estos casos, informa a tus clientes que deben intentarlo de nuevo con una opción de pago diferente de tu flujo de proceso de compra.
Códigos de error
Estos son algunos códigos de error comunes y las correspondientes acciones recomendadas:
Código de error | Acción recomendada |
---|---|
payment_ | Un error genérico indica que el proceso de compra de Afterpay ha fallado. También puede tratarse de un rechazo que no aparece como código de error de rechazo. |
payment_ | Afterpay ha rechazado el pago del cliente. Como siguiente paso, el cliente debe contactarse con Afterpay para obtener más información. |
payment_ | El cliente no completó el pago en la página Afterpay del proceso de compra, y la sesión de pago ha caducado. Los PaymentIntents de Stripe caducan automáticamente si no se autorizan correctamente transcurridas 3 horas desde el inicio del proceso de compra. |
payment_ | Afterpay ha experimentado un error relacionado con el servicio y no puede completar la solicitud. Vuelve a intentarlo más tarde. |
amount_ | Introduce un importe dentro de los límites de transacciones predeterminados de Afterpay para el país. |
amount_ | Introduce un importe dentro de los límites de transacciones predeterminados de Afterpay para el país. |