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:
- Se recuperan todas las cuentas del usuario
- 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 creadacredentials.updated- Credencial existente actualizadacredentials.refreshed- Datos agregados o actualizados (detecta nuevas cuentas, transacciones, y actualizaciones)
Enlaces:
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:
Implementar webhooks + quickAnswer para sincronizaciones asíncronas
Comunicar claramente que el proceso continuará en segundo plano
Notificar al usuario cuando la sincronización se complete
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.