XSA - Manual del API

Legales

Queda estrictamente prohibida la reproducción total o parcial de este documento, por cualquier medio y para cualquier fin, sin la autorización previa y por escrito de Tralix México, S. de R.L. de C.V.

Este documento y su contenido pueden incluir, entre otros, marcas registradas, nombres comerciales, logotipos, avisos comerciales, diseños industriales y demás elementos protegidos por las leyes de propiedad industrial e intelectual. Todos estos signos distintivos son propiedad exclusiva de Tralix México, S. de R.L. de C.V., y están legalmente protegidos.

El acceso, posesión o consulta de este documento no otorga, en ningún caso, licencia ni derecho alguno para usar, reproducir, distribuir, modificar o explotar, total o parcialmente, los elementos distintivos de Tralix México. Cualquier uso no autorizado constituirá una infracción a la normativa aplicable y podrá dar lugar al ejercicio de acciones legales.

Tralix México se reserva el derecho de modificar, sin previo aviso, las especificaciones, características o alcances de sus productos y servicios.

Introducción

El Consorcio World Wide Web (W3C) es una comunidad internacional donde las organizaciones Miembro desarrollan estándares Webs, y han definido los Web Services como sistemas de software creados para soportar una interacción interoperable equipo a equipo sobre una red.

Los Web Services suelen ser APIs Web que pueden ser accedidos dentro de una red (principalmente Internet) y son ejecutados en el sistema donde residen. El estilo de arquitectura que hemos utilizado es el REST (Representational State Transfer), de tal manera que los servicios web deben cumplir con los siguientes principios:

  • Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la información necesaria para comprender la petición. Por lo que ni el cliente ni el servidor necesitan recordar ningún estado de las comunicaciones entre mensajes. Sin embargo, en la práctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el estado de la sesión (algunas de estas prácticas, como la reescritura de URLs, no son permitidas por REST).
  • Un conjunto de operaciones bien definidas que se aplican a todos los recursos de información: HTTP en sí define un conjunto pequeño de operaciones, las más importantes son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se equiparan a las operaciones CRUD en bases de datos (ABMC: Alta, Baja, Modificación y Consulta) que se requieren para la persistencia de datos, aunque POST no encaja exactamente en este esquema.
  • Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso es direccionable únicamente a través de su URI.
  • El uso de hipermedios, tanto para la información de la aplicación como para las transiciones de estado de la aplicación: la representación de este estado en un sistema REST son típicamente HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional.
Cliente/Servidor 

Como servicios web, son cliente servidor y definen una interfaz de comunicación entre ellos, separando completamente las responsabilidades entre ambas partes.

Sin estado

Son servicios web que no mantienen estado asociado al cliente. Cada petición que se realiza a ellos es completamente independiente de la siguiente. Todas las llamadas al mismo servicio serán idénticas.

Caché

El contenido de los servicios web REST se puede cachear de tal forma que, una vez realizada la primera petición al servicio, el resto puedan apoyarse en el caché si fuera necesario.

Servicios Uniformes

Todos los servicios REST compartirán una forma de invocación y métodos uniforme utilizando los métodos GET, POST, PUT y DELETE.

Arquitectura en capas

Todos los servicios REST están orientados hacia la escalabilidad y un cliente REST no será capaz de distinguir entre si está realizando una petición directamente al servidor, o se lo está devolviendo un sistema de cachés intermedio; o, por ejemplo, existe un balanceador que se encarga de redirigirlo a otro servidor.

 

Manual de Usuario - API CFDIs y Retenciones

CFDI

Puerto asignado para los servicios: 9050

Consulta de tipos de CFDs
URL

/<keyEmpresa>/tiposCfds

Parámetros requeridos El parámetro obligatorio es el keyEmpresa
Parámetros/filtros opcionales N/A
Método http GET
Descripción detallada Regresa el Id (encriptado), nombre, serie, idSucursal (encriptado), nómina (boleano) de todos los tipos de CFDs con los que cuenta la empresa en formato json.
Notas

N/A

Códigos respuesta/errores

200 - Ok

204 - No Content - No hay tipos de CFDs

401 - Not Found -  No existe la keyEmpresa

Ejemplo

https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/tiposCfds

Ejemplo respuesta (código 200)

[{"id":"d18bb0158356449c31e72cb69e642b31","nombre":"generacion","serie":null,"idSucursal":"6ac9a2c315480d5cc5534c7e58caee5a","nomina":false},{"id":"8e327ff08a2eec8c760a91fbf08f636e","nombre":"nomina","serie":"B","idSucursal":"6ac9a2c315480d5cc5534c7e58caee5a","nomina":false}]

Consulta de sucursales
URL /<keyEmpresa>/sucursales
Parámetros requeridos El parámetro obligatorio es el keyEmpresa
Parámetros/filtros opcionales N/A
Método http GET
Descripción detallada Regresa el idSucursal, Nombre y TipoSucursal en formato json de todas las sucursales de la empresa.
Notas El parámetro Id es el Id de la sucursal.
Códigos respuesta/errores 200 - Ok
204 - No Content - No hay sucursales
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa | No existe el Id de la sucursal
Ejemplo https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/sucursales
Ejemplo respuesta (código 200) [{"idSUCURSAL":"6ac9a2c315480d5cc5534c7e58caee5a","NOMBRE":"Actver Pruebas","TIPOSUCURSAL":"MATRIZ"}]
Consulta de CFDI
URL /<keyEmpresa>/cfdis
Parámetros requeridos Al menos uno de los filtros debe ser aplicado
Parámetros/filtros opcionales

idSucursal (Encriptado)
rfc (del receptor)
razonSocial (del receptor)
fecha (formato yyyy-MM-dd)
fechaInicial (formato yyyy-MM-dd)
fechaFinal (formato yyyy-MM-dd)

serie
folioEspecifico
folioInicial
folioFinal
status
uuid (Si es una lista separado por coma cada UUID, ver ejemplo)
nombreArchivo
monto (BigDecimal)
montoInicial (BigDecimal)
montoFinal (BigDecimal)
pageSize
pageNumber

Método http GET
Descripción detallada Regresa: idSucursal (Encriptado), rfc (del receptor), razonSocial (del receptor), fecha (YYYY-MM-DD hh:mm:ss.s) , folio, status, UUID, monto (BigDecimal), idCfd (Encriptado), serie, subtotal (BigDecimal), descuento (BigDecimal), tipoMoneda, tipoCambio (BigDecimal), iva (BigDecimal), fechaCancelacion (YYYY-MM-DD hh:mm:ss.s), tienePDF (Boleano), pedimento, fechaPedimento (pueden venir varias fechas ), aduana, pdfAndXmlDownload (link para descargar XML y pdf), pdfDownload (link para descargar el pdf), xmlDownload (link para descargar el xml), cancellCfdi (link para cancelar el cfdi) en formato json de todas los CFDIs de la empresa (de no existir el filtros) excepto nóminas
Notas El formato para escribir la fecha no acepta horas.
El pageSize por defecto es 50 y como máximo puede ser 100.
En los headers están los links de paginación de la siguiente serie de documentos si estos sobrepasan los 50 máximos.
Es posible jugar con los parámetros para hacer filtrados más detallados.
Códigos respuesta/errores 200 - Ok
204 - No Content - No existen CFDI
401 - Not Found - No existe la keyEmpresa
Ejemplo Ejemplo con UUID #1
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis?uuid=9d8b7b0f-2aa6-47d7-8b45-d3abf26f57d1,c23a6470-9be2-4241-8cfa-fef55525c80f
Ejemplo con FECHA #2
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis?fecha=2014-06-30
Ejemplo respuesta (código 200) 

