← Portada de Checkout WebPASO 04 / 05
Cuando llamas paymentForm.init(...), Flex te permite capturar tres funciones callback. La más importante para el resultado del frontend es responseCallback(response).
Toma
responseCallback(response) como la entrada principal del resultado en frontend. El JSON que recibes ahí reutiliza la misma estructura del API de Autorización - ecommerce para el método de pago elegido dentro de Flex.Callbacks disponibles
responseCallback
Se ejecuta cuando el proceso llega a un resultado de negocio y te entrega el JSON de respuesta.
trackingCallback
Se ejecuta por cada evento del flujo, como cambio de método, clics o avance del usuario dentro del formulario.
onErrorCallback
Se ejecuta cuando ocurre un error técnico durante la carga o ejecución del componente.
Ejemplo de implementación
Cómo interpretar responseCallback
El campo
response.payment_method te indica qué referencia de PayIn debes usar para interpretar el JSON de respuesta devuelto por Flex.- CARD
- YAPE
- BANK_TRANSFER
- QR
- CUOTEALO
- PAGOEFECTIVO
El objeto
response sigue el contrato del API de Autorización con Tarjeta.Si tu flujo usa redirect o autenticación 3DS fuera de la misma pantalla, complementa esta lectura con Consideraciones para métodos con Redirect.Ciclo de vida de la instancia
Los ejemplos siguientes usan
unmountFlex() del ejemplo responsive. Adapta la limpieza a tu presentación: embebida, popup o expandida.paymentForm.terminate?.() finaliza los procesos internos, listeners y recursos que mantiene la instancia de Flex. Esta operación es diferente de eliminar el formulario del DOM (flexContainer.innerHTML = "") y aplica a cualquier tipo de presentación.
El operador
?. ejecuta terminate() solo cuando el método existe. Esto evita un error si la versión cargada de Flex no implementa ese método.Cuándo desmontar según la presentación
En los tres casos, primero procesa cualquier resultado pendiente y luego ejecuta
unmountFlex() antes de actualizar la presentación visual.
Pantalla de resultado propia
Cuando configurassettings.display_result_screen: false, Flex no presenta su pantalla final. Tu aplicación debe recibir el response, evaluar el estado de la transacción y mostrar una pantalla de resultado propia.
1
Monta el formulario
paymentForm.init(...) renderiza Flex dentro del contenedor.2
Recibe el resultado
Flex ejecuta
responseCallback(response). Lee el resultado desde response.transaction.state y realiza las validaciones de negocio correspondientes.3
Muestra tu pantalla
Guarda el
response en el estado de tu aplicación y navega o renderiza la pantalla de resultado del comercio.4
Desmonta Flex
Cuando el resultado ya fue procesado, ejecuta
terminate(), limpia el contenedor y actualiza la presentación embebida, popup o expandida.Limpieza reutilizable
Encapsula la inicialización y el desmontaje en un controlador independiente del framework. Puedes usarlo desde JavaScript puro o conectarlo al ciclo de vida de React, Vue, Angular u otra tecnología.JavaScript
Ejecuta
destroy() antes de retirar el contenedor de la página.Aplicación SPA
Conecta
destroy() al cambio de ruta o al desmontaje de la vista.Presentación dinámica
Ejecútalo al ocultar el bloque embebido, cerrar el popup o contraer la vista expandida.
container.replaceChildren() vacía el contenido de forma equivalente a container.innerHTML = "", sin depender de un framework específico.
terminate() no devuelve la respuesta del pago. El resultado siempre llega mediante el primer callback de paymentForm.init(...). Revisa Capturar funciones callback para interpretar y confirmar la operación.Gestionar el cierre con show_close_button
Configurasettings.show_close_button: true para mostrar el botón de cierre nativo de Flex. Esta opción funciona en las presentaciones embebida, popup y expandida.
cerro el carrito mediante onErrorCallback. Aunque utiliza el callback de error, este mensaje representa una acción voluntaria del comprador y no un fallo técnico.
Mostrar el botón
Activa
show_close_button dentro de settings.Interpretar el evento
Identifica el mensaje exacto
cerro el carrito en onErrorCallback.Cerrar la presentación
Ejecuta
onClose() para desmontar Flex y actualizar la interfaz.show_close_button → onErrorCallback → onClose() → unmountFlex(). hideFlexPresentation() representa la lógica visual de tu aplicación: retirar el bloque embebido, ocultar el popup o contraer la vista expandida.
5. Pruebas y producción
Revisa seguridad, pruebas funcionales y criterios para pasar a producción.

