Llama Gratis 01800 788 0195

Cancelar

Método Cancelar_CFDI

Proceso de Cancelación

Como parte de los nuevos ajustes para la cancelación publicados en el portal del SAT, se debe considerar lo siguiente al momento de emitir o solicitar las cancelaciones de los comprobantes.

 

Cancelación del CFDI sin aceptación del receptor:

De acuerdo a la regla 2.7.1.39 de la Resolución Miscelánea Fiscal para el 2018, los contribuyentes podrán cancelar un CFDI sin que se requiera la aceptación por parte del receptor en los siguientes supuestos:

  • Que amparen ingresos por un monto de hasta $5,000.00 MXN.
  • Por concepto de nómina.
  • Por concepto de egresos.
  • Por concepto de traslado.
  • Por concepto de ingresos expedidos a contribuyentes del RIF.
  • Emitidos a través de la herramienta electrónica de “Mis cuentas” en el aplicativo “Factura Fácil”.
  • Que amparen retenciones e información de pagos.
  • Expedidos en operaciones realizadas con el público en general de conformidad con la regla 2.7.1.24.
  • Emitidos a residentes en el extranjero para efectos fiscales conforme a la regla 2.7.1.26.
  • A través del adquirente y sector primario (reglas 2.4.3 y 2.7.4.1 de la RMF).
  • Cuando la cancelación se realice dentro de los tres días siguientes a su expedición. *

*En ambiente de pruebas se considera 10 mins después de generado el CFDI.

 

Cancelación del CFDI con aceptación del receptor:

Los anteriores supuestos no son aplicables para la cancelación con aceptación.

Para realizar la cancelación, el receptor sólo contará con 3 días hábiles* una vez recibida la solicitud de cancelación para que se autorice o no dicho movimiento, en caso que el receptor no responda a la solicitud en el lapso de tiempo antes mencionado, la autoridad fiscal dará por aceptada la solicitud automáticamente.

*En ambiente de pruebas se considera 15 mins después de recibida la solicitud de cancelación.

 

Cancelación del CFDI con documentos relacionados:

Si el CFDI contiene documentos relacionados, el emisor sólo podrá cancelarlo siempre y cuando cancelen los CFDI relacionados y en el mismo momento el CFDI origen y tenga estatus de proceso de cancelación igual a: “Cancelable con o sin aceptación”.

 


Petición al servicio

El servicio de “cancelar_cfdi” se utiliza para cancelar uno o varios comprobantes que ya fueron timbrados. Se requiere de usuario y contraseña para utilizar el servicio.

Parámetros de la petición

 

Nombre Descripción Requerido
username Usuario del webservice.
password Contraseña del webservice.
rfc_emisor El rfc que emitió el comprobante que desea cancelar.
folios Se manda un arreglo con uno o más objetos tipo folio, el cual debe contener los elementos UUID, rfcreceptor y total.
cert_pem El certificado, en formato pem, que corresponde al emisor del comprobante.
llave_pem La llave, en formato pem, que corresponde al emisor del comprobante.

Parámetros del nodo folios

 

Nombre Descripción Requerido
uuid Se manda el UUID del comprobante que se desea cancelar. El UUID debe cumplir con la expresión regular de UUIDs.
rfc_receptor El rfc que recibió el comprobante que desea cancelar.
total Total del comprobante.

 

Regex de UUIDs:

/^[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}$/

Ejemplo de petición al servicio

A continuación mostramos un ejemplo de cómo debe ser construida la petición al servicio. 

 

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WashOut">
         <soapenv:Header/>
         <soapenv:Body>
            <urn:cancelar_cfdi soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
               <username xsi:type="xsd:string">AAA010101000</username>
               <password xsi:type="xsd:string">h6584D56fVdBbSmmnB</password>
               <rfc_emisor xsi:type="xsd:string">PZA000413788</rfc_emisor>
               <folios xsi:type="urn:folios">
                  <folio>
                    <uuid xsi:type="xsd:string">27863E31-0E25-43CE-B148-3764D94C1EEA</uuid>
                    <rfc_receptor xsi:type="xsd:string">TME960709LR2</rfc_receptor>
                    <total xsi:type="xsd:string">5001</total>
                  </folio>
               </folios>
               <cert_pem xsi:type="xsd:string">-----BEGIN CERTIFICATE-----
