Flujo de Cancelación
Flujos automatizados de cancelación Tralix, es un desarrollo que contempla los pasos a seguir según las nuevas funcionalidades de SAT.
Contenido
Este es el endpoint con el flujo mas extenso, en el conlleva la verificación de los estados de los comprobantes para saber cual es el proceso a seguir para cada uno. Siguiendo con el diagrama de flujos:
Cancelación
El Web Service de Cancelación proporcionado por Tralix tiene la misma definición que el servicio del SAT expuesto hacia los PAC’s, esto tiene como consecuencia que el cliente al hacer la petición de cancelación hacia el servicio de Tralix debe emplear obligatoriamente XMLSignature para firmar la petición.
Una vez teniendo la petición formada puede ser enviada a Tralix en donde se encarga de añadir un Token de Autenticación proporcionado por el SAT para hacer 100% valida la petición de cancelación.
De esta manera se lleva a cabo el proceso de cancelación de CFDI mediante la llamada directa al Web Service de Tralix.Flujo de Cancelación
Producto: PAC Services – Tralix
1 Introducción
El presente manual tiene como propósito proporcionar una guía técnica detallada sobre el Flujo de Cancelación de CFDI a través del producto PAC Services – Tralix. Esta funcionalidad permite a emisores y receptores de comprobantes fiscales digitales realizar y gestionar cancelaciones conforme a los lineamientos establecidos por el Servicio de Administración Tributaria (SAT).
El flujo de cancelación está compuesto por distintos servicios que permiten ejecutar la cancelación de un CFDI, consultar su estatus fiscal, conocer los comprobantes pendientes por cancelación y aceptar o rechazar solicitudes cuando sea necesario. Todos estos servicios se ofrecen a través de interfaces REST que pueden consumir tanto contenido XML como JSON, dependiendo del tipo de operación.
Este documento está dirigido a desarrolladores, integradores y personal técnico responsable de la implementación del servicio en los sistemas del cliente. Cada sección describe el uso adecuado de los endpoints, la estructura de las peticiones y respuestas, los parámetros necesarios, ejemplos prácticos, así como las validaciones y consideraciones técnicas que se deben cumplir para garantizar una integración exitosa.
Además, se incluye información clave sobre autenticación, headers, formatos permitidos, cardinalidad, firma digital y tratamiento de errores, con el fin de facilitar la comprensión y uso correcto de cada componente del flujo.
Nota: Toda consulta de cancelación realizada a través de este servicio consume un timbre del paquete contratado por el cliente.
2 Servicio de Cancelación
El servicio Cancelación permite a los emisores de CFDI realizar la cancelación de uno o varios comprobantes en una sola petición. Esta operación se realiza mediante un servicio REST con contenido en XML y requiere que el XML esté firmado digitalmente con el CSD del emisor.
La cancelación debe cumplir con los lineamientos establecidos por el SAT, incluyendo la especificación del motivo de cancelación y, en su caso, el UUID del CFDI sustituto.
2.1 Estructura general de la petición
El servicio acepta contenido XML con una estructura específica que contiene los datos de cancelación por cada UUID. Se permite cancelar de 1 a 500 comprobantes en una sola petición (cardinalidad 1:500).
2.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
Método
Entorno
URL
POST
Pruebas
🔗 https://pruebastfd.tralix.com:8081/cancelCfdi
POST
Productivo
🔗 https://timbrador.tralix.com:8081/cancelCfdi
Autenticación y Headers
Header
Valor esperado
Content-Type
application/xml
ServerKey
XSA_API (clave proporcionada por Tralix)
Parámetros
Campo
Descripción
Fecha
Fecha de la solicitud de cancelación, formato AAAA-MM-DDTHH:MM:SS.
RfcEmisor
RFC del emisor que realiza la cancelación.
UUID
UUID del CFDI que se desea cancelar.
Motivo
Clave del motivo de cancelación (por ejemplo, 01, 02, etc.).
FolioSustitucion
(Opcional) UUID del CFDI que sustituye al cancelado. Requerido si el motivo lo exige.
RfcReceptor
RFC del receptor del CFDI que se cancela.
Total
Monto total del CFDI.
Signature
Firma digital del XML, generada con el CSD del emisor.
2.3 Ejemplo de petición
[RFC_RECEPTOR]
[TOTAL_FACTURA]
[RFC_RECEPTOR]
[TOTAL_FACTURA]
2.4 Ejemplo de respuesta
2.5 Códigos de respuesta
El atributo estado dentro del nodo indicará el resultado para cada UUID:
Estado
Descripción
Cancelado
El CFDI fue cancelado correctamente.
Error
Hubo un problema en la cancelación del CFDI.
2.6. Consideraciones Técnicas
Se permite cancelar hasta 500 CFDIs por solicitud.
El XML debe ser firmado con el CSD vigente del emisor.
3. Consulta de Estados de CFDI
El servicio Consulta de Estados permite realizar una búsqueda del estatus fiscal de uno o varios Comprobantes Fiscales Digitales por Internet (CFDIs) entregados al SAT. Este servicio responde con información sobre si el comprobante se encuentra vigente, cancelado o en proceso de cancelación, así como si es cancelable.
Este servicio está disponible en dos formatos, :
Consulta individual (1:1) mediante estructura XML.
Consulta masiva (1:500) mediante estructura JSON.
Esta operación se realiza mediante un servicio REST.
3.1 Estructura general de la petición
La petición puede realizarse de dos formas, dependiendo del tipo de consumo:
Tipo de consulta
Formato
Cardinalidad
Individual
XML
1:1
Masiva
JSON
1:500
3.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
Método
Ambiente
URL
POST
Pruebas
🔗 https://timbrador.tralix.com:8081/cancela/consultaSoap/
Autenticación y Headers
Header
Valor esperado
Content-Type
application/xml (para XML) | application/json (para JSON)
ServerKey
XSA_API
Parámetros
Para consulta individual (XML):
Campo
Descripción
re
RFC del emisor
rr
RFC del receptor
tt
Total del CFDI (ej. 10403.20)
id
UUID del CFDI
Para consulta masiva (JSON):
Campo
Descripción
rfcEmisor
RFC del emisor
rfcReceptor
RFC del receptor
total
Total del CFDI
uuid
UUID del CFDI
3.3 Ejemplo de petición
XML (1:1):
JSON (1:500):
{
"statusVerifierList": [
{
"rfcEmisor": "[RFC_EMISOR]",
"rfcReceptor": "[RFC_RECEPTOR]",
"total": "[TOTAL]",
"uuid": "[UUID]"
},{
"rfcEmisor": "[RFC_EMISOR]",
"rfcReceptor": "[RFC_RECEPTOR]",
"total": "[TOTAL]",
"uuid": "[UUID]"
}
]
}
3.4 Ejemplo de respuesta
XML (respuesta individual):
S - Comprobante obtenido satisfactoriamente.
Cancelable con aceptación
Cancelado
Cancelado con aceptación
JSON (respuesta masiva):
{
"statusVerifierList": [
{
"estado": "Vigente",
"uuid": "[UUID]",
"codigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
"esCancelable": "Cancelable con aceptación",
"estatusCancelacion": ""
},
{
"estado": "Vigente",
"uuid": "[UUID]",
"codigoEstatus": "S - Comprobante obtenido satisfactoriamente.",
"esCancelable": "Cancelable con aceptación",
"estatusCancelacion": ""
}
]
}
3.5 Códigos de respuesta (debe ser interpretado desde el campo codigoEstatus)
Código
Descripción
S - Comprobante obtenido satisfactoriamente.
Consulta exitosa. El CFDI existe y se obtuvo su estado.
Otros mensajes
Se indicarán mensajes de error específicos si el comprobante no fue localizado o hay un problema de parámetros.
3.6 Consideraciones Técnicas
Los montos (total) deben tener exactamente dos decimales y coincidir con el total del CFDI.
Para consultas masivas, no se puede exceder la cardinalidad de 500 registros por solicitud.
4 Consulta Pendientes por Cancelar
El servicio Pendientes por Cancelar permite a los receptores de CFDI consultar los comprobantes fiscales que se encuentran en proceso de cancelación, es decir, aquellos que requieren aceptación o rechazo por parte del receptor para completar su cancelación.
Este servicio está disponible en dos formatos de consumo:
Consulta individual (XML)
Consulta individual (JSON)
Esta operación se realiza mediante un servicio REST.
Nota: La información obtenida representa solicitudes de cancelación pendientes, no implica que el CFDI esté cancelado.
4.1 Estructura general de la petición
Tipo de consulta
Formato
Cardinalidad
Individual
XML
1:1
Individual
JSON
1:1
4.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
Método
Ambiente
URL
POST
Pruebas
🔗 https://pruebastfd.tralix.com:8081/cancela/pendientesSoap/
Autenticación y Headers
Header
Valor esperado
Content-Type
application/xml (para XML) | application/json (para JSON)
ServerKey
XSA_API
Parámetros
Campo
Uso
Descripción
rfcReceptor
Requerido
RFC del receptor del CFDI
4.3 Ejemplo de petición
XML
[RFC_RECEPTOR]
JSON
{
"rfcReceptor": "CALJ581101M37"
}
4.4 Ejemplo de respuesta
XML
[UUID]
[UUID]
JSON
{
"codStatus": "1100",
"uuids": [
{
"uuid": "[UUID]"
},{
"uuid": "[UUID]"
}
]
}
4.5. Consideraciones Técnicas
Se recomienda validar previamente que el RFC receptor sea correcto y activo.
No se permite enviar múltiples RFCs por solicitud (cardinalidad 1:1).
El sistema solo devolverá UUIDs con estatus "En proceso" de cancelación.
Este servicio no genera cancelaciones ni acepta/rechaza solicitudes, solo consulta el estado actual.
5 Consulta de Aceptación o Rechazo de Cancelación CFDI
El servicio de Aceptación o Rechazo permite a los receptores de CFDI responder una solicitud de cancelación realizada por el emisor. Aplica únicamente para CFDIs que se encuentran con estatus "En Proceso", es decir, aquellos que requieren autorización del receptor para que su cancelación sea válida.
Mediante este servicio, el receptor puede confirmar si acepta o rechaza la cancelación del comprobante correspondiente. La respuesta se debe enviar firmada con el certificado del receptor.
Esta operación se realiza mediante un servicio REST.
5.1 Estructura general de la petición
Tipo de consulta
Formato
Cardinalidad
Individual
XML
1:1
5.2 Parámetros requeridos
Endpoint
Esta operación se realiza mediante un servicio REST.
Método
Ambiente
URL
POST
Pruebas
🔗 https://pruebastfd.tralix.com:8081/cancela/answerSoap/
Autenticación y Headers
Header
Valor esperado
Content-Type
application/xml
ServerKey
XSA_API
Parámetros
Campo
Descripción
Fecha
Fecha y hora de solicitud en formato AAAA-MM-DD HH:MM:SS
RfcPacEnviaSolicitud
RFC del PAC que envía la solicitud
RfcReceptor
RFC del receptor del CFDI (quien responde la cancelación)
UUID
Folio fiscal del comprobante que se desea aceptar o rechazar
Respuesta
Acción del receptor: Aceptacion o Rechazo
Signature
Nodo con la firma digital del receptor (uso de certificado)
5.3 Ejemplo de petición
[UUID]
[Rechazo/Aceptacion]
5.4 Ejemplo de respuesta
[UUID]
[ESTATUS_UUID]
5.5 Consideraciones Técnicas
El UUID debe haber sido previamente consultado como "En Proceso" por el receptor.
Solo se permite un UUID por solicitud (cardinalidad 1:1).
La firma digital (Signature) debe generarse con el CSD del receptor.
La respuesta (aceptación o rechazo) será enviada al SAT mediante el PAC y actualizará el estatus del CFDI.
El mismo UUID no puede ser respondido más de una vez.
6 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.
Respuestas de Cancelación
Respuestas posibles en el proceso de cancelación
Durante el flujo de cancelación de CFDI, el servicio de consulta de estados puede devolver diferentes tipos de respuesta según el estatus fiscal del comprobante y las reglas establecidas por el SAT, así como el tipo de relación entre emisor y receptor.
Estas respuestas indican el estatus actual del CFDI y si es posible o no cancelarlo, y si requiere aceptación por parte del receptor. A continuación, se detallan los posibles valores devueltos, junto con ejemplos de RFC utilizados comúnmente para pruebas:
Código de
respuesta
Descripción
Ejemplo de RFC receptor para pruebas
CANCELABLE_C_A
CFDI cancelable con aceptación.
DAL050601L35
CANCELABLE_S_A
CFDI cancelable sin aceptación.
WATM640917J45
CANCELADO_C_A
CFDI ya fue cancelado con aceptación.
EWE1709045U0
CANCELADO_S_A
CFDI cancelable sin aceptación.
WERX631016S30
EN_PROCESO
La solicitud de cancelación está en proceso.
XIA190128J61
NO_CANCELABLE
El CFDI no cancelable.
JUFA7608212V6
PLAZO_VENCIDO
Plazo vencido para cancelar.
FUNK671228PH6
Notas importantes:
Los valores anteriores se devuelven como parte de la respuesta del servicio de Consulta de Estado de CFDI.
Es fundamental que el integrador utilice el RFC correcto en las pruebas para obtener el escenario deseado.
En ambientes productivos, las respuestas estarán determinadas por la configuración real del comprobante emitido y su relación emisor-receptor.