Timbrado fiscal para Comprobantes Fiscales
(CFDI y CFDI que ampara Retenciones e Información de pagos)

Reachcore ha desarrollado la versión del web service de timbrado (RC Timbre v.6.0) para ofrecer el servicio de certificación (timbrado) de Comprobantes Fiscales Digitales por Internet en la versión 3.3, asi como el Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos, en la versión 1.0, autorizado por el Servicio de Administración Tributaria (SAT) como un Proveedor de Certificación de Comprobantes Fiscales Digitales por Internet (PCCFDI) con el número 55267.

Contenido

Características generales

La versión 6.0 de RC Timbre, tiene la capacidad de procesar los siguientes comprobantes fiscales:

  • Comprobantes Fiscales Digitales por Internet (CFDI) versión 3.3
  • Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos, en la versión 1.0.

Para poder certificar un comprobante fiscal (timbrar), el cual contiene el folio fiscal (UUID), el Proveedor de Certificación de Comprobantes Fiscales Digitales por Internet (PCCFDI) se lleva a cabo el siguiente proceso:

  1. Verificar que el XML (comprobante) cumple con la estructura conforme lo definido por el SAT en el Anexo 20 y de los complementos que contiene el comprobante.
  2. Realizar las validaciones que el SAT requiere que haga el PCCFDI.
  3. Generar el Timbre Fiscal Digital para el comprobante.
  4. Entregar el comprobante fiscal certificado (timbrado) al emisor del comprante.
  5. Entregar el comprobante fiscal certificado al SAT.
  6. Resguardar el comprobante fiscal certificado nuestra bóveda digital.

Adicionalmente, el servicio de timbrado tiene la capacidad de poder generar una representación impresa conforme las necesidades del emisor e incluir información que es necesaria que se muestre en dicha representación. Para poder obtener la representación impresa del CFDI timbrado, debe tener activado dicho servicio; la recuperación se hace por medio del API REST de Reachcore. Para detalles de como obtener el PDF, consulta este link.

¿Qué necesito?

Para poder hacer uso del servicio se necesita lo siguiente:

  • Contar con un contrato de servicios con Reachcore. En caso de no tener uno, por favor envía un correo a ventas@reachcore.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.
  • Generar el XML del comprobante a timbrar considerando lo siguiente:
    • Cumplir con el esquema que el SAT ha definido para cada comprobante.
    • Generar el sello digital del comprobante
  • Poder invocar un Web Service, publicado en internet con conexión segura (SSL).

Ubicación del servicio

La URL donde se encuentra la definición del Web Service (WSDL) para el ambiente de prueba:

Ambiente Ubicación de WSDL
Piloto https://oat.reachcore.com/api/ws/6.0/pacservices/Timbre.svc/basic?wsdl
Producción https://go.reachcore.com/api/ws/6.0/pacservices/Timbre.svc/basic?wsdl

Validaciones en el proceso de certificación (timbrado)

Para que un comprobante pueda ser certificado por un PCCFDI como Reachcore, se deben de realizar las siguientes validaciones:

Estructura

El comprobante fiscal se valida contra el esquema (XSD) publicado por el SAT.

Además de la validación del esquema XSD, el SAT exige cumplir con las siguientes características del comprobante:

Prefijo

  • El prefijo para el namespace http://www.sat.gob.mx/cfd/3 debe ser cfdi
  • El prefijo para el namespace http://www.sat.gob.mx/esquemas/retencionpago/1 debe ser retenciones

Incorrecto:

<?xml version="1.0" encoding="utf-8"?>
<ns:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ns="http://www.sat.gob.mx/cfd/3" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd"
  Version="3.3" Serie="ABC" Folio="0001" Fecha="2017-06-20T00:00:01"
  ...

Correcto:

<?xml version="1.0" encoding="utf-8"?>
<cfdi:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd"
  Version="3.3" Serie="ABC" Folio="0001" Fecha="2017-06-20T00:00:01"
  ...

Fecha del comprobante

  • Del valor en el atributo Fecha del comprobante, no puede ser mayor a 72 horas naturales.
  • Para los Comprobantes Fiscales Digitales a través de Internet que ampara Retenciones e Información de pagos se considera la zona horaria en la fecha de expedición, para realizar la validación contra la zona horaria del centro de los Estados Unidos Mexicanos.
  • La fecha y hora de expedición puede estar hasta 5 minutos en el futuro al momento de su validación.

El SAT define en el Anexo 20 para el CFDI 3.3, en relación a la fecha del comprobante:

Al momento de la recepción del archivo XML por parte del Proveedor de Certificación, éste debe verificar que la fecha y hora no debe ser:
* Mayor que la fecha y hora aumentada en el plazo que se especifique en la Resolución Miscelánea Fiscal vigente - Obligaciones de los proveedores en el proceso de certificación de CFDI.
* Menor que la fecha y hora disminuida en el plazo que se especifique en la Resolución Miscelánea Fiscal vigente - Obligaciones de los proveedores en el proceso de certificación de CFDI

  • Para los Comprobantes Fiscales Digitales a través de Internet que ampara Retenciones e Información de pagos se considera la zona horaria en la fecha de expedición, para realizar la validación contra la zona horaria del centro de los Estados Unidos Mexicanos.

Emisor

  • El RFC del emisor del comprobante debe estar publicado en las Listas de Contribuyentes con Obligación (LCO) del SAT.
  • El sello del comprobante no debe ser generado con el certificado e.firma (FIEL) del emisor.
  • El Certificado de Sello Digital (CSD) del emisor con el que fue generado el sello digital del comprobante:
    • Deberá estar vigente en la fecha de expedición del comprobante.
    • Deberá estar en la Lista de Contribuyentes con Obligación (LCO) publicada por el SAT.
    • No deberá estar revocado.
    • El No. de serie del certificado debe corresponder con el CSD que esta contenido en el comprobante en base64 en el atributo certificado.
    • El No. de serie del certificado debe corresponder con el RFC emisor del comprobante.