MIIGJzCCBA+gAwIBAgIUMjAwMDEwMDAwMDAzMDAwMjI3NjAwDQYJKoZIhvcNAQEL
BQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UE
CgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNV
BAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNp
w7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEm
MCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEM
BTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDES
MBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkq
hkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNjEwMjEyMDI1NTNaFw0y
MDEwMjEyMDI1NTNaMIIBEjE6MDgGA1UEAxMxSU5EVVNUUklBUyBQQVJBIEVMIEhP
R0FSIEEgTEEgVkFOR1VBUkRJQSBTQSBERSBDVjE6MDgGA1UEKRMxSU5EVVNUUklB
UyBQQVJBIEVMIEhPR0FSIEEgTEEgVkFOR1VBUkRJQSBTQSBERSBDVjE6MDgGA1UE
ChMxSU5EVVNUUklBUyBQQVJBIEVMIEhPR0FSIEEgTEEgVkFOR1VBUkRJQSBTQSBE
RSBDVjElMCMGA1UELRMcUFpBMDAwNDEzNzg4IC8gSEVHVDc2MTAwMzRTMjEeMBwG
A1UEBRMVIC8gSEVHVDc2MTAwM01ERlJOTjA5MRUwEwYDVQQLFAxQcnVlYmFzX0NG
REkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCJUeq8lhyXM8Kamegn
YTt2UsISrihy/vhw+2Bt+ULUczpQtZ9rDTeMFXwtKoocAPd31yfqPdlj9dxKbQS5
PmDe3rmpDvcNbGVmfKOMxCWzrWikDVhJVC1++lI6leMnOZHBymbMct2rslUoNq1x
hSG/2R97hI7Cgshge9CvNFyyD6U3h+s7tAggWgGhIqTf/SI6TAwzkp+N6ocu+xdp
6d7PjWP8Jao0E3Gcf79Uy7Mxhxh5Zi7A4e1VQHd392De3ZzSewCCeQUF9fqI7OGZ
OrEsEC66nb5SiyP+qzIQWUCKrMgg6gWzeXfLYzewFLpFK6fxYA1k7C7INQcENb40
Vk9/AgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3
DQEBCwUAA4ICAQBz1OZj4/BN+o2BYbb16n3uy5SELXZhJR2uncGLLqz6rddFJsJD
tXjSv0lXs/daTnc8ZcrbT4pVOKGS4ZiQEwvtZbV4J+6wXryOAv03nyKxvKbW1efT
Z2f3ZC0POtr+aBhMcCdmYBpWP37bW+FYQcCXKYszlv0sFKo3WG8PVTHe1+pWeXpv
FY8rjWu6G+u/qkokQMld3ZPuvttSRkpQgTPhjZ7HYBPJOLzFEapURn0TiaK9rFNF
l9xeJntgaYkwMlP6rpp/uUaVtf4aLN4HJ1zpl4OKkMEnZDqaq8tGnSmNtmqvXnGi
3fWn7yR2KNgNVFBH1FZ3KKKj760ctniqaoh1JiB/VZDNKnTyfhulvNtJogR0jLyr
4xjRoTXvd6F4119SNq/0lYaa/qLpwJEv/7yoCvwfH48rqhIt+jPcVxchP9jCFVuD
uIGdhn8mywqqKuZIhgBstzcZFgAnJw5McQW8Pzo+r2Pf4fi3Fq6t9d8SOZ0YAkj+
LJK1CTGhydisk3alVnhjHZI2i4HltgWl8lcl2VyK8Mrtl9pADwgJdA6ccD//d6O/
ECjMNYaFsC3L8XTc9+ck97zQqlDvYPCzQJtXyIUdzvvV0bLpavwkNipb16QbSHkO
hjdkNQmGDnadkZX75k0rcqmRiCr2vHVxkeiUL1Pasdp3dVUvX7ATEqQMZw==
-----END CERTIFICATE-----
</cert_pem>
               <llave_pem xsi:type="xsd:string">-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJUeq8lhyXM8Ka
