Hola buen día, estoy implementando un modulo para obtener la facturación del sat,
cada día mediante un cronjob debo ir por la facturación.
Mi duda es la siguiente,
Cada vez que requiera la facturación, debo de crear nuevamente las credenciales?,
siempre es una nueva credencial? o el SYNC detecta automaticamente si ya existían credenciales anteriores y me devuelve la misma?
Existen varias razones para filtrar por id_credential:
Si un usuario tiene multiples credenciales (de SAT o de Banco), puede ayudarte a manejar los casos por separado (si fuera necesario).
En el caso del SAT, se obtiene información desde 2014 a la fecha, entonces para cuentas con muchos movimientos puede ser que ese llamado llegue al limite de registros regresados. Actualmente tiene 10,000 transacciones como limite (aunque se tengan registradas más transacciones).
Entonces te sugiero utilizar dos parametros al consultar transacciones en tu cron:
id_credential : para filtrar por credenciales
dt_refresh_from : para filtrar por fecha de actualización, este valor es un unix timestamp (dato numerico), ej: 1489622400 equivale a Marzo 01, 2017
Con estos dos filtros puedes extraer solo lo que va cambiando y no todos los datos. Si corres el cron job diario entonces dt_refresh_from seria el “timestamp” podría ser valor del día anterior.
Nota:
Es sugerido usar el filtro por dt_refresh_from cuando se hace un cron para mantener sincronizada la información porque es la fecha en que cambio algo relevante en la transacción.
En particular en cuentas del SAT las transacciones pueden actualizarse debido a una cancelación de un folio, entonces si se llegara a detectar que fue cancelada, el de dt_refresh_from se va a actualizar, y en la próxima corrida del cron se obtendría esa factura con el estatus de cancelada.
Se pudiera filtrar por dt_transaction_from pero un folio puede cancelarse y para que tu base de datos se entere que fue cancelada tendrias que estar buscando por la fecha en que se creo, lo cual no es optimo.
Espero haber resuelto tu duda, quedo a tus ordenes
que tal @r1, te agradezco la ayuda. Me surgio una duda extra mientras estoy recuperando las facturas de el siguiente endpoint https://sync.paybook.com/v1/transactions
En el código de ejemplo hacen una peticion sobre una credencial y el objeto de respuesta trae un array de transacciones(esto obviamente descuenta el total de peticiones mensuales según las transacciones que encuentra),
Unas lineas mas abajo del código hacen una petición extra al mismo endpoint para recuperar un attachment(xml) de una transacción en especifico, mi duda es: Este request tambien consume una petición más de mi cuota total en el mes? es decir si encontró 10 transacciones y sobre esas 10 hago un bucle para recuperar la info del xml de cada una, estaría consumiendo 20 peticiones de mi cuota mensual?
adjunto la liga del wizard que tienen de ejemplo wizard
Si una transacción es regresada por uno de esos endpoints cuenta como una sola para el consumo. Inclusive si consultas hoy y en dos meses la vuelvas a consumir solo es contada como una.