Cancelación CFDI

Servicio mediante el cual podrás realizar las cancelaciones de tus comprobantes a través de los diferentes métodos disponibles.

Para este servicio también puedes utilizar los CSD de pruebas proporcionados por el SAT.

Antes de cancelar, recomendamos consultar el estatus de la factura y consultar los CFDIs relacionados para que el proceso de cancelación se lleve de manera correcta.

🧰 Url Producción : https://services.sw.com.mx

Cancelación UUID

Método de cancelación por UUID, para este método es indispensable previamente
cargar los certificados del emisor a la cuenta.

Endpoint

MétodoRuta
POST/cfdi33/cancel/{rfc}/{uuid}/{motivo}/{folioSustitucion}

Autenticación y Headers

HeaderValue
AuthorizationBearer Token

Parámetros Path

PropiedadUsoDescripción
rfcRequeridoRFC del emisor
uuidRequeridoUUID del comprobante
motivoRequeridoClave para expresar el motivo de la cancelación
folioSustitucionOpcionalUUID del comprobante que sustituye

Ejemplo Request

curl --request POST \
  --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/f7392818-aca8-44b0-9942-120d862a71ea/02 \
  --header 'Authorization: Bearer $token'
Response Ok
{
    "data": {
        "acuse": "<!--?xml version=\"1.0\" encoding=\"utf-8\"?--><acuse xmlns:xsd="\&quot;http://www.w3.org/2001/XMLSchema\&quot;" xmlns:xsi="\&quot;http://www.w3.org/2001/XMLSchema-instance\&quot;" fecha="\&quot;2022-06-10T02:49:35.7057854\&quot;" rfcemisor="\&quot;EKU9003173C9\&quot;"><folios xmlns="\&quot;http://cancelacfd.sat.gob.mx\&quot;"><uuid>FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8</uuid><estatusuuid>202</estatusuuid></folios><signature id="\&quot;SelloSAT\&quot;" xmlns="\&quot;http://www.w3.org/2000/09/xmldsig#\&quot;"><signedinfo><canonicalizationmethod algorithm="\&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315\&quot;"><signaturemethod algorithm="\&quot;http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\&quot;"><reference uri="\&quot;\&quot;"><transforms><transform algorithm="\&quot;http://www.w3.org/TR/1999/REC-xpath-19991116\&quot;"><xpath>not(ancestor-or-self::*[local-name()='Signature'])</xpath></transform></transforms><digestmethod algorithm="\&quot;http://www.w3.org/2001/04/xmlenc#sha512\&quot;"><digestvalue>yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==</digestvalue></digestmethod></reference></signaturemethod></canonicalizationmethod></signedinfo><signaturevalue>xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==</signaturevalue><keyinfo><keyname>BF66E582888CC845</keyname><keyvalue><rsakeyvalue><modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</modulus><exponent>AQAB</exponent></rsakeyvalue></keyvalue></keyinfo></signature></acuse>",
        "uuid": {
            "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201"
        }
    },
    "status": "success"
}
Response Error
{
    "message": "CACFDI33 - Problemas con el xml.",
    "messageDetail": "CA305 - Certificado Inválido.",
    "data": null,
    "status": "error"
}

Cancelación CSD

Cancelación por CSD

Endpoint

MétodoRuta
POST/cfdi33/cancel/csd

Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Type application/json

Parámetros JSON Body

PropiedadUsoTipoDescripción
uuidRequeridostringUUID del comprobante
rfcRequeridostringRFC del emisor
motivoRequeridostringClave para expresar el motivo de la cancelación
folioSustitucionOpcionalstringUUID del comprobante que sustituye
b64CerRequeridostringCertificado del emisor en Base64
b64KeyRequeridostringKey del emisor en Base64
passwordRequeridostringContraseña del certificado

Ejemplo Request

