Cancelación del Documento Electrónico que amparan Retenciones e Información de Pagos
Este servicio dejará de operar en 2022
A partir de 2022 será necesario señalar el motivo de la cancelación de comprobantes. La actual estructura del servicio de cancelación no tiene soporte para recibir el motivo de cancelación de los comprobantes o el folio fiscal del comprobante que sustituye al cancelado. Puede obtener información del servicio que sustituirá a este servicio en la siguiente liga de actualización al servicio de cancelación.
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
- Cancelación en línea
- Requisitos para cancelar un Documento Electrónico que amparan Retenciones e Información de Pagos
- Integración
-
Web Service de cancelación para los Documentos Electrónicos que amparan Retenciones e Información de Pagos
- ¿Qué necesito?
- Ubicación del servicio
- Método [
Cancelar
]: Cancelación de un solo folio fiscal - Solicitud Cancelar
- Respuesta Cancelar
- Método [
CancelarAsync
]: Cancelación de más de un folio fiscal - Solicitud CancelarAsync
- Respuesta CancelarAsync
- Método [
ConsultaAcuse
]: Consulta de acuse para la cancelación de más de un folio - Solicitud ConsultaAcuse
- Respuesta ConsultaAcuse
- Método [
CancelarSolicitudFirmada
]: Cancelación de un solo folio fiscal con firma de origen - Solicitud CancelarSolicitudFirmada
- Respuesta CancelarSolicitudFirmada
- Método [
CancelarSolicitudFirmadaAsync
]: Cancelación de más de un folio fiscal con firma de origen - Solicitud CancelarSolicitudFirmadaAsync
- Respuesta CancelarSolicitudFirmadaAsync
-
Códigos de Respuesta de Cancelación del SAT
- Códigos de éxito
- Códigos de error
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:
- El Certificado, que es un archivo con extensión .cer
- La llave privada, que es un archivo con extensión .key
- 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 Error tenga 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:
|
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 Error tenga 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. |
<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 Error tenga 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="Av. Hidalgo 77, Col. Guerrero", 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 Error tenga 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="Av. Hidalgo 77, Col. Guerrero", 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 Error tenga 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.
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