La actualización de la LCO puede tardar de 36 a 48 horas a partir de la obtención del CSD, este proceso es automático y lo realiza el SAT y el PAC de forma conjunta, por lo que no es necesario realizar trámite alguno.
Fuente: http://omawww.sat.gob.mx/informacion_fiscal/preguntas_frecuentes/Paginas/factura_cfdi.aspx, Pregunta 1.

Sello de emisor

  • El sello se genera a partir de la cadena original que el SAT ha definido. Cualquier alteración en los datos que conforman la cadena original después de haber generado el sello, tendrá como resultado un sello inválido. Hay que considerar que hay una secuencia para la generación de cadena original: Cadena original CFDI ver. 3.3 | Cadena original Retenciones ver. 1.0

  • Cabe mencionar que la información de los complementos y complementos concepto, son parte de la cadena original.
  • El sello del comprobante fiscal, debe ser realizado con el CSD del emisor. Esto será verificado utilizando el certificado en base 64, contenido en el atributo Certificado en el comprobante.
  • La digestion para CFDI vesión 3.3 es SHA2 256, y para Retenciones SHA1.

Addendas

  • Se puede recibir comprobantes con o sin Addenda. Las Addendas es información comercial entre el emisor y el receptor, por lo que no se realiza ningún tipo de validación. Por disposición del SAT, la versión del CFDI que se registra ante el SAT no contendrá las Addendas.

Validaciones para CFDI 3.3

Uno de los cambios más importantes para la versión 3.3 del CFDI, son las reglas de validación que el SAT ha solicitado a los PCCFDI que realice al comprobante fiscal antes de certificarlo. Estas reglas de validación las podemos clasificar de la siguiente manera:

  • Aritmético
  • Condicional
  • Congruencia

En este artículo, se enumeran los escenarios que el PCCFDI debe validar, y en su caso notificar el código de error.

Método [TimbrarComprobante]

En este método del web service, se realiza la solicitud de timbrado ya sea para certificar (timbrar) un Comprobantes Fiscales Digitales por Internet (CFDI) o Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos, conforme a la definición definida en el Anexo 20, publicado por el SAT. A continuación se describe lo que se envía en la solicitud y lo que se obtiene en la respuesta:

Solicitud TimbrarComprobante

Los datos que se requieren enviar en la solicitud de timbrado de un CFDI al Web Service, son los siguientes:

Elemento Uso Descripción
ApiKey Requerido Identificador de autenticación, que se genera en el portal de Reachcore.
Comprobante Requerido Contiene el XML del comprobante fiscal dentro de un elemento <![CDATA[...]]> conforme la especificación del Anexo 20.
Esquema CFDI ver. 3.3
Esquema Retenciones ver. 1.0
CustomData Opcional Puede incluirse una estructura XML con datos que se necesitan mostrar en la representación impresa.
TransactionProperty Opcional Son parámetros que indican a Reachcore algún tratamiento especial a realizar con el comprobante que se está procesando. Algunos de estos parámetros deben ser contratados y configurados previamente por personal de Reachcore. Algunos de ellos son:
* tipoDocumento - se utiliza para especificar el uso de una representación impresa en especifico, asi como catalogar para fines de reportes el comprobante timbrado.
* PemexVault- Indica que dicho comprobante debe entregarse a la Bóveda de Pemex.


Este ejemplo de la solicitud de timbrado para un CFDI versión 3.3:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
    <soapenv:Header>
        <cus:ApiKey>gq3qzxh7jyt........pghcrzmz7uhfzdkp</cus:ApiKey>
    </soapenv:Header>
    <soapenv:Body>
        <urn:TimbrarComprobanteRequest>
            <urn:Comprobante>
                <![CDATA[<cfdi:Comprobante Fecha="2017-11-15T20:21:12" Folio="016225" FormaPago="01" LugarExpedicion="86010" MetodoPago="PUE" Moneda="MXN" Serie="M" SubTotal="1000" TipoDeComprobante="I" Total="1160" Version="3.3" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" Certificado="MIIFejCCA2KgAwIBAgIUMjAwMDEwMDAwMDAzMDAwMDM2OTMwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNDA2MDUyMTU1NDlaFw0xODA2MDUyMTU1NDlaMIHqMS4wLAYDVQQDEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQpEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQKEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMSUwIwYDVQQtExxEQ08wMjA2MjRQMTAgLyBGVUFCNzcwMTE3QlhBMR4wHAYDVQQFExUgLyBGVUFCNzcwMTE3TURGUk5OMDkxETAPBgNVBAsUCFBydWViYV8xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7KhZ9ny7u2GLsKaRVfnqjZ7ewEF4OXTpAzhkInc8D2yNXlbo+5xkpBnX9SccF+pzTWA27N3UQCOHlkEnb0Ti1eglII3kuZr3rnXEYKYgwSv17taW6rBM/ImhGPTMtLqdICp4fwe9kMliDSqibU9yW11zVbvh7adRQw7B+2CYQKwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAr4TnmeEZ7UF/9Zt7yxYTfEwy3PYiX9/G7a34aD8A3wbmOqRXybplSUDE+SLmuFMz+W8SJNvbnGZeaPsTw1jdEmr807MhXNGwxu1QJQojy1PdyT+oNUfeHh86rAZn437Pl8TALtEaH4EphG87aAZYVRZRIRXW/Yqse+qNuYT9DP8xUThvjcKkxUgtlFm0KtnTUcNtkzmYD1vZldVO/ZSeZ4PEURAY2d1jtfXbZQ04DlqKlUzS7ldvw9pk5SONsKb0h+gFlAojGIVv7Khh6pOTawUsnb0MKAw3W15Fa3luflWSfyqcmKh0i/t86MlMcuJ4XHYeYpA3CQUNYO+6SfpWCYXvhIwnPtIpIiUNbVgnrT0MGm0Nc4h/8Lvn0urIRhnjCie3Rc8X4yoYT+EBam9EJfuGhFr4oYGk7sFMU6/ZqStifL4OEpnGauy+ZG2WOmiUk1ybQUuI5Y8nSwHB4fSYo54RLhYyFZZ509P8bOccOfyWVoIa4ghFrPDXMnCHC7aeThvWbW5PzPdJBOWk5Y7fiF9tsFqX9otxhZM1rEjanXB5ou0ZFzAJ1gkfr3vjwYreaq230pZvaYeAj+obqxCHfbwB4ltbn3rVPz4Y3D61b3TcdIDmV6KjKzb08Hxp38eoBYjvaWkowd4+ds6mIEhLcAzyZytrb+kko0l5CeEFqX4=" NoCertificado="20001000000300003693" Sello="FUl5wp0tT0xlc/IePo6CJ9OceghfIppDHvDF6XGdVl8imzvr/xaEEjHqPIUCjFSEZ4/yO6RcHpsbQ/Xio61/UXReB/8S52ftLeex4tre+SH6Q+VcD25ekzkqpj0Xk9qSPOBUCzR1VS/6AFEc3IK0BeDMkxCKkRtSth5WAGKKn+8=">
    <cfdi:Emisor Nombre="Empresa emisora" RegimenFiscal="601" Rfc="AAA010101AAA" />
    <cfdi:Receptor Nombre="Público en general" Rfc="XAXX010101000" UsoCFDI="G01" />
    <cfdi:Conceptos>
        <cfdi:Concepto Cantidad="1" ClaveProdServ="73161501" ClaveUnidad="E48" Descripcion="REPARACION DE MOTOR" Importe="1000" Unidad="NA" ValorUnitario="1000">
            <cfdi:Impuestos>
                <cfdi:Traslados>
                    <cfdi:Traslado Base="1000" Importe="160" Impuesto="002" TasaOCuota="0.160000" TipoFactor="Tasa" />
                </cfdi:Traslados>
            </cfdi:Impuestos>
        </cfdi:Concepto>
    </cfdi:Conceptos>
    <cfdi:Impuestos TotalImpuestosTrasladados="160">
        <cfdi:Traslados>
            <cfdi:Traslado Importe="160" Impuesto="002" TasaOCuota="0.160000" TipoFactor="Tasa" />
        </cfdi:Traslados>
    </cfdi:Impuestos>
</cfdi:Comprobante>]]>
            </urn:Comprobante>
        </urn:TimbrarComprobanteRequest>
    </soapenv:Body>