curl --request POST \
  --url https://services.test.sw.com.mx/cfdi33/cancel/csd \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: application/json' \
  --data '{
  "uuid": "059c8c06-af7e-4c8c-8085-51b631696de5",
  "password": "12345678a",
  "rfc": "EKU9003173C9",
  "motivo": "02",
  "b64Cer": "$cer",
  "b64Key": "$key"
}'
Response Ok
{
    "data": {
        "acuse": "<!--?xml version=\"1.0\" encoding=\"utf-8\"?--><acuse xmlns:xsd="\&quot;http://www.w3.org/2001/XMLSchema\&quot;" xmlns:xsi="\&quot;http://www.w3.org/2001/XMLSchema-instance\&quot;" fecha="\&quot;2022-09-08T10:42:56.2610824\&quot;" rfcemisor="\&quot;EKU9003173C9\&quot;"><folios xmlns="\&quot;http://cancelacfd.sat.gob.mx\&quot;"><uuid>24B927FF-E5FA-4662-9BA0-9176A4C218B1</uuid><estatusuuid>202</estatusuuid></folios><signature id="\&quot;SelloSAT\&quot;" xmlns="\&quot;http://www.w3.org/2000/09/xmldsig#\&quot;"><signedinfo><canonicalizationmethod algorithm="\&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315\&quot;"><signaturemethod algorithm="\&quot;http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\&quot;"><reference uri="\&quot;\&quot;"><transforms><transform algorithm="\&quot;http://www.w3.org/TR/1999/REC-xpath-19991116\&quot;"><xpath>not(ancestor-or-self::*[local-name()='Signature'])</xpath></transform></transforms><digestmethod algorithm="\&quot;http://www.w3.org/2001/04/xmlenc#sha512\&quot;"><digestvalue>5S+xTQEV6cO8ek7qdG2l3yAcepQ0kvQ9eakdiWDq9/2D6P20O48G6K8AUJ9C55fBVBYoj+sQ87YUF/dpGJZemA==</digestvalue></digestmethod></reference></signaturemethod></canonicalizationmethod></signedinfo><signaturevalue>W8JG7ypQmqfuOtFefK9HQwwI6BQHd9dojGhyo7YmDaG3RRGxMlGozQOJGYEHAR4XSvISKkCRnT9RodEdgnEfFw==</signaturevalue><keyinfo><keyname>BF66E582888CC845</keyname><keyvalue><rsakeyvalue><modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</modulus><exponent>AQAB</exponent></rsakeyvalue></keyvalue></keyinfo></signature></acuse>",
        "uuid": {
            "24B927FF-E5FA-4662-9BA0-9176A4C218B1": "201"
        }
    },
    "status": "success"
}
Response Error
{
    "message": "CACFDI33 - Problemas con el xml.",
    "messageDetail": "CA305 - Certificado Inválido.",
    "data": null,
    "status": "error"
}

Cancelación PFX

Cancelación por PFX.

Endpoint

MétodoRuta
POST/cfdi33/cancel/pfx

Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Type application/json

Parámetros JSON Body

PropiedadUsoTipoDescripción
uuidRequeridostringUUID del comprobante
rfcRequeridostringRFC del emisor
motivoRequeridostringClave para expresar el motivo de la cancelación
folioSustitucionOpcionalstringUUID del comprobante que sustituye
b64PfxRequeridostringArchivo Pfx en Base64
passwordRequeridostringContraseña del certificado

Ejemplo Request

