Mejores prácticas para la implementación de Sync

Peticiones GET

Puedes realizar peticiones tipo GET utilizando el API KEY y el ID USER en lugar de generar una sesión cada vez que vas a consultar transacciones (por mencionar ejemplo). Si optas por este camino te recomendamos ampliamente adoptar la siguiente estructura en tus peticiones HTTP

curl "https://sync.paybook.com/v1/transactions" \
-d 'PARÁMETROS_DE_CONSULTA' \
-H "Authorization: api_key api_key=API_KEY, id_user=ID_USER" \
-H "Content-Type: application/json" \
-H "X-Http-Method-Override: GET" \
-X POST 

De esta forma te aseguras que los datos sensibles viajen de manera encriptada.

1 me gusta

Algunas de las recomendaciones para la implementación:

  • Manejo de eventos del Webhook, específicamente el credential_update con el flag is_executing : 0.
    • Una vez llegado el evento, ejecutar la consulta al endpoint de /credentials que se especifica en el mensaje y validar el código de acuerdo a la tabla de status_code
    • Esto permitirá informar al usuario final cuando su credencial tiene algún problema de autenticación en la sincronización diaria que no permita actualizar la información.
  • Integrar la información de la credencial para que el usuario pueda ver la última fecha de sincronización y el estado actual
    • Se logra mediante la consulta del GET /credentials?id_site=<ID_SITE>, esto además de dar información al usuario permite validar que se cuenta con una credencial del sitio. Adjunto imagen como ejemplo de cómo se despliega esto en nuestro sistema de Paybook.

Otras observaciones que se consideran importantes:

  • El Syncfy User es un objeto agrupador de credenciales. Idealmente solo debe existir un Syncfy User por cada empresa/usuario, el id_user será utilizado para la generación de session_token el cuál al ser inyectado en el Widget permitirá que al ser creada la Credencial en el Widget ésta se vincule al Syncfy User, de esta manera se pueden vincular múltiples credenciales de varias instituciones al Syncfy User.

  • Nuestra recomendación es que Syncfya API NO SEA considerado como una Base de Datos, es decir, tanto la descarga de Transacciones como de Archivos Adjuntos (XML) debería realizarse en un segundo plano procesando las notificaciones diarias que se envían al Webhook cada que se actualizan las facturas de las credenciales. Esto permitirá que su sistema cuente con ellas y el despliegue de la información al usuario se vea liberado de la interacción con otro sistema. Esto mejoraría la experiencia de su usuario final.