[{"66a673fbc55109153b7d684ed56b3b63","serie":"","subtotal":"99.090000","descuento":"9999.009000","tipoMoneda":"USD","tipoCambio":"12.5014","iva":"1000008.180000","fechaCancelacion":"","tienePDF":"true","pedimento":"","fechaPedimento":"","aduana":"","pdfAndXmlDownload":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=XML_PDF","pdfDownload":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi= 66a673fbc55109153b7d684ed56b3b63&representacion=PDF","xmlDownload":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi= 66a673fbc55109153b7d684ed56b3b63&representacion=XML"}]

Consulta de CFDIs de nómina
URL

/<keyEmpresa>/cfdisNomina

Parámetros requeridos Al menos debe estar aplicado uno de los parámetros disponibles
Parámetros/filtros opcionales idSucursal (Encriptado)
rfc (del receptor)
razonSocial (del receptor)
fecha (formato yyyy-MM-dd)
fechaInicial (formato yyyy-MM-dd)
fechaFinal (formato yyyy-MM-dd)
folioEspecifico
folioInicial
folioFinal
status
nombreArchivo
uuid (Si es una lista separado por coma cada UUID, ver ejemplo)
monto (BigDecimal)
montoInicial (BigDecimal)
montoFinal (BigDecimal)
pageSize
pageNumber
Método http GET
Descripción detallada Regresa: idSucursal (Encriptado), rfc (del receptor), razonSocial (del receptor), fecha (YYYY-MM-DD hh:mm:ss.s) , folio, status, UUID, monto (BigDecimal), idCfd (Encriptado), serie, subtotal (BigDecimal), descuento (BigDecimal), tipoMoneda, tipoCambio (BigDecimal), iva (BigDecimal), fechaCancelacion (YYYY-MM-DD hh:mm:ss.s), tienePDF (Boleano), pedimento, fechaPedimento (pueden venir vairias fechas ), aduana, pdfAndXmlDownload (link para descargar XML y pdf), pdfDownload (link para descargar el pdf), xmlDownload (link para descargar el xml), cancellCfdi (link para cancelar el cfdi) en formato json de todas las nóminas de la empresa (de no existir el filtros)
Notas El formato para escribir la fecha no acepta horas.
El pageSize por defecto es 50 y como máximo puede ser 100.
En los headers están los link de paginación de la siguiente serie de documentos si estos sobrepasan los 50 máximos.
Es posible jugar con los parámetros para hacer filtrados más detallados.
Códigos respuesta/errores 200 - Ok
204 - No Content - No existen CFDI de nómina
401 - Not Found - No existe la keyEmpresa
Ejemplo Ejemplo con UUID #1
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdisNomina?uuid=97c05608-58aa-4087-886d-82a69a86bc98
Ejemplo con FECHA #2
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdisNomina?fecha=2014-06-18
Ejemplo respuesta (código 200)

[{"66a673fbc55109153b7d684ed56b3b63","serie":"","subtotal":"99.090000","descuento":"9999.009000","tipoMoneda":"USD","tipoCambio":"12.5014","iva":"1000008.180000","fechaCancelacion":"","tienePDF":"true","pedimento":"","fechaPedimento":"","aduana":"","pdfAndXmlDownload":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=XML_PDF","pdfDownload":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi= 66a673fbc55109153b7d684ed56b3b63&representacion=PDF","xmlDownload":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi= 66a673fbc55109153b7d684ed56b3b63&representacion=XML"}]

Generación de CFDI
URL /<keyEmpresa>/cfdis
Parámetros requeridos idTipoCfd (Encriptado)
idSucursal (Encriptado)
nombre (nombre del archivo fuente opcional)
archivoFuente (El parámetro es el texto contenido del archivo fuente) de acuerdo al conector/adaptador configurado
Parámetros/filtros opcionales N/A
Método http PUT
Descripción detallada Regresa: idSucursal (Encriptado), rfc (del receptor), razonSocial (del receptor), fecha (YYYY-MM-DD hh:mm:ss.s) , folio, status, UUID, monto (BigDecimal), idCfd (Encriptado), serie, subtotal (BigDecimal), descuento (BigDecimal), tipoMoneda, tipoCambio (BigDecimal), iva (BigDecimal), fechaCancelacion (YYYY-MM-DD hh:mm:ss.s), tienePDF (Boleano), pedimento, fechaPedimento (pueden venir vairias fechas ), aduana, pdfAndXmlDownload (link para descargar XML y pdf), pdfDownload (link para descargar el pdf), xmlDownload (link para descargar el xml), cancellCfdi (link para cancelar el cfdi) en formato json del CFDI generado.
Notas De existir un problema en el proceso del CFDI se regresan los errores de generación que se tuvieron.
ES IMPORTANTE MENCIONAR que el contenido del documento a emitir se colocar en el Request Payload en estructura JSON
En los headers se debe poner: "Content-Type: application/json"
Se debe incluir el salto de línea entre registros utilizando “\n” Ejemplo: |00|idcfd|FAC|\n
Códigos respuesta/errores 200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa
Ejemplo https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis
{"idTipoCfd":"d18bb0158356449c31e72cb69e642b31","idSucursal":"6ac9a2c315480d5cc5534c7e58caee5a","nombre":"prueba.txt","archivoFuente":"|00|idcfd|FAC|\n01|1|||20140630T00:00:00|99.09|9999.09|||9999.009||Noventa y nueve billones novecientos noventa y nueve mil novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve 90\/10000000|USD|12.5014|REFERENCIA XXXAAAXXX|Primera Observación|Segunda Observación|Tercera Observación|\n02|PAGO EN UNA SOLA EXHIBICIÓN|10% DE INTERÉS SI NO SE PAGA ANTES DEL 05-AGOSTO-2010|CHEQUE|2010-08-05|EFECTOS FISCALES AL PAGO|\n03|01|AAA010101AAA|PATITO, S.A. DE C.V.|MÉXICO|AVENIDA CALLE |S\/N|INT. 1|COL. COLONIA|MÉXICO|REFERENCIA FRENTE AL OXXO|CUAJIMALPA|ESTADO DE MÉXICO|06860|4424876399|\n05|405010|802011|3|BOMBA MOLOTOV|150.00|450.00|PZA|Categoría 5e|205010|\n05|405011|802012|1|DISFRAZ DE CORRECAMINOS|2368231872779.000009|884346835174.000009|PZA|Categoría 5e|205011|\n05|405012|802013|10|COMIDA DE CORRECAMINOS|39.00|390.00|KG|Categoría 5e|205010|\n05|405013|802014|1|LIGA DE HULE GIGANTE|378.00|378.00|PZA|Categoría 5e|205011|\n06|IVA|16.00|9.09|\n07|IVA|58.58|\n06|IVA|16.00|999999.09|\n07|IVA|58.58|\n08|405010|APTO INTL DE CIUDAD DE MEXICO|2010-06-29|548984124578124||\n08|405011|APTO INTL DE CIUDAD DE MEXICO|2010-06-29|654651456987452||\n99|15||"}
Ejemplo respuesta (código 200) "uuid": "3D5DAEF4-FE52-44A5-9C82-84B6B293EC7E",
"fecha": "2020-05-23 17:09:00.0",
"serie": "D01",
"folio": "1000",
"rfc": "OIAD8404189S3",
"iva": "134.390000",
"monto": "974.390000",
"descuento": "0.000000",
"subtotal": "840.000000",
"tipoCambio": "1.0000",
"tipoMoneda": "MXN",
"idCfd": "60014b09e2d75d1ac1260b7c4e780c00",
"idSucursal": "0dd6aebbea85662fd2fe2f76ce4258b3",
"status": "ALMACENADO",
"produccion": true,
"fechaCancelacion": "",
"tienePDF": "true",
"pedimento": "",
"fechaPedimento": "",
"aduana": "",
"pdfAndXmlDownload": "/03317bd7-c60d-434f-958d-65344238e75f/descargasCfdi?idCfdi=60014b09e2d75d1ac1260b7c4e780c00&produccion=true&representacion=XML_PDF",
"pdfDownload": "/03317bd7-c60d-434f-958d-65344238e75f/descargasCfdi?idCfdi=60014b09e2d75d1ac1260b7c4e780c00&produccion=true&representacion=PDF",
"xmlDownload": "/03317bd7-c60d-434f-958d-65344238e75f/descargasCfdi?idCfdi=60014b09e2d75d1ac1260b7c4e780c00&produccion=true&representacion=XML"
}
Descarga del CFDI
URL /<keyEmpresa>/descargasCfdi
Parámetros requeridos

Al menos debe estar aplicado uno de los parámetros disponibles

Parámetros/filtros opcionales rfc (del receptor)
razonSocial (del receptor)
fecha (formato yyyy-MM-dd)
fechaInicial (formato yyyy-MM-dd)
fechaFinal (formato yyyy-MM-dd)
serie
folioEspecifico
folioInicial
folioFinal
idSucursal (Encriptado)
nombreArchivo
uuid (Si es una lista separado por comas cada UUID, ver ejemplo)
status
pageSize
pageNumber
representacion: este puede ser XML o PDF o XML_PDF o ACUSE o ACUSE_PDF.
Método http GET
Descripción detallada 1.- Si se solicita XML y PDF o varios documentos se devolverá un archivo tipo ZIP.
2.- Si se solicita solo un CFDI, dependiendo del parámetro de representación se devolverá UN archivo XML o PDF dentro de un ZIP.
3.- Si no se incluye el parámetro se devolverá XML y PDF dentro de un zip.
Notas El pageSize por defecto es 50 y como máximo puede ser 100.
Contemplar el tiempo de construcción del PDF (600 PDF x minuto).
En los headers están los link de paginación de la siguiente serie de documentos si estos sobrepasan los 50 máximos.
Es posible jugar con los parámetros para hacer filtrados más detallados.
Códigos respuesta/errores

200 - Ok

204 - No Content - No existen CFDI
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa | No hay CFDIs para descargar

Ejemplo Ejemplo #1
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?representacion=XML&pageSize=1
Ejemplo #2
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?uuid=9d8b7b0f-2aa6-47d7-8b45-d3abf26f57d1,dabcea47-2e61-4cdb-b71e-e43c0d108ae3
Ejemplo respuesta (código 200) Ejemplo #1
(Se descarga el archivo de tipo XML (Este no puede ser de tipo Nómina))
Ejemplo #2
(Se descarga un documento de tipo ZIP, el cual contiene los archivos XML y PDF del CFDI correspondiente al UUID indicando en la URL)
Descarga de nómina
URL

/<keyEmpresa>/descargasCfdiNominas

Parámetros requeridos Al menos uno de los filtros, no puede ir vacío
Parámetros/filtros opcionales rfc (del receptor)
razonSocial (del receptor)
fecha (formato yyyy-MM-dd)
fechaInicial (formato yyyy-MM-dd)
fechaFinal (formato yyyy-MM-dd)
serie
folioEspecifico
folioInicial
folioFinal
idSucursal (Encriptado)
nombreArchivo
uuid (Si es una lista separado por comas cada UUID, ver ejemplo)
status
pageSize
pageNumber
representacion: este puede ser XML o PDF o XML_PDF.
Método http GET
Descripción detallada 1.- Si se solicita XML y PDF o varios documentos se devolverá un archivo tipo ZIP.
2.- Si se solicita solo un CFDI, dependiendo del parámetro de representación se devolverá UN archivo XML o PDF.
3.- Si no se incluye el parámetro se devolverá XML y PDF.
Notas El pageSize por defecto es 50 y como máximo puede ser 100.
Contemplar el tiempo de construcción del PDF (600 PDF x minuto).
Si se desea solo descargar el PDF poner "xml=false" en los parámetros.
Si se desea solo descargar el XML poner "pdf=false" en los parámetros.
En los headers están los link de paginación de la siguiente serie de documentos si estos sobrepasan los 50 máximos.
Es posible jugar con los parámetros para hacer filtrados más detallados.
Códigos respuesta/errores

200 - Ok

204 - No Content - No existen CFDI Nómina
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa | No hay CFDIs para descargar

Ejemplo Ejemplo #1
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdiNominas?representacion=XML &pageSize=1
Ejemplo #2
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdiNominas?uuid=97c05608-58aa-4087-886d-82a69a86bc98
Ejemplo respuesta (Código 200) Ejemplo #1
Se descarga un documento de tipo XML (Este solo puede ser de tipo Nómina))
Ejemplo #2
(Se descarga un documento de tipo ZIP, el cual contiene los archivos de tipo XML y PDF del CFDI correspondiente al UUID indicado en la URL).
Consulta del número de CFDIs generados
URL

/<keyEmpresa>/cfdis/consumo/generacion

Parámetros requeridos {fecha (yyyy-MM-dd)}
{fechaInicial (yyyy-MM-dd), fechaFinal (yyyy-MM-dd)}
Parámetros/filtros opcionales N/A
Método http GET
Descripción detallada Regresa la cantidad de CFDIs generados en la fecha/s indicada/s
Notas Forzosamente debe de haber una fecha específica (fecha) o un rango de fechas (fechaInicial, fechaFinal).
Códigos respuesta/errores 200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa
Ejemplo https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consumo/generacion?fecha=2014-07-02
Ejemplo respuesta (código 200) 3525 (la respuesta es numérica)
Consulta del número de CFDIs cancelados
URL /<keyEmpresa>/cfdis/consumo/cancelacion
Parámetros requeridos {fecha (yyyy-MM-dd)}
{fechaInicial (yyyy-MM-dd), fechaFinal (yyyy-MM-dd)}
Parámetros/filtros opcionales N/A
Método http GET
Descripción detallada Regresa la cantidad de CFDIs cancelados en la fecha/s indicada/s
Notas Forzosamente debe de haber una fecha específica (fecha) o un rango de fechas (fechaInicial, fechaFinal).
Códigos respuesta/errores

200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa

Ejemplo https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consumo/cancelacion?fechaInicial=2013-04-01&fechaFinal=2014-01-01
Ejemplo respuesta (código 200) 0 (la respuesta es numérica)

 

Cancelación de CFDI múltiple
URL /<keyEmpresa>/cfdis/cancelar
Parámetros requeridos UUID (Lista de UUIDs en json, ver ejemplo) Solo aplica para cuando es motivo diferente a 01
Parámetros/filtros opcionales N/A
Método http POST
Descripción detallada Regresa los UUIDs, status (Numero) y descripciones de cada cfdi cancelado en formato json.
Notas En los headers se debe poner: "Content-Type: application/json"
Códigos respuesta/errores

200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa

500 - No se puede cancancelar los comprobantes con los siguientes UUID, verifique que sean válidos y que pertenezcan a la empresa.

Ejemplo https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelar?

data para el motivo 01:

{
"motivo": "01",
"folioSustitucion": "B5E6897B-40A7-4DEA-ADD2-F417B32EE908",
"uuid": [
"B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
]
}

data para el motivo 02,03 y 04:

{
"motivo": "02",
"uuid": [
"B5E6897B-40A7-4DEA-ADD2-F417B32EE909", "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
]
}

Ejemplo respuesta (código 200) [{"uuid":"A07F61BD-4E1D-E504-9F3F-902DA4D622B3","status":"201","descripcion":"UUID Cancelado"}, {"uuid":"d5cdbe22-b117-4ca7-bfbb-ddef8e22b0f4","status":"201","descripcion":"UUID Cancelado"}]
Cancelación de CFDI múltiple URL
URL /<keyEmpresa>/cfdis/cancelarUrl
Parámetros requeridos UUID (Lista de UUIDs en json, ver ejemplo) Solo aplica para cuando es motivo diferente a 01
Parámetros/filtros opcionales N/A
Método http POST
Descripción detallada Regresa los UUIDs, status (Numero) y descripciones de cada cfdi cancelado en formato json.
Notas En los headers se debe poner: "Content-Type: application/json"
Códigos respuesta/errores

200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa

500 - No se puede cancancelar los comprobantes con los siguientes UUID, verifique que sean válidos y que pertenezcan a la empresa.

Ejemplo https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelar?

data para el motivo 01:

{
"motivo": "01",
"folioSustitucion": "B5E6897B-40A7-4DEA-ADD2-F417B32EE908",
"uuid": [
"B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
]
}

data para el motivo 02,03 y 04:

{
"motivo": "02",
"uuid": [
"B5E6897B-40A7-4DEA-ADD2-F417B32EE909", "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
]
}

Ejemplo respuesta (código 200) [{
"uuid":"A07F61BD-4E1D-E504-9F3F-902DA4D622B3",
"status":"201",
"descripcion":"UUID Cancelado",
"URLAcuse_XML":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=ACUSE",
"URLAcuse_PDF":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=ACUSE_PDF"
}]
Motivo de Cancelación
Clave Descripción
01 Comprobante emitido con errores con relación
02 Comprobante emitido con errores sin relación
03 No se llevó a cabo la operación
04 Operación nominativa relacionada en una factura global
Códigos de Cancelación
Código Descripción
201 Petición aceptada.

202

Folio Fiscal Previamente Cancela
203 Folio Fiscal No Correspondiente al Emisor
204 Folio Fiscal No Aplicable a Cancelación
205 Folio Fiscal No Existente
206 UUID no corresponde a un CFDI del Sector Primario
207 No se especificó el motivo de cancelación o el motivo no es válido
208 Folio Sustitución inválido
209 Folio Sustitución no requerido

210

La fecha de solicitud de cancelación es mayor a la fecha de declaración

211

La fecha de solicitud de cancelación límite para factura global
212 Relación no válida o inexistente
300 Usuario No Válido
301 XML mal formado.
302 Sello mal formado o inválido.
303 Sello no corresponde a emisor o caduco.
304 Certificado revocado o caduco.
305 Certificado Inválido
306 El certificado no es de tipo CSD.
307 El CFDI contiene un timbre previo.
308 Certificado no expedido por el SAT.
309 Certificado Inválido
310 CSD Inválido
402 RFC del emisor no se encuentra en el régimen de contribuyentes.
407 Error en el servicio de cancelación del SAT.

800

NO_ENCONTRADO
801 NO_CANCELA BLE
802 EN_PROCESO
901 El cliente con el CustomerKey proporcionado no es válido.
902 El RFC no está registrado como cliente.
903 El RFC se encuentra inactivo por el momento.
904 No cuenta con licencia para realizar peticiones.
905 El RFC no pertenece al cliente con el CustomerKey que proporcionó.
906 Ha expirado su periodo de pruebas.
910 No se puede determinar el cliente a partir del RFC.
998 Error en el cliente.
999 Error en el servidor.

Consulta de cancelación
URL /<keyEmpresa>/cfdis/consultaCancelacion
Parámetros requeridos El parámetro obligatorio es el UUID en este caso, en formato json.
Parámetros/filtros opcionales N/A
Método http POST
Descripción detallada

Regresa el UUID, status del CFDI.

Notas N/A
Códigos respuesta/errores 200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa
Ejemplo

https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion{"uuid":["3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"]}

Ejemplo respuesta (código 200) [{"uuid":"3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A ","status":"CANCELABLE_SIN_ACEPTACION"}]
Status que regresa el API

VIGENTE
CANCELABLE_CON_ACEPTACION
CANCELABLE_SIN_ACEPTACION
NO_CANCELABLE
NO_ENCONTRADO
EN_PROCESO
CANCELADO_PLAZO_VENCIDO
CANCELADO_CON_ACEPTACIÓN
CANCELADO_SIN_ACEPTACIÓN
SOLICITUD_RECHAZADA


Retenciones

Consulta tipos de retenciones
URL

/<keyEmpresa>/tiposCfdsRetenciones  

Parámetros requeridos

El parámetro obligatorio es el keyEmpresa

Parámetros/filtros opcionales pageSize (min = 1, max = 100, default = 50)
pageNumber (min = 0, default = 0)
Método http GET
Descripción detallada Regresa el id del tipo de retención, el nombre de la retención y el id de la sucursal a la cual pertenece la retención.
Notas

N/A

Códigos respuesta/errores

200 - Ok
204 - No Content - No hay tipos de CFDI de retención
401 - Not Found - No existe la keyEmpresa

Ejemplo

https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/tiposCfdsRetenciones

Ejemplo respuesta (código 200)

[{"idTipoCfdRetencion":"51bcbd36d5f0cbf971e3cbb0bea7567a","nombre":"Retencion","idSucursal":"2575797c4c7933f6f067e054240fc48b","produccion":true}]

Consulta CFDI de retenciones
URL /<keyEmpresa>/cfdisretencion
Parámetros requeridos Al menos uno de los filtros, no puede ir vacío
Parámetros/filtros opcionales

pageSize (min = 1, max = 100, default = 50)
pageNumber (min = 0, default = 0)
idSucursal (id de la sucursal, encriptado)
rfcReceptor
razonSocial (del receptor)
fecha (yyyy-mm-dd ó yyyy-MM-dd h:mm:ss)
fechaInicial (yyyy-mm-dd ó yyyy-MM-dd h:mm:ss)
fechaFinal (yyyy-mm-dd ó yyyy-MM-dd h:mm:ss)
status ('ACTIVO','CANCELADO')
uuid

nombreArchivo (nombre archivo fuente)
monto
montoInicial
montoFinal

Método http GET
Descripción detallada Regresa el id del cfdi de retención, el id de la sucursal de a retención, el RFC del receptor, la razón social del receptor, la fecha de emisión del documento, el status del documento, el uuid del documento, el monto, la fecha de cancelacion del documentos (si está cancelado), la liga de descarga del documento en sus versiones XML y PDF, liga de descarga del documento en formato XML, liga de descarga del documento en PDF, la liga con la que se podría cancelar el documento.
Notas Regresa el id del tipo de retención, el nombre de la retención y el id de la sucursal a la cual pertenece la retención
Códigos respuesta/errores 200 - Ok
204 - No Content - No existen CFDI de retención
401 - Not found - No existe la keyEmpresa
Ejemplo https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion?pageSize=50&pageNumber=1&rfcReceptor=MURR750516812
Ejemplo respuesta (código 200)

[
"idCfdiRetencion": "1dccc6e57b1d443c3e1a1ffd5095f382",
"idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
"rfcReceptor": "MURR750516812",
"razonSocial": "Razón Social Nacional",
"fecha": "2015-01-24T01:18:22",
"status": "CANCELADO",
"uuid": "2310EABB-5F39-4694-8FBD-1EA0842C8113",
"monto": "3252.500000",
"fechaCancelacion": "",
"pdfAndXmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga?uuid=2310EABB-5F39-4694-8FBD-1EA0842C8113&representacion=XML_PDF",
"pdfDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/pdf?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed", "xmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/xml?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed"}]

Descarga CFDI de retención
URL /<keyEmpresa>/cfdisretencion/descarga? descargasCfdi descargasCfdi descargasCfdipageSize=x&pageNumber=x
Parámetros requeridos Al menos uno de los filtros, no puede ir vacío
Parámetros/filtros opcionales pageSize (min = 1, max = 100, default = 50)
pageNumber (min = 0, default = 0)
idSucursal (id de la sucursal, encriptado)
rfcReceptor
razonSocial (razón social del receptor)
fecha (yyyy-mm-dd ó yyyy-MM-dd h:mm:ss)
fechaInicial (yyyy-mm-dd ó yyyy-MM-dd h:mm:ss)
fechaFinal (yyyy-mm-dd ó yyyy-MM-dd h:mm:ss)
status ('ACTIVO','CANCELADO')
uuid

nombreArchivo (nombre archivo fuente)
monto
montoInicial
montoFinal
representación (XML o PDF, XML_PDF); si no se especifica se toma XML como default
Método http GET
Descripción detallada Regresa el archivo zip teniendo como contenido, los documentos resultantes de la consulta realizada.
Notas N/A
Códigos respuesta/errores

200 - Ok
204 - No Content - No hay CFDI de retención
400 - Bad Request - Parámetros incorrectos

401 - Not found - No existe la keyEmpresa

Ejemplo https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion/descarga?pageSize=50&pageNumber=1&rfcReceptor=AAA010101AAA
Ejemplo respuesta (código 200) El ZIP
Content-Type=application/zip

Content-Disposition=attachment;
lename="1441221373984.zip"
Descarga CFDI retenciones XML
URL

/<keyEmpresa>/cfdisretencion/descarga/xml

Parámetros requeridos El parámetro obligatorio es el keyEmpresa y el uuid (encriptado)
Parámetros/filtros opcionales N/A
Método http GET
Descripción detallada Regresa el archivo XML del cfdi solicitado
Notas N/A
Códigos respuesta/errores 200 - Ok
204 - No Content - No existen CFDI de retención
400 - Bad Request - Parámetros incorrectos
401 - Not found - No existe la keyEmpresa
Ejemplo https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion/descarga/xml?uuid=7e00413dcf1b605e189b9a91972
Ejemplo respuesta (código 200) El XML

Content-Type=application/xml

Content-Disposition=attachment;
lename="D095EF45-0465-4BBD-8F74-DE9576B909CA.xml"
Descarga CFDI retenciones PDF
URL /<keyEmpresa>/cfdisretencion/descarga/pdf
Parámetros requeridos

El parámetro obligatorio es el keyEmpresa y el uuid (encriptado)

Parámetros/filtros opcionales N/A
Método http GET
Descripción detallada Regresa el archivo PDF del cfdi solicitado
Notas N/A
Códigos respuesta/errores 200 - Ok
204 - No Content - No existen CFDI de retención
400 - Bad Request - Parámetros incorrectos
401 - Not found - No existe la keyEmpresa
Ejemplo https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion/descarga/pdf?uuid=7e00413dcf1b605e189b9a91972
Ejemplo respuesta (código 200) El PDF

Content-Type=application/pdf

Content-Disposition=attachment;
lename="D095EF45-0465-4BBD-8F74-DE9576B909CA.pdf"
Generación de retenciones
URL /<keyEmpresa>/cfdisretencion
Parámetros requeridos El parámetro obligatorio es el keyEmpresa, el id del tipo de retención, id de la sucursal a la que pertenece el tipo de retención y finalmente el contenido del archivo fuente de acuerdo al layout configurado.
Parámetros/filtros opcionales N/A
Método http POST
Descripción detallada

Generación exitosa
Devuelve el id del cfdi de retención que se ha emitido, el id de la sucursal en la que se emitió, el RFC del receptor, la razón social del receptor, la fecha de emisión, el estatus del documento, el uuid, el monto, la fecha de cancelacion(aunque en este caso de emisión, siempre se encontrará vacío este campo), la ligas de descarga para el XML y PDF juntos, para el XML (individual), PDF (individual) y finalmente la liga de cancelacion (con la que se podría cancelar el documento posteriormente)

Error
Este error tiene que ver con la generación del CFDI de retención y no con el error que podría ocurrir al consumir este servicio.
En este caso se devolverá el error que el motor de generación de la solución arroja.

Notas Para separar las líneas del contenido del archivo fuente se deberá utilizar /n
Códigos respuesta/errores 200 - Ok
400 - Bad Request - Parámetros incorrectos
401 - Not found - No existe la keyEmpresa
Ejemplo https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdisretencion?
data: {"idTipoCfdRetencion":"332c2994597401415717c9de2e21d207",
"idSucursal":"6ac9a2c315480d5cc5534c7e58caee5a",
"archivoFuente":"RET00|1.0|12345|2015-09-02T00:00:00-06:00|03|DescRetenc|\nRET01|BADD110313HCMLNS09|\nRET02|Nacional|\nRET020|MURR750516812|Razón Social Nacional|BADD110313HCMLNS09|\nRET03|1|1|2015|\nRET04|3252.5|0.00|0.00|0.00|\nRET040|0.00|01|0.00|Pago definitivo|\nRET99|" }
Ejemplo respuesta (código 200)

[
"idCfdiRetencion": "1dccc6e57b1d443c3e1a1ffd5095f382",
"idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
"rfcReceptor": "MURR750516812",
"razonSocial": "Razón Social Nacional",
"fecha": "2015-01-24T01:18:22",
"status": "CANCELADO",
"uuid": "2310EABB-5F39-4694-8FBD-1EA0842C8113",
"monto": "3252.500000",
"fechaCancelacion": "",
"pdfAndXmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga?uuid=2310EABB-5F39-4694-8FBD-1EA0842C8113&representacion=XML_PDF",
"pdfDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/pdf?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed", "xmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/xml?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed"}]