curl --request POST \
  --url https://services.test.sw.com.mx/cfdi33/cancel/pfx \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: application/json' \
  --data '{
  "uuid": "15b0cdf5-7cc6-4f6f-815a-5f101402f185",
  "password": "12345678a",
  "rfc": "EKU9003173C9",
  "motivo": "01",
  "folioSustitucion":"fe4e71b0-8959-4fb9-8091-f5ac4fb0fef8"
  "b64Pfx": "$Pfx"
}'
Response Ok
{
    "data": {
        "acuse": "<!--?xml version=\"1.0\" encoding=\"utf-8\"?--><acuse xmlns:xsd="\&quot;http://www.w3.org/2001/XMLSchema\&quot;" xmlns:xsi="\&quot;http://www.w3.org/2001/XMLSchema-instance\&quot;" fecha="\&quot;2022-06-10T02:49:35.7057854\&quot;" rfcemisor="\&quot;EKU9003173C9\&quot;"><folios xmlns="\&quot;http://cancelacfd.sat.gob.mx\&quot;"><uuid>FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8</uuid><estatusuuid>202</estatusuuid></folios><signature id="\&quot;SelloSAT\&quot;" xmlns="\&quot;http://www.w3.org/2000/09/xmldsig#\&quot;"><signedinfo><canonicalizationmethod algorithm="\&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315\&quot;"><signaturemethod algorithm="\&quot;http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\&quot;"><reference uri="\&quot;\&quot;"><transforms><transform algorithm="\&quot;http://www.w3.org/TR/1999/REC-xpath-19991116\&quot;"><xpath>not(ancestor-or-self::*[local-name()='Signature'])</xpath></transform></transforms><digestmethod algorithm="\&quot;http://www.w3.org/2001/04/xmlenc#sha512\&quot;"><digestvalue>yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==</digestvalue></digestmethod></reference></signaturemethod></canonicalizationmethod></signedinfo><signaturevalue>xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==</signaturevalue><keyinfo><keyname>BF66E582888CC845</keyname><keyvalue><rsakeyvalue><modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</modulus><exponent>AQAB</exponent></rsakeyvalue></keyvalue></keyinfo></signature></acuse>",
        "uuid": {
            "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201"
        }
    },
    "status": "success"
}
Response Error
{
    "message": "CACFDI33 - Problemas con el xml.",
    "messageDetail": "CA305 - Certificado Inválido.",
    "data": null,
    "status": "error"
}

📖 Artículos de apoyo:

¿Cómo crear un PFX?

Cancelación XML

Servicio para cancelar enviando un XML con la información y folios de las facturas a cancelar. Este método puede ser utilizando para cancelación masiva de CFDI.

Endpoint

MétodoRuta
POST/cfdi33/cancel/xml

Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typemultipart/form-data

Parámetros Form

PropiedadUsoDescripción
xmlRequeridoXML estructurado conforme al estándar anexo 20 (pág. 62, en el portal oficial del SAT), con la información de los comprobantes a cancelar

Ejemplo Request

curl --request POST \
  --url http://services.test.sw.com.mx/cfdi33/cancel/xml \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
  --form 'xml=@C:\Users\SW sapien\cancelacionMasiva.xml'
Response Ok
{
    "data": {
        "acuse": "<!--?xml version=\"1.0\" encoding=\"utf-8\"?--><acuse xmlns:xsd="\&quot;http://www.w3.org/2001/XMLSchema\&quot;" xmlns:xsi="\&quot;http://www.w3.org/2001/XMLSchema-instance\&quot;" fecha="\&quot;2022-06-10T02:49:35.7057854\&quot;" rfcemisor="\&quot;EKU9003173C9\&quot;"><folios xmlns="\&quot;http://cancelacfd.sat.gob.mx\&quot;"><uuid>FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8</uuid><estatusuuid>202</estatusuuid></folios><signature id="\&quot;SelloSAT\&quot;" xmlns="\&quot;http://www.w3.org/2000/09/xmldsig#\&quot;"><signedinfo><canonicalizationmethod algorithm="\&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315\&quot;"><signaturemethod algorithm="\&quot;http://www.w3.org/2001/04/xmldsig-more#hmac-sha512\&quot;"><reference uri="\&quot;\&quot;"><transforms><transform algorithm="\&quot;http://www.w3.org/TR/1999/REC-xpath-19991116\&quot;"><xpath>not(ancestor-or-self::*[local-name()='Signature'])</xpath></transform></transforms><digestmethod algorithm="\&quot;http://www.w3.org/2001/04/xmlenc#sha512\&quot;"><digestvalue>yQdDpQmr8EW3PvHBdGDiOfcO4hF3gXApv9ggW+x8pGb0Ox1inycuKKBo46RBozt8oWat4g2jLQEak2PyS/JbEg==</digestvalue></digestmethod></reference></signaturemethod></canonicalizationmethod></signedinfo><signaturevalue>xAzJW9WdeFYkxR7+NQXGCgRoGCFbnUMN4aQ81OIa6Nh/NfuRStIhA8s5V4amtaNimYNR3v6PKAOUjCDVxxnVMw==</signaturevalue><keyinfo><keyname>BF66E582888CC845</keyname><keyvalue><rsakeyvalue><modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</modulus><exponent>AQAB</exponent></rsakeyvalue></keyvalue></keyinfo></signature></acuse>",
        "uuid": {
            "FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8": "201"
        }
    },
    "status": "success"
}
Response Error
{
    "message": "CACFDI33 - Problemas con el xml.",
    "messageDetail": "CA305 - Certificado Inválido.",
    "data": null,
    "status": "error"
}