megnYTt2UsISrihy/vhw+2Bt+ULUczpQtZ9rDTeMFXwtKoocAPd31yfqPdlj9dxK
bQS5PmDe3rmpDvcNbGVmfKOMxCWzrWikDVhJVC1++lI6leMnOZHBymbMct2rslUo
Nq1xhSG/2R97hI7Cgshge9CvNFyyD6U3h+s7tAggWgGhIqTf/SI6TAwzkp+N6ocu
+xdp6d7PjWP8Jao0E3Gcf79Uy7Mxhxh5Zi7A4e1VQHd392De3ZzSewCCeQUF9fqI
7OGZOrEsEC66nb5SiyP+qzIQWUCKrMgg6gWzeXfLYzewFLpFK6fxYA1k7C7INQcE
Nb40Vk9/AgMBAAECggEAbZFTP053WZ4PNNSBDIrkqzC1cbpMxBT1nxC0jItK68FV
UnjYzs4o+Dlcb511vYp36sNeMeVPxBa0wx3hmv1OxgXpFh++uJM5BWGGDhekDY3b
5KpRO5FTC/IoEl7udKnWx038YD126jzM/d1C30Ve/Hj+ScwnLMS1pWalyGZ7YAcw
ka9gc13RtEwhNU0k/PKVEvOxk77g6hZoE/TgXN6lfLB3BQ9crRwn3NeUKi7vzKOJ
hxdGe898u+Agva0VQPOmB9Lbaw8NuGlNeCa+P7wCpo/LjSpK/Hfp8Tcl/M/S+A1d
fSfitc5PxAWCWHBus/Dix6R01I1Fr+/uPqGAyqqH4QKBgQDsLpJwPaNts52I1zbn
+CYe7L6UcQuqwtDIQ9Pt5eOs2KNBbgWIW7IWrfVIJ0los+LmFDln3uCHgcPRHnJm
aSyDJ3qyNx73VtUz8ZRx0zqs2pbTUyUs9mF/nc/xpM0u7iCJ06q/S+AvyQPpmHCh
0Lch4Gpj4u/eu7uU+hgmzJgVrQKBgQCU17CjVpXlHvw+gTM4yvpFU7yjm4RUNqFr
1rRPZiV56c3wFYGVxTmFG3csCBxu+YrJtvdoQ/JbGR4VaXNXA/kC+YCh9dfYvG3h
vqpvi8BIw/rJN59NCxPaz83/kEZWTpbAZP5rQBieGfZ4G0UMCbG5i6+YHRtM8uRV
tf221YZnWwKBgB9uq0qIyYFGEEcv7Ty+B8TB2TNEQDs/pi2g6UmV+ND+G+wPSmk1
WuQtzqEFqX1nw2C/fExYmyUtnfPsy2jZwnTKAkhJkbN1OPaqxgjIBd0PUldZj28G
cz9ar1wHhM8kHex54RWIcZOqevzRrtu6PUUi6sXUY/wOnA5dom03eV4ZAoGAZAXC
PTGtj4hQCIz4Z/z3TGlmRif3OERyG67wAr9pBdFZxDIfoA8mhU2cuylEOktVuhJL
lnS6w/9QGSGBEgOobhhPGgfEonCWAvMHQ+iNMhkJSfkoAzUjhZLKIyjIK62qXuY/
lsE/Cdf2qmXg86L8HO1C9hzxQLelO/gN5LT/GisCgYEAh41EQHIC8PbXDwbuHmUG
QOAJYC0DkMbQ6EIXrFZ/jTkrat0H5u3KF//6S8SfPMuk68EwDBKWlulSyv6AcfJr
NY6dwreRfoYsuu+Gh+rC7FW+rFiUAjc6Tzfz21oVZ/l/T2HhFcMkCy7sFRtbXcAK
pMwSEnQuw3fiABu38MQJNHw=
-----END PRIVATE KEY-----
</llave_pem>
            </urn:cancelar_cfdi>
         </soapenv:Body>
        </soapenv:Envelope>

Respuesta del servicio

Si hubo un error con alguno de los parámetros o en el servicio de cancelación, se le notificará por medio de un mensaje de error, de lo contrario recibirá la estructura “cancelar_cfdi_result” compuesta de lo siguiente: 

 

Parámetros de la respuesta:

 

Nombre Descripción
folios Información de los comprobantes cancelados, consiste en UUID, código y mensaje.
acuse_cancelacion El acuse de cancelación que regresa el SAT.