</soapenv:Envelope>

Este ejemplo de la solicitud de timbrado para un CFDI de retenciones:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://www.reachcore.com/CFDI/customHeaders" xmlns:urn="urn:reachcore.com:services:api:ws:pacservices:6.0">
   <soapenv:Header>
      <cus:ApiKey>rksmtexxe9hqqrfw7nphv...qcsc2y4x3dcm4enmimewh3sxsyx2z</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <urn:TimbrarComprobanteRequest>
         <urn:Comprobante><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<retenciones:Retenciones Cert="MIIFejCCA2KgAwIBAgIUMjAwMDEwMDAwMDAzMDAwMDM2OTMwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNDA2MDUyMTU1NDlaFw0xODA2MDUyMTU1NDlaMIHqMS4wLAYDVQQDEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQpEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQKEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMSUwIwYDVQQtExxEQ08wMjA2MjRQMTAgLyBGVUFCNzcwMTE3QlhBMR4wHAYDVQQFExUgLyBGVUFCNzcwMTE3TURGUk5OMDkxETAPBgNVBAsUCFBydWViYV8xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7KhZ9ny7u2GLsKaRVfnqjZ7ewEF4OXTpAzhkInc8D2yNXlbo+5xkpBnX9SccF+pzTWA27N3UQCOHlkEnb0Ti1eglII3kuZr3rnXEYKYgwSv17taW6rBM/ImhGPTMtLqdICp4fwe9kMliDSqibU9yW11zVbvh7adRQw7B+2CYQKwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAr4TnmeEZ7UF/9Zt7yxYTfEwy3PYiX9/G7a34aD8A3wbmOqRXybplSUDE+SLmuFMz+W8SJNvbnGZeaPsTw1jdEmr807MhXNGwxu1QJQojy1PdyT+oNUfeHh86rAZn437Pl8TALtEaH4EphG87aAZYVRZRIRXW/Yqse+qNuYT9DP8xUThvjcKkxUgtlFm0KtnTUcNtkzmYD1vZldVO/ZSeZ4PEURAY2d1jtfXbZQ04DlqKlUzS7ldvw9pk5SONsKb0h+gFlAojGIVv7Khh6pOTawUsnb0MKAw3W15Fa3luflWSfyqcmKh0i/t86MlMcuJ4XHYeYpA3CQUNYO+6SfpWCYXvhIwnPtIpIiUNbVgnrT0MGm0Nc4h/8Lvn0urIRhnjCie3Rc8X4yoYT+EBam9EJfuGhFr4oYGk7sFMU6/ZqStifL4OEpnGauy+ZG2WOmiUk1ybQUuI5Y8nSwHB4fSYo54RLhYyFZZ509P8bOccOfyWVoIa4ghFrPDXMnCHC7aeThvWbW5PzPdJBOWk5Y7fiF9tsFqX9otxhZM1rEjanXB5ou0ZFzAJ1gkfr3vjwYreaq230pZvaYeAj+obqxCHfbwB4ltbn3rVPz4Y3D61b3TcdIDmV6KjKzb08Hxp38eoBYjvaWkowd4+ds6mIEhLcAzyZytrb+kko0l5CeEFqX4=" CveRetenc="01" FechaExp="2017-03-10T12:39:44-06:00" NumCert="20001000000300003693" Sello="olS1G52n7bmw+6nO6018alZlx0mhvazn1avdDm4OPgUJiMnVFM1oWehsgcZqlu4yCW+oC+zJA3A9stwLyROhPadAvcoAkQEzK+D6SaRAG06A+E5CalnPA8PoA7KDPSqWGAwqjMjcsFRMQnmtFQ0aiFiQdhxjgNwo+YVsGmKAh2U=" Version="1.0" xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago">
  <retenciones:Emisor RFCEmisor="AAA010101AAA"/>
  <retenciones:Receptor Nacionalidad="Nacional">
    <retenciones:Nacional RFCRecep="XAXX010101000"/>
  </retenciones:Receptor>
  <retenciones:Periodo Ejerc="2017" MesFin="1" MesIni="1"/>
  <retenciones:Totales montoTotExent="1200" montoTotGrav="3800" montoTotOperacion="5000" montoTotRet="0"/>