Respuestas de cancelación

Todos los response de cancelación retornan la misma estructura en caso de error o en caso de petición satisfactoria, las cuales son las siguientes:

Tipos de respuesta

En caso de una respuesta exitosa, se regresará un 200. En caso de una respuesta no exitosa, se regresará un código diferente de 200, el código puede variar dependiendo del problema dado.

Respuesta exitosa

{
	"data": {
		"acuse": "<?xml version=\"1.0\" encoding=\"utf-8\"?><Acuse xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" Fecha=\"2017-06-27T11:00:54.8788503\" RfcEmisor=\"LAN7008173R5\"><Folios xmlns=\"http://cancelacfd.sat.gob.mx\"><UUID>3EAEABC9-EA41-4627-9609-C6856B78E2B1</UUID><EstatusUUID>202</EstatusUUID></Folios><Signature Id=\"SelloSAT\" xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><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></Transform></Transforms><DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha512\" /><DigestValue>yoO1MKUhUcokwUgyKt5GJbcXvSzZhMKOp2pGhtuwBVrk35Y8HW8s6gJ04liSamflJFNWwUzaFOIf7KpS0SKkaw==</DigestValue></Reference></SignedInfo><SignatureValue>7ZKbUqUVSXkd9Xo9Dm4xOzrqd+j8v3NQWH8HeIPH+opnTOTGNSlVu+a2cqKKB7vmbt2ZTyfsaNsZ+d7up0zEIw==</SignatureValue><KeyInfo><KeyName>00001088888810000001</KeyName><KeyValue><RSAKeyValue><Modulus>vAr6QLmcvW6auTg7a+Ogm0veNvqJ30rD3j0iSAHxGzGVrg1d0xl0Fj5l+JX9EivD+qhkSY7pfLnJoObLpQ3GGZZOOihJVS2tbJDmnn9TW8fKUOVg+jGhcnpCHaUPq/Poj8I2OVb3g7hiaREORm6tLtzOIjkOv9INXxIpRMx54cw46D5F1+0M7ECEVO8Jg+3yoI6OvDNBH+jABsj7SutmSnL1Tov/omIlSWausdbXqykcl10BLu2XiQAc6KLnl0+Ntzxoxk+dPUSdRyR7f3Vls6yUlK/+C/4FacbR+fszT0XIaJNWkHaTOoqz76Ax9XgTv9UuT67j7rdTVzTvAN363w==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo></Signature></Acuse>",
		"uuid": {
			"3EAEABC9-EA41-4627-9609-C6856B78E2B1": "202"
		}
	},
	"status": "success"
}

En este caso se recibe un mensaje JSON, el cual contiene los siguientes datos:

  • Acuse: Xml de acuse que regresa el SAT, Se considera una solicitud de cancelación exitosa, sin embargo, esto no asegura su cancelación.
  • UUID: uuid de la solicitud y el estatus de él. 

Respuestas no exitosas

