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 |
|
Autenticación y Headers
|
Header |
Valor |
|---|---|
|
|
|
Parámetros
|
Campo |
Uso |
Descripción |
|---|---|---|
|
|
Requerido |
Listado de UUIDs de los CFDI a cancelar. |
|
|
Requerido | Clave del motivo de cancelación conforme al SAT. |
|
|
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": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CancelaCFDResponse xmlns=\"http://cancelacfd.sat.gob.mx\" xmlns:cfdi=\"http://www.sat.gob.mx/cfd/3\"
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"><CancelaCFDResult RfcEmisor=\"WATM640917J45\" Fecha=\"2018-07-21T18:08:02.3095708\"><Folios><UUID>D5BD58B7-D1B9-422C-8877-DE9DBAE2C48D</UUID><EstatusUUID>201</EstatusUUID>\n </Folios><Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\" Id=\"SelloSAT\"><SignedInfo><CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/><SignatureMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\"/><Reference URI=\"\"><Transforms><Transform Algorithm=\"http://www.w3.org/TR/1999/REC-xpath-19991116\"><XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath>\n </Transform>\n </Transforms><DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha512\"/><DigestValue>SPnX6PlRGS1weMrFjfEgl4DHigxl0PjkjnI/03Uvf3FuEcf1tfB2aZikcGFo0tB2tK/q0VK2fMGqyO3UrKfAjQ==</DigestValue>\n
</Reference>\n </SignedInfo><SignatureValue>JL76aoDidEr5atP2pm1suoz3+gBumHbH7lhzwGJuoYOaumda4ZnMQACrIFTszv1lejecsRVd5CvcIEnrorgnWg==</SignatureValue><KeyInfo><KeyName>BF66E582888CC845</KeyName><KeyValue><RSAKeyValue><Modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p
7RxLrFoxzWgpwKriuGI5wUlU=</Modulus><Exponent>AQAB</Exponent>\n </RSAKeyValue>\n </KeyValue>\n </KeyInfo>\n </Signature>\n </CancelaCFDResult>\n </CancelaCFDResponse>",
"estadoFiscal": "CANCELADO_SIN_ACEPTACION",
"codigoEstatus": "201"
}
2.5 Códigos de respuesta
|
Código |
Descripción |
|---|---|
|
|
OK |
|
|
Bad Request - Parámetros incorrectos |
|
|
Not Found - No existe la keyEmpresa |
|
|
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/jsones obligatorio para el correcto procesamiento de la solicitud. -
El parámetro
folioSustitucionsolo 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.
No Comments