Ejemplo de respuesta del servicio

A continuación mostramos la respuesta que regresa el servicio una vez invocado.

 

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:WashOut">
   <soap:Body>
      <tns:cancelar_cfdi_response>
         <cancelar_cfdi_result xsi:type="tns:cancelar_cfdi_result">
            <folios xsi:type="tns:folios_cancelacion">
               <folio_cancelacion xsi:type="tns:folio_cancelacion">
                  <uuid xsi:type="xsd:string">27863E31-0E25-43CE-B148-3764D94C1EEA</uuid>
                  <codigo xsi:type="xsd:string">201</codigo>
                  <mensaje xsi:type="xsd:string">Cancelado Exitosamente</mensaje>
               </folio_cancelacion>
            </folios>
            <acuse_cancelacion xsi:type="xsd:string"><![CDATA[<Acuse Fecha="2018-08-16T18:01:56" RfcEmisor="PZA000413788"><Folios><UUID>27863E31-0E25-43CE-B148-3764D94C1EEA</UUID><EstatusUUID>201</EstatusUUID></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></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/><DigestValue>ML2rVJ79GS6cQNjRI7wmoRu5aFykTgian5alYvohYhR5Dh3QB43LX1RadDFutgMIM3q60LozLGdtmLVDdnhZsg==</DigestValue></Reference></SignedInfo><SignatureValue>lO73l44krAoObyw+HGI/ychDJa3PpxiqDWZ0tLqUrhDj0E4Dv5mWE1t4wzOST26zJENixF4ZBGAk8Jj+fM8Kuw==</SignatureValue><KeyInfo><KeyName>00001088888800000016</KeyName><KeyValue><RSAKeyValue><Modulus>xnL2zDPtH5jDsAZDTIfMqbKGrve+At8Kyx2EZvbfXbpK9uVExWS874oMelFzNq69/YqSReT3I7I8wr+joy5O7ouZH+4KWdIGp4Si6lHe0kntxzNmuuKyOPkJ9tMcntnFmQ4bfxFxlg/Ud2hCtuoy3j2xYkIXu5O4pGM98Nz8pAM=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue></KeyInfo></Signature></Acuse>]]></acuse_cancelacion>
         </cancelar_cfdi_result>
      </tns:cancelar_cfdi_response>
   </soap:Body>
</soap:Envelope>

Códigos a nivel folio

Los siguientes códigos de error se repetirán tantas veces como se repita el nodo folios en la solicitud: 

 

Código Error
201 UUID Cancelado exitosamente
202 UUID Previamente cancelado
203 UUID No corresponde al RFC del Emisor
204 UUID No corresponde al RFC del Receptor
205 UUID No existe
CANC101 El CFDI no es cancelable
CANC102 El CFDI ha sido cancelado previamente por aceptación del receptor
CANC103 El CFDI no se puede cancelar por que tiene estatus de “En proceso”
CANC104 El CFDI ha sido cancelado previamente por plazo vencido
CANC105 El CFDI ha sido cancelado previamente por plazo vencido, no puede ser aceptado
CANC106 El CFDI ha sido cancelado previamente, no puede ser aceptado
CANC107 El CFDI ha sido cancelado previamente por plazo vencido, no puede ser rechazado
CANC108 El CFDI ha sido cancelado previamente, no puede ser rechazado

Códigos de error a nivel petición

Los siguientes códigos de error se generarán a nivel general de la solicitud de cancelación: 

 

Código Error
CANC001 Los datos de autentificación enviados son incorrectos
CANC002 Se han agotado la cantidad de timbres
CANC003 Parámetro inválido
CANC301 Hay 500 o más UUIDS en una sola petición
CANC302 La llave_pem es una llave inválida
CANC303 Certificado de Sellos no corresponde al emisor
CANC304 El certificado no se encuentra en la lista LCO del SAT
CANC305 La fecha de cancelación no esta dentro de la vigencia del CSD del Emisor
CANC306 El certificado ultizado es de tipo FIEL No es un CSD
CANC307 El Certificado no fue expedido por el SAT
CANC308 Llave privada no corresponde a certificado
CANC999 Error de comunicación con el servicio de cancelación