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 Pruebas : https://services.test.sw.com.mx
🧰 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étodo | Ruta |
---|---|
POST | /cfdi33/cancel/{rfc}/{uuid}/{motivo}/{folioSustitucion} |
Autenticación y Headers
Header | Value |
---|---|
Authorization | Bearer Token |
Parámetros Path
Propiedad | Uso | Descripción |
---|---|---|
rfc | Requerido | RFC del emisor |
uuid | Requerido | UUID del comprobante |
motivo | Requerido | Clave para expresar el motivo de la cancelación |
folioSustitucion | Opcional | UUID 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'
{ "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="\"2022-06-10T02:49:35.7057854\"" rfcemisor="\"EKU9003173C9\""><folios xmlns="\"http://cancelacfd.sat.gob.mx\""><uuid>FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8</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>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" }
{ "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" }
Cancelación CSD
Cancelación por CSD
Endpoint
Método | Ruta |
---|---|
POST | /cfdi33/cancel/csd |
Autenticación y Headers
Header | Value |
---|---|
Authorization | Bearer Token |
Content-Type | application/json |
Parámetros JSON Body
Propiedad | Uso | Tipo | Descripción |
---|---|---|---|
uuid | Requerido | string | UUID del comprobante |
rfc | Requerido | string | RFC del emisor |
motivo | Requerido | string | Clave para expresar el motivo de la cancelación |
folioSustitucion | Opcional | string | UUID del comprobante que sustituye |
b64Cer | Requerido | string | Certificado del emisor en Base64 |
b64Key | Requerido | string | Key del emisor en Base64 |
password | Requerido | string | Contraseñ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" }'
{ "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="\"2022-09-08T10:42:56.2610824\"" rfcemisor="\"EKU9003173C9\""><folios xmlns="\"http://cancelacfd.sat.gob.mx\""><uuid>24B927FF-E5FA-4662-9BA0-9176A4C218B1</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>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" }
{ "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" }
Cancelación PFX
Cancelación por PFX.
Endpoint
Método | Ruta |
---|---|
POST | /cfdi33/cancel/pfx |
Autenticación y Headers
Header | Value |
---|---|
Authorization | Bearer Token |
Content-Type | application/json |
Parámetros JSON Body
Propiedad | Uso | Tipo | Descripción |
---|---|---|---|
uuid | Requerido | string | UUID del comprobante |
rfc | Requerido | string | RFC del emisor |
motivo | Requerido | string | Clave para expresar el motivo de la cancelación |
folioSustitucion | Opcional | string | UUID del comprobante que sustituye |
b64Pfx | Requerido | string | Archivo Pfx en Base64 |
password | Requerido | string | Contraseñ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" }'
{ "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="\"2022-06-10T02:49:35.7057854\"" rfcemisor="\"EKU9003173C9\""><folios xmlns="\"http://cancelacfd.sat.gob.mx\""><uuid>FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8</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>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" }
{ "message": "CACFDI33 - Problemas con el xml.", "messageDetail": "CA305 - Certificado Inválido.", "data": null, "status": "error" }
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étodo | Ruta |
---|---|
POST | /cfdi33/cancel/xml |
Autenticación y Headers
Header | Value |
---|---|
Authorization | Bearer Token |
Content-Type | multipart/form-data |
Parámetros Form
Propiedad | Uso | Descripción |
---|---|---|
xml | Requerido | XML 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'
{ "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="\"2022-06-10T02:49:35.7057854\"" rfcemisor="\"EKU9003173C9\""><folios xmlns="\"http://cancelacfd.sat.gob.mx\""><uuid>FE4E71B0-8959-4FB9-8091-F5AC4FB0FEF8</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>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" }
{ "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:
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
{ "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" }
{ "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" }
{ "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" }
{ "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 importante, por favor ayúdanos calificando este articulo y dejando tus comentarios.