</retenciones:Retenciones>]]></urn:Comprobante>
      </urn:TimbrarComprobanteRequest>
   </soapenv:Body>
</soapenv:Envelope>

Respuesta: TimbrarComprobante

Como respuesta a la solicitud de timbrado del comprobante fiscal, se obtendrá lo siguiente:

Cuando fue exitosa la transacción

Elemento Descripción
TransactionId Identificador de la transacción.
Result Cuando se procesó correctamente el comprobante fiscal, se incluye el mismo dentro de un elemento <![CDATA[...]]>.
TransactionProperties Tiene una colección de elementos TransactionProperty, con un par de atributos:
* Key.- identifica el valor del atributo value
* value.- contiene el valor relacionado con el identificador del atributo key


Este es el mensaje de respuesta cuando se certifico exitosamente un CFDI versión 3.3:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <TimbrarComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
            <TransactionId>7c0d8651-1b7c-45bd-93fa-8982eaf84394</TransactionId>
            <Result>
                <![CDATA[<?xml version="1.0" encoding="utf-8"?>
                <cfdi:Comprobante Fecha="2017-11-15T20:21:12" Folio="016225" FormaPago="01" LugarExpedicion="86010" MetodoPago="PUE" Moneda="MXN" Serie="M" SubTotal="1000" TipoDeComprobante="I" Total="1160" Version="3.3" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Certificado="MIIFejCCA2KgAwIBAgIUMjAwMDEwMDAwMDAzMDAwMDM2OTMwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNDA2MDUyMTU1NDlaFw0xODA2MDUyMTU1NDlaMIHqMS4wLAYDVQQDEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQpEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQKEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMSUwIwYDVQQtExxEQ08wMjA2MjRQMTAgLyBGVUFCNzcwMTE3QlhBMR4wHAYDVQQFExUgLyBGVUFCNzcwMTE3TURGUk5OMDkxETAPBgNVBAsUCFBydWViYV8xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7KhZ9ny7u2GLsKaRVfnqjZ7ewEF4OXTpAzhkInc8D2yNXlbo+5xkpBnX9SccF+pzTWA27N3UQCOHlkEnb0Ti1eglII3kuZr3rnXEYKYgwSv17taW6rBM/ImhGPTMtLqdICp4fwe9kMliDSqibU9yW11zVbvh7adRQw7B+2CYQKwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAr4TnmeEZ7UF/9Zt7yxYTfEwy3PYiX9/G7a34aD8A3wbmOqRXybplSUDE+SLmuFMz+W8SJNvbnGZeaPsTw1jdEmr807MhXNGwxu1QJQojy1PdyT+oNUfeHh86rAZn437Pl8TALtEaH4EphG87aAZYVRZRIRXW/Yqse+qNuYT9DP8xUThvjcKkxUgtlFm0KtnTUcNtkzmYD1vZldVO/ZSeZ4PEURAY2d1jtfXbZQ04DlqKlUzS7ldvw9pk5SONsKb0h+gFlAojGIVv7Khh6pOTawUsnb0MKAw3W15Fa3luflWSfyqcmKh0i/t86MlMcuJ4XHYeYpA3CQUNYO+6SfpWCYXvhIwnPtIpIiUNbVgnrT0MGm0Nc4h/8Lvn0urIRhnjCie3Rc8X4yoYT+EBam9EJfuGhFr4oYGk7sFMU6/ZqStifL4OEpnGauy+ZG2WOmiUk1ybQUuI5Y8nSwHB4fSYo54RLhYyFZZ509P8bOccOfyWVoIa4ghFrPDXMnCHC7aeThvWbW5PzPdJBOWk5Y7fiF9tsFqX9otxhZM1rEjanXB5ou0ZFzAJ1gkfr3vjwYreaq230pZvaYeAj+obqxCHfbwB4ltbn3rVPz4Y3D61b3TcdIDmV6KjKzb08Hxp38eoBYjvaWkowd4+ds6mIEhLcAzyZytrb+kko0l5CeEFqX4=" NoCertificado="20001000000300003693" Sello="FUl5wp0tT0xlc/IePo6CJ9OceghfIppDHvDF6XGdVl8imzvr/xaEEjHqPIUCjFSEZ4/yO6RcHpsbQ/Xio61/UXReB/8S52ftLeex4tre+SH6Q+VcD25ekzkqpj0Xk9qSPOBUCzR1VS/6AFEc3IK0BeDMkxCKkRtSth5WAGKKn+8=" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd">
                  <cfdi:Emisor Nombre="Empresa emisora" RegimenFiscal="601" Rfc="AAA010101AAA" />
                  <cfdi:Receptor Nombre="Público en general" Rfc="XAXX010101000" UsoCFDI="G01" />
                  <cfdi:Conceptos>
                    <cfdi:Concepto Cantidad="1" ClaveProdServ="73161501" ClaveUnidad="E48" Descripcion="REPARACION DE MOTOR" Importe="1000" Unidad="NA" ValorUnitario="1000">
                      <cfdi:Impuestos>
                        <cfdi:Traslados>
                          <cfdi:Traslado Base="1000" Importe="160" Impuesto="002" TasaOCuota="0.160000" TipoFactor="Tasa" />
                        </cfdi:Traslados>
                      </cfdi:Impuestos>
                    </cfdi:Concepto>
                  </cfdi:Conceptos>
                  <cfdi:Impuestos TotalImpuestosTrasladados="160">
                    <cfdi:Traslados>
                      <cfdi:Traslado Importe="160" Impuesto="002" TasaOCuota="0.160000" TipoFactor="Tasa" />
                    </cfdi:Traslados>
                  </cfdi:Impuestos>
                  <cfdi:Complemento>
                    <tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="CB0C5518-581E-4456-A98C-2505ED87FD78" FechaTimbrado="2017-11-15T20:21:43" RfcProvCertif="ASE0201179X0" SelloCFD="FUl5wp0tT0xlc/IePo6CJ9OceghfIppDHvDF6XGdVl8imzvr/xaEEjHqPIUCjFSEZ4/yO6RcHpsbQ/Xio61/UXReB/8S52ftLeex4tre+SH6Q+VcD25ekzkqpj0Xk9qSPOBUCzR1VS/6AFEc3IK0BeDMkxCKkRtSth5WAGKKn+8=" NoCertificadoSAT="20001000000300022323" SelloSAT="HKUV1eVshgD4AnKDKcHaqCiLPYveWQAG6R4m4V+v+3C7v7dVwgBC8YS7uDr6/1TFHpFN1NEKBYWqM4NJFyFHoDugIHc5e5bpn7Oycf4V1acUGxDJ74ium7fJLyTTddgnOWQTDtkHsKdW+3kUd0ouY6uiHwGGb7n4+JxUmm/aLkNrGchiE4bMzm1fGZyy8WNweolDQbTCAA+HpcZEA2nmKizX3W9hbZxwAYzZgT3CU9l5QQVG0CTGoIuKhMbkHEVNmZ0SDEONb+9OvrCYQpOQTbN40GyXKqFjmWpVzudKpuq8B0GWyb9bnH2fGuRwIdxrQwe1eqk2iOkfts8TOM1pzw==" />
                  </cfdi:Complemento>
                </cfdi:Comprobante>]]>
            </Result>
            <TransactionProperties>
                <TransactionProperty Key="CFD.RFCEmisor" Value="AAA010101AAA"/>
                <TransactionProperty Key="CFD.RFCReceptor" Value="XAXX010101000"/>
                <TransactionProperty Key="CFD.Serie" Value="M"/>
                <TransactionProperty Key="CFD.Folio" Value="016225"/>
                <TransactionProperty Key="CFD.FechaEmision" Value="2017-11-15T20:21:12"/>
                <TransactionProperty Key="Timbre.UUID" Value="CB0C5518-581E-4456-A98C-2505ED87FD78"/>
                <TransactionProperty Key="Timbre.FechaTimbrado" Value="2017-11-15T20:21:43"/>
                <TransactionProperty Key="Timbre.NoCertificadoSAT" Value="20001000000300022323"/>
                <TransactionProperty Key="Timbre.CadenaOriginal" Value="||1.1|CB0C5518-581E-4456-A98C-2505ED87FD78|2017-11-15T20:21:43|ASE0201179X0|FUl5wp0tT0xlc/IePo6CJ9OceghfIppDHvDF6XGdVl8imzvr/xaEEjHqPIUCjFSEZ4/yO6RcHpsbQ/Xio61/UXReB/8S52ftLeex4tre+SH6Q+VcD25ekzkqpj0Xk9qSPOBUCzR1VS/6AFEc3IK0BeDMkxCKkRtSth5WAGKKn+8=|20001000000300022323||"/>
            </TransactionProperties>
        </TimbrarComprobanteResponse>
    </s:Body>