Respuestas no exitosas/Cancelación por CSD
{
	"message": "CASD - Acuse sin descripción específica.",
	"messageDetail": "El uuid proporcionado es inválido. Favor de verificar.",
	"data": null,
	"status": "error"
}
{
	"message": "CACFDI33 - Problemas con los campos.",
	"messageDetail": "El certificado no pertenece a la llave privada.",
	"data": null,
	"status": "error"
}
{
	"message": "CASD - Acuse sin descripción específica.",
	"messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.",
	"data": null,
	"status": "error"
}
{
	"message": "CASD - Acuse sin descripción específica.",
	"messageDetail": "Invalid length for a Base-64 char array or string.",
	"data": null,
	"status": "error"
}
Respuestas no exitosas/Cancelación por PFX
{
  "message": "CASD - Acuse sin descripción específica.",
  "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.",
  "data": null,
  "status": "error"
}
{
    "message": "CACFDI33 - Problemas con los CSD.",
    "messageDetail": "Error con los CSD. Error: Cannot Read PFX......",
    "data": null,
    "status": "error"
}
{
  "message": "CASD - Acuse sin descripción específica.",
  "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.",
  "data": null,
  "status": "error"
}
{
  "message": "CASD - Acuse sin descripción específica.",
  "messageDetail": "Invalid length for a Base-64 char array or string.",
  "data": null,
  "status": "error"
}
Respuestas no exitosas/Cancelación por UUID
{
  "message": "CACFDI33",
  "messageDetail": "El UUID proporcionado es invalido. Favor de verificar.",
  "data": null,
  "status": "error"
}
{
  "message": "CACFDI33",
  "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.",
  "data": null,
  "status": "error"
}
Respuestas no exitosas/Cancelación por XML
{
  "message": "CACFDI33 - Problemas con el xml.",
  "messageDetail": "CA305 - La fecha de emisión no esta dentro de la vigencia del CSD del Emisor.",
  "data": null,
  "status": "error"
}
{
  "message": "CACFDI33 - Problemas con el xml.",
  "messageDetail": "CA302 - Sello mal formado o inválido.",
  "data": null,
  "status": "error"
}




Códigos de respuesta de folios de cancelación

Codigo
Mensaje
Descripción

201

Solicitud de cancelación exitosa Se considera una solicitud de cancelación exitosa, sin embargo esto no asegura su cancelación

202

Folio Fiscal Previamente Cancelado Se considera solicitud de cancelación previamente enviada. Estatus Cancelado ante el SAT.

203

Folio Fiscal No Correspondiente al Emisor  

204

Folio Fiscal No Aplicable a Cancelación  

205

Folio Fiscal No Existente El SAT da una prorroga de 48 hrs para que el comprobante aparezca con estatus Vigente posterior al envió por parte del Proveedor de Certificación de CFDI. Puede que algunos comprobantes no aparezcan al momento, es necesario esperar por lo menos 48 hrs.

206

UUID no corresponde a un CFDI del Sector Primario  

207

No se especificó el motivo de cancelación o el motivo no es valido El UUID sustitución no existe, está cancelado o tiene una fecha de emisión anterior a la fecha de emisión del comprobante original.

208

Folio Sustitución invalido  

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 valida o inexistente  

300

Usuario No Válido  

301

XML Mal Formado Este código de error se regresa cuando el request posee información invalida, ejemplo: un RFC de receptor no válido.

302

Sello Mal Formado  

304

Certificado Revocado o Caduco El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc.

305

Certificado Inválido El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc.

309

Certificado Inválido El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc.

310

CSD Inválido  

311

Motivo inválido Clave de motivo de cancelación no válida

312

UUID no relacionado UUID no relacionado de acuerdo a la clave de motivo de cancelación

En SW® somos mejores para TI, es por ello que tu opinión es muy importantepor favor ayúdanos calificando este articulo y dejando tus comentarios.

How useful was this post?

Click on a star to rate it!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Updated on julio 25, 2024

Article Attachments

Related Articles