Cancelación del Documento Electrónico que amparan Retenciones e Información de Pagos

Con base en los artículos 29 y 29-A del Código Fiscal de la Federación del DECRETO por el que se reforman, adicionan y derogan diversas disposiciones de la Ley del Impuesto sobre la Renta, de la Ley del Impuesto al Valor Agregado, de la Ley del Impuesto Especial sobre Producción y Servicios, de la Ley Federal del Impuesto sobre Automóviles Nuevos, del Código Fiscal de la Federación y otros ordenamientos, publicado en el DOF el día 12 de noviembre de 2021, se señala que:

  • A partir de 2022 será necesario señalar el motivo de la cancelación de los comprobantes.
  • Al seleccionar como motivo de cancelación la clave 01 "Comprobante emitido con errores con relación" deberá relacionarse el folio fiscal del comprobante que sustituye al cancelado.
  • Se actualizan los plazos para realizar la cancelación de facturas: sólo podrán cancelarse en el ejercicio en el que se expidan y siempre que la persona a favor de quien se expidan acepte su cancelación.

Puedes consultar este, y los cambios asociados a la Actualización Factura electrónica – Reforma Fiscal 2022 en el sitio del SAT.
Este servicio permite solicitar la cancelación fiscal ante el SAT de los Documentos Electrónicos que amparan Retenciones e Información de Pagos.

Contenido

Características generales

En el esquema de comprobantes fiscales digitales para el Documento Electrónico que amparan Retenciones e Información de Pagos, el SAT resguarda en su base de datos centralizada todos los comprobantes fiscales digitales que han sido certificados por los Proveedores de certificación de CFDI. Debido a este modelo centralizado, la cancelación de los Documentos Electrónicos que amparan Retenciones e Información de Pagos implica solicitar directamente al SAT la intención de cancelar el comprobante fiscal.

La cancelación del Documento Electrónico que amparan Retenciones e Información de Pagos, puede ser solicitada por el contribuyente emisor directamente en el portal de factura electrónica del SAT, o a través de un PAC como Reachcore. Durante este trámite el SAT puede aprobar o rechazar la solicitud de cancelación, emitiendo un Acuse de la operación indicando ya sea la confirmación de que el comprobante fue cancelado, o bien, la razón del rechazo por la que el comprobante no se pudo cancelar. Las causas de rechazo pueden ser transitorias: si el SAT aún no tiene registrado en su sistema el comprobante fiscal; o definitivas: si la solicitud de cancelación ya fue realizada.

Reachcore ofrece el servicio para la realizar la solicitud de cancelación del Documento Electrónico que amparan Retenciones e Información de Pagos ante el SAT, obteniendo asi el acuse de cancelación firmado por el SAT que avala la operación. El servicio contempla la respuesta inmediata del SAT para cancelar un Documento Electrónico que amparan Retenciones e Información de Pagos.

Requisitos para cancelar un Documento Electrónico que amparan Retenciones e Información de Pagos

Para realizar la cancelación de un Documento electrónico de retenciones es necesario contar con los siguientes elementos:

  • El folio fiscal (UUID) y el RFC del Emisor del comprobante a cancelar. Estos datos pueden ser extraídos del Documento electrónico de retenciones, ya sea del documento XML o de la representación impresa PDF.
  • El Certificado de Sello Digital (CSD) del emisor del comprobante vigente.

    El CSD generalmente consta de tres partes:

    1. El Certificado, que es un archivo con extensión .cer
    2. La llave privada, que es un archivo con extensión .key
    3. y la contraseña de la llave privada.

Para obtener un certificado de sello digital (CSD) del SAT, consultar los requisitos y el procedimiento en el portal del SAT: CÓMO TRAMITAR UN CERTIFICADO DE SELLO DIGITAL (CSD).

Integración

El medio para enviar las solicitudes de cancelación a Reachcore de los Documentos Electrónicos que amparan Retenciones e Información de Pagos, puede ser mediante un archivo de integración o por medio de Web Service. Para generar el archivo de integración para la cancelación de los Documentos Electrónicos que amparan Retenciones e Información de Pagos, por favor consulta la guía en: Archivo de integración para cancelación retenciones

Web Service de cancelación para los Documentos Electrónicos que amparan Retenciones e Información de Pagos

En este Web Service se exponen varios métodos para poder solicitar la cancelación de folios fiscales para los Documentos Electrónicos que amparan Retenciones e Información de Pagos. Los métodos son los siguientes

  • Cancelar - Permite la solicitud de cancelación de un folio fiscal
  • CancelarAsync - Permite la solicitud de cancelación de 2 a 10,000 folios fiscales. Debido a que el SAT realiza el proceso de cancelación de manera asíncrona, únicamente se obtiene como respuesta un identificado de seguimiento.
  • ConsultaAcuse - Por este método, de consulta el resultado de la solicitud de cancelación mediante el identificador de seguimiento que se obtiene del método CancelarAsync
  • CancelarSolicitudFirmada - Permite el envío de la solicitud de cancelación de un folio fiscal firmada previamente con el CSD del emisor.
  • CancelarSolicitudFirmadaAsync - Permite la solicitud de cancelación de 2 a 10,000 folios fiscales firmada previamente con el CSD del emisor. Así mismo, si esta configurado, se notifica vía correo electrónico el identificador.

