Método Cancelar CFDI

Proceso de Cancelación

A partir del 01 de enero de 2022 el SAT modificó el esquema para la cancelación de CFDI’s. A continuación se muestra toda la información relevante y relacionada al proceso de cancelación.

Modificaciones en el nuevo esquema

En el esquema anterior, los campos que debían añadirse a la petición eran los siguientes:

  • UUID
  • Total
  • RFCReceptor
  • Certificado en formato PEM
  • Llave en formato PEM

En el nuevo esquema, se añadieron los siguientes campos:

  • Motivo 
  • Folio Sustituto

Los motivos de cancelación se representan con valores numéricos y son los siguientes:

    “01” Comprobantes emitidos con errores con relación.

    “02” Comprobantes emitidos con errores sin relación.

    “03” No se llevó a cabo la operación.

    “04” Operación nominativa relacionada en una factura global.

Esto puede consultarse en la siguiente liga proporcionada por el SAT:

https://www.sat.gob.mx/consultas/91447/nuevo-esquema-de-cancelacion

El campo de folio sustituto solo debe añadirse si se declara el motivo de cancelación “01”, en caso contrario este valor debe permanecer vacío.

Los campos de usuario y contraseña se obtienen en el dashboard de Timbox al crear una cuenta en la siguiente liga: https://dashboard.timbox.com.mx

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 2019, 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. *

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 con aceptación deberemos esperar un lapso de 24 horas para que cambien el estado a “Cancelación con aceptación” y así el receptor puede aceptar la cancelación.

Si lo que deseamos es replicar la cancelación por “Plazo vencido” se tendrá que esperar otras 24 horas después de que el estatus es: Cancelación por aceptación.

Cancelación del CFDI con documentos relacionados:

Si el CFDI contiene documentos relacionados, el emisor solo 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”.

Queremos solucionar tus dudas

Contáctanos

Enlaces al servicio

Para hacer uso del servicio de cancelación de Timbox se encuentran las siguientes ligas disponibles, dependiendo del ambiente.

URL de producción: https://sistema.timbox.com.mx/cancelacion/wsdl

URL de pruebas: https://staging.ws.timbox.com.mx/cancelacion/wsdl

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 web service.
password Contraseña del web service.
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, rfc_receptor 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.

Consumo de créditos

Por cada petición de UUID a cancelar: 1 crédito (cuando se haga el uso del servicio cancelar_cfdi, consultar_peticiones_pendientes y procesar_respuesta y dicha petición de cancelación sea exitosa).

Queremos solucionar tus dudas

Contáctanos

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.
motivo Razón de la cancelación
folio_sustituto Folio por el cual se va a sustituir Opcional

 

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">user</username>
         <password xsi:type="xsd:string">password</password>
         <rfc_emisor xsi:type="xsd:string">XEXX010101000</rfc_emisor>
         <folios xsi:type="urn:folios">
            <!--Zero or more repetitions:-->
            <folio xsi:type="urn:folio">
               <uuid xsi:type="xsd:string">1d02fb537-3036-4303-a6d7-9013a74d81a5</uuid>
               <rfc_receptor xsi:type="xsd:string">XEXX010101000</rfc_receptor>
               <total xsi:type="xsd:string"></total>
               <motivo xsi:type="xsd:string"></motivo>
               <folio_sustituto xsi:type="xsd:string"></folio_sustituto>
            </folio>
         </folios>
         <cert_pem xsi:type="xsd:string"></cert_pem>
         <llave_pem xsi:type="xsd:string"></llave_pem>
      </urn:cancelar_cfdi>
   </soapenv:Body>

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_cancelacion xsi:type="xsd:string"><folios_cancelacion type="array">
  <folio_cancelacion>
    <uuid>02DBE20E-4DB3-43FF-9672-CEB903FBB5ED</uuid>
    <codigo>201</codigo>
    <mensaje>Cancelado Exitosamente</mensaje>
  </folio_cancelacion>
</folios_cancelacion>]]></folios_cancelacion>
            <acuse_cancelacion xsi:type="xsd:string"><Acuse Fecha="2019-07-25T13:24:06.056488" RfcEmisor="MISC491214B86">
  <Folios>
    <UUID>02DBE20E-4DB3-43FF-9672-CEB903FBB5ED</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>CRNc/qZ9taQ9CIhsg+D4YUCxM8IQeshBuwECQT3FstPd+KHayzg7E7Ha/qPXpa14IjR3MZvWB8vQMgd1XwsiIw==</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>O7je9SM13WHL9DYyQ74WouDmZe5+nqqv1TF4eXa0nyYndnjBknn1vDJLZ7VjSBzMJy8vNqm+uiR91EolYoCGJA==</SignatureValue>
    <KeyInfo>
      <KeyName>BF66E582888CC845</KeyName>
      <KeyValue>
        <RSAKeyValue>
          <Modulus>n5YsGT0w5Z70ONPbqszhExfJU+KY3Bscftc2jxUn4wxpSjEUhnCuTd88OK5QbDW3Mupoc61jr83lRhUCjchFAmCigpC10rEntTfEU+7qtX8ud/jJJDB1a9lTIB6bhBN//X8IQDjhmHrfKvfen3p7RxLrFoxzWgpwKriuGI5wUlU=</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 Descripción
201 Solicitud de cancelación recibida
202 UUID Previamente cancelado
203 UUID no corresponde al RFC del Emisor
204 UUID no aplicable para cancelación
205 UUID No existe
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 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 válida o inexistente
300 Usuario No Válido
301  XML Mal Formado
302 Sello Mal Formado
304 Certificado Revocado o Caduco
305 Certificado Inválido
309 Certificado Inválido
310 CSD Inválido
CANC104 UUID no corresponde al RFC del Receptor
CANC105 Total no corresponde al CFDI

 

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 Descripción
CANC001 Los datos de autentificación enviados son incorrectos
CANC002 Se han agotado la cantidad de timbres
CANC003 Parámetro inválido
CANC301 El XML recibido no contiene una estructura válida
CANC302 La llave_pem es una llave inválida
CANC303 El certificado de sellos no corresponde al emisor
CANC304 El certificado no se encuentra en la lista de LCO del SAT
CANC305 La fecha de cancelación no esta dentro de la vigencia de CSD del Emisor
CANC306 El certificado utilizado es de tipo FIEL No es un CSD
CANC307 El Certificado no fue expedido por el SAT
CANC308 Llave privada no corresponde a certificado
** CANC309 El certificado de producción no se puede utilizar en ambiente de pruebas
CANC501 Hay 499 o más UUIDS en una sola petición
CANC998 Error de comunicación con el servicio del SAT, se genero un timeout en la petición al servicio del SAT
CANC999  Error de comunicación con el servicio de cancelación

**CANC309: Solo aplica para el ambiente de pruebas. Es importante mencionar que para obtener la cancelación exitosa es necesario realizar todo el ciclo desde el timbrado y la cancelación con los certificados de pruebas.

Zendesk Widget