</s:Envelope>

Este es el mensaje de respuesta cuando se certifico exitosamente un CFDI de Retenciones:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <TimbrarComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>f088da9f-8865-41eb-a4cb-c0da49d91757</TransactionId>
         <Result><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<retenciones:Retenciones Cert="MIIFejCCA2KgAwIBAgIUMjAwMDEwMDAwMDAzMDAwMDM2OTMwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNDA2MDUyMTU1NDlaFw0xODA2MDUyMTU1NDlaMIHqMS4wLAYDVQQDEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQpEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMS4wLAYDVQQKEyVESVNUUklCVUlET1JBIERFIENPTVBPTkVOVEVTIFNBIERFIENWMSUwIwYDVQQtExxEQ08wMjA2MjRQMTAgLyBGVUFCNzcwMTE3QlhBMR4wHAYDVQQFExUgLyBGVUFCNzcwMTE3TURGUk5OMDkxETAPBgNVBAsUCFBydWViYV8xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7KhZ9ny7u2GLsKaRVfnqjZ7ewEF4OXTpAzhkInc8D2yNXlbo+5xkpBnX9SccF+pzTWA27N3UQCOHlkEnb0Ti1eglII3kuZr3rnXEYKYgwSv17taW6rBM/ImhGPTMtLqdICp4fwe9kMliDSqibU9yW11zVbvh7adRQw7B+2CYQKwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAr4TnmeEZ7UF/9Zt7yxYTfEwy3PYiX9/G7a34aD8A3wbmOqRXybplSUDE+SLmuFMz+W8SJNvbnGZeaPsTw1jdEmr807MhXNGwxu1QJQojy1PdyT+oNUfeHh86rAZn437Pl8TALtEaH4EphG87aAZYVRZRIRXW/Yqse+qNuYT9DP8xUThvjcKkxUgtlFm0KtnTUcNtkzmYD1vZldVO/ZSeZ4PEURAY2d1jtfXbZQ04DlqKlUzS7ldvw9pk5SONsKb0h+gFlAojGIVv7Khh6pOTawUsnb0MKAw3W15Fa3luflWSfyqcmKh0i/t86MlMcuJ4XHYeYpA3CQUNYO+6SfpWCYXvhIwnPtIpIiUNbVgnrT0MGm0Nc4h/8Lvn0urIRhnjCie3Rc8X4yoYT+EBam9EJfuGhFr4oYGk7sFMU6/ZqStifL4OEpnGauy+ZG2WOmiUk1ybQUuI5Y8nSwHB4fSYo54RLhYyFZZ509P8bOccOfyWVoIa4ghFrPDXMnCHC7aeThvWbW5PzPdJBOWk5Y7fiF9tsFqX9otxhZM1rEjanXB5ou0ZFzAJ1gkfr3vjwYreaq230pZvaYeAj+obqxCHfbwB4ltbn3rVPz4Y3D61b3TcdIDmV6KjKzb08Hxp38eoBYjvaWkowd4+ds6mIEhLcAzyZytrb+kko0l5CeEFqX4=" CveRetenc="01" FechaExp="2017-03-10T12:39:44-06:00" NumCert="20001000000300003693" Sello="olS1G52n7bmw+6nO6018alZlx0mhvazn1avdDm4OPgUJiMnVFM1oWehsgcZqlu4yCW+oC+zJA3A9stwLyROhPadAvcoAkQEzK+D6SaRAG06A+E5CalnPA8PoA7KDPSqWGAwqjMjcsFRMQnmtFQ0aiFiQdhxjgNwo+YVsGmKAh2U=" Version="1.0" xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/1 http://www.sat.gob.mx/esquemas/retencionpago/1/retencionpagov1.xsd">
  <retenciones:Emisor RFCEmisor="AAA010101AAA"/>
  <retenciones:Receptor Nacionalidad="Nacional">
    <retenciones:Nacional RFCRecep="XAXX010101000"/>
  </retenciones:Receptor>
  <retenciones:Periodo Ejerc="2017" MesFin="1" MesIni="1"/>
  <retenciones:Totales montoTotExent="1200" montoTotGrav="3800" montoTotOperacion="5000" montoTotRet="0"/>
  <retenciones:Complemento>
    <tfd:TimbreFiscalDigital FechaTimbrado="2017-03-10T12:39:56" NoCertificadoSAT="20001000000300003693" RfcProvCertif="ASE0201179X0" SelloCFD="olS1G52n7bmw+6nO6018alZlx0mhvazn1avdDm4OPgUJiMnVFM1oWehsgcZqlu4yCW+oC+zJA3A9stwLyROhPadAvcoAkQEzK+D6SaRAG06A+E5CalnPA8PoA7KDPSqWGAwqjMjcsFRMQnmtFQ0aiFiQdhxjgNwo+YVsGmKAh2U=" SelloSAT="CXQYRzko7u/Kmz1buQ4EaYTESuQZJpCy9cfgTTz4wKHOmUdTGRJwFWpq6r6eafpBceFYdai02jyRUmZvpEA+XVznUcQxzOOlmmmpleEBcfdHKTDTVTx5f0Mdw87ZQ1pSAaUDxlxH9z/fC3AjE8XwEQAxEzFWxp950qYhr7AYt6M=" UUID="A5E5C9ED-3FDF-4D87-9B30-C840AD71F4AF" Version="1.1" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd"/>
  </retenciones:Complemento>
