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.