Este checklist tiene como objetivo ayudarte a validar que tu implementación de la API de Syncfy Open Data para la conexión a Bancos y al SAT esté completa y apegada a las mejores prácticas, esto con la finalidad de prevenir errores en tu integración y darte un buen soporte técnico, además de lograr una mejor experiencia para tus usuarios finales.
1. Manejo de usuarios
Asegurarse de que en la integración se realice correctamente el manejo de usuarios:
Se cree un usuario por cada entidad/usuario/cliente.
Se tenga un identificador que permita relacionar al usuario de Syncfy con el usuario de su sistema mediante el id_external.
Se almacene el identificador “id_user” asignado por Syncfy.
2. Almacenamiento de la información
Asegurarse de que el almacenamiento de la información sea correcto:
Tener una base de datos en donde almacenar la información transaccional necesaria.
Almacenar el identificador de la credencial, una vez que ya se haya sincronizado exitosamente por primera vez.
Almacenar los identificadores asignados por Syncfy.
Evitar errores de desbordamiento, asignando los caracteres suficientes para cada campo a almacenar.
3. Uso de los Webhooks
Como mejores prácticas, hacer uso de los webhook tomando en cuenta:
Configurar la URL de webhook en el dashboard de Syncfy para recibir los eventos webhook.
Suscribirse a los eventos necesarios de acuerdo al producto usado.
Hacer uso del evento credentials.refresh para consumir la información nueva y/o actualizada.
Nota: Se debe configurar diferentes URL de webhook tanto para Sandbox como para Producción.
4. Manejo de errores
Asegurarse de que la integración pueda almacenar el rid de los errores presentados (este rid, ayuda a trackear de forma más eficiente el problema).
En caso de no hacer uso del widget, asegurarse de mostrar un correcto mensaje al usuario de acuerdo al código de error presentado, tomando en cuenta los diferentes códigos de estado: Status Codes.
5. Integración con widget
La integración del widget de Syncfy en la implementación del servicio, esta altamente recomendado, ya que ahorra tiempo en la implementación, se actualiza si algún sitio cambia sus tipos de acceso y es transparente para el usuario, al hacer uso del widget asegúrate de que la configuración del widget sea la adecuada de acuerdo a sus necesidades:
Bloquear la navegación en el widget si es necesario.
Configurar el widget para que solo se muestren los sitios del país deseado.
Ampliar el tiempo de espera del widget si se cuentan con credenciales con un gran volumen de información transaccional.
Hacer uso de los métodos y eventos del widget de acuerdo a las necesidades en su sistema.
Habilitar el widget únicamente para la actualización o creación de credenciales (Pulls) y no para consultas a los endpoints de la API.
Probar con Sandbox todos los posibles tipos de acceso haciendo uso de ACME Bank, de esta forma asegurarse que no existe algún detalle en el Front End de su sistema que impida el buen funcionamiento del Widget.
Si se hace uso del método setEntrypointCredential
, brindarle la opción al usuario de habilitar el widget para actualizar sus credenciales de acceso cuando lo requiera (para el caso de Open Banking es muy común el cambio de contraseña por parte de los sitios de terceros).
6. Integración Widget-less
En caso de no hacer uso del widget en tu implementación, asegúrate de:
La implementación sea adaptable si un sitio realiza un cambio en su login (nuevo campo, cambio de nombre en las credenciales, integración de un twofa).
Detectar y manejar cada estado en el que se puede encontrar la credencial al realizar una sincronización ( Status Codes ).
El proceso sea capaz de recibir más de 1 código 410 y por ende sea capaz de enviar más de 1 twofa si el sitio lo requiere.
Ser consiente que los sitios BBVA Net Cash Llave Inteligente y Santander Empresas solo son soportados mediante el widget de Syncfy o el headless widget.
7. Sincronización de credenciales (Pulls de usuario).
Cuando se realiza un pull se extraen todas las cuentas y transacciones que el usuario tiene en su portal con las credenciales ingresadas. Asegurarse de realizar los pulls necesarios:
Evitar realizar un pull para sincronizar cada cuenta de una misma credencial, con un pull es suficiente para obtener todas las cuentas.
Considerar que hay un rate limit de 5 minutos entre cada Pull exitoso de una misma credencial.
Si una ejecución arroja un error verificar a que se debe el error de acuerdo a los Status Codes antes de volver a intentarlo.
Realizar un Pull únicamente para la creación de credenciales o actualización de información transaccional y no para consultas en la API (Consulte: Diferencias entre un Pull y una API Call).
Permitir al usuario hacer un pull cada que lo crean necesario de acuerdo a su caso de uso, tomando en cuenta el rate limit.
8. Cambios en la API
¿La implementación es adaptable si Syncfy realiza algún cambio como los que se mencionan?
Cantidad de caracteres diferente para una cadena.
Nuevos campos dentro del campo “extra”.
Integración de nuevos endpoints.
9. Seguridad
Asegurarse de que la implementación no tenga vulnerabilidades.
La API Key no se encuentra expuesta o visible en el código.
La API Key no se envía como parámetro en la URL de la petición.
Se usa el token de sesión para autenticar las solicitudes del navegador; en lugar de la API Key.
10. Documentación y pruebas
Asegúrate de que la documentación de la implementación y las pruebas estén adecuadamente gestionadas:
Documentar todos los endpoints utilizados y su configuración específica.
Asegurarse de que el equipo de desarrollo tenga acceso a la documentación actualizada de la API de Syncfy.
Realizar pruebas unitarias y de integración para cada funcionalidad implementada.
Realizar pruebas de carga para asegurar que la implementación pueda manejar el tráfico esperado.