</retenciones:Retenciones>]]></Result>
         <TransactionProperties>
            <TransactionProperty Key="Retencion.RFCEmisor" Value="AAA010101AAA"/>
            <TransactionProperty Key="Retencion.RFCReceptor" Value="XAXX010101000"/>
            <TransactionProperty Key="Retencion.Folio" Value=""/>
            <TransactionProperty Key="Retencion.FechaEmision" Value="2017-03-10T12:39:44-06:00"/>
            <TransactionProperty Key="Timbre.UUID" Value="A5E5C9ED-3FDF-4D87-9B30-C840AD71F4AF"/>
            <TransactionProperty Key="Timbre.FechaTimbrado" Value="2017-03-10T12:39:56"/>
            <TransactionProperty Key="Timbre.NoCertificadoSAT" Value="20001000000300003693"/>
            <TransactionProperty Key="Timbre.CadenaOriginal" Value="||1.1|A5E5C9ED-3FDF-4D87-9B30-C840AD71F4AF|2017-03-10T12:39:56|ASE0201179X0|olS1G52n7bmw+6nO6018alZlx0mhvazn1avdDm4OPgUJiMnVFM1oWehsgcZqlu4yCW+oC+zJA3A9stwLyROhPadAvcoAkQEzK+D6SaRAG06A+E5CalnPA8PoA7KDPSqWGAwqjMjcsFRMQnmtFQ0aiFiQdhxjgNwo+YVsGmKAh2U=|20001000000300003693||"/>
         </TransactionProperties>
      </TimbrarComprobanteResponse>
   </s:Body>
</s:Envelope>

Cuando tuvo error la transacción

Elemento Descripción
TransactionId Identificador de la transacción; para fines de diagnóstico y soporte, es necesario tener disponible dicho identificador.
Error Objeto para la descripción de errores.
Code Una cadena que identifica el error específico.
Message La descripción del código de error, para fines de facilitar el diagnóstico en las aplicaciones cliente sin tener que referirse a la tabla de errores. Su valor será siempre el mismo para un código de error específico.
Target Elemento opcional que, en algunos errores, se indicará la ubicación más precisa del error, sobre todo en los casos donde hay más de un lugar donde se pudo haber presentado. Por ejemplo, si la solicitud incluye un comprobante con más de un Concepto fiscal, y el error es de validación de datos de concepto, este campo indicará cuál de los conceptos fue el que ocasionó el rechazo por incumplir dicha regla de validación.
Details Descripción detallada de la situación de error específica, para propósitos de diagnóstico y pensada en ser interpretada por un desarrollador.
InnerErrors Una lista de otros objetos de tipo Error con la misma estructura descrita en esta tabla, que presentan ya sea la causa raíz del error o un desglose de los diferentes errores que lo originaron. Cada uno de los errores de esta lista pudiera a su vez tener InnerErrors, si es que hay más información detallada de errores que lo hayan ocasionado.

A continuación se muestran varios ejemplos de mensaje de respuesta con un error en el proceso de timbrado

  • Ejemplo de respuesta con error cuando el API Key no es válido.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <EmitirComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>29f15c62-1148-4d21-8e52-cc884a29cfa9</TransactionId>
         <Error>
            <Code>AuthenticationFailed</Code>
            <Message>Credenciales inválidas.</Message>
            <InnerErrors>
               <Error>
                  <Code>101</Code>
                  <Message>API Key no válida.</Message>
                  <InnerErrors>
                     <Error>
                        <Code>EmptyField</Code>
                        <Message>El campo no puede ser vacío.</Message>
                        <Target>API KEY</Target>
                        <Details>No se proporcionó un API Key para autenticación</Details>
                     </Error>
                  </InnerErrors>
               </Error>
            </InnerErrors>
         </Error>
      </EmitirComprobanteResponse>
   </s:Body>
