Endpoint Cancelación sin registro en DB - ML 1. Introducción El servicio Cancelación sin registro en DB permite realizar la cancelación de un CFDI (Comprobante Fiscal Digital por Internet) cuando el comprobante no se encuentra registrado en la base de datos 1 a 1. 2. Consulta de CFDIs 2.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 HTTPS POST, enviando el parámetro uuid, total, rfcReceptor 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.2 Parámetros requeridos Endpoint Servicio Método URL Consulta de CFDIs POST //cfdis/consultaCancelacion Autenticación y Headers Header Valor esperado Content-Type application/json Parámetros Campo Uso Descripción uuid Requerido UUID correspondientes al CFDI que se desea cancelar. total Requerido Monto total del CFDI a cancelar. Debe coincidir con el total registrado ante el SAT. rfcReceptor Requerido RFC del receptor del comprobante fiscal. 2.3 Ejemplo de petición https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/consultaCancelacion? { "uuid": ["3213AE58-3CB6-4711-853B-2DB15D93CC18"], "total": "40.09", "rfcReceptor": "XAXX010101000" } 2.4 Ejemplo de respuesta Respuesta exitosa (código 200): [{"uuid":"3213AE58-3CB6-4711-853B-2DB15D93CC18","status":"CANCELADO_SIN_ACEPTACION"}] 2.5 Códigos de respuesta Código Descripción 200 OK. Petición exitosa. 400 Bad Request - Petición incorrecta. Los parámetros enviados son incorrectos. 401 Not Found - No existe la keyEmpresa 3. Cancelación de CFDIs 3.1 Estructura general de la petición La petición debe realizarse mediante el método HTTP POST y con cuerpo en formato JSON. 3.2 Parámetros requeridos Endpoint Servicio Método URL Cancelación sin registro en DB POST //cfdis/cancelarAcuseHistorico Autenticación y Headers Header Valor esperado Content-Type application/json Parámetros Campo Uso Descripción uuid Requerido UUID correspondientes al CFDI que se desea cancelar. motivo Requerido Clave del motivo de cancelación conforme al catálogo del SAT. folioSustitucion Condicional Requerido únicamente cuando el motivo sea “01 - Comprobante emitido con errores con relación”. Debe contener el UUID del CFDI que sustituye al cancelado. total Requerido Monto total del CFDI a cancelar. Debe coincidir con el total registrado ante el SAT. rfcReceptor Requerido RFC del receptor del comprobante fiscal. 3.3 Ejemplo de petición Ejemplo para motivo “01” (con folio de sustitución): https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelarAcuseHistorico? { "uuid": ["3213AE58-3CB6-4711-853B-2DB15D93CC18"], "motivo": "01", "folioSustitucion": "71BDA958-28EA-416C-846E-1746F8C2C2BA", "total": "40.09", "rfcReceptor": "XAXX010101000" } Ejemplo para motivo “02”, “03” o “04”: https://10.0.0.183:9050/985408d8-64ae-48e0-b46c-473b47176205/cfdis/cancelarAcuseHistorico? { "uuid": ["3213AE58-3CB6-4711-853B-2DB15D93CC18"], "motivo": "02", "total": "40.09", "rfcReceptor": "XAXX010101000" } 3.4 Ejemplo de respuesta Respuesta exitosa (código 200): { "uuid":"3213AE58-3CB6-4711-853B-2DB15D93CC18", "URLAcuse_XML":"http://localhost:9000/20c42654-8961-11ea-ab3d-fa163e0e7f24/descargasCfdi?idCfdi=69264bcce4abe567977fa90f2ab2469ac1595fd5b9112dfa122f5d5bc972f4e9485648fb7a64f7ccd796fcefcaf438ca&representacion=ACUSE_HISTORICO", "URLAcuse_PDF":"http://localhost:9000/20c42654-8961-11ea-ab3d-fa163e0e7f24/descargasCfdi?idCfdi=69264bcce4abe567977fa90f2ab2469ac1595fd5b9112dfa122f5d5bc972f4e9485648fb7a64f7ccd796fcefcaf438ca&representacion=ACUSE_PDF_HISTORICO", "estadoFiscal":"CANCELADO_SIN_ACEPTACION", "codigoEstatus":"202" } Respuesta de error (código 400): Content-Type: text/plain; charset=utf-8 Motivo inválido de cancelación 4. Códigos de respuesta 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 El UUID a cancelar no se encuentra asociado al RFC 801 El UUID a cancelar tiene un CFDI relacionado por lo que no se puede cancelar 802 El UUID a cancelar ya se encuentra en proceso de cancelación 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. 5. Estatus de la cancelación VIGENTECANCELABLE_CON_ACEPTACIONCANCELABLE_SIN_ACEPTACIONNO_CANCELABLENO_ENCONTRADOEN_PROCESOCANCELADO_PLAZO_VENCIDOCANCELADO_CON_ACEPTACIÓNCANCELADO_SIN_ACEPTACIÓNSOLICITUD_RECHAZADA 6. Consideraciones Técnicas El endpoint requiere formato JSON válido; cualquier estructura mal formada provocará error HTTP 400. El campo motivo debe corresponder a una clave válida conforme al catálogo del SAT. Si el motivo es “01”, el campo folioSustitucion es obligatorio. Se recomienda validar previamente que el CFDI no se encuentre ya cancelado antes de realizar la solicitud. 7. 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.