Tiempo de sesión con los bancos

Hola! después de sincronizar un banco con el twofa, cuánto tiempo tengo para descargar las transacciones?

Saludos

Hola Enrique,

al solicitar sincronizar con un banco se crea un objeto Credential (puedes consultarlo en el endpoint https://sync.paybook.com/v1/credentials?token=TOKEN), si la sincronización ha sido exitosa observarás tres hechos:

  1. La propiedad is_authorized del objeto Credential tiene el valor 1.
  2. Se crean objetos Accounts para cada una de las cuentas vinculadas a las credenciales de acceso al banco
    (Puedes consultar el endpoint https://sync.paybook.com/v1/accounts?token=TOKEN,id_credential=ID_CREDENTIAL)
  3. Se crear objetos Transactions para cada uno de los movimientos registrados en las respectivas cuentas.
    (Puedes consultar el endpoint https://sync.paybook.com/v1/transactions?token=TOKEN&id_credential=ID_CREDENTIAL&id_account=ID_ACCOUNT)

Todos los objetos que se crearon derivados de una sincronización exitosa persisten de manera totalmente segura en Paybook Sync, podrás consultarlos en cualquier momento siempre y cuando lo hagas con un TOKEN válido para el usuario con el que realizaste la sincronización (cada que creas un token con POST https://sync.paybook.com/v1/sessions?api_key=API_KEY&id_user=ID_USER tiene un periodo de vida de 5 minutos después de su última activdad).
Toda esta información desaparece cuando eliminas el objeto Credential o User mediante DELETE.

Espero haber respondido tu pregunta.

1 me gusta

sí respondiste! gracias

Ahora para traer nueva información de las transacciones bancarias ¿tengo que crear la credencial otra vez?

Otra pregunta ¿Cuánto tiempo tengo entre que se crea la credencial y poner el twofa después que en status de credencial me da 410?

Hola Enrique,

Si la credencial requiere algún TWO-FA tendrás que crear la credencial cada que requieras actualizas las Accounts y Transactions, si lo haces utilizando el mismo usuario Paybook Sync reconocerá que se trata de una actualización y no la duplicará.
Si tu credencial no tiene habilitado algún TWO-FA se actualizarán Accounts y Transactions de manera automática cada 24 horas.

Tienes en promedio 1min antes de que la conexión al banco te marque 411, algunos bancos tienen más tolerancia.

Saludos.

1 me gusta

@miguelmateo " Si tu credencial no tiene habilitado algún TWO-FA se actualizarán Accounts y Transactions de manera automática cada 24 horas. "

Parece que estoy entendiendo mal:

Registre mis credenciales (produccion) , de banamex bancanet
me aparecieron mis movimientos, saldos, etc…

Si dice que se actualiza automaticamente cada 24 hrs. es necesario volver a escribir usuario y contraseña??

porque desde el jueves ingrese las credenciales, hoy reviso los movimientos y siguen igual a ese dia… y pues ya hay otros movimientos y saldos distintos

Buenas tardes @manrobless, no es necesario volver a escribir usuario ni contraseña cuando no existe un TWO-FA.

Tu credencial ya fue actualizada, sin embargo cuando suceda el caso como el que expones puedes revisar el objeto de la credencial GET /credentials, obtendrás un resultado como el siguiente:

donde:
dt_authorized, te indica la fecha de la última vez que tu credencial logró autenticarse,
dt_refreshed, te indica la fecha de la última vez que tu credencial logró obtener información

Si han pasado veinticuatro horas después de la última vez que se autenticó puedes volverlo a intentar (es decir volver a mandar usuario y password), en teoría ésto no debe suceder pero es importante que tengan en mente éstos datos.

1 me gusta

@miguelmateo Buen dia, sigo haciendo pruebas con una cuenta de bananamex y con bancoppel…

La ultima vez que ingrese usuario y contraseña fue el dia 21/08/2018

Reviso en credentials, y hoy 24/08/2018, siguen con la misma fecha de dt_refresh (21/08/2018) , no se ha actualizado ni el saldo, ni las transacciones de banamex , de bancoppel no tiene ninguna informacion.

rid: "22aa8a95-4d3c-4419-81df-77ea183a3d8c"

** Para la funcionalidad que requerimos, necesitamos asegurar que si se actualiza automaticamente, si no para tener que pedir usuario y contraseñá siempre que se quiera leer las transacciones del usuario.

Buenas noches José, las credenciales se actualizan de manera automática sin embargo hay algunos motivos por los cuales podrían dejar de sincronizarse o aumentar el periodo con el que lo hacen de veinticuatro horas a un mes, por ejemplo:

1.- La credencial es válida pero ha dejado de ser utilizada en Sync, es decir, que no se detecta descarga de la información que se ha obtenido de la credencial, ésta aumenta la frecuencia con la que se actualiza.
2.- La credencial es válida, pero la institución solicita que el usuario realice alguna acción en el sitio, por ejemplo “renovar contraseña”.
3.- Cuando la credencial ya no logró firmarse en la institución de interés.

Debido a éstas razones es muy importante que consideres el caso donde el usuario deberá nuevamente ingresas sus datos. Como te había comentado en el post anterior, puedes usar los valores de dt_authorized, dt_refresh ó code (https://www.paybook.com/sync/docs/API#en&response.code) para tomar la decisión de pedirle a tu usuario ingresar nuevamente sus credenciales, o simplemente exponerlos para que él pueda verificar cuándo fue la última vez que se obtuvieron movimientos.

Saludos!

@miguelmateo , entonces lo recomendable es ingresar credenciales cada vez que se quiera obtener movimientos (cada 24 hrs) , por medio del widget seria posible? , como si se fuera a ingresar una cuenta, y se ingresan nuevamente credenciales? y con el callback, procesar los movimientos obtenidos en nuestro sistema

Lo recomendable es lo siguiente:

1.- Tomar los valores Credential.code (resultado de la conexión), Credential.dt_authorized (Fecha de la última conexión) y Credential.can_sync (Es una bandera que indica si el sitio puede ser solicitado para sincronización sin enviarle usuario y password).

2.- Validar si la fecha de la última conexión es mayor a 24 horas, y si el código es 200 - 203 ó 501.
En caso de ser afirmativa ésta validación, se revisa si la bandera Credential.can_sync es 1.

3.- Cubiertas las validaciones anteriores, mandar la petición:
PUT https://sync.paybook.com/v1/credentials/ID_CREDENTIAL/sync

El Widget te servirá para cuando el usuario debe crear sus credenciales, o actualizarlas en caso de que el código resultante en la credencial te indique 401 - 408 Y cuando quieres obtener movimientos de credenciales que necesitan Twofa (token, captcha, etc.)

Adicionalmente deberás tener un Webhook donde te llegarán las notificaciones de los nuevos movimientos cada que Sync los obtenga:

Quisiera saber si en el caso de timeout por parte del banco para el TWO-FA (411), ésta se notificará por medio de WebHooks.

Pregunto pues el ambiente de prueba muestra este comportamiento para Acme Bank - Token después de alrededor de 10 minutos.

Hola Gabriel, el código 411 es enviado por Sync, no por el banco.
Una vez que ya ha pasado tiempo suficiente y no se recibe la respuesta, Sync cierra la conexión con el banco y manda un código 411.

1 me gusta

Estimado Miguel, tengo una duda,

En caso de que la fecha de sincronización sea mayor a 24, ¿cuales son las mejores prácticas de qué es lo que se debería de hacer para actualizarlas?.

De igual forma, en caso de que can_sync=0, es decir, que no se puedan syncronizar, ¿cuales son las mejores prácticas , de que es lo que se debería de hacer?.

O ¿cual es la lógica a seguir en estos escenarios no happy path?

Hola @alejandro3

En caso de que can_sync=0 significa que la credencial ya ha sido sincronizada, en este día por lo que ya puedes obtener las transacciones desde el endpoint /transactions siempre y cuando tenga la credencial tenga un código status:2xx y no sea de tipo twofa.

Nosotros sincronizamos las credenciales no twofa diariamente así que no debería de presentarse el caso en que la fecha de sincronización sea mayor a 24.

Hola @aldoea

Soy nuevo en Sync :slight_smile: y me interesa sincronizar datos de cuentas empresariales.

¿Cada vez que cree credenciales (twofa) se cargarán datos “nuevos”?

¿Un usuario puede hacer esto todas las veces que quiera en 1 día por ejemplo?

¿Y para el SAT se pueden cargar facturas todas las veces al día que quiera el usuario?

Muchas gracias!

Hola @5P0p4Jp bienvenido a bordo!

Con respecto a tus dudas:

¿Cada vez que cree credenciales (twofa) se cargarán datos “nuevos”?
Las credenciales TWOFA obtienen datos nuevos(a lo que llamamos transacciones) cada vez que se autoriza la credencial ingresando el TWOFA.

¿Un usuario puede hacer esto todas las veces que quiera en 1 día por ejemplo?
Para la credenciales no TWOFA nosotros las sincronizamos automáticamente todos los días, adicionalmente se puede solicitar un pull request por día haciendo una petición al API al endpoint /credentials/<id_credential>/sync via PUT. También para las credenciales tipo TWOFA sólo se permite un pull request por día por default.

¿Y para el SAT se pueden cargar facturas todas las veces al día que quiera el usuario?
Tanto para SAT como para bancos esta limitado por default a un pull por día.

Si necesitas pulls adicionales para tú aplicación te los podemos proporcionar con mucho gusto, escribenos a [email protected] (Aunque veo que ya estás en ello :grin:)

¡Saludos!