</s:Envelope>
  • Ejemplo de respuesta con error cuando la cuenta no esta autorizado para usar el servicio.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <EmitirComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>87dc5217-8c47-4bd8-bca9-44a7ebd142ab</TransactionId>
         <Error>
            <Code>Unauthorized</Code>
            <Message>Privilegios insuficientes para realizar la operación.</Message>
            <InnerErrors>
               <Error>
                  <Code>102</Code>
                  <Message>API Key no tiene privilegios.</Message>
                  <Target>Timbrado de CFDI</Target>
                  <Details>No se puede realizar la operación porque no está activo para tu cuenta el servicio de 'Timbrado de CFDI'.</Details>
               </Error>
            </InnerErrors>
         </Error>
      </EmitirComprobanteResponse>
   </s:Body>
</s:Envelope>

Códigos de error

A continuación se enlistan los códigos de error que mostrará la plataforma

Error.Code Error.InnerErrors.Error.Code Significado Descripción
AuthenticationFailed 100 API Key Requerida El elemento ApiKey esta vacío o contiene espacios.
AuthenticationFailed 101 API Key no válida El API Key no existe en Reachcore.
Unauthorized 102 API Key no tiene privilegios La cuenta Reachcore, no tiene activado el servicio de timbrado para CFDI. Por favor contacta a Reachcore.
InvalidRequest 201 Comprobante requerido El elemento Cfdi esta vacío.
InvalidRequest 202 Comprobante no es un XML válido No se puede leer como XML el contenido del elemento Cfdi.
InvalidRequest 203 Estructura inválida El XML enviado en el elemento Cfdi, no es válido respecto al esquema del comprobante. En este código de errror, se contemplan todas las validaciones que se realizan para los CFDI 3.3. Para más detalle ir a la sección a continuación: Códigos de error CFDI 3.3
InvalidRequest 204 El comprobante incluye un timbre previo. El XML enviado para el timbrado, tiene el elemento tfd:TimbreFiscalDigital en sus complementos.
InvalidRequest 205 RFC Emisor no válido El RFC emisor no cumple con la expresión regular.
InvalidRequest 206 Namespace no válido No se está usando el namespace correcto para el nodo raíz.
InvalidRequest 207 Prefijo no válido No se está usando el prefijo cfdi para el namespace del comprobante.
InvalidRequest 301 Certificado no corresponde al RFC Emisor El RFC Emisor no es el mismo RFC del CSD.
InvalidRequest 302 El certificado no es CSD El comprobante esta sellado con un certificado FIEL.
InvalidRequest 303 Certificado no emitido por el SAT El CSD no está firmado por algún certificado raíz del SAT.
InvalidRequest 304 Certificado no registrado en LCO El certificado del emisor no esta registrado en la Lista de Contribuyentes con Obligación (LCO) publicada por el SAT.
InvalidRequest 305 Certificado de emisor no existente El número del certificado CSD no existe para ese RFC Emisor.
InvalidRequest 306 Comprobante fuera de vigencia del certificado La fecha de expedición del comprobante está fuera del rango de vigencia del certificado.
InvalidRequest 307 Certificado de emisor no vigente La fecha de expedición del comprobante está fuera del rango de vigencia del certificado.
InvalidRequest 308 Certificado de emisor revocado El certificado está actualmente revocado en la LCO del SAT.
InvalidRequest 309 Certificado reportado diferente a certificado usado El CSD en base64 del atributo certificado, no tiene el mismo número de serie que el indicado en el atributo noCertificado.
InvalidRequest 310 Sello inválido El sello del comprobante es inválido.
InvalidRequest 311 Comprobante timbrado previamente El hash de la cadena original, ya fue timbrado previamente
InvalidRequest 321 Fecha de comprobante en el futuro La fecha de emisión no puede ser mayor a la actual.
InvalidRequest 999 Error interno del servicio. Error de la plataforma de Reachcore

Códigos de error CFDI 3.3

Las validaciones que se realizán para la versión 3.3 del CFDI, se regresarán de la siguiente manera:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <EmitirComprobanteResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
         <TransactionId>a30534b7-41c4-4675-847a-0017a5e6ed2c</TransactionId>
         <Error>
            <Code>InvalidRequest</Code>
            <Message>La solicitud no puede ser procesada por uno o mas errores en su contenido.</Message>
            <InnerErrors>
               <Error>
                  <Code>203</Code>
                  <Message>Estructura del comprobante inválida contra anexo20.</Message>
                  <InnerErrors>
                     <Error>
                        <Code>CFDI33107</Code>
                        <Message>El TipoDeComprobante es I,E o N, el importe registrado en el campo no es igual a la suma de los importes de los conceptos registrados.</Message>
                        <Target>/cfdi:Comprobante/@SubTotal</Target>
                        <Details>El valor del atributo(cfdi:Comprobante:TipoDeComprobante) es [I]. El valor del atributo(cfdi:Comprobante:SubTotal) es [2501.00]. La suma de los atributos(cfdi:Comprobante:Concpetos:Concepto:Importe) es [2500.00].</Details>
                     </Error>
                     <Error>
                        <Code>CFDI33113</Code>
                        <Message>El campo TipoCambio no tiene el valor "1" y la moneda indicada es MXN.</Message>
                        <Target>/cfdi:Comprobante/@TipoCambio</Target>
                        <Details>El valor del atributo (cfdi:Comprobante:Moneda) es [MXN]. El valor del atributo (cfdi:Comprobante:TipoCambio) es [1.1] y debe ser [1].</Details>
                     </Error>
                     <Error>
                        <Code>CFDI33118</Code>
                        <Message>El campo Total no corresponde con la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos.</Message>
                        <Target>/cfdi:Comprobante/@Total</Target>
                        <Details>El valor del atributo (cfdi:Comprobante:Total) es [2650.00]. La sumatoria de los atributos (cfdi:Comprobante:Subtotal)[2501.00] menos(cfdi:Comprobante/Descuento)[] más (cfdi:Comprobante/Impuestos/TotalImpuestosTrasladados)[400] menos (cfdi:Comprobante:Impuestos/@TotalImpuestosRetenidos)[250] tiene el valor calculado de [2651.00].</Details>
                     </Error>
                  </InnerErrors>
               </Error>
            </InnerErrors>
         </Error>
         <TransactionProperties/>
      </EmitirComprobanteResponse>
   </s:Body>