¿Qué necesito?

Para hacer uso del web service de cancelación se necesita:

  • Contar con un contrato de servicios con Reachcore. En caso de no tener uno, por favor envía un correo a sales-mexico@sovos.com
  • Haber generado un API Key en tu cuenta Reachcore, ya que es el un identificador que te autentica en los Web Services de la plataforma. Para consultar como generar el API Key, consulta este artículo: Generar API Key para Web Services.

Ubicación del servicio.

Las URLs donde se encuentra la definición del Web Service (WSDL) para cada uno de los ambientes son:

Ambiente Ubicación del WSDL
Pruebas https://oat.reachcore.com/api/ws/timbre-fiscal/CancelacionRetenciones.svc/basic?wsdl
Producción https://go.reachcore.com/api/ws/timbre-fiscal/CancelacionRetenciones.svc/basic?wsdl

Cancelación síncrona

En esta modalidad y por definición del SAT, Reachcore realiza la solicitud de cancelación ante el SAT de un folio fiscal (UUID) y se obtiene la respuesta del SAT en línea, realizando lo siguiente:

  • Se genera la estructura (XML) definida por el SAT para solicitar la cancelación.
  • Firmar la solicitud de cancelación con el CSD del emisor
  • Se envía la solicitud al SAT
  • Se obtiene la respuesta de la solicitud por parte del SAT de manera síncrona o en línea.

Para usar esta modalidad, se debe usar el método del Web Service Cancelar

Método [Cancelar]: Cancelación de un solo folio fiscal

En este método, se podrá realizar la solicitud de cancelación para solo un folio fiscal que corresponde a un Documento Electrónico que amparan Retenciones e Información de Pagos. Para poder utilizar este método, se requiere que el CSD este registrado en Reachcore para firmar la solicitud de cancelación.

Solicitud Cancelar

Elemento Uso Descripción
ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
RFC Requerido Indica el RFC que emitió el comprobante con el folio fiscal e indica el CSD con el que se llevará a cabo la firma electrónica de la solicitud de cancelación.
Folio Requerido Indica el folio fiscal del comprobante a cancelar.
Debe tener el formato de GUID válido, descrito por la siguiente expresión regular:
[A-F0-9]{8}-[A-F0-9]{4}{3}-[A-F0-9]{12}
Ejemplo: F9123206-D86C-49EE-80F3-C288CC948631


Ejemplo de solicitud:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:tem="http://tempuri.org/">
   <soapenv:Header>
      <cus:ApiKey>42e065a752444d....d2be3e7a3860407e8d</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <tem:CancelacionRetencionesRequest>
         <tem:Folio>919856A3-8075-40B8-AE86-85AD3FD7E36E</tem:Folio>
         <tem:RFC>AAA010101AAA</tem:RFC>
      </tem:CancelacionRetencionesRequest>
   </soapenv:Body>
</soapenv:Envelope>

Respuesta Cancelar

