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 //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": "D5BD58B7-D1B9-422C-8877-DE9DBAE2C48D201\n not(ancestor-or-self::*[local-name()='Signature'])\n \n SPnX6PlRGS1weMrFjfEgl4DHigxl0PjkjnI/03Uvf3FuEcf1tfB2aZikcGFo0tB2tK/q0VK2fMGqyO3UrKfAjQ==\n \n JL76aoDidEr5atP2pm1suoz3+gBumHbH7lhzwGJuoYOaumda4ZnMQACrIFTszv1lejecsRVd5CvcIEnrorgnWg==BF66E582888CC845n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p 7RxLrFoxzWgpwKriuGI5wUlU=AQAB\n \n \n \n \n \n ", "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.