</s:Envelope>
  • En el elemento Error\Code siempre tendrá el valor InvalidRequest
  • En el elemento Error\Code\InnerErrors\Error\Code tendrá el valor 203 con el mensaje: "Estructura del comprobante inválida contra anexo20"
  • En el siguiente arreglo de errores y subsecuentes, se mostrarán los códigos de error que el SAT ha establecido para las validaciones que el PCCFDI debe realizar antes de certificar (timbrar) el comprobante.

Los errores se indican en este artículo: Códigos de error CFDI 3.3.

Complementos CFDI

Los complemento que están soportados en el servicio de timbrado para los CFDI, son los que el SAT tiene publicados en su página.

Complementos para el esquema 3.3 del CFDI, que pueden reportarse dentro del elemento /cfdi:Comprobante/cfdi:Complemento

Complemento Versión Soportada Especificación en el SAT
Estado de cuenta de combustibles de monederos electrónicos 1.2
Única versión a partir del 12/06/2018
Estándar del Complemento
Minisitio en el SAT
Donatarias y donaciones 1.1 Estándar del Complemento
Minisitio en el SAT
Compra venta de divisas 1.0 Estándar del Complemento
Minisitio en el SAT
Otros derechos e impuestos 1.0 Estándar del Complemento
Minisitio en el SAT
Leyendas Fiscales 1.0 Estándar del Complemento
Minisitio en el SAT
Persona Física integrante de Coordinado 1.0 Estándar del Complemento
Turista Pasajero Extranjero 1.0 Estándar del Complemento
Minisitio en el SAT
Sector de ventas al detalle (Detallista) 1.0 Estándar del Complemento
CFDI Registro Fiscal 1.0 Estándar del Complemento
Minisitio en el SAT
Recibo de pago de Nómina 1.2 Estándar del Complemento
Minisitio en el SAT
Pago en especie 1.0 Estándar del Complemento
Minisitio en el SAT
Minisitio en el SAT
Vales de Despensa 1.0 Estándar del Complemento
Minisitio en el SAT
Consumo de Combustibles 1.1
Única versión a partir del 12/06/2018
Estándar del Complemento
Minisitio en el SAT
Aerolíneas 1.0 Estándar del Complemento
Minisitio en el SAT
Notarios Públicos 1.0 Estándar del Complemento
Minisitio en el SAT
Vehículos usados 1.0 Estándar del Complemento
Minisitio en el SAT
Servicios Parciales de Construcción 1.0 Estándar del Complemento
Minisitio en el SAT
Renovación y sustitución de vehículos 1.0 Estándar del Complemento
Certificado de destrucción 1.0 Estándar del Complemento
Minisitio en el SAT
Obras de Artes Plásticas y Antigüedades 1.0 Estándar del Complemento
Minisitio en el SAT
INE 1.1 Estándar del Complemento
Comercio Exterior 1.1 Estándar del Complemento
Minisitio en el SAT
Recepción de pagos 1.0
Obligatorio a partir del 01/09/2018
Estándar del Complemento
Minisitio en el SAT
Ingresos Hidrocarburos 1.0
Inicia vigencia a partir del 01/11/2018
Estándar del Complemento
Minisitio en el SAT
Gastos Hidrocarburos 1.0
Inicia vigencia a partir del 01/11/2018
Estándar del Complemento
Minisitio en el SAT


Complementos concepto para el esquema 3.3 del CFDI que deben estar en el elemento /cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:ComplementoConcepto
Complemento Versión Soportada Especificación en el SAT
Instituciones Educativas Privadas 1.0 Estándar del Complemento
Minisitio en el SAT
Venta de vehículos 1.1 Estándar del Complemento
Minisitio en el SAT
Por cuenta de terceros 1.1 Estándar del Complemento
Minisitio en el SAT


Reachcore ha sido certificado por el SAT para poder timbrar todos los complementos del CFDI versión 3.3

Complementos Retenciones

Los complemento que están soportados en el servicio de timbrado para el Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos, son los que el SAT tiene publicados en su página.

Complementos para el esquema 1.0 del Comprobante Fiscal Digital a través de Internet que ampara Retenciones e Información de pagos, que pueden incorporarse dentro del elemento /retenciones:Retenciones/retenciones:Complemento.

Complemento Versión soportada Especificación en el SAT
Enajenación de acciones 1.0 Estándar del Complemento
Minisitio en el SAT
Dividendos 1.0 Estándar del Complemento
Minisitio en el SAT
Intereses 1.0 Estándar del Complemento
Minisitio en el SAT
Arrendamiento en fideicomiso 1.0 Estándar del Complemento
Minisitio en el SAT
Pagos a extranjeros 1.0 Estándar del Complemento
Minisitio en el SAT
Premios 1.0 Estándar del Complemento
Minisitio en el SAT
Fideicomiso no empresarial 1.0 Estándar del Complemento
Minisitio en el SAT
Planes de Retiro 1.1
Única versión a partir del 01/01/2019
Estándar del Complemento
Minisitio en el SAT
Instructivo de llenado
Intereses Hipotecarios 1.0 Estándar del Complemento
Minisitio en el SAT
Operaciones con derivados 1.0 Estándar del Complemento
Minisitio en el SAT
Sector Financiero 1.0 Estándar del Complemento
Minisitio en el SAT
Servicios de Plataformas Tecnológicas 1.0
Inicia vigencia a partir del 01/06/2019
Estándar del Complemento
Minisitio en el SAT


Para mayor información o aclaración de dudas relacionadas con esta guía, por favor envía un correo a soporte@reachcore.com


Regresar