Elemento Descripción
Error
  • false: Transacción exitosa.
  • true: Error al procesarse la transacción.
  • ErrorCode Indica el código de error.
    ErrorMessage En caso que el elemento Errortenga el valor true, se mostrara la descripción del error.
    AcuseSAT El acuse en formato XML generado y firmado por el SAT que indica el resultado de la operación de la solicitud de cancelación. Esta dentro de un elemento <![CDATA[...]]>.
    Folio Se muestra el resultado para el folio que se solicitó cancelar, el cual contiene:
    • Cancelado: Valor true o false que indica si el comprobante se canceló o no.
    • FolioFiscal: El UUID del comprobante.
    • ResultCode: Código de respuesta devuelto por el SAT para el comprobante. Ver la Lista de códigos de respuesta del SAT para cancelación.
    • ResultMessage: Significado del código de respuesta del SAT. En caso de que Cancelado sea false este campo describe la razón por la que el SAT no aprobó la cancelación del comprobante.


    Ejemplo de respuesta:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body>
            <CancelacionRetencionesResponse xmlns="http://tempuri.org/">
                <Error>false</Error>
                <ErrorCode i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
                <ErrorMessage/>
                <AcuseSAT>
                    <![CDATA[<?xml version="1.0"?>
                        <Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2015-02-09T14:14:30.4168105" RfcEmisor="DCO020624P10" WorkProcessId="d3ee1b7e-e5b4-4bc2-ac03-f164538aff9f" xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1">
                            <Folios>
                                <UUID>919856A3-8075-40B8-AE86-85AD3FD7E36E</UUID>
                                <EstatusUUID>1201</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>6v+ftaLXIAOa2Zn3FzZx63KAdlJvomlhZznU398heNRZquZJ4yeOLe3+/e4lu2Kz3MreZE5ijTJIkdkNo9wI+Q==</DigestValue>
                                    </Reference>
                                </SignedInfo>
                                <SignatureValue>Bz+DDgLdYjdzzBKXFKvGjq/29oHpexfVHm/Uyutusc
                        hGL11nABaWvYogfA433tfkZxgLG4xp7G7JCJXv1cYzFw==</SignatureValue>
                                <KeyInfo>
                                    <KeyName>20001000000300003586</KeyName>
                                    <KeyValue>
                                        <RSAKeyValue>
                                            <Modulus>n77fbi0dTENVn43LCUOIF/8iyQObFg/AaTRBdpf0fVuozOOy48INue46sN54AHL+I50s1U8Nh6Dq+MRvRNc8WyHPQWsnmSaicT5vAkkzqucVj004WyLcmpysY45DrCxSitPMRzop3XboPr1msWd3EuyduUtbu3QmNRin8uzpYg8=</Modulus>
                                            <Exponent>AQAB</Exponent>
                                        </RSAKeyValue>
                                    </KeyValue>
                                </KeyInfo>
                            </Signature>
                        </Acuse>]]></AcuseSAT>
                <Folio xmlns:a="http://schemas.datacontract.org/2004/07/TimbreFiscalServices.Entities" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                    <a:Cancelado>true</a:Cancelado>
                    <a:FolioFiscal>919856a3-8075-40b8-ae86-85ad3fd7e36e</a:FolioFiscal>
                    <a:ResultCode>1201</a:ResultCode>
                    <a:ResultMessage>Cancelación satisfactoria.</a:ResultMessage>
                </Folio>
            </CancelacionRetencionesResponse>
        </s:Body>
    </s:Envelope>

    Cancelación asíncrona

    En esta modalidad y por definición del SAT, Reachcore realiza la solicitud de cancelación ante el SAT de 2 hasta 10,000 folios fiscales (UUID), obteniendo como respuesta un identificador de seguimiento para obtener posteriormente o de manera asíncrona el acuse de cancelación; se realizan los siguientes pasos:

    • Se genera la estructura (XML) definida por el SAT para solicitar la cancelación.
    • Firmar la solicitud de cancelación con el CSD del emisor
    • Se envía la solicitud al SAT
    • Se obtiene el identificador de seguimiento por parte del SAT

    Para usar esta modalidad, se debe usar el método del Web Service CancelarAsync, CancelarSolicitudFirmadaAsync o por medio de un archivo de integración. Para los detalles de como generar el archivo de integración, consulta el siguiente artículo: Archivo integración cancelación retenciones

    Método [CancelarAsync]: Cancelación de más de un folio fiscal

    En este método, se podrá realizar la solicitud de cancelación de 2 hasta 10,000 folios fiscales correspondientes a Documentos Electrónicos que amparan Retenciones e Información de Pagos. Para poder utilizar este método, se requiere que el CSD este registrado en Reachcore para firmar la solicitud de cancelación. En la respuesta se entregará el identificador de seguimiento para posteriormente poder realizar la consulta del acuse de cancelación.

    Solicitud CancelarAsync

    Elemento Uso Descripción
    ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
    RFC Requerido Indica el RFC que emitió el comprobante con el folio fiscal y se relaciona con el CSD con el que se llevará a cabo la firma electrónica de la solicitud de cancelación.
    Folios Requerido Se repite conforme al numero de folios que quieras cancelar, en cada elemento guid, indicando los folios fiscales de los comprobantes a cancelar.
    Debe tener el formato de UUID válido, descrito por la siguiente expresión regular: [A-F0-9]{8}-[A-F0-9]{4}{3}-[A-F0-9]{12}
    Ejemplo: F9123206-D86C-49EE-80F3-C288CC948631


    Ejemplo de solicitud:

    <soapenv:Envelope xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
       <soapenv:Header>
          <cus:ApiKey>51e9d1097f634f20be...d933f769303391008</cus:ApiKey>
       </soapenv:Header>
       <soapenv:Body>
          <tem:CancelacionRetencionesAsyncRequest>
             <tem:Folios>
                <arr:guid>91E2EEA3-8A99-4C97-B6E6-714EDF3353E7</arr:guid>
                <arr:guid>00B45E64-8317-4AFC-92D4-6BED48B675D1</arr:guid>
                <arr:guid>95E7D9C8-B19E-4115-AD8C-225093F41FF6</arr:guid>
                <arr:guid>54C8F044-2DAF-43C3-AEA5-04E7218CFD58</arr:guid>
                <arr:guid>FD1C002B-2528-4F6A-8D80-660D76DCB2E4</arr:guid>
             </tem:Folios>
             <tem:RFC>AAA010101AAA</tem:RFC>
          </tem:CancelacionRetencionesAsyncRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    Respuesta CancelarAsync

    Elemento Descripción
    Error
  • false: Transacción exitosa.
  • true: Error al procesarse la transacción.
  • ErrorCode Indica el código de error.
    ErrorMessage En caso que el elemento Errortenga el valor true, se mostrara la descripción del error.
    TrackingId Contiene el identificador de seguimiento con el cual se podrá realizar, posteriormente, la consulta para obture el resultado del procesamiento de cancelación entregado por el SAT.


    Ejemplo de respuesta:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body>
          <CancelacionRetencionesAsyncResponse xmlns="http://tempuri.org/">
             <Error>false</Error>
             <ErrorCode i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
             <ErrorMessage/>
             <TrackingId>e64d579d-3ab2-4159-bd73-37aec6e4571c</TrackingId>
          </CancelacionRetencionesAsyncResponse>
       </s:Body>
    </s:Envelope>

    Método [ConsultaAcuse]: Consulta de acuse para la cancelación de más de un folio

    En este método, se podrá realizar la consulta de la solicitud de cancelación que se solicita en el método CancelarAsync. Para ello, es necesario tener el identificador de seguimiento que se obtuvo como respuesta a la solicitud de cancelación, en el elemento TrackingId

    Solicitud ConsultaAcuse

    Elemento Uso Descripción
    ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
    TrackingId Requerido Se especifica el identificador de seguimiento, para realizar la consulta del resultado del procesamiento de la solicitud de cancelación al SAT.


    Ejemplo de solicitud:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:tem="http://tempuri.org/">
       <soapenv:Header>
          <cus:ApiKey>51e9d1097f634f20b...405d933f769303391008</cus:ApiKey>
       </soapenv:Header>
       <soapenv:Body>
          <tem:AcuseRetencionesRequest>
             <tem:TrackingId>e64d579d-3ab2-4159-bd73-37aec6e4571c</tem:TrackingId>
          </tem:AcuseRetencionesRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    Respuesta ConsultaAcuse

    Elemento Descripción
    Error
  • false: Transacción exitosa.
  • true: Error al procesarse la transacción.
  • ErrorCode Indica el código de error.
    ErrorMessage En caso que el elemento Errortenga el valor true, se mostrara la descripción del error.
    AcuseSat Cuando la transacción es exitosa, se regresa el acuse de cancelación entregado por el SAT, con el resultado del proceso de cancelación.


    Ejemplo de respuesta:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body>
          <AcuseRetencionesResponse xmlns="http://tempuri.org/">
             <Error>false</Error>
             <ErrorCode i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
             <ErrorMessage/>
             <AcuseSat><![CDATA[<?xml version="1.0"?>
                <Acuse Fecha="2016-05-26T17:49:22.1618465" RfcEmisor="AAA010101AAA" WorkProcessId="0aefd5ac-cafd-4544-a2d7-7201209875cd" xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                   <Folios>
                      <UUID>91E2EEA3-8A99-4C97-B6E6-714EDF3353E7</UUID>
                      <EstatusUUID>1201</EstatusUUID>
                   </Folios>
                   <Folios>
                      <UUID>00B45E64-8317-4AFC-92D4-6BED48B675D1</UUID>
                      <EstatusUUID>1202</EstatusUUID>
                   </Folios>
                   <Folios>
                      <UUID>95E7D9C8-B19E-4115-AD8C-225093F41FF6</UUID>
                      <EstatusUUID>1202</EstatusUUID>
                   </Folios>
                   <Folios>
                      <UUID>54C8F044-2DAF-43C3-AEA5-04E7218CFD58</UUID>
                      <EstatusUUID>1202</EstatusUUID>
                   </Folios>
                   <Folios>
                      <UUID>FD1C002B-2528-4F6A-8D80-660D76DCB2E4</UUID>
                      <EstatusUUID>1202</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>lrspePqSeSFzko4Rahn5mvJ1jINF2O45lQHFUGyUDx7QZLBMYQXDDewSzZzUS0FMSd8814aZmOOsRdOXD8JZ2w==</DigestValue>
                         </Reference>
                      </SignedInfo>
                      <SignatureValue>URF1v+jUnWYIUnRb6kdNwpahgO9zw2rusdC5N/O0hpJ82BJH9qn0ssf1mM8CdRC4PAnEKOEAj4Tql8hthIJrCw==</SignatureValue>
                      <KeyInfo>
                         <KeyName>20001000000300003586</KeyName>
                         <KeyValue>
                            <RSAKeyValue>
                               <Modulus>n77fbi0dTENVn43LCUOIF/8iyQObFg/AaTRBdpf0fVuozOOy48INue46sN54AHL+I50s1U8Nh6Dq+MRvRNc8WyHPQWsnmSaicT5vAkkzqucVj004WyLcmpysY45DrCxSitPMRzop3XboPr1msWd3EuyduUtbu3QmNRin8uzpYg8=</Modulus>
                               <Exponent>AQAB</Exponent>
                            </RSAKeyValue>
                         </KeyValue> 
                      </KeyInfo>
                   </Signature>
                </Acuse>]]></AcuseSat>
          </AcuseRetencionesResponse>
       </s:Body>
    </s:Envelope>

    Método [CancelarSolicitudFirmada]: Cancelación de un folio fiscal con firma de origen

    Este método se utiliza para solicitar la cancelación de solo un folio fiscal para retenciones; sin embargo, a diferencia de los métodos previamente descritos, cuando no es posible registrar el CSD en Reachcore, el XML de la solicitud de cancelación firmado con el CSD del emisor es enviado en la solicitud de este método, conforme a lo definido por el SAT para la solicitud de cancelación. En la respuesta de la solicitud se obtendrá el acuse de cancelación que el SAT da, al ser un solo folio fiscal.

    Solicitud CancelarSolicitudFirmada

    Elemento Uso Descripción
    ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
    SolicitudFirmada Requerido XML con la solicitud de cancelación conforme lo especificado por el SAT, indicando el folio fiscal del comprobante a cancelar, el RFC del emisor y la hora de la operación, firmado electrónicamente con la llave privada del emisor. Para referencia del firmado consultar: Firma solicitud de cancelación de CFDI y Retenciones. El XML se envía dentro de <![CDATA[...]]>.


    Ejemplo de solicitud:

    <soapenv:Envelope xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
        <soapenv:Header>
            <cus:ApiKey>51e9d1097f634f20be62.....d9e405d933f769303391008</cus:ApiKey>
        </soapenv:Header>
        <soapenv:Body>
            <tem:CancelacionRetencionesSolicitudFirmadaRequest>
                <tem:SolicitudFirmada><![CDATA[<Cancelacion Fecha="2016-06-06T12:35:10" RfcEmisor="AAA010101AAA" xmlns="http://cancelaretencion.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                        <Folios>
                            <UUID>F650A5BC-6177-4311-828B-0E15C8424562</UUID></Folios>
                        <Signature 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/2000/09/xmldsig#rsa-sha1"/>
                                <Reference URI="">
                                    <Transforms>
                                        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                                    </Transforms>
                                    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                                    <DigestValue>g5diXeIDci8DiK+PPzKIwI9sFY8=</DigestValue>
                                </Reference>
                            </SignedInfo>
                            <SignatureValue>hiAyTxiWkwqbP/jMhf5ZhsGzNC9fB9w5mtwJqv5ue6aJ1K8BKSppXCoImirDNRRLaR695XOKs6l6KS7TI6PKWZ9QkpuwPr5iCpQvSSiAousix1raps9UsxikdGnxV/jVPX0T4iMtSXyGQqNDDkCAYV4ABAn6D7HeE69c5Wjn2Sw=</SignatureValue>
                            <KeyInfo>
                                <X509Data>
                                    <X509IssuerSerial>
                                        <X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: Araceli Gandara Bautista, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET=&quot;Av. Hidalgo 77, Col. Guerrero&quot;, E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas</X509IssuerName>
                                        <X509SerialNumber>286524172099382162235533054529634765881071645494</X509SerialNumber>
                                    </X509IssuerSerial>
                                    <X509Certificate>MIIEYTCCA0mgAwIBAgIUMjAwMDEwMDAwMDAyMDAwMDE0MzYwDQYJKoZIhvcNAQEFBQAwggFcMRowGAYDVQQDDBFBLkMuIDIgZGUgcHJ1ZWJhczEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMTQwMgYJKoZIhvcNAQkCDCVSZXNwb25zYWJsZTogQXJhY2VsaSBHYW5kYXJhIEJhdXRpc3RhMB4XDTEzMDUwNzE3MzkzOVoXDTE3MDUwNzE3MzkzOVowgdsxKTAnBgNVBAMTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSkwJwYDVQQpEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEChMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxJTAjBgNVBC0THEFBQTAxMDEwMUFBQSAvIEhFR1Q3NjEwMDM0UzIxHjAcBgNVBAUTFSAvIEhFR1Q3NjEwMDNNREZOU1IwODERMA8GA1UECxMIcHJvZHVjdG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK5u01+YhUIypqmD+lI/is/HEkhYE7UaRxUwQDFW3xlRPsbuKeytQIdOPmJuW8iQqjklhUkEVTjkUqdc730yc6ENcWmXmQ9CZ+DJ19ccqltHbWa2MxvN1Xceigs3mcy4vKnqjxt4Yu/QF+lQz0BAeYxlPUPW0gZP+K9ZnuWw6mgdAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQADrL2kw0ym5IZ/5NdPhNwZObz3GtkxZmitFKuCPuA+Pi/9/qkXiQT6LW3qsypQP9hgqFsZKzpnmJVqnQzEn+t+eQRuK4d11zz1tQnf0rFvdmF9HJCxx0AHto/yd+y3oOn5kA00LBDo2M23BLWlNRqG4jxOLO6zObBRYl+wK4a/pTEbN5ypwMXReqhSdGLiqr9+KryWFiAiJNCaEMfKAM3P/RXxYv/0Hel+dPljXqCnC2u039+gr5Ce36d4GW4vVqGgsUl33Kot3Ha3f+Cqzhi8fmgZNKYclBBvNxSdSFaX8p6nHnVTnF6NBXG3/RSowE1of4l63ULKRPAg5qjW5Lb3</X509Certificate>
                                </X509Data>
                            </KeyInfo>
                        </Signature>
                    </Cancelacion>]]></tem:SolicitudFirmada>
            </tem:CancelacionRetencionesSolicitudFirmadaRequest>
        </soapenv:Body>
    </soapenv:Envelope>

    Respuesta CancelarSolicitudFirmada

    Elemento Descripción
    Error
  • false: Transacción exitosa.
  • true: Error al procesarse la transacción.
  • ErrorCode Indica el código de error.
    ErrorMessage En caso que el elemento Errortenga el valor true, se mostrara la descripción del error.
    AcuseSAT El acuse en formato XML generado y firmado por el SAT que indica el resultado de la operación de la solicitud de cancelación. Esta dentro de un elemento <![CDATA[...]]>.


    Ejemplo de respuesta:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body>
            <CancelacionRetencionesSolicitudFirmadaResponse xmlns="http://tempuri.org/">
                <Error>false</Error>
                <ErrorCode i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
                <ErrorMessage/>
                <AcuseSAT><![CDATA[<?xml version="1.0"?>
                    <Acuse Fecha="2016-07-15T14:09:04.5959237" RfcEmisor="AAA010101AAA" WorkProcessId="7e310ad1-cf65-48f2-85b5-d74949025d96" xmlns="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                        <Folios>
                            <UUID>F650A5BC-6177-4311-828B-0E15C8424562</UUID>
                            <EstatusUUID>1202</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>xNWz5FZCN48sgiNsaqb6dp86bFHbf6oNIGnvUoevUaY3LiFDJYdu3CUyl5N1eIhd5CYu8cK0pHOeL9TAm1RMfA==</DigestValue>
                                </Reference>
                            </SignedInfo>
                            <SignatureValue>qAzigORDzxEkpJ2x5zHwqPo5DnC/GaL+UixvYCWr6MgHvFP7bw1fu8anzXjrx7KeTtLTW0UXxt+qC6ooS3Emcw==</SignatureValue>
                            <KeyInfo>
                                <KeyName>20001000000300003586</KeyName>
                                <KeyValue>
                                    <RSAKeyValue>
                                        <Modulus>n77fbi0dTENVn43LCUOIF/8iyQObFg/AaTRBdpf0fVuozOOy48INue46sN54AHL+I50s1U8Nh6Dq+MRvRNc8WyHPQWsnmSaicT5vAkkzqucVj004WyLcmpysY45DrCxSitPMRzop3XboPr1msWd3EuyduUtbu3QmNRin8uzpYg8=</Modulus>
                                        <Exponent>AQAB</Exponent>
                                    </RSAKeyValue>
                                </KeyValue>
                            </KeyInfo>
                        </Signature>
                    </Acuse>]]></AcuseSAT>
            </CancelacionRetencionesSolicitudFirmadaResponse>
        </s:Body>
    </s:Envelope>


    Método [CancelarSolicitudFirmadaAsync]

    Este método se utiliza para solicitar la cancelación de 2 hasta 10,000 folios fiscales para retenciones; sin embargo, a diferencia de los métodos previamente descritos, cuando no es posible registrar el CSD en Reachcore, el XML de la solicitud de cancelación firmado con el CSD del emisor es enviado en la solicitud de este método, conforme a lo definido por el SAT para la solicitud de cancelación. Como respuesta de la solicitud, se obtendrá un identificador de seguimiento para verificar el resultado del proceso de cancelación.

    Solicitud CancelarSolicitudFirmadaAsync

    Elemento Uso Descripción
    ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
    SolicitudFirmada Requerido XML con la solicitud de cancelación conforme lo especificado por el SAT, indicando los folios fiscales de los comprobantes a cancelar, el RFC del emisor y la hora de la operación, firmado electrónicamente con la llave privada del emisor. Para referencia del firmado consultar: Firma solicitud de cancelación de CFDI y Retenciones. El XML se envía dentro de <![CDATA[...]]>.


    Ejemplo de solicitud:

    <soapenv:Envelope xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
        <soapenv:Header>
            <cus:ApiKey>51e9d1097f634f2.....933f769303391008</cus:ApiKey>
        </soapenv:Header>
        <soapenv:Body>
            <tem:CancelacionRetencionesSolicitudFirmadaRequest>
                <tem:SolicitudFirmada><![CDATA[
                    <Cancelacion Fecha="2016-05-27T14:37:42" RfcEmisor="AAA010101AAA" xmlns="http://cancelaretencion.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                        <Folios>
                            <UUID>01ACA10B-4B78-4CBC-99CD-8A0C69026DE2</UUID></Folios>
                        <Folios>
                            <UUID>7E35C642-A7D4-41BC-84F0-10F75F16E765</UUID>
                        </Folios>
                        <Folios>
                            <UUID>19FAC4C2-77CD-42C0-AFBC-D3E5B8504D73</UUID>
                        </Folios>
                        <Folios>
                            <UUID>C7B02CE7-0AC6-499F-B494-517C413FE5E5</UUID>
                        </Folios>
                        <Folios>
                            <UUID>95E7D9C8-B19E-4115-AD8C-225093F41FF6</UUID>
                        </Folios>
                        <Signature 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/2000/09/xmldsig#rsa-sha1"/>
                                <Reference URI="">
                                    <Transforms>
                                        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                                    </Transforms>
                                    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                                    <DigestValue>/IFHOePJ4L5ClHiboyM6ebYvv+A=</DigestValue>
                                </Reference>
                            </SignedInfo>
                            <SignatureValue>QIngIxLP44cFo+hVbCFlDWtsptzfcovppKtLvGWGUJJb/hhU2ctOD9CexowtZxVHIA/5Sav4vKlf4t7IhOFkg40Hl9z8qE3igVoLg0BMJaX3dYrKtCAAoPtptdJg7bCzCZCjwosER4s4UV5z0RJSkCebkDhODMu7hsq5CLzGLtc=</SignatureValue>
                            <KeyInfo>
                                <X509Data>
                                    <X509IssuerSerial>
                                        <X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: Araceli Gandara Bautista, L=Coyoacán, S=Distrito Federal, C=MX, PostalCode=06300, STREET=&quot;Av. Hidalgo 77, Col. Guerrero&quot;, E=asisnet@pruebas.sat.gob.mx, OU=Administración de Seguridad de la Información, O=Servicio de Administración Tributaria, CN=A.C. 2 de pruebas</X509IssuerName>
                                        <X509SerialNumber>286524172099382162235533054529634765881071645494</X509SerialNumber>
                                    </X509IssuerSerial>
                                    <X509Certificate>MIIEYTCCA0mgAwIBAgIUMjAwMDEwMDAwMDAyMDAwMDE0MzYwDQYJKoZIhvcNAQEFBQAwggFcMRowGAYDVQQDDBFBLkMuIDIgZGUgcHJ1ZWJhczEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMTQwMgYJKoZIhvcNAQkCDCVSZXNwb25zYWJsZTogQXJhY2VsaSBHYW5kYXJhIEJhdXRpc3RhMB4XDTEzMDUwNzE3MzkzOVoXDTE3MDUwNzE3MzkzOVowgdsxKTAnBgNVBAMTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSkwJwYDVQQpEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEChMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxJTAjBgNVBC0THEFBQTAxMDEwMUFBQSAvIEhFR1Q3NjEwMDM0UzIxHjAcBgNVBAUTFSAvIEhFR1Q3NjEwMDNNREZOU1IwODERMA8GA1UECxMIcHJvZHVjdG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK5u01+YhUIypqmD+lI/is/HEkhYE7UaRxUwQDFW3xlRPsbuKeytQIdOPmJuW8iQqjklhUkEVTjkUqdc730yc6ENcWmXmQ9CZ+DJ19ccqltHbWa2MxvN1Xceigs3mcy4vKnqjxt4Yu/QF+lQz0BAeYxlPUPW0gZP+K9ZnuWw6mgdAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQADrL2kw0ym5IZ/5NdPhNwZObz3GtkxZmitFKuCPuA+Pi/9/qkXiQT6LW3qsypQP9hgqFsZKzpnmJVqnQzEn+t+eQRuK4d11zz1tQnf0rFvdmF9HJCxx0AHto/yd+y3oOn5kA00LBDo2M23BLWlNRqG4jxOLO6zObBRYl+wK4a/pTEbN5ypwMXReqhSdGLiqr9+KryWFiAiJNCaEMfKAM3P/RXxYv/0Hel+dPljXqCnC2u039+gr5Ce36d4GW4vVqGgsUl33Kot3Ha3f+Cqzhi8fmgZNKYclBBvNxSdSFaX8p6nHnVTnF6NBXG3/RSowE1of4l63ULKRPAg5qjW5Lb3</X509Certificate>
                                </X509Data>
                            </KeyInfo>
                        </Signature>
                    </Cancelacion>]]></tem:SolicitudFirmada>
            </tem:CancelacionRetencionesSolicitudFirmadaRequest>
        </soapenv:Body>
    </soapenv:Envelope>

    Respuesta CancelarSolicitudFirmadaAsync

    Elemento Descripción
    Error
  • false: Transacción exitosa.
  • true: Error al procesarse la transacción.
  • ErrorCode Indica el código de error.
    ErrorMessage En caso que el elemento Errortenga el valor true, se mostrara la descripción del error.
    TrackingId Indica el identificador de seguimiento, para realizar posteriormente la consulta del resultado del procesamiento de la solicitud de cancelación.


    Ejemplo de respuesta:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
        <s:Body>
            <CancelacionRetencionesSolicitudFirmadaAsyncResponse xmlns="http://tempuri.org/">
                <Error>false</Error>
                <ErrorCode i:nil="true" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"/>
                <ErrorMessage/>
                <TrackingId>e70941f0-3f89-4237-a313-f326d942d453</TrackingId>
            </CancelacionRetencionesSolicitudFirmadaAsyncResponse>
        </s:Body>
    </s:Envelope>

    Códigos de Respuesta de Cancelación del SAT

    Para cada operación de cancelación de un comprobante, el SAT la autoriza o rechaza especificando un código de estatus. En las siguientes dos tablas se describen los códigos de status conocidos y sus significados.

    Fuente: Documentación técnica para anexo 20 versión 3.3 (Versión publicada en el DOF el 28 de Julio de 2017), sección C. Estandar y Uso del Servicio de cancelación de retenciones e información de pago.

    Códigos de éxito

    Código Descripción Significado
    1201 UUID Cancelado Cancelación exitosa, el comprobante que estaba en estado Activo cambia a estado Cancelado.
    1202 UUID Previamente cancelado El comprobante ya estaba en estado Cancelado previamente y no cambió de estado.

    Códigos de error

    Código Descripción Significado ¿Reintentable? ¿Qué hacer?
    1203 UUID no corresponde en el emisor El Folio Fiscal que se solicitó cancelar si existe, pero no fue emitido por el RFC especificado. No Confirmar cuál es el RFC Emisor correcto para ese comprobante y hacer una nueva solicitud en donde se indique el RFC correcto.
    1204 UUID No aplicable para cancelación El Folio Fiscal no se puede cancelar. El SAT no especifica bajo que criterios puede ocurrir este código, pero no es frecuente. No Consultar directamente en el SAT en Asistencia al Contribuyente el motivo por el que no se autoriza la cancelación del comprobante. Reachcore no puede hacer nada al respecto.
    1205 UUID No existe El SAT todavía no publica en su portal de internet el comprobante, y por lo tanto aún no puede ser cancelado. Si Asegurar que el comprobante ya está entregado al SAT y re-intentar la cancelación.
    1301 XML mal formado El XML de solicitud que se envió al SAT no está correctamente formado. Sólo relevante para el método de cancelación en línea con solicitud firmada de origen. No Verificar que la solicitud de cancelación fue creada de acuerdo a la especificación técnica descrita en este documento.
    1302 Estructura de folios no válida Los folios fiscales (UUID) no cumplen con el patrón Si Verificar que se forme correctamente el folio fiscal (UUID)
    1306 Certificado no vigente El certificado con el cual se firmó la solicitud de cancelación, no esta vigente. No Utilice un certificado de sello digital vigente.
    1307 Uso de FIEL no permitido El certificado con el que se firmó la solicitud de cancelación es FIEL No Utilice o solicite un Certificado de Sello Digital (CSD) para firmar las solicitudes de cancelación.
    1308 Certificado revocado o caduco El certificado de sello digital con el que se firmó la solicitud de cancelación ha sido revocado o ya pasó su fecha de expiración. No Solicitar al SAT un nuevo certificado de sello digital y volver a solicitar la cancelación con este nuevo certificado.
    1309 Firma mal formada o inválida Aplica especialmente para los métodos de cancelación: CancelarSolicitudFirmada y CancelarSolicitudFirmadaAsync. Indica que la estructura XML con el listado de UUID a cancelar contiene una firma mal formada o es inválida. No Revisar el proceso de generación de la firma del XML con el listado de folios fiscales a cancelar.


    Para mayor información o aclaración de dudas relacionadas con esta guía, por favor envía un correo a MEX-soporte@sovos.com. También puedes consultar las preguntas frecuentes de cancelación en la siguiente liga: Preguntas frecuentes cancelación


    Regresar