Tiempos de sincronización prolongados en sitios

Compartimos información importante sobre el comportamiento del widget en ciertos sitios que pueden presentar tiempos de sincronización prolongados, esto debido a lentitud por parte del sitio o bien, por credenciales de usuario con gran cantidad de cuentas y/o transacciones.

El problema

Hemos identificado que algunos sitios, especialmente aquellos con una gran cantidad de cuentas y transacciones, pueden experimentar tiempos de sincronización prolongados.

Sitios identificados con este comportamiento:

  • CLARA
  • AMEX

Proceso de extracción:

  1. Se recuperan todas las cuentas del usuario
  2. Se extraen las transacciones de cada cuenta individualmente

Cuando hay muchas cuentas, este proceso puede superar el tiempo de espera del widget (19-30+ minutos), mostrando mensajes como:

  • “El servidor ha tardado en responder”
  • “Error interno”

Importante: Aunque aparezca el error, el proceso continúa ejecutándose en segundo plano hasta completarse exitosamente.


Soluciones técnicas

Opción 1: Ampliar el timeout del widget

Agregar el subparámetro socketTimeout en el parámetro navigation:


`var params = {
    enableTestMode: true,
    token: sync_token,
    config: {
        locale: 'en',
        navigation: {
            // Tiempo de espera de 16 minutos (en milisegundos)
            socketTimeout: 960000,
        }
    }
};`

El valor se especifica en milisegundos. Para casos con muchas cuentas, consideren valores de 20-30 minutos o más.

Opción 2: Webhooks + Quick Answer (Recomendado)

Implementar webhooks permite que la sincronización se ejecute en segundo plano y recibir notificaciones cuando finalice.

Configuración del widget:

Pueden configurar el widget para que finalice exitosamente después del login, sin esperar la descarga completa de datos:

`var params = {
    enableTestMode: true,
    token: sync_token,
    config: {
        locale: 'en',
        navigation: {
            quickAnswer: true,
        }
    }
};`

Con quickAnswer: true, el widget solo espera el login exitoso y termina sin mostrar errores. La información se descarga en segundo plano y los webhooks notificarán cuando se complete.

Configuración de webhooks:

Los webhooks son callbacks HTTP enviados a una URL específica. Deben configurarse en su API KEY para recibir notificaciones de eventos.

Eventos disponibles:

  • credentials.created - Nueva credencial creada
  • credentials.updated - Credencial existente actualizada
  • credentials.refreshed - Datos agregados o actualizados (detecta nuevas cuentas, transacciones, y actualizaciones)

Enlaces:

Syncfy API

Ventajas:

  • Widget no muestra error de timeout
  • Usuario no espera frente al widget
  • Notificación cuando la data está disponible
  • Mejor experiencia de usuario
  • Mayor confiabilidad

Recomendaciones

Si planean integrar estos sitios en producción:

:white_check_mark: Implementar webhooks + quickAnswer para sincronizaciones asíncronas
:white_check_mark: Comunicar claramente que el proceso continuará en segundo plano
:white_check_mark: Notificar al usuario cuando la sincronización se complete
:white_check_mark: Ajustar timeouts si optan por sincronización síncrona


Conclusión

Tengan en cuenta estas consideraciones al decidir qué sitios integrar de cara al usuario final. Aunque la sincronización se completa exitosamente, la percepción de error puede afectar la experiencia del usuario. La combinación de webhooks con quickAnswer: true ofrece la mejor solución para estos escenarios, evitando errores de timeout y proporcionando una experiencia fluida.