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 |
|
Autenticación y Headers
|
Header |
Valor esperado |
|---|---|
|
|
|
Parámetros
|
Campo |
Uso |
Descripción |
|---|---|---|
|
|
Requerido |
UUID correspondientes al CFDI que se desea cancelar. |
|
|
Requerido |
Monto total del CFDI a cancelar. Debe coincidir con el total registrado ante el SAT. |
|
|
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 |
|
Autenticación y Headers
|
Header |
Valor esperado |
|---|---|
|
|
|
Parámetros
|
Campo |
Uso |
Descripción |
|---|---|---|
|
|
Requerido |
UUID correspondientes al CFDI que se desea cancelar. |
|
|
Requerido |
Clave del motivo de cancelación conforme al catálogo del SAT. |
|
|
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. |
|
|
Requerido |
Monto total del CFDI a cancelar. Debe coincidir con el total registrado ante el SAT. |
|
|
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
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
6. Consideraciones Técnicas
-
El endpoint requiere formato JSON válido; cualquier estructura mal formada provocará error HTTP 400.
-
El campo
motivodebe corresponder a una clave válida conforme al catálogo del SAT. -
Si el motivo es “01”, el campo
folioSustituciones 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.