Cancelación de retenciones
URL /<keyEmpresa>/cfdisretencion/cancelar
Parámetros requeridos keyEmpresa y los UUIDs de los documentos a cancelar
Parámetros/filtros opcionales N/A
Método http POST
Descripción detallada Por cada CFDI de retención cancelado, se devuelve el uuid, el status (código de estatus), el http code y en la descripción el XML del acuse de cancelación
Notas Hasta 500 documentos a cancelar
Códigos respuesta/errores 200 - Ok
401 - Not found - No existe la keyEmpresa
403 - Alguno de los UUIDs proporcionados no se encontró o no pertenece a la empresa
Ejemplo

https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdisretencion/cancelar?
data para el motivo 01:

{
"motivo": "01",
"folioSustitucion": "B5E6897B-40A7-4DEA-ADD2-F417B32EE908",
"uuid": [
"B5E6897B-40A7-4DEA-ADD2-F417B32EE909", "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
]
}

data para el motivo 02,03 y 04:

{
"motivo": "02",
"uuid": [
"B5E6897B-40A7-4DEA-ADD2-F417B32EE909", "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
]
}

Ejemplo respuesta (código 200) [{
"uuid": "DAC5C869-3DC3-41A1-85F3-FE113E7046AF",
"status": 1201,
"httpCode": 200,
"description": " <Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2021-12-15T23:28:06.4819808"RfcEmisor="B&amp;M011127BQ0" WorkProcessId="8e5a0254-babc-4b55-aaa1-9232dc739db0"xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1"><Folios><UUID>0AA0A514-6997-4C1B-8A36-89BB0CB1B265</UUID><EstatusUUID>1201</EstatusUUID><Motivo>01</Motivo><FolioSustitucion>01E53227-38EC-458D-B1D4-08F2B533F98B</FolioSustitucion></Folios><Signature Id="SelloSAT" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>fMuB/Ee3grx4cDFX+GRpnX3ME0l9dLTLdbiYXundyMPS+GOZ1AR2XMtepTSZiD08NzAwF2nFFHWkZOIEU3a4Dw==</DigestValue></Reference></SignedInfo><SignatureValue>D4rC8c5ZK2eXtbJWQ2C6xOTeW3dkPIf6u2+i6DbX1FTXqPkVW1dcm4i+I9GEetpJOfS6pSxGBa152QBPimJBNg==</SignatureValue><KeyInfo><KeyName>30001000000400001215</KeyName><KeyValue><RSAKeyValue><Modulus>nbtVtkPquCMLdpgeClMrTmxzCjyjn8P9YrBlW9jXC/FcXozIYHvzctK1pRxRxLTKlChc9fjluht9ffDfGOWim/4AlTrCiG6om7ItkHbLGMQrABp8qGY+SPmq1xtZ7qbbgoTFCtzP3pN9Z4uSDhdnrF2655sdmDzHJYE9MirNLM4SIdSFsabA31CCAMaWpB4TO6ZmExLp+wUiUyeIFWswc5G5KvmS/lU5tbXLK7zBDDUVjN0K1r/0iaZIZzPMxQcgfgYBrfLGZ3916MkmF28iBk5l1sfNTKS9S445QHKc+6oTP4UDDnjN/K14YWX449BAMxKcelEpjZlBQs1a1eNVcQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo></Signature></Acuse>"
}]
Motivo de Cancelación
Clave Descripción
01 Comprobante emitido con errores con relación
02 Comprobante emitido con errores sin relación
03 No se llevó a cabo la operación
04 Operación nominativa relacionada en una factura global

Consultar los CFDIs cancelados por rango de fechas

La consulta por fecha y rango de fecha solo aplica para los comprobantes cancelados posteriores a la versión 3.64, todo lo que se canceló con una versión anterior no podrá ser consultada.

URL /<keyEmpresa>/cfdis/consultaCancelacion
Parámetros requeridos Al menos un  parámetro, en formato json.
Parámetros/filtros opcionales

uuid

fecha (yyyy-MM-dd)
fechaInicial (yyyy-MM-dd)
fechaFinal (yyyy-MM-dd)

estados

pageSize (min = 1, max = 500, default = 100)
pageNumber (min = 0, default = 0)

Método http POST
Descripción detallada

Regresa el UUID,

Estatus del CFDI.

Notas N/A
Códigos respuesta/errores

200 - Ok

204 - No content
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa

Ejemplo

https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion{"uuid":["3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"]}

Ejemplo respuesta (código 200) [{"uuid":"3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A ","status":"CANCELABLE_SIN_ACEPTACION"}]
Ejemplo respuesta (error)

[{"uuid":"52CE170D-20DB-45B7-84EF-F886537163B1","status":"NO_TRALIX"}]

Parámetros para la consulta de estados

VIGENTE
CANCELABLE_CON_ACEPTACION
CANCELABLE_SIN_ACEPTACION
NO_CANCELABLE
NO_ENCONTRADO
EN_PROCESO
CANCELADO_PLAZO_VENCIDO
CANCELADO_CON_ACEPTACIÓN
CANCELADO_SIN_ACEPTACIÓN
SOLICITUD_RECHAZADA

 

Nota* para poder utilizar los estados estos deben de ir acompañados de fecha o o fechaInicial y fechaFinal

Consultar los CFDIs cancelados indicando las fechas
URL /<keyEmpresa>/cfdis/consultaCancelacionFecha
Parámetros requeridos Al menos un  parámetro, en formato json.
Parámetros/filtros opcionales

uuid

fecha (yyyy-MM-dd)
fechaInicial (yyyy-MM-dd)
fechaFinal (yyyy-MM-dd)

estados

pageSize (min = 1, max = 500, default = 100)
pageNumber (min = 0, default = 0)

Método http POST
Descripción detallada

Regresa el UUID,

Estatus del CFDI.

Fecha de cancelación.

Notas N/A
Códigos respuesta/errores

200 - Ok

204 - No content
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa

Ejemplo

https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion{"uuid":["3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"]}

 

https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacionFecha{"fecha":"2019-10-01","estados":["CANCELADO_SIN_ACEPTACION"]}

Ejemplo respuesta (código 200) [{"uuid":"3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A ","status":"CANCELABLE_SIN_ACEPTACION","fecha":"2020-01-20"}]
Ejemplo respuesta (error)

[{"uuid":"52CE170D-20DB-45B7-84EF-F886537163B1","status":"NO_TRALIX", "fecha": "la fecha de hoy"}]

Parámetros para la consulta de estados

VIGENTE

CANCELABLE_CON_ACEPTACION

CANCELABLE_SIN_ACEPTACION

NO_CANCELABLE

NO_ENCONTRADO

EN_PROCESO

CANCELADO_PLAZO_VENCIDO

CANCELADO_CON_ACEPTACIÓN

CANCELADO_SIN_ACEPTACIÓN

SOLICITUD_RECHAZADA

 

Nota* para poder utilizar los estados estos deben de ir acompañados de fecha o o fechaInicial y fechaFinal.

Consultar los CFDI enviados

La consulta solo aplica para el servicio de Email Rastreable

URL /<keyEmpresa>/emailRastreable/report
Parámetros requeridos Al menos un  parámetro, en formato json.
Parámetros/filtros opcionales

fechaInicial (yyyy-MM-dd)
fechaFinal (yyyy-MM-dd)

tiposCfdi

tipoReporte (OPEN, SEND)

page

Método http POST
Descripción detallada

Regresa el UUID,

Estatus del CFDI.

Notas N/A
Códigos respuesta/errores

200 - Ok

204 - No content
400 - Bad Request - Parámetros incorrectos
401 - Not Found - No existe la keyEmpresa

Ejemplo

 {
"fechaInicial" : "2020-01-01",
"fechaFinal" : "2020-11-19",
"tiposCfdi" : ["cfdi33", "nomina"],
"tipoReporte" : "OPEN",
"page": 1
}

