¿Cómo filtrar facturas del SAT?

El objetivo de este artículo es compartir con los usuarios cómo filtrar las transacciones del SAT (facturas, o bien, más técnicamente hablando CFDIs) que sincronicen por medio de Sync. Esto es posible mediante una herramienta de filtrado que nos ofrece Sync llamada Keywords, esta herramienta de filtrado se puede utilizar tanto en los endpoints de GET /attachments como GET /transactions. A continuación se explica en qué consiste dicha herramienta.

Keywords para CFDI

En México existen diferentes documentos fiscales cuya emisión es obligatoria para un contribuyente dependiendo de su régimen fiscal, los principales documentos fiscales son los siguientes:

  • Facturas
  • Recibo de Honorarios
  • Recibos de Pago
  • Recibo de Arrendamiento
  • Recibo de Donativos
  • Nota de Cargo
  • Nota de Crédito
  • Nota de Devolución
  • Carta Porte
  • Recibo de Nómina
  • Etcétera

Con la finalidad de estandarizar estos documentos el SAT definió una estructura denominada CFDI (Comprobante Fiscal Digital por Internet), es un documento XML que contiene los elementos siguientes:

Nodo Principal: cfdi:Comprobante
Nodo Secundario: cfdi:Emisor
Nodo Secundario: cfdi:Receptor
Nodo Secundario: cfdi:Conceptos
Nodo Secundario: cfdi:Impuestos
Nodo Secundario: cfdi:Complemento

Cada nodo tiene una serie de atributos y de nodos hijo que pueden ser obligatorios u opcionales, lo que diferencia a un documento fiscal de otro son los valores que aparecen en atributos representativos o la presencia de nodos hijo. Por ejemplo:

  • Un Recibo de Nómina CFDI 3.2 tiene el nodo hijo nomina:Nomina dentro del nodo secundario cfdi:Complemento y en el atributo tipoDeComprobante el valor egreso.
  • Una Carta Porte tiene la palabra “traslado” dentro del atributo tipoDeComprobante del nodo cfdi:Comprobante.

Cuando tratamos de responder la pregunta ¿Cuáles son los valores y nodos propios de cada documento fiscal? encontramos que no hay reglas definidas por el SAT para todos ellos, al menos para los más coloquiales, son más que nada una convención y de hecho podemos encontrar que las condiciones (en ocasiones) están en función del criterio de cada contador,
por esto Paybook Sync optó por el uso de Keywords los cuales son extraídos de atributos y nodos representativos del CFDI y através de ellos se puede inferir si un CFDI puede ser clasificado como un determinado documento fiscal.

Así pues, los keywords de cada transacción son extraídos de las siguientes fuentes:

  • Del portal del SAT se extraen los valores “emitidas”, “recibidas”, “vigente” y
  • cancelada”.
  • Atributo version del CFDI, los valores que puede tomar son “2,2”,”3.2” y “3.3”. Resulta importante especificar la versión ya que es probable que las condiciones de cada documento fiscal cambien en función de la versión.
  • Atributo TipoDeComprobante del CFDI, los valores posibles son “ingreso”, “egreso” y “traslado”.
  • Atributo “impuesto” del nodo “cfdi:Retencion”, por ejemplo de la factura descrita en la figura de abajo obtendremos los keywords “IVA” e “ISR”.


  • Cada uno de los nombres de los nodos que aparecen dentro de “cfdi:Complemento”.

A continuación se listan las propuestas de Sync para filtrar los documentos fiscales más populares al realizar una consulta de transacciones:

Recibo de Honorarios
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,ingreso,iva,isr
Recibo de Donativos
Versión 1.0 https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,ingreso,donat Versión 1.1 https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,ingreso,donat11
Nota de Crédito
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,egreso,iva&skip_key words=nomina
Carta Porte
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,traslado
Recibo de Nómina
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,egreso,nomina
Facturas de Instituciones Educativas
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,egreso,iedu

Los keywords además permiten filtrar las facturas por su comportamiento fiscal, por ejemplo:

Listar sólo todas las facturas recibidas con IVA Trasladado
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,ingreso,traslados,iva
Listar sólo todas las facturas excepto los recibos de nómina
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,ingreso&skip_keywor ds=nomina
Listar sólo los recibos de nómina
https://sync.paybook.com/v1/transactions?token={{token}}&keywords=3.2,nomina

como limito las fechas de búsqueda? y como le haria para descargar solo xml?

Hola Juan, esta entrada te puede servir: Descarga masiva de CFDIs

Buen día, tienen conocimiento de que significa el Tipo de Comprobante “traslado”?.

Hola Ignacio, el Comprobante de tipo “traslado” se definió para sustituir lo que antes se conocía como Carta Porte.

La Carta Porte aplica para los negocios del sector de transporte terrestre de carga.

Un ejemplo para notas de credito:

Keywords
Notas de Crédito Emitidas (Vigentes) emitidas, vigente, egreso
Notas de Crédito Recibidas (Vigentes) recibidas, vigente, egreso

Buen día, estoy buscando la forma de filtrar por Metodo Pago sin embargo a nivel general Attachments y Transaction no veo que ofrezcan cómo etiqueta de Keywords PUE o PPD si no hasta hacer la consulta específica por transaction o Attachment, ¿existe algúna forma de identificarlas fácilmente?

¡Hola @james966 bienvenido al foro de la comunidad de Paybook Syncfy!

Actualmente, no tenemos como keywords el método de pago como PUE y PPD, pero nos parece una idea increíble incluirlas, vamos a analizar la factibilidad de hacerlo realidad.

¡Saludos!

Excelente, nos será de mucha utilidad tener ese tipo de filtrado para nuestra organización. Estaré pendiente si en algún futuro se libera esta funcionalidad. ¡Saludos!

Hola @james966, con mucho gusto te compartimos que los keywords PUE y PDD ya se encuentran disponibles para filtrar las transacciones por estos keywords.

Sin embargo, la funcionalidad no es retroactiva y solo aplica para las transacciones creadas a partir de ahora.

Esperamos que les sea de mucha utilidad :raised_hands: