Da clic ↑👆 para continuar
Servicio mediante el cual podrás realizar las cancelaciones de tus comprobantes a través de los diferentes métodos disponibles.
Es importante tomar en cuenta que para cancelar en ambiente de pruebas, se deberán utilizar los CSD de pruebas destinados por el SAT para este fin.
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
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
1 2 3 4 5 |
curl --request POST \ --url https://services.test.sw.com.mx/cfdi33/cancel/EKU9003173C9/f7392818-aca8-44b0-9942-120d862a71ea/02 \ --header 'Authorization: Bearer $token' |
Cancelación CSD
Cancelación por CSD
Endpoint
Método | Ruta |
---|---|
POST | /cfdi33/cancel/csd |
Autenticación y Headers
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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" }' |
Cancelación PFX
Cancelación por PFX.
Endpoint
Método | Ruta |
---|---|
POST | /cfdi33/cancel/pfx |
Autenticación y Headers
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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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": "02", "b64Pfx": "$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étodo | Ruta |
---|---|
POST | /cfdi33/cancel/xml |
Autenticación y Headers
Authorization | Bearer Token |
Content-Type | multipart/form-data |
Parámetros Form
Propiedad | Uso | Descripción |
---|---|---|
xml | Requerido | XML estructurado conforme al estándar (pág. 56) con la información de los comprobantes a cancelar |
Ejemplo Request
1 2 3 4 5 6 7 |
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' |
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
1 2 3 4 5 6 7 8 9 |
{ "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 el. (Para más información, consulte la lista de códigos de respuesta de UUID aquí)
Respuestas no exitosas
1 2 3 4 5 6 |
{ "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CACFDI33 - Problemas con los campos.", "messageDetail": "El certificado no pertenece a la llave privada.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El uuid proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CACFDI33 - Problemas con los CSD.", "messageDetail": "Error con los CSD. Error : Cannot Read PFX...... "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CASD - Acuse sin descripción específica.", "messageDetail": "El Rfc proporcionado es inválido. Favor de verificar.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CASD - Acuse sin descripción específica.", "messageDetail": "Invalid length for a Base-64 char array or string.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CACFDI33", "messageDetail": "El UUID proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "message": "CACFDI33", "messageDetail": "El Rfc proporcionado es invalido. Favor de verificar.", "data": null, "status": "error" } |
1 2 3 4 5 6 |
{ "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" } |
1 2 3 4 5 6 |
{ "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 Aplicable a Cancelación | 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 | |
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 |