Ejemplo respuesta {
"page": 1,
"lastPage": true,
"reports": [
{
"uuid": "BCB0B52D-9A13-52AC-B432-DDDD29FF15EE",
"serie": "",
"folio": "",
"rfcReceptor": "",
"razonSocial": "",
"monto": "",
"fechaEmision": "",
"tipoCfdi": "baseJhoanProd",
"email": "jose.martinez@tralix.com",
"fecha": "2020-10-23 22:15:52",
"estatus": "OPEN"
}
}
Parámetros para la consulta de estados

fechaInicial: campo tipo fecha con formato es yyyy-MM-dd
fechaFinal: campo tipo fecha con formato es yyyy-MM-dd
tiposCfdi: campo tipo Array
tipoReporte: Campo tipo String, valores posibles "OPEN y "SEND"
page: Campo numérico

 

Nota:

page: indica el número de página
lastPage: indica si es la última página

 

Manual de Usuario - API CFDIs y Retenciones-Copia

1 Introducción

Este manual describe el uso de la API de Tralix para la consulta, generación, descarga y cancelación de CFDIs y CFDIs de Retenciones.

La documentación se encuentra organizada en dos secciones principales:

  • CFDIs: servicios relacionados con la emisión, consulta, descarga y cancelación de CFDIs.
  • Retenciones: servicios para la consulta, descarga, generación y cancelación de CFDIs de retenciones.

El objetivo de esta documentación es proporcionar a los desarrolladores y responsables técnicos una guía clara y estructurada para consumir los servicios de forma correcta, mostrando ejemplos prácticos, parámetros requeridos y códigos de respuesta esperados.


2 CFDIs

2.1 Consulta de tipos de CFDIs

2.1.1 Estructura general de la petición

El servicio se consume mediante una API REST, utilizando el método GET. Regresa el Id (encriptado), nombre, serie, idSucursal (encriptado), nómina (boleano) de todos los tipos de CFDs con los que cuenta la empresa en formato JSON.

2.1.2 Parámetros requeridos

Endpoint

Servicio

Método

URL 

Consulta de CFDIs

GET

/<keyEmpresa>/tiposCfds

Autenticación y Headers

Header Valor esperado
N/A Este servicio no requiere autenticación adicional.

Parámetros

Atributos Uso Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

2.1.3 Ejemplo de petición
GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/tiposCfds
2.1.4 Ejemplo de respuesta

Respuesta exitosa (código 200)

[
{"id":"d18bb0158356449c31e72cb69e642b31","nombre":"generacion","serie":null,"idSucursal":"6ac9a2c315480d5cc5534c7e58caee5a","nomina":false},
{"id":"8e327ff08a2eec8c760a91fbf08f636e","nombre":"nomina","serie":"B","idSucursal":"6ac9a2c315480d5cc5534c7e58caee5a","nomina":false}
]
2.1.5 Códigos de respuesta
Código Descripción
200 OK. Petición exitosa. 
204 No Content - No hay tipos de CFDs
401 Not Found - No existe la keyEmpresa
2.1.6 Consideraciones Técnicas
  • La consulta devuelve todos los tipos de CFDI disponibles para la empresa.

  • El campo id y idSucursal son valores encriptados.


2.2 Consulta de Sucursales

2.2.1 Estructura general de la petición

El servicio se consume mediante una API REST, utilizando el método GET. Regresa el idSucursal, Nombre y TipoSucursal en formato json de todas las sucursales de la empresa.

2.2.2 Parámetros requeridos

Endpoint

Servicio

Método

URL 

Consulta de Sucursales

GET

/<keyEmpresa>/sucursales

Autenticación y Headers

Header Valor esperado
N/A Este servicio no requiere autenticación adicional.

Parámetros

Atributos Uso Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

2.2.3 Ejemplo de petición

Respuesta exitosa (código 200)

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/sucursales
2.2.4 Ejemplo de respuesta
[
  {
    "idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
    "nombre": "Actver Pruebas",
    "tipoSucursal": "MATRIZ"
  }
]
2.2.5 Códigos de respuesta
Código Descripción
200 OK. Petición exitosa. 
204 No Content - No hay sucursales.
400 Bad Request - Parámetros incorrectos.
401 Not Found - keyEmpresa o idSucursal no existen.
2.2.6 Consideraciones Técnicas
  • El parámetro idSucursal siempre se devuelve encriptado.

  • El parámetro Id es el idSucursal.

2.3 Consulta de CFDI

2.3.1 Estructura general de la petición

El servicio de Consulta de CFDI permite obtener información detallada de los comprobantes fiscales digitales (CFDI) emitidos por la empresa. El servicio se consume mediante el método GET y devuelve la información en formato JSON.

Donde:

  • <keyEmpresa> es el identificador único (encriptado) de la empresa en el sistema Tralix.

  • El consumo requiere al menos un filtro como parámetro (por ejemplo: uuid, fecha, rfc, etc.).

Regresa: idSucursal (Encriptado), rfc (del receptor), razonSocial (del receptor), fecha (YYYY-MM-DD hh:mm:ss.s), folio, status, UUID, monto (BigDecimal), idCfd (Encriptado), serie, subtotal (BigDecimal), descuento (BigDecimal), tipoMoneda, tipoCambio (BigDecimal), iva (BigDecimal), fechaCancelacion (YYYY-MM-DD hh:mm:ss.s), tienePDF (Boleano), pedimento, fechaPedimento (pueden venir varias fechas ), aduana, pdfAndXmlDownload (link para descargar XML y pdf), pdfDownload (link para descargar el pdf), xmlDownload (link para descargar el xml), cancellCfdi (link para cancelar el cfdi) en formato json de todas los CFDIs de la empresa (de no existir el filtros) excepto nóminas.

2.3.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de CFDI

GET

/<keyEmpresa>/cfdis

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Importante: Al menos uno de los siguientes parámetros debe incluirse en la petición.

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

idSucursal

Opcional

Identificador de la sucursal (valor encriptado).

rfc

Opcional

RFC del receptor del CFDI.

razonSocial

Opcional

Razón social del receptor.

fecha

Opcional

Fecha (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd).

serie

Opcional

Serie del comprobante.

folioEspecifico

Opcional

Folio específico del comprobante.

folioInicial

Opcional

Folio inicial del rango de búsqueda.

folioFinal

Opcional

Folio final del rango de búsqueda.

status

Opcional

Estatus del CFDI.

uuid

Opcional

UUID o lista separada por comas (ej. uuid1,uuid2).

nombreArchivo

Opcional

Nombre del archivo asociado al CFDI.

monto

Opcional

Monto exacto del CFDI (tipo BigDecimal).

montoInicial

Opcional

Rango de monto inicial (tipo BigDecimal).

montoFinal

Opcional

Rango de monto final (tipo BigDecimal).

pageSize

Opcional

Número de registros por página (default = 50, máximo = 100).

pageNumber

Opcional

Número de página para paginación (por defecto 0).

2.3.3 Ejemplo de petición

Ejemplo 1 – Consulta por UUID

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis?uuid=9d8b7b0f-2aa6-47d7-8b45-d3abf26f57d1,c23a6470-9be2-4241-8cfa-fef55525c80f

Ejemplo 2 – Consulta por Fecha

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis?fecha=2014-06-30
2.3.4 Ejemplo de respuesta

Respuesta exitosa (Código 200)

[
  {
    "idCfdi": "66a673fbc55109153b7d684ed56b3b63",
    "serie": "",
    "subtotal": "99.090000",
    "descuento": "9999.009000",
    "tipoMoneda": "USD",
    "tipoCambio": "12.5014",
    "iva": "1000008.180000",
    "fechaCancelacion": "",
    "tienePDF": "true",
    "pedimento": "",
    "fechaPedimento": "",
    "aduana": "",
    "pdfAndXmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=XML_PDF",
    "pdfDownload": "/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=PDF",
    "xmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=XML"
  }
]
2.3.5 Códigos de respuesta

Código

Descripción

200

OK – Petición procesada correctamente. Se devuelve la información de los CFDI encontrados.

204

No Content – No existen CFDI que cumplan los filtros de búsqueda.

401

Not Found – La keyEmpresa no existe o no es válida.

2.3.6 Consideraciones Técnicas
  • Es obligatorio incluir al menos un filtro en la consulta.

  • El formato de fecha no acepta horas (yyyy-MM-dd).

  • El valor por defecto de pageSize es 50 y el máximo permitido es 100.

  • En los headers de la respuesta se incluyen los links de paginación (siguiente serie de resultados).

  • Es posible combinar los parámetros para realizar filtrados más detallados.

  • No se incluyen CFDI de tipo nómina en los resultados.

  • Los enlaces pdfDownload, xmlDownload y pdfAndXmlDownload permiten descargar los archivos asociados al CFDI.

  • El parámetro uuid admite múltiples valores separados por comas.

  • El campo idSucursal y idCfdi se devuelven en formato encriptado para seguridad de datos.


2.4 Consulta de CFDIs de Nómina

2.4.1 Estructura general de la petición

El servicio Consulta de CFDIs de Nómina permite obtener la información de los comprobantes fiscales digitales por internet (CFDI) relacionados con nómina emitidos por una empresa. Este servicio devuelve los datos de los CFDIs de nómina en formato JSON, permitiendo aplicar filtros para realizar búsquedas específicas según parámetros como fechas, RFC, estatus, montos o UUID. La consulta se realiza mediante una API REST utilizando el método GET.

Donde:

  • <keyEmpresa> Llave encriptada que identifica la empresa en el sistema.

El servicio devuelve un listado de CFDIs de nómina registrados en el sistema, o bien un subconjunto filtrado de acuerdo con los parámetros de búsqueda aplicados.

Regresa: idSucursal (Encriptado), rfc (del receptor), razonSocial (del receptor), fecha (YYYY-MM-DD hh:mm:ss.s) , folio, status, UUID, monto (BigDecimal), idCfd (Encriptado), serie, subtotal (BigDecimal), descuento (BigDecimal), tipoMoneda, tipoCambio (BigDecimal), iva (BigDecimal), fechaCancelacion (YYYY-MM-DD hh:mm:ss.s), tienePDF (Boleano), pedimento, fechaPedimento (pueden venir vairias fechas ), aduana, pdfAndXmlDownload (link para descargar XML y pdf), pdfDownload (link para descargar el pdf), xmlDownload (link para descargar el xml), cancellCfdi (link para cancelar el cfdi) en formato json de todas las nóminas de la empresa (de no existir el filtros).

2.4.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de CFDIs de Nómina

GET

/<keyEmpresa>/cfdisNomina

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

idSucursal

Opcional

Identificador de la sucursal (valor encriptado).

rfc

Opcional

RFC del receptor del CFDI de nómina.

razonSocial

Opcional

Razón social del receptor.

fecha

Opcional

Fecha (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd).

folioEspecifico

Opcional

Folio específico del comprobante.

folioInicial

Opcional

Folio inicial del rango de búsqueda.

folioFinal

Opcional

Folio final del rango de búsqueda.

status

Opcional

Estatus del CFDI.

nombreArchivo

Opcional

Nombre del archivo asociado al CFDI.

uuid

Opcional

UUID o lista separada por comas (ej. uuid1,uuid2).

monto

Opcional

Monto exacto del CFDI (tipo BigDecimal).

montoInicial

Opcional

Rango de monto inicial (tipo BigDecimal).

montoFinal

Opcional

Rango de monto final (tipo BigDecimal).

pageSize

Opcional

Número de registros por página (default = 50, máximo = 100).

pageNumber

Opcional

Número de página para paginación (por defecto 0).

2.4.3 Ejemplo de petición

Ejemplo 1 – Consulta por UUID

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdisNomina?uuid=97c05608-58aa-4087-886d-82a69a86bc98

Ejemplo 2 – Consulta por Fecha

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdisNomina?fecha=2014-06-18
2.4.4 Ejemplo de respuesta

Respuesta exitosa (código 200)

[
  {
    "idCfdi": "66a673fbc55109153b7d684ed56b3b63",
    "serie": "",
    "subtotal": "99.090000",
    "descuento": "9999.009000",
    "tipoMoneda": "USD",
    "tipoCambio": "12.5014",
    "iva": "1000008.180000",
    "fechaCancelacion": "",
    "tienePDF": "true",
    "pedimento": "",
    "fechaPedimento": "",
    "aduana": "",
    "pdfAndXmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=XML_PDF",
    "pdfDownload": "/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=PDF",
    "xmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=XML"
  }
]
2.4.5 Códigos de respuesta

Código

Descripción

200

OK - La petición se procesó correctamente y devuelve los CFDIs encontrados.

204

No Content - No existen CFDIs de nómina que coincidan con los parámetros de búsqueda.

401 

Not Found - La keyEmpresa no es válida o no se encuentra registrada.

2.4.6 Consideraciones Técnicas
  • El formato de fecha debe ser yyyy-MM-dd. No se admiten horas.

  • El parámetro pageSize tiene un valor predeterminado de 50 y un máximo de 100.

  • En los headers de la respuesta se incluirán los links de paginación cuando los resultados excedan el máximo permitido.

  • El servicio devuelve los CFDIs en formato JSON.

  • Es posible combinar varios filtros para realizar búsquedas más específicas.

  • Si se envían múltiples UUIDs, deben separarse con comas (,).

  • El endpoint no requiere cuerpo (body) en la petición; todos los parámetros se envían en la URL.


2.5. Generación de CFDI

2.5.1 Estructura general de la petición

El servicio Generación de CFDI permite emitir Comprobantes Fiscales Digitales por Internet (CFDI) a través de una petición HTTP PUT. La información del comprobante debe enviarse en formato JSON dentro del cuerpo de la solicitud (Request Payload), conteniendo la estructura y datos definidos según el conector o adaptador configurado en la cuenta del cliente.

La petición genera y devuelve un objeto JSON con la información fiscal del CFDI emitido, incluyendo folio, UUID, montos, y enlaces para descarga de XML y PDF.

Regresa: idSucursal (Encriptado), rfc (del receptor), razonSocial (del receptor), fecha (YYYY-MM-DD hh:mm:ss.s) , folio, status, UUID, monto (BigDecimal), idCfd (Encriptado), serie, subtotal (BigDecimal), descuento (BigDecimal), tipoMoneda, tipoCambio (BigDecimal), iva (BigDecimal), fechaCancelacion (YYYY-MM-DD hh:mm:ss.s), tienePDF (Boleano), pedimento, fechaPedimento (pueden venir vairias fechas ), aduana, pdfAndXmlDownload (link para descargar XML y pdf), pdfDownload (link para descargar el pdf), xmlDownload (link para descargar el xml), cancellCfdi (link para cancelar el cfdi) en formato json del CFDI generado.

2.5.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Generación de CFDI

PUT

/<keyEmpresa>/cfdis

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Nota: Es indispensable incluir el salto de línea entre registros utilizando\n.
Ejemplo: |00|idcfd|FAC|\n

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

idTipoCfd

Requerido

Identificador del tipo de CFDI a generar (valor encriptado).

idSucursal

Requerido

Identificador de la sucursal (valor encriptado).

archivoFuente

Requerido

Es el texto contenido del archivo fuente de acuerdo al conector/adaptador configurado.

nombre

Opcional

Nombre del archivo fuente.

2.5.3 Ejemplo de petición

URL

PUT 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis

Request

{
  "idTipoCfd": "d18bb0158356449c31e72cb69e642b31",
  "idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
  "nombre": "prueba.txt",
  "archivoFuente": "|00|idcfd|FAC|\n01|1|||20140630T00:00:00|99.09|9999.09|||9999.009||Noventa y nueve billones novecientos noventa y nueve mil novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve 90\/10000000|USD|12.5014|REFERENCIA XXXAAAXXX|Primera Observación|Segunda Observación|Tercera Observación|\n02|PAGO EN UNA SOLA EXHIBICIÓN|10% DE INTERÉS SI NO SE PAGA ANTES DEL 05-AGOSTO-2010|CHEQUE|2010-08-05|EFECTOS FISCALES AL PAGO|\n03|01|AAA010101AAA|PATITO, S.A. DE C.V.|MÉXICO|AVENIDA CALLE |S\/N|INT. 1|COL. COLONIA|MÉXICO|REFERENCIA FRENTE AL OXXO|CUAJIMALPA|ESTADO DE MÉXICO|06860|4424876399|\n05|405010|802011|3|BOMBA MOLOTOV|150.00|450.00|PZA|Categoría 5e|205010|\n05|405011|802012|1|DISFRAZ DE CORRECAMINOS|2368231872779.000009|884346835174.000009|PZA|Categoría 5e|205011|\n05|405012|802013|10|COMIDA DE CORRECAMINOS|39.00|390.00|KG|Categoría 5e|205010|\n05|405013|802014|1|LIGA DE HULE GIGANTE|378.00|378.00|PZA|Categoría 5e|205011|\n06|IVA|16.00|9.09|\n07|IVA|58.58|\n06|IVA|16.00|999999.09|\n07|IVA|58.58|\n08|405010|APTO INTL DE CIUDAD DE MEXICO|2010-06-29|548984124578124||\n08|405011|APTO INTL DE CIUDAD DE MEXICO|2010-06-29|654651456987452||\n99|15||"
}
2.5.4 Ejemplo de respuesta

Respuesta exitosa (código 200)

{
  "uuid": "3D5DAEF4-FE52-44A5-9C82-84B6B293EC7E",
  "fecha": "2020-05-23 17:09:00.0",
  "serie": "D01",
  "folio": "1000",
  "rfc": "OIAD8404189S3",
  "iva": "134.390000",
  "monto": "974.390000",
  "descuento": "0.000000",
  "subtotal": "840.000000",
  "tipoCambio": "1.0000",
  "tipoMoneda": "MXN",
  "idCfd": "60014b09e2d75d1ac1260b7c4e780c00",
  "idSucursal": "0dd6aebbea85662fd2fe2f76ce4258b3",
  "status": "ALMACENADO",
  "produccion": true,
  "fechaCancelacion": "",
  "tienePDF": true,
  "pedimento": "",
  "fechaPedimento": "",
  "aduana": "",
  "pdfAndXmlDownload": "/03317bd7-c60d-434f-958d-65344238e75f/descargasCfdi?idCfdi=60014b09e2d75d1ac1260b7c4e780c00&produccion=true&representacion=XML_PDF",
  "pdfDownload": "/03317bd7-c60d-434f-958d-65344238e75f/descargasCfdi?idCfdi=60014b09e2d75d1ac1260b7c4e780c00&produccion=true&representacion=PDF",
  "xmlDownload": "/03317bd7-c60d-434f-958d-65344238e75f/descargasCfdi?idCfdi=60014b09e2d75d1ac1260b7c4e780c00&produccion=true&representacion=XML"
}
2.5.5 Códigos de respuesta

Código

Descripción

200

OK - El CFDI se generó exitosamente. Devuelve los datos fiscales y las ligas de descarga.

400

Bad Request - Los parámetros enviados son incorrectos.

401

Not Found - No existe la keyEmpresa proporcionada.

Nota: Si ocurre un error en el proceso de generación, el sistema devolverá un mensaje JSON con la descripción del problema.

2.5.6 Consideraciones Técnicas
  • El contenido del CFDI debe enviarse en formato JSON dentro del Request Payload.

  • Es obligatorio utilizar el encabezado:

    Content-Type: application/json

  • El campo archivoFuente debe respetar la estructura y delimitadores configurados para el conector o adaptador de la empresa.

  • Se recomienda validar previamente que los valores encriptados (idTipoCfd, idSucursal) sean correctos.

  • Si el CFDI se genera correctamente, el servicio devuelve:

    • Datos fiscales (UUID, serie, folio, montos, etc.)

    • Ligas para descarga de XML y PDF.

  • En caso de error, se devuelve un objeto JSON con los mensajes de error específicos del proceso.


2.6 Descarga del CFDI

2.6.1 Estructura general de la petición

El servicio Descarga del CFDI permite obtener los comprobantes fiscales digitales (CFDI) en formato XML, PDF o ambos, según la representación requerida. Puede realizarse una descarga individual o múltiple de documentos mediante filtros específicos, incluyendo RFC, fechas, serie, folios o UUIDs. El servicio devuelve los archivos solicitados dentro de un archivo ZIP, cuando se incluyen varios documentos o representaciones combinadas.

Donde:

  • <keyEmpresa> Llave encriptada que identifica la empresa en el sistema.

  • Los parámetros opcionales permiten filtrar la búsqueda de CFDIs según las necesidades del usuario.

2.6.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Descarga del CFDI

GET

/<keyEmpresa>/descargasCfdi

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Importante: Al menos uno de los siguientes parámetros debe incluirse en la petición.

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

rfc

Opcional

RFC del receptor del CFDI.

razonSocial

Opcional

Razón social del receptor.

fecha

Opcional

Fecha (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd).

serie

Opcional

Serie del comprobante fiscal.

folioEspecifico

Opcional

Folio específico del comprobante.

folioInicial

Opcional

Folio inicial del rango de búsqueda.

folioFinal

Opcional

Folio final del rango de búsqueda.

idSucursal

Opcional

Identificador de la sucursal (valor encriptado).

nombreArchivo

Opcional

Nombre del archivo a descargar.

uuid

Opcional

UUID o lista separada por comas (ej. uuid1,uuid2).

status

Opcional

Estatus del CFDI.

pageSize

Opcional

Número de registros por página (default = 50, máximo = 100).

pageNumber

Opcional

Número de página para paginación (por defecto 0).

representacion

Opcional

Define el tipo de archivo a descargar. Valores posibles: XML, PDF, XML_PDF, ACUSE, ACUSE_PDF.

2.6.3 Ejemplo de petición

Ejemplo 1: Descargar un CFDI en formato XML.

GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?representacion=XML&pageSize=1

Ejemplo 2: Descargar varios CFDIs por UUID.

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?uuid=9d8b7b0f-2aa6-47d7-8b45-d3abf26f57d1,dabcea47-2e61-4cdb-b71e-e43c0d108ae3
2.6.4 Ejemplo de respuesta

Ejemplo 1 – Respuesta exitosa (código 200)
La respuesta devuelve un archivo XML descargable.
Se descargará un archivo de tipo XML (este servicio no aplica para CFDI de tipo Nómina).

Ejemplo 2 – Respuesta exitosa (código 200)
La respuesta devuelve un archivo ZIP con los CFDI solicitados.
Se descargará un archivo ZIP que contiene los archivos XML y PDF correspondientes a los UUIDs indicados en la URL.

2.6.5 Códigos de respuesta

Código

Descripción

200

OK - Petición exitosa. 

204

No Content - No existen CFDI que coincidan con los filtros aplicados.

400

Bad Request - Parámetros enviados son incorrectos.

401

Not Found - No existe la keyEmpresa o no hay CFDIs disponibles para descargar.

2.6.6 Consideraciones técnicas
  1. Parámetros mínimos: Es obligatorio incluir al menos un filtro (RFC, fecha, folio o UUID).

  2. Tipo de archivo:

    • Si se solicita solo un CFDI, se devuelve un ZIP con un archivo XML o PDF, según el parámetro representacion.

    • Si se solicita XML y PDF o varios documentos se devolverá un archivo tipo ZIP.

    • Si no se incluye el parámetro representacion se devolverá XML y PDF dentro de un zip.
  3. Rendimiento:

    • El parámetro pageSize define la cantidad de resultados por página. El valor por defecto es 50 registros y el máximo permitido es 100.

    • Considerar el tiempo de construcción de archivos PDF (aproximadamente 600 PDF por minuto).

  4. Paginación:

    • Si la cantidad de resultados excede el límite de 50, en los headers de la respuesta se incluirán los link para acceder a las siguientes páginas de resultados.
  5. Filtros combinados:

    • Es posible combinar múltiples parámetros para realizar consultas más específicas.


2.7 Descarga de Nómina

2.7.1 Estructura general de la petición

El servicio Descarga de CFDI Nómina permite obtener los comprobantes fiscales digitales correspondientes a los recibos de nómina emitidos. El servicio puede devolver los archivos en formato XML, PDF o ambos (XML_PDF), según los parámetros establecidos en la solicitud. Este servicio se consume mediante una API REST con método GET, y su respuesta puede incluir uno o varios archivos según el criterio de búsqueda.

Donde:

  • <keyEmpresa> Llave encriptada que identifica la empresa en el sistema.

  • El servicio admite múltiples filtros opcionales que determinan los documentos a descargar.

2.7.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Descarga de Nómina

GET

/<keyEmpresa>/descargasCfdiNominas

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Importante: Al menos uno de los siguientes parámetros debe incluirse en la petición.

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

rfc

Opcional

RFC del receptor del CFDI de nómina.

razonSocial

Opcional

Razón social del receptor del CFDI.

fecha

Opcional

Fecha (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd).

serie

Opcional

Serie del comprobante.

folioEspecifico

Opcional

Folio específico del comprobante.

folioInicial

Opcional

Folio inicial del rango de búsqueda.

folioFinal

Opcional

Folio final del rango de búsqueda.

idSucursal

Opcional

Identificador de la sucursal (valor encriptado).

nombreArchivo

Opcional

Nombre del archivo que desea descargar.

uuid

Opcional

UUID o lista separada por comas (ej. uuid1,uuid2).

status

Opcional

Estatus del CFDI.

pageSize

Opcional

Número de registros por página (default = 50, máximo = 100).

pageNumber

Opcional

Número de página para paginación (por defecto 0).

representacion

Opcional

Define el formato de descarga: XML o PDF o XML_PDF.

2.7.3 Ejemplo de petición

Ejemplo 1. Solicitud de XML (único registro)

GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdiNominas?representacion=XML&pageSize=1

Ejemplo 2. Descarga por UUID

GET 
https://localhost:9050/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdiNominas?uuid=97c05608-58aa-4087-886d-82a69a86bc98
2.7.4 Ejemplo de respuesta

Ejemplo 1 – Respuesta exitosa (código 200)
Se descarga un archivo de tipo XML, correspondiente a un CFDI de nómina.

Ejemplo 2 – Respuesta exitosa (código 200)
Se descarga un archivo ZIP que contiene los archivos XML y PDF del CFDI correspondiente al UUID indicado en la URL.

2.7.5 Códigos de respuesta

Código

Descripción

200

OK - La petición se procesó correctamente. Se devuelve el archivo solicitado.

204

No Content - No existen CFDI de nómina que cumplan con los filtros enviados.

400

Bad Request - Error en los parámetros de la petición.

401

Not Found - No existe la keyEmpresa o no hay CFDIs disponibles para descarga.

2.7.6 Consideraciones técnicas
  1. Parámetros mínimos: Es obligatorio incluir al menos un filtro (RFC, fecha, folio o UUID).

  2. Tipo de archivo:

    • Si se solicita XML y PDF o varios documentos se devolverá un archivo tipo ZIP.
    • Si se solicita solo un CFDI, dependiendo del parámetro de representación se devolverá UN archivo XML o PDF.
    • Si no se incluye el parámetro se devolverá XML y PDF.
  3. Rendimiento:

    • El parámetro pageSize define la cantidad de resultados por página. El valor por defecto es 50 registros y el máximo permitido es 100.

    • Considerar el tiempo de construcción de archivos PDF (aproximadamente 600 PDF por minuto).

  4. Paginación:

    • Si la cantidad de resultados excede el límite de 50, en los headers de la respuesta se incluirán los link para acceder a las siguientes páginas de resultados.

  5. Filtros combinados:

    • Es posible combinar múltiples parámetros para realizar consultas más específicas.

    • Si se desea descargar solo el PDF poner "xml=false" en los parámetros.

    • Si se desea descargar solo el XML poner "pdf=false" en los parámetros.


2.8 Consulta del número de CFDIs generados

2.8.1 Estructura general de la petición

El servicio Consulta del número de CFDIs generados permite obtener la cantidad total de CFDIs emitidos por una empresa dentro de una fecha específica o en un rango determinado.

El servicio se consume mediante una petición HTTP GET, devolviendo como respuesta un valor numérico que representa el total de comprobantes generados en el periodo solicitado.

Es obligatorio enviar al menos una fecha (fecha) o un rango de fechas (fechaInicial, fechaFinal).

2.8.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de número de CFDIs generados

GET

/<keyEmpresa>/cfdis/consumo/generacion

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

fecha

Requerido

Fecha (formato yyyy-MM-dd).

fechaInicial

Requerido

Fecha inicial del rango de consulta (formato yyyy-MM-dd).

fechaFinal

Requerido

Fecha final del rango de consulta (formato yyyy-MM-dd).

Nota: Forzosamente debe de haber una fecha específica (fecha) o un rango de fechas (fechaInicial, fechaFinal).

2.8.3 Ejemplo de petición

Ejemplo 1. Por fecha específica

GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consumo/generacion?fecha=2014-07-02

Ejemplo 2. Por rango de fechas

GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consumo/generacion?fechaInicial=2014-07-01&fechaFinal=2014-07-03
2.8.4 Ejemplo de respuesta

Respuesta exitosa (código 200)

3525 (la respuesta es numérica)

Nota: El valor devuelto representa el número total de CFDIs generados en el periodo indicado. En este ejemplo, el sistema registró 3,525 comprobantes.

2.8.5 Códigos de respuesta

Código

Descripción

200

OK - Solicitud exitosa. Devuelve el total numérico de CFDIs generados.

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa

2.8.6 Consideraciones técnicas
  • Es obligatorio enviar una fecha específica o un rango de fechas.

  • El formato de las fechas debe ser yyyy-MM-dd.

  • La respuesta siempre será un valor numérico.

  • Este servicio solo consulta CFDIs emitidos por la empresa identificada en la keyEmpresa.


2.9 Consulta del número de CFDIs cancelados

2.9.1 Estructura general de la petición

El servicio Consulta del número de CFDIs cancelados permite obtener la cantidad total de CFDIs que han sido cancelados por una empresa dentro de una fecha específica o en un rango determinado.

La consulta se realiza mediante una petición HTTP GET y devuelve como respuesta un valor numérico que representa el total de comprobantes fiscales cancelados en el periodo indicado.

Es obligatorio proporcionar una fecha específica (fecha) o un rango de fechas (fechaInicial, fechaFinal) para ejecutar la solicitud correctamente.

2.9.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de CFDIs Cancelados

GET

/<keyEmpresa>/cfdis/consumo/cancelacion

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

fecha

Opcional

Fecha (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd).

Nota: Debe enviarse una sola fecha (fecha) o un rango de fechas (fechaInicial, fechaFinal), nunca ambos en la misma petición.

2.9.3 Ejemplo de petición

Ejemplo 1. Por fecha específica

GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consumo/cancelacion?fecha=2014-07-02

Ejemplo 2. Por rango de fechas

GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consumo/cancelacion?fechaInicial=2013-04-01&fechaFinal=2014-01-01
2.9.4 Ejemplo de respuesta

Respuesta exitosa (código 200)

0 (la respuesta es numérica)

Nota: El valor numérico indica la cantidad total de CFDIs cancelados durante el periodo indicado.
En este ejemplo, la respuesta 0 indica que no se registraron cancelaciones dentro del rango solicitado.

2.9.5 Códigos de respuesta

Código

Descripción

200

OK - Solicitud exitosa. Devuelve el número total de CFDIs cancelados.

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa

2.9.6 Consideraciones técnicas
  • Es obligatorio incluir una fecha o un rango de fechas.

  • Las fechas deben enviarse en formato yyyy-MM-dd.

  • La respuesta será siempre un valor numérico entero.

  • Si no se encuentran CFDIs cancelados en el periodo indicado, el sistema devuelve 0.

  • Este servicio solo aplica para los CFDIs emitidos por la empresa identificada en la keyEmpresa.


2.10 Cancelación de CFDI múltiple

2.10.1 Estructura general de la petición

El servicio Cancelación de CFDI múltiple permite cancelar uno o varios comprobantes fiscales digitales (CFDI) en una sola solicitud. La petición debe enviarse mediante el método HTTP POST, incluyendo en el cuerpo de la solicitud (body) un JSON con los UUIDs de los CFDIs a cancelar, así como el motivo de cancelación.

Para los motivos de cancelación distintos de “01”, es posible incluir múltiples UUIDs en la misma petición.
En el caso de motivo “01”, se requiere además el UUID del CFDI sustituto que reemplazará al cancelado.

La respuesta se entrega en formato JSON, indicando para cada CFDI su UUID, el código de estado y la descripción correspondiente.

2.10.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Cancelación múltiple de CFDIs

POST

/<keyEmpresa>/cfdis/cancelar

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

motivo

Requerido

Clave del motivo de cancelación según el catálogo del SAT (01, 02, 03 o 04).

uuid

Requerido

UUID (Lista de UUIDs en json, ver ejemplo) Solo aplica para cuando es motivo diferente a 01.

folioSustitucion

Condicional

UUID del CFDI sustituto. Obligatorio únicamente si el motivo es “01”.

Nota:
- Cuando el motivo = 01, solo puede cancelarse un CFDI por solicitud.
- Cuando el motivo = 02, 03 o 04, pueden incluirse múltiples UUIDs (cancelación masiva).

2.10.3 Ejemplo de petición

Petición para motivo 01 (requiere folio de sustitución)

POST https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelar?

Content-Type: application/json

{
  "motivo": "01",
  "folioSustitucion": "B5E6897B-40A7-4DEA-ADD2-F417B32EE908",
  "uuid": [
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
  ]
}

Petición para motivo 02, 03 o 04 (múltiples UUIDs)

POST https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelar?

Content-Type: application/json

{
  "motivo": "02",
  "uuid": [
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909",
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
  ]
}
2.10.4 Ejemplo de respuesta

Respuesta (código 200):

[
  {
    "uuid": "A07F61BD-4E1D-E504-9F3F-902DA4D622B3",
    "status": "201",
    "descripcion": "UUID Cancelado"
  },
  {
    "uuid": "d5cdbe22-b117-4ca7-bfbb-ddef8e22b0f4",
    "status": "201",
    "descripcion": "UUID Cancelado"
  }
]

Nota:
El sistema devuelve un arreglo JSON donde cada elemento representa un CFDI procesado, mostrando su UUID, status numérico y una descripción textual del resultado.

2.10.5 Códigos de respuesta

Código

Descripción

200

OK - Solicitud exitosa. 

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

500

No se pueden cancelar los comprobantes con los UUID proporcionados; verifique que sean válidos y pertenezcan a la empresa.

2.10.6 Consideraciones técnicas
  • El cuerpo de la solicitud debe enviarse en formato JSON.

  • Para el motivo “01”, el campo folioSustitucion es obligatorio.

  • Para los motivos “02”, “03” o “04”, no se incluye folioSustitucion y se pueden procesar varios UUIDs.

  • Los UUIDs enviados deben existir y estar asociados a la empresa identificada por keyEmpresa.


2.11 Cancelación de CFDI múltiple URL

2.11.1 Estructura general de la petición

El servicio Cancelación de CFDI múltiple URL permite cancelar uno o varios comprobantes fiscales digitales (CFDI) en una sola operación y obtener, además, las ligas de descarga del acuse de cancelación en formato XML y PDF para cada CFDI procesado.

La petición se realiza mediante el método HTTP POST, enviando los datos en formato JSON.
Dependiendo del motivo de cancelación, se puede incluir uno o varios UUIDs dentro del cuerpo de la solicitud.

  • Si el motivo es “01”, debe incluirse un folio de sustitución.

  • Si el motivo es “02”, “03” o “04”, se pueden incluir múltiples UUIDs en la misma petición.

2.11.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Cancelación múltiple de CFDIs con URL de acuse

POST

/<keyEmpresa>/cfdis/cancelarUrl

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

motivo

Requerido

Clave del motivo de cancelación según el catálogo del SAT (01, 02, 03 o 04).

uuid

Requerido

UUID (Lista de UUIDs en json, ver ejemplo) Solo aplica para cuando es motivo diferente a 01.

folioSustitucion

Condicional

UUID del CFDI que sustituye al cancelado. Obligatorio únicamente si el motivo es “01”.

Notas:
- El cuerpo de la solicitud debe enviarse en formato JSON.
- Cuando el motivo = 01, solo puede cancelarse un CFDI por solicitud.
- Cuando el motivo = 02, 03 o 04, pueden incluirse múltiples UUIDs (cancelación masiva).


2.11.3 Ejemplo de petición

Petición para motivo 01 (requiere folio de sustitución):

POST https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelarUrl?

Content-Type: application/json

{
  "motivo": "01",
  "folioSustitucion": "B5E6897B-40A7-4DEA-ADD2-F417B32EE908",
  "uuid": [
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
  ]
}

Petición para motivo 02, 03 o 04 (múltiples UUIDs):

POST https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelarUrl?

Content-Type: application/json

{
  "motivo": "02",
  "uuid": [
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909",
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
  ]
}
2.11.4 Ejemplo de respuesta

Respuesta (código 200):

[
  {
    "uuid": "A07F61BD-4E1D-E504-9F3F-902DA4D622B3",
    "status": "201",
    "descripcion": "UUID Cancelado",
    "URLAcuse_XML":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=ACUSE",
    "URLAcuse_PDF":"/985408d8-64ae-48e0-b46c-473b47176205/descargasCfdi?idCfdi=66a673fbc55109153b7d684ed56b3b63&representacion=ACUSE_PDF"
  }
]

Descripción:
El sistema devuelve un arreglo JSON donde cada elemento representa un CFDI procesado. Para cada registro se incluyen los siguientes datos:

  • uuid: identificador único del CFDI cancelado.

  • status: código numérico del resultado.

  • descripcion: texto descriptivo del estado del CFDI.

  • URLAcuse_XML: liga directa para descargar el acuse de cancelación en formato XML.

  • URLAcuse_PDF: liga directa para descargar el acuse de cancelación en formato PDF.

2.11.5 Códigos de respuesta

Código

Descripción

200

OK - Solicitud exitosa. 

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

500

No se pueden cancelar los comprobantes con los UUID proporcionados; verifique que sean válidos y pertenezcan a la empresa.

2.11.6 Consideraciones técnicas
  • Es obligatorio incluir el encabezado Content-Type: application/json.

  • Para el motivo “01”, se debe incluir el campo folioSustitucion.

  • Las URLs proporcionadas permiten descargar el acuse de cancelación en los formatos XML y PDF.

  • Las ligas de descarga son válidas únicamente para la empresa (keyEmpresa) propietaria del CFDI.


Motivo de Cancelación

Clave Descripción
01 Comprobante emitido con errores con relación
02 Comprobante emitido con errores sin relación
03 No se llevó a cabo la operación
04 Operación nominativa relacionada en una factura global

Códigos de Cancelación

Código Descripción
201 Petición aceptada.

202

Folio Fiscal Previamente Cancela
203 Folio Fiscal No Correspondiente al Emisor
204 Folio Fiscal No Aplicable a Cancelación
205 Folio Fiscal No Existente
206 UUID no corresponde a un CFDI del Sector Primario
207 No se especificó el motivo de cancelación o el motivo no es válido
208 Folio Sustitución inválido
209 Folio Sustitución no requerido

210

La fecha de solicitud de cancelación es mayor a la fecha de declaración

211

La fecha de solicitud de cancelación límite para factura global
212 Relación no válida o inexistente
300 Usuario No Válido
301 XML mal formado.
302 Sello mal formado o inválido.
303 Sello no corresponde a emisor o caduco.
304 Certificado revocado o caduco.
305 Certificado Inválido
306 El certificado no es de tipo CSD.
307 El CFDI contiene un timbre previo.
308 Certificado no expedido por el SAT.
309 Certificado Inválido
310 CSD Inválido
402 RFC del emisor no se encuentra en el régimen de contribuyentes.
407 Error en el servicio de cancelación del SAT.

800

NO_ENCONTRADO
801 NO_CANCELA BLE
802 EN_PROCESO
901 El cliente con el CustomerKey proporcionado no es válido.
902 El RFC no está registrado como cliente.
903 El RFC se encuentra inactivo por el momento.
904 No cuenta con licencia para realizar peticiones.
905 El RFC no pertenece al cliente con el CustomerKey que proporcionó.
906 Ha expirado su periodo de pruebas.
910 No se puede determinar el cliente a partir del RFC.
998 Error en el cliente.
999 Error en el servidor.

 


2.12 Consulta de Cancelación

2.12.1 Estructura general de la petición

El servicio Consulta de Cancelación permite consultar el estatus actual de cancelación de un CFDI específico, identificándolo por su UUID. La petición se realiza mediante el método HTTP POST, enviando el parámetro uuid dentro del cuerpo en formato JSON.

El servicio devuelve el UUID solicitado junto con su estado de cancelación, según la información registrada en el SAT.

2.12.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta del estatus de cancelación de CFDI

POST

/<keyEmpresa>/cfdis/consultaCancelacion

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

uuid

Requerido

Identificador único del CFDI a consultar. Debe enviarse en formato JSON.

2.12.3 Ejemplo de petición
POST https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion?

Content-Type: application/json

{
  "uuid": [
    "3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"
  ]
}
2.12.4 Ejemplo de respuesta

Respuesta (código 200):

[
  {
    "uuid": "3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A",
    "status": "CANCELABLE_SIN_ACEPTACION"
  }
]

Descripción:
La respuesta se devuelve en formato JSON y contiene los siguientes campos:

  • uuid: identificador único del CFDI consultado.

  • status: estado actual del CFDI en el proceso de cancelación.


2.12.5 Códigos de respuesta

Código

Descripción

200

OK - Solicitud exitosa. 

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

2.12.6 Estados posibles del CFDI

El campo status puede devolver uno de los siguientes valores según la situación del CFDI:

Estado

Descripción

VIGENTE

El CFDI está activo y no ha sido solicitado para cancelación.

CANCELABLE_CON_ACEPTACION

El CFDI es cancelable, pero requiere aceptación por parte del receptor.

CANCELABLE_SIN_ACEPTACION

El CFDI es cancelable sin requerir aceptación del receptor.

NO_CANCELABLE

El CFDI no puede cancelarse debido a restricciones del SAT.

NO_ENCONTRADO

El UUID no fue localizado o no pertenece a la empresa.

EN_PROCESO

El CFDI se encuentra en proceso de cancelación, esperando respuesta del receptor.

CANCELADO_PLAZO_VENCIDO

El CFDI fue cancelado fuera del plazo permitido.

CANCELADO_CON_ACEPTACIÓN

El CFDI fue cancelado con aceptación del receptor.

CANCELADO_SIN_ACEPTACIÓN

El CFDI fue cancelado sin requerir aceptación.

SOLICITUD_RECHAZADA

La solicitud de cancelación fue rechazada por el receptor.

2.12.7 Consideraciones técnicas
  • El cuerpo de la solicitud debe enviarse en formato JSON con el campo uuid como arreglo.

  • Solo se puede consultar un CFDI por solicitud.

  • La respuesta del servicio depende del estatus registrado en el SAT al momento de la consulta.

  • Se recomienda almacenar los resultados para seguimiento y trazabilidad de cancelaciones.


3 Retenciones

3.1 Consulta de Tipos de Retenciones

3.1.1 Estructura general de la petición

El servicio Consulta de Tipos de Retenciones permite obtener el listado de los tipos de CFDI de retención registrados para una empresa específica. A través de este servicio, el usuario puede conocer el identificador (id) del tipo de retención, su nombre y el ID de la sucursal asociada.

Este servicio está disponible mediante una llamada HTTP GET y devuelve la información en formato JSON.

Donde:

  • <keyEmpresa> Llave encriptada que identifica la empresa en el sistema.

3.1.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de tipos de retenciones

GET

/<keyEmpresa>/tiposCfdsRetenciones

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

pageSize

Opcional

Número de registros por página (default = 50, mínimo =1, máximo = 100)

pageNumber

Opcional

Número de página para paginación. Valores permitidos: mínimo 0, valor por defecto 0.

3.1.3 Ejemplo de petición
GET 
https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/tiposCfdsRetenciones
3.1.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

[
  {
    "idTipoCfdRetencion": "51bcbd36d5f0cbf971e3cbb0bea7567a",
    "nombre": "Retencion",
    "idSucursal": "2575797c4c7933f6f067e054240fc48b",
    "produccion": true
  }
]
3.1.5 Códigos de respuesta

Código

Descripción

200

OK - La solicitud fue exitosa y se devuelve la lista de tipos de CFDI de retención.

204

No Content - No existen tipos de CFDI de retención registrados para la empresa especificada.

401

Not Found - No existe el (keyEmpresa)

3.1.6 Consideraciones técnicas
  • El parámetro keyEmpresa es obligatorio y válido.

  • Los parámetros pageSize y pageNumber permiten implementar paginación en la consulta.

  • La respuesta se entrega en formato JSON.

  • En caso de no existir información, el servicio devuelve el código 204 (No Content).

  • Este servicio es de solo lectura y no modifica información en el sistema.


3.2 Consulta CFDI de Retenciones

3.2.1 Estructura general de la petición

Este servicio permite consultar los CFDI de Retenciones emitidos por una empresa determinada, aplicando diferentes filtros de búsqueda. La respuesta del servicio devuelve información detallada sobre los comprobantes, incluyendo su estatus, monto, fecha de emisión, UUID y ligas de descarga en formatos XML y PDF.

Regresa el id del cfdi de retención, el id de la sucursal de a retención, el RFC del receptor, la razón social del receptor, la fecha de emisión del documento, el status del documento, el uuid del documento, el monto, la fecha de cancelacion del documentos (si está cancelado), la liga de descarga del documento en sus versiones XML y PDF, liga de descarga del documento en formato XML, liga de descarga del documento en PDF, la liga con la que se podría cancelar el documento.

El servicio se consume mediante una petición HTTP GET, indicando la clave de empresa (keyEmpresa) en la ruta del endpoint, junto con los parámetros de filtro opcionales.

3.2.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta CFDI de Retenciones

GET

/<keyEmpresa>/cfdisretencion

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Importante: Al menos uno de los siguientes parámetros debe incluirse en la petición.

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

pageSize

Opcional

Número de registros por página (default = 50, mínimo =1, máximo = 100)

pageNumber

Opcional

Número de página para paginación. Valores permitidos: mínimo 0, valor por defecto 0.

idSucursal

Opcional

Identificador de la sucursal (valor encriptado).

rfcReceptor

Opcional

RFC del receptor del CFDI de retención.

razonSocial

Opcional

Razón social del receptor.

fecha

Opcional

Fecha (formato yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

fechaInicial

Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

fechaFinal

Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

status

Opcional

Estatus del CFDI de retención. ('ACTIVO', 'CANCELADO')

uuid

Opcional

Folio fiscal del CFDI (UUID).

nombreArchivo

Opcional

Nombre del archivo fuente asociado al comprobante.

monto

Opcional

Monto exacto del CFDI.

montoInicial

Opcional

Monto inicial para la consulta.

montoFinal

Opcional

Monto final para la consulta.

3.2.3 Ejemplo de petición
GET 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion?pageSize=50&pageNumber=1&rfcReceptor=MURR750516812
3.2.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

[
  {
    "idCfdiRetencion": "1dccc6e57b1d443c3e1a1ffd5095f382",
    "idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
    "rfcReceptor": "MURR750516812",
    "razonSocial": "Razón Social Nacional",
    "fecha": "2015-01-24T01:18:22",
    "status": "CANCELADO",
    "uuid": "2310EABB-5F39-4694-8FBD-1EA0842C8113",
    "monto": "3252.500000",
    "fechaCancelacion": "",
    "pdfAndXmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga?uuid=2310EABB-5F39-4694-8FBD-1EA0842C8113&representacion=XML_PDF",
    "pdfDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/pdf?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed",
    "xmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/xml?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed"
  }
]
3.2.5 Códigos de respuesta

Código

Descripción

200

OK – La consulta fue exitosa y devuelve resultados.

204

No Content – No existen CFDIs de retención que coincidan con la petición realizada.

401

Not Found - No existe el (keyEmpresa)
3.2.6 Consideraciones técnicas
  • Se debe incluir al menos un filtro en la consulta; el endpoint no acepta solicitudes vacías.

  • El formato de fecha debe ser consistente (yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

  • Los campos pageSize y pageNumber permiten paginar los resultados para optimizar el rendimiento.

  • El servicio devuelve enlaces directos para descargar el comprobante en sus versiones XML y PDF.

  • En caso de CFDIs cancelados, el campo fechaCancelacion mostrará la fecha correspondiente; si está vacío, indica que la cancelación no ha sido procesada.

  • Los UUID y idSucursal se devuelven en formato encriptado para garantizar la seguridad de los datos.


3.3 Descarga CFDI de Retención

3.3.1 Estructura general de la petición

Este servicio permite descargar los CFDI de Retención previamente consultados, empaquetados en un archivo ZIP. Cada archivo comprimido contiene los documentos resultantes de la consulta, en formato XML, PDF, o en ambos, dependiendo del parámetro indicado en la solicitud.

El servicio se consume mediante una petición HTTP GET, especificando la clave de empresa (keyEmpresa) y los filtros de búsqueda. Si no se indica el tipo de representación, el servicio tomará XML como valor predeterminado.

3.3.2 Parámetros requeridos

Endpoint

Servicio Método URL
Descarga CFDI de Retención GET
/<keyEmpresa>/cfdisretencion/descarga?

Autenticación y Headers

Header Valor esperado
N/A Este servicio no requiere autenticación adicional.

Parámetros

Importante: Al menos uno de los siguientes parámetros debe incluirse en la petición.

Campo Uso Descripción
keyEmpresa Requerido Llave encriptada que identifica la empresa en el sistema.
pageSize Opcional

Número de registros por página (default = 50, mínimo =1, máximo = 100)

pageNumber Opcional

Número de página para paginación. Valores permitidos: mínimo 0, valor por defecto 0.

idSucursal Opcional

Identificador de la sucursal (valor encriptado).

rfcReceptor Opcional RFC del receptor del CFDI de retención.
razonSocial Opcional Razón social del receptor.
fecha Opcional

Fecha (formato yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

fechaInicial Opcional

Fecha inicial del rango de consulta (formato yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

fechaFinal Opcional

Fecha final del rango de consulta (formato yyyy-MM-dd o yyyy-MM-dd h:mm:ss).

status Opcional

Estatus del CFDI de retención. ('ACTIVO', 'CANCELADO')

uuid Opcional

Folio fiscal del CFDI (UUID).

nombreArchivo Opcional

Nombre del archivo fuente asociado al comprobante.

monto Opcional

Monto exacto del CFDI.

montoInicial Opcional

Monto inicial para la consulta.

montoFinal Opcional

Monto final para la consulta.

representación Opcional Define el formato de descarga. Valores permitidos: XML o PDF, XML_PDF. Si no se especifica, el valor por defecto es XML.
3.3.3 Ejemplo de petición
GET 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion/descarga?pageSize=50&pageNumber=1&rfcReceptor=AAA010101AAA
3.3.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

Content-Type: application/zip
Content-Disposition: attachment; filename="1441221373984.zip"

El servicio devuelve un archivo ZIP que contiene los CFDI resultantes de la consulta, en el formato solicitado (XML, PDF o ambos).

3.3.5 Códigos de respuesta
Código Descripción
200

OK - La solicitud fue exitosa.

204

No Content - No existen CFDIs de retención que coincidan con los parámetros de la consulta.

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

3.3.6 Consideraciones técnicas
  • Es obligatorio incluir al menos un filtro en la solicitud.

  • Si no se especifica el parámetro representación, el sistema descargará únicamente los archivos en formato XML.

  • El archivo ZIP contendrá únicamente los CFDI que cumplan con los criterios definidos en los parámetros de búsqueda.

  • El tamaño máximo de página (pageSize) es de 100 registros por solicitud, para optimizar el rendimiento.

  • En caso de error en los parámetros o keyEmpresa no válida, el servicio devolverá los códigos 400 o 401 respectivamente.


3.4 Descarga CFDI de Retención (XML)

3.4.1 Estructura general de la petición

Este servicio permite obtener el archivo XML correspondiente a un CFDI de retención específico. El servicio se consume mediante una petición HTTP GET, indicando la clave de empresa (keyEmpresa) y el identificador único del comprobante (uuid).

3.4.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Descarga CFDI de Retención (XML)

GET

/<keyEmpresa>/cfdisretencion/descarga/xml

Autenticación y Headers

Header

Valor esperado

N/A Este servicio no requiere autenticación adicional.

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

uuid

Requerido

Identificador único del CFDI de retención (encriptado).

3.4.3 Ejemplo de petición
GET 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion/descarga/xml?uuid=7e00413dcf1b605e189b9a91972
3.4.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

Content-Type: application/xml
Content-Disposition: attachment; filename="D095EF45-0465-4BBD-8F74-DE9576B909CA.xml"

El servicio devuelve el archivo XML correspondiente al UUID solicitado.

3.4.5 Códigos de respuesta

Código

Descripción

200

OK - La solicitud fue exitosa.

204

No Content - No existen CFDIs de retención que coincidan con los parámetros de la consulta.

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

3.4.6 Consideraciones técnicas
  • Los parámetros keyEmpresa y uuid son obligatorios; sin ellos, la petición no será procesada.

  • El UUID debe enviarse en su formato encriptado.

  • El servicio devuelve exclusivamente el archivo XML.

  • El encabezado Content-Disposition incluye el nombre del archivo XML con su identificador único.

  • En caso de error en los parámetros o en la autenticación, se devolverán los códigos 400 o 401 según corresponda.


3.5 Descarga CFDI de Retención (PDF)

3.5.1 Estructura general de la petición

Este servicio permite obtener el archivo PDF correspondiente a un CFDI de retención específico. El archivo descargado contiene la representación impresa del comprobante fiscal.

El servicio se consume mediante una petición HTTP GET, indicando la clave de empresa (keyEmpresa) y el identificador único del comprobante (uuid).

3.5.2 Parámetros requeridos

Endpoint

Servicio Método URL
Descarga CFDI de Retención (PDF) GET
/<keyEmpresa>/cfdisretencion/descarga/pdf

Autenticación y Headers

Header Valor esperado
N/A Este servicio no requiere autenticación adicional.

Parámetros

Campo Uso Descripción
keyEmpresa Requerido Llave encriptada que identifica la empresa en el sistema.
uuid Requerido Identificador único del CFDI de retención (encriptado).
3.5.3 Ejemplo de petición
GET 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/ cfdisretencion/descarga/pdf?uuid=7e00413dcf1b605e189b9a91972
3.5.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

Content-Type: application/pdf
Content-Disposition: attachment; filename="D095EF45-0465-4BBD-8F74-DE9576B909CA.pdf"

El servicio devuelve el archivo PDF correspondiente al UUID solicitado.

3.5.5 Códigos de respuesta
Código Descripción
200

OK - La solicitud fue exitosa.

204

No Content - No existen CFDIs de retención que coincidan con los parámetros de la consulta.

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

3.5.6 Consideraciones técnicas
  • Los parámetros keyEmpresa y uuid son obligatorios para procesar la solicitud.
  • El UUID debe enviarse en su formato encriptado.
  • El servicio devuelve exclusivamente la representación impresa del CFDI en formato PDF.
  • El encabezado Content-Disposition define el nombre del archivo generado.
  • En caso de error en los parámetros o en la autenticación, se devolverán los códigos 400 o 401 según corresponda.

3.6 Generación de Retenciones

3.6.1 Estructura general de la petición

Este servicio permite emitir un nuevo CFDI de retención, indicando la empresa emisora, el tipo de retención, la sucursal correspondiente y el contenido del archivo fuente estructurado de acuerdo con el layout configurado previamente en el sistema.

La generación del CFDI se realiza mediante una petición HTTP POST, en la que se debe enviar la información en formato JSON.

Generación exitosa
Devuelve el id del cfdi de retención que se ha emitido, el id de la sucursal en la que se emitió, el RFC del receptor, la razón social del receptor, la fecha de emisión, el estatus del documento, el uuid, el monto, la fecha de cancelacion(aunque en este caso de emisión, siempre se encontrará vacío este campo), la ligas de descarga para el XML y PDF juntos, para el XML (individual), PDF (individual) y finalmente la liga de cancelacion (con la que se podría cancelar el documento posteriormente)

Error
Este error tiene que ver con la generación del CFDI de retención y no con el error que podría ocurrir al consumir este servicio. En este caso se devolverá el error que el motor de generación de la solución arroja.

3.6.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Generación de CFDI de Retención

POST

/<keyEmpresa>/cfdisretencion

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

idTipoCfdRetencion

Requerido

ID del tipo de retención a generar.

idSucursal

Requerido

Identificador de la sucursal a la que pertenece el tipo de retención (valor encriptado).

archivoFuente

Requerido

Contenido del archivo fuente, estructurado según el layout configurado. Las líneas deben separarse con el carácter \n.

3.6.3 Ejemplo de petición
POST 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdisretencion?

{
  "idTipoCfdRetencion": "332c2994597401415717c9de2e21d207",
  "idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
  "archivoFuente": "RET00|1.0|12345|2015-09-02T00:00:00-06:00|03|DescRetenc|\nRET01|BADD110313HCMLNS09|\nRET02|Nacional|\nRET020|MURR750516812|Razón Social Nacional|BADD110313HCMLNS09|\nRET03|1|1|2015|\nRET04|3252.5|0.00|0.00|0.00|\nRET040|0.00|01|0.00|Pago definitivo|\nRET99|"
}
3.6.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

[
  {
    "idCfdiRetencion": "1dccc6e57b1d443c3e1a1ffd5095f382",
    "idSucursal": "6ac9a2c315480d5cc5534c7e58caee5a",
    "rfcReceptor": "MURR750516812",
    "razonSocial": "Razón Social Nacional",
    "fecha": "2015-01-24T01:18:22",
    "status": "CANCELADO",
    "uuid": "2310EABB-5F39-4694-8FBD-1EA0842C8113",
    "monto": "3252.500000",
    "fechaCancelacion": "",
    "pdfAndXmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga?uuid=2310EABB-5F39-4694-8FBD-1EA0842C8113&representacion=XML_PDF",
    "pdfDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/pdf?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed",
    "xmlDownload": "/985408d8-64ae-48e0-b46c-473b47176205/cfdisretencion/descarga/xml?uuid=3bf7942709f6eb925d26dae62c63f8c287b8868661bc4a69ce1e3c2e10ff98bd6486140ef80ba7ac7867620b4fc94fed"
  }
]
3.6.5 Códigos de respuesta

Código

Descripción

200

OK - Solicitud exitosa. 

400

Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos.

401

Not Found - No existe el (keyEmpresa)

3.6.6 Consideraciones técnicas
  • Todos los campos marcados como requeridos deben incluirse correctamente.

  • El parámetro archivoFuente debe estructurarse conforme al layout configurado en la plataforma, respetando el orden y los delimitadores establecidos.

  • Para separar las líneas dentro del archivoFuente, se debe usar el carácter \n.

  • En caso de error durante la generación del CFDI, el sistema devolverá el mensaje correspondiente generado por el motor de emisión.

  • Las ligas de descarga (XML, PDF, XML_PDF) estarán disponibles tras la emisión exitosa del documento.

  • Este servicio no realiza cancelaciones; únicamente genera el CFDI de retención.


3.7 Cancelación de Retenciones

3.7.1 Estructura general de la petición

La cancelación de CFDIs de retención se realiza mediante una petición HTTP POST, especificando los parámetros keyEmpresa y los UUIDs de los documentos a cancelar.

3.7.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Cancelación de CFDI de Retención

POST

/<keyEmpresa>/cfdisretencion/cancelar

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

motivo

Requerido

Clave que indica la causa de la cancelación (01, 02, 03 o 04).

folioSustitucion

Condicional

Obligatorio solo cuando el motivo de cancelación es 01. Debe contener el UUID del CFDI que sustituye al cancelado.

uuid

Requerido

Arreglo que contiene los UUIDs de los CFDIs de retención a cancelar (máximo 500 por solicitud).

3.7.3 Ejemplo de petición

Ejemplo para motivo 01 (con folio de sustitución)

POST 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdisretencion/cancelar?

{
  "motivo": "01",
  "folioSustitucion": "B5E6897B-40A7-4DEA-ADD2-F417B32EE908",
  "uuid": [
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909",
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
  ]
}

Ejemplo para motivos 02, 03 y 04 (sin folio de sustitución)

POST 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdisretencion/cancelar?

{
  "motivo": "02",
  "uuid": [
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909",
    "B5E6897B-40A7-4DEA-ADD2-F417B32EE909"
  ]
}
3.7.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

[
  {
    "uuid": "DAC5C869-3DC3-41A1-85F3-FE113E7046AF",
    "status": 1201,
    "httpCode": 200,
    "description": " <Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2021-12-15T23:28:06.4819808"RfcEmisor="B&amp;M011127BQ0" WorkProcessId="8e5a0254-babc-4b55-aaa1-9232dc739db0"xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1"><Folios><UUID>0AA0A514-6997-4C1B-8A36-89BB0CB1B265</UUID><EstatusUUID>1201</EstatusUUID><Motivo>01</Motivo><FolioSustitucion>01E53227-38EC-458D-B1D4-08F2B533F98B</FolioSustitucion></Folios><Signature Id="SelloSAT" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512"/><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>fMuB/Ee3grx4cDFX+GRpnX3ME0l9dLTLdbiYXundyMPS+GOZ1AR2XMtepTSZiD08NzAwF2nFFHWkZOIEU3a4Dw==</DigestValue></Reference></SignedInfo><SignatureValue>D4rC8c5ZK2eXtbJWQ2C6xOTeW3dkPIf6u2+i6DbX1FTXqPkVW1dcm4i+I9GEetpJOfS6pSxGBa152QBPimJBNg==</SignatureValue><KeyInfo><KeyName>30001000000400001215</KeyName><KeyValue><RSAKeyValue><Modulus>nbtVtkPquCMLdpgeClMrTmxzCjyjn8P9YrBlW9jXC/FcXozIYHvzctK1pRxRxLTKlChc9fjluht9ffDfGOWim/4AlTrCiG6om7ItkHbLGMQrABp8qGY+SPmq1xtZ7qbbgoTFCtzP3pN9Z4uSDhdnrF2655sdmDzHJYE9MirNLM4SIdSFsabA31CCAMaWpB4TO6ZmExLp+wUiUyeIFWswc5G5KvmS/lU5tbXLK7zBDDUVjN0K1r/0iaZIZzPMxQcgfgYBrfLGZ3916MkmF28iBk5l1sfNTKS9S445QHKc+6oTP4UDDnjN/K14YWX449BAMxKcelEpjZlBQs1a1eNVcQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo></Signature></Acuse>"
  }
]
3.7.5 Códigos de respuesta

Código

Descripción

200

OK – Cancelación exitosa. Devuelve el UUID, estatus y acuse de cancelación.

401

Not Found - No existe el (keyEmpresa)

403

Forbidden – Alguno de los UUIDs proporcionados no se encontró o no pertenece a la empresa.

3.7.6 Consideraciones técnicas
  • Se permite cancelar hasta 500 CFDIs de retención en una sola petición.

  • Los UUIDs deben corresponder a CFDIs emitidos por la keyEmpresa indicada.

  • En caso de incluir UUIDs inválidos o que no correspondan a la empresa emisora, el servicio devolverá un error 403.

  • El motivo de cancelación debe ser uno de los valores definidos por el SAT (01–04).

  • Cuando el motivo sea 01, es obligatorio incluir el campo folioSustitucion.

  • El campo description contiene el XML del acuse de cancelación, el cual debe conservarse como evidencia oficial del proceso.


Motivo de Cancelación

Clave Descripción
01 Comprobante emitido con errores con relación.
02 Comprobante emitido con errores sin relación.
03 No se llevó a cabo la operación.
04 Operación nominativa relacionada en una factura global.

 


3.8 Consultar los CFDIs Cancelados por Rango de Fechas

3.8.1 Estructura general de la petición

Este servicio permite consultar los CFDIs cancelados dentro de un rango de fechas específico. La búsqueda por fecha o rango de fechas aplica únicamente para los comprobantes cancelados en versiones iguales o posteriores a la 3.64.

Los documentos cancelados en versiones anteriores no podrán ser consultados mediante este endpoint.

3.8.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de CFDIs cancelados

POST

/<keyEmpresa>/cfdis/consultaCancelacion

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

uuid

Opcional

UUID del CFDI a consultar. 

fecha

Opcional

Fecha específica de cancelación (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de búsqueda (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de búsqueda (formato yyyy-MM-dd).

estados

Opcional

Filtro de estados de cancelación permitidos (ver tabla de estados).

pageSize

Opcional

Número de registros por página (min = 1, max = 500, default = 100).

pageNumber

Opcional

Número de página (min = 0, default = 0).

3.8.3 Ejemplo de petición
POST https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion
Content-Type: application/json
Authorization: Basic {Token}

{
  "uuid": ["3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"]
}
3.8.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

[
  {
    "uuid": "3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A",
    "status": "CANCELABLE_SIN_ACEPTACION"
  }
]

Ejemplo de error – CFDI no encontrado

[
  {
    "uuid": "52CE170D-20DB-45B7-84EF-F886537163B1",
    "status": "NO_TRALIX"
  }
]
3.8.5 Códigos de respuesta

Código

Descripción

200

OK – Consulta realizada exitosamente. Devuelve el UUID y su estatus.

204

No Content – No existen CFDIs de cancelación que cumplan los criterios de búsqueda.

400

Bad Request – Parámetros incorrectos o faltantes.

401

Not Found – No existe la keyEmpresa especificada.

3.8.6 Consideraciones técnicas
  • La consulta por fecha o rango de fechas solo aplica para CFDIs cancelados en versión 3.64 o posterior.

  • Al menos un parámetro debe incluirse en la solicitud; no se permiten peticiones vacías.

  • Si se utilizan filtros por estado, deben acompañarse de fecha, fechaInicial o fechaFinal.

  • Los parámetros válidos para la consulta de estados son los siguientes:

Estados válidos

VIGENTE

CANCELABLE_CON_ACEPTACION
CANCELABLE_SIN_ACEPTACION
NO_CANCELABLE
NO_ENCONTRADO
EN_PROCESO
CANCELADO_PLAZO_VENCIDO
CANCELADO_CON_ACEPTACIÓN
CANCELADO_SIN_ACEPTACIÓN
SOLICITUD_RECHAZADA

3.9 Consultar los CFDIs Cancelados Indicando las Fechas

3.9.1 Estructura general de la petición

Este servicio permite consultar los CFDIs cancelados indicando fechas específicas o un rango de fechas, mostrando además la fecha de cancelación asociada a cada comprobante. La consulta admite el uso de filtros por UUID, estado o fecha.

3.9.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de CFDIs cancelados por fecha

POST

/<keyEmpresa>/cfdis/consultaCancelacionFecha

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Es requerido al menos un parámetro opcional en la petición, en formato json.

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

uuid

Opcional

UUID del CFDI a consultar. 

fecha

Opcional

Fecha específica de cancelación (formato yyyy-MM-dd).

fechaInicial

Opcional

Fecha inicial del rango de búsqueda (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de búsqueda (formato yyyy-MM-dd).

estados

Opcional

Filtro de estados de cancelación permitidos (ver tabla de estados).

pageSize

Opcional

Número de registros por página (min = 1, max = 500, default = 100).

pageNumber

Opcional

Número de página (min = 0, default = 0).

3.9.3 Ejemplo de petición
POST 
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion{"uuid":["3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"]}

Ejemplo adicional por fecha y estado:

POST
https://localhost:9050/6df9515e-6c7d-46fc-a2a8-86080ce9ba2f/cfdis/consultaCancelacion{"uuid":["3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A"]}
3.9.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

[
  {
    "uuid": "3BC513EC-FD2A-4B66-AAB2-4C46BC976C7A",
    "status": "CANCELABLE_SIN_ACEPTACION",
    "fecha": "2020-01-20"
  }
]

Ejemplo de error – CFDI no encontrado

[
  {
    "uuid": "52CE170D-20DB-45B7-84EF-F886537163B1",
    "status": "NO_TRALIX",
    "fecha": "2025-11-13"
  }
]
3.9.5 Códigos de respuesta

Código

Descripción

200

OK 

204

No Content – No existen CFDIs cancelados que cumplan los filtros indicados.

400

Bad Request – Parámetros incorrectos o faltantes.

401

Not Found – No existe la keyEmpresa especificada.

3.9.6 Consideraciones técnicas
  • Al menos un parámetro debe incluirse en la solicitud; no se permiten peticiones vacías.

  • Si se incluyen filtros por estado, deben acompañarse de fecha, fechaInicial o fechaFinal.

  • Los parámetros válidos para la consulta de estados son los siguientes:

Estados válidos

VIGENTE

CANCELABLE_CON_ACEPTACION

CANCELABLE_SIN_ACEPTACION

NO_CANCELABLE

NO_ENCONTRADO

EN_PROCESO

CANCELADO_PLAZO_VENCIDO

CANCELADO_CON_ACEPTACIÓN

CANCELADO_SIN_ACEPTACIÓN

SOLICITUD_RECHAZADA


3.10 Consultar los CFDI Enviados

3.10.1 Estructura general de la petición

Este servicio permite consultar los CFDI enviados a través del servicio de Email Rastreable, mostrando información relevante como el UUID, estatus, tipo de CFDI, correo electrónico del receptor y fecha de envío. La consulta se realiza en formato JSON y admite filtros por fechas, tipo de CFDI, tipo de reporte y número de página.

Nota: La consulta solo aplica para el servicio de Email Rastreable.

3.10.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Consulta de CFDI enviados
(Servicio Email Rastreable)

POST

/<keyEmpresa>/emailRastreable/report

Autenticación y Headers

Header

Valor esperado

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

keyEmpresa

Requerido

Llave encriptada que identifica la empresa en el sistema.

fechaInicial

Opcional

Fecha inicial del rango de búsqueda (formato yyyy-MM-dd).

fechaFinal

Opcional

Fecha final del rango de búsqueda (formato yyyy-MM-dd).

tiposCfdi

Opcional

Arreglo (Array) que contiene los tipos de CFDI a consultar, por ejemplo: ["cfdi33", "nomina"].

tipoReporte

Opcional

Tipo de campo String. Valores posibles: “OPEN” o “SEND”.

page

Opcional

Número de página del resultado. Campo numérico.

3.10.3 Ejemplo de petición
{
  "fechaInicial" : "2020-01-01",
  "fechaFinal" : "2020-11-19",
  "tiposCfdi" : ["cfdi33", "nomina"],
  "tipoReporte" : "OPEN",
  "page": 1
}
3.10.4 Ejemplo de respuesta

Respuesta exitosa (código 200):

{
  "page": 1,
  "lastPage": true,
  "reports": [
    {
      "uuid": "BCB0B52D-9A13-52AC-B432-DDDD29FF15EE",
      "serie": "",
      "folio": "",
      "rfcReceptor": "",
      "razonSocial": "",
      "monto": "",
      "fechaEmision": "",
      "tipoCfdi": "baseJhoanProd",
      "email": "jose.martinez@tralix.com",
      "fecha": "2020-10-23 22:15:52",
      "estatus": "OPEN"
    }
  ]
}
3.10.5 Códigos de respuesta

Código

Descripción

200

OK 

204

No Content – No existen CFDI enviados que cumplan los criterios de búsqueda.

400

Bad Request – Parámetros incorrectos o faltantes.

401

Not Found – No existe la keyEmpresa especificada.

3.10.6 Consideraciones técnicas
  • Este servicio solo aplica para el módulo de Email Rastreable.

  • Los parámetros fechaInicial y fechaFinal deben tener formato yyyy-MM-dd.

  • El campo tiposCfdi debe ser un arreglo con los tipos de comprobantes a consultar.

  • El campo page indica el número de página y lastPage indica si la página actual es la última del conjunto de resultados.


4. Contacto y Soporte

Para soporte técnico o dudas sobre el uso del servicio puede comunicarse con el área de soporte técnico de Tralix vía ticket.


 

 

Endpoint Cancelación Acuse

1. Introducción

Este documento describe el endpoint: Cancelación de CFDI retornando el Acuse, el cual permite realizar la cancelación de uno o varios CFDI y obtener como respuesta el acuse de cancelación emitido por el SAT, incluyendo el estado fiscal y el código de estatus correspondiente.

El servicio está diseñado para ser consumido vía API REST, utilizando solicitudes HTTP en formato JSON.


2. Cancelación de CFDI retornando el Acuse

2.1 Estructura general de la petición

Endpoint para cancelar en XSA para retornar el acuse de cancelación. La petición consiste en el envío de un cuerpo JSON que incluye el listado de UUIDs a cancelar, el motivo de cancelación y, cuando aplique, el folio de sustitución.

2.2 Parámetros requeridos

Endpoint

Servicio

Método

URL

Alta de Empresas

POST

/<keyEmpresa>/cfdis/cancelarAcuse

Autenticación y Headers

Header

Valor

Content-Type

application/json

Parámetros

Campo

Uso

Descripción

uuid

Requerido

Listado de UUIDs de los CFDI a cancelar.

motivo

Requerido Clave del motivo de cancelación conforme al SAT.

folioSustitucion

Requerido UUID del CFDI que sustituye al cancelado. Requerido únicamente cuando el motivo es 01.
2.3 Ejemplo de petición

Ejemplo – Motivo 01 (Comprobante emitido con errores con relación)

https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelar?
{
  "uuid": ["D5BD58B7-D1B9-422C-8877-DE9DBAE2C48D"],
  "motivo": "01",
  "folioSustitucion": "71BDA958-28EA-416C-846E-1746F8C2C2BA"
}

Ejemplo – Motivo 02, 03 o 04

https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelar?
{
  "uuid": [
    "D5BD58B7-D1B9-422C-8877-DE9DBAE2C48D",
    "71BDA958-28EA-416C-846E-1746F8C2C2BA"
  ],
  "motivo": "02"
}
2.4 Ejemplo de respuesta

Respuesta exitosa (Código 200)

{
"uuid": "D5BD58B7-D1B9-422C-8877-DE9DBAE2C48D",
"acuse": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CancelaCFDResponse xmlns=\"http://cancelacfd.sat.gob.mx\" xmlns:cfdi=\"http://www.sat.gob.mx/cfd/3\"
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"><CancelaCFDResult RfcEmisor=\"WATM640917J45\" Fecha=\"2018-07-21T18:08:02.3095708\"><Folios><UUID>D5BD58B7-D1B9-422C-8877-DE9DBAE2C48D</UUID><EstatusUUID>201</EstatusUUID>\n </Folios><Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\" Id=\"SelloSAT\"><SignedInfo><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/><SignatureMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\"/><Reference URI=\"\"><Transforms><Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xpath-19991116\"><XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath>\n </Transform>\n </Transforms><DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha512\"/><DigestValue>SPnX6PlRGS1weMrFjfEgl4DHigxl0PjkjnI/03Uvf3FuEcf1tfB2aZikcGFo0tB2tK/q0VK2fMGqyO3UrKfAjQ==</DigestValue>\n
</Reference>\n </SignedInfo><SignatureValue>JL76aoDidEr5atP2pm1suoz3+gBumHbH7lhzwGJuoYOaumda4ZnMQACrIFTszv1lejecsRVd5CvcIEnrorgnWg==</SignatureValue><KeyInfo><KeyName>BF66E582888CC845</KeyName><KeyValue><RSAKeyValue><Modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p
7RxLrFoxzWgpwKriuGI5wUlU=</Modulus><Exponent>AQAB</Exponent>\n </RSAKeyValue>\n </KeyValue>\n </KeyInfo>\n </Signature>\n </CancelaCFDResult>\n </CancelaCFDResponse>",
"estadoFiscal": "CANCELADO_SIN_ACEPTACION",
"codigoEstatus": "201"
}
2.5 Códigos de respuesta

Código

Descripción

200

OK

400

Bad Request - Parámetros incorrectos

401

Not Found - No existe la keyEmpresa

500

No se puedeN cancelar los comprobantes con los siguientes UUIDs, verifique que sean válidos y que pertenezcan a la empresa.

2.6 Motivos de Cancelación

Clave

Descripción

01

Comprobante emitido con errores con relación.

02

Comprobante emitido con errores sin relación.

03

No se llevó a cabo la operación.

04

Operación nominativa relacionada en una factura global.

2.7 Códigos de Cancelación

Código

Descripción

201 Petición aceptada.

202

Folio Fiscal Previamente Cancela
203 Folio Fiscal No Correspondiente al Emisor
204 Folio Fiscal No Aplicable a Cancelación
205 Folio Fiscal No Existente
206 UUID no corresponde a un CFDI del Sector Primario
207 No se especificó el motivo de cancelación o el motivo no es válido
208 Folio Sustitución inválido
209 Folio Sustitución no requerido

210

La fecha de solicitud de cancelación es mayor a la fecha de declaración

211

La fecha de solicitud de cancelación límite para factura global
212 Relación no válida o inexistente
300 Usuario No Válido
301 XML mal formado.
302 Sello mal formado o inválido.
303 Sello no corresponde a emisor o caduco.
304 Certificado revocado o caduco.
305 Certificado Inválido
306 El certificado no es de tipo CSD.
307 El CFDI contiene un timbre previo.
308 Certificado no expedido por el SAT.
309 Certificado Inválido
310 CSD Inválido
402 RFC del emisor no se encuentra en el régimen de contribuyentes.
407 Error en el servicio de cancelación del SAT.

800

NO_ENCONTRADO
801 NO_CANCELA BLE
802 EN_PROCESO
901 El cliente con el CustomerKey proporcionado no es válido.
902 El RFC no está registrado como cliente.
903 El RFC se encuentra inactivo por el momento.
904 No cuenta con licencia para realizar peticiones.
905 El RFC no pertenece al cliente con el CustomerKey que proporcionó.
906 Ha expirado su periodo de pruebas.
910 No se puede determinar el cliente a partir del RFC.
998 Error en el cliente.
999 Error en el servidor.

3. Consideraciones Técnicas

  • El header Content-Type: application/json es obligatorio para el correcto procesamiento de la solicitud.

  • El parámetro folioSustitucion solo debe enviarse cuando el motivo de cancelación sea 01.

  • El endpoint puede procesar múltiples UUIDs en una sola petición, siempre que el motivo lo permita.


4. Contacto y Soporte

Para soporte técnico o dudas sobre el uso del servicio puede comunicarse con el área de soporte técnico de Tralix vía ticket.