Fiscal Stamping for Fiscal Receipts (CFDI and CFDI supporting retentions and payment information)

Sovos has updated the Stamping webservice version (RC Timbre v.6.0) to offer the certification service (stamping) of digital fiscal receipts through the internet (CFDI) for versions 3.3 and 4.0, and for the Digital Fiscal Receipt through Internet that supports Payment Information and Retentions (CFDI que ampara Retenciones e Información de Pagos) for versions 1.0 and 2.0. Sovos is authorized by the SAT (Servicio de Administración Tributaria) as a Certified Provider for e-Invoices (PCCFDI) with the SAT's Authorization number 55267.

Content

General Features

The Stamping webservice has the ability to process the following fiscal receipts:

To certify a fiscal receipt (stamp) that contains a fiscal folio (UUID), the Certified Provider for e-Invoices (PCCFDI) has to follow the next steps:

  1. Verify that the XML (receipt) follows the structure defined by SAT on Anexo 20 and the complements within the receipt.
  2. Fulfill the validations the SAT requires from the PCCFDI.
  3. Generate the Digital Fiscal Stamp for the receipt.
  4. Deliver the Fiscal Receipt (Stamp) to the issuer of the receipt.
  5. Deliver the Fiscal Receipt certified to the SAT.
  6. Archive the Certified Fiscal Receipt on its digital vault.

Additionally, the stamping service has the ability to generate a printed form according to the needs of the issuer and include the necessary information to be shown on this receipt. To obtain the printed version of the CFDI the client needs to have that service active, recover it through Sovos' REST API. For details on how to get this PDF check this link.

What do I need?

To use this service, you will need:

  • A service contract with Sovos. If you don't have one: please send an email to sales-mexico@sovos.com
  • Generate an API key on your Sovos account, because this is an ID that certifies you in the webservices of the platform. To enquire how to generate the API Key, check this article: Generate API Key for Web Services.
  • The XML of the receipt for stamping must consider the following:
    • Fulfill the schema provided by the SAT for each receipt.
    • Generate the digital stamp of the receipt.
  • Be able to use a webservice published on the Internet through a safe connection (SSL).

Service Location

The URLs where you can find the webservice definition (WSDL) are:

Environment WSDL Location
UAT https://oat.reachcore.com/api/ws/6.0/pacservices/Timbre.svc/basic?wsdl
Production https://go.reachcore.com/api/ws/6.0/pacservices/Timbre.svc/basic?wsdl

Validations for the Certification Process (Stamping)

A receipt can be certified by a PCCFDI as Sovos after fulfilling the following validations:

Structure

The fiscal receipt is validated against the XSD Schema (XSD) published by SAT.

SAT also requires fulfilling the following features of the receipt:

Prefix

  • On CFDI 3.3 the prefix for the namespace http://www.sat.gob.mx/cfd/3 must be cfdi
  • On CFDI 4.0 the prefix for the namespace http://www.sat.gob.mx/cfd/4 must be cfdi
  • On Retenciones 1.0 the prefix for the namespace http://www.sat.gob.mx/esquemas/retencionpago/1 must be retenciones
  • On Retenciones 2.0 the prefix for the namespace http://www.sat.gob.mx/esquemas/retencionpago/2 must be retenciones

Incorrect:

<?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"
  ...

Correct:

<?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"
  ...

Date of the Receipt

  • The value on the attribute Fecha of the element Comprobante cannot be larger than 72 natural hours.
  • The date and time of issuing can be up to 5 minutes on the future at the moment of its validation.
  • For the CFDI supporting Retentions and Payment Information, the technical standard states that the Stamping Date must match with the time zone of Mexico City (Mexico's Central time zone)

On Anexo 20's section F Additional Validations to be fulfilled by the supplier, SAT defines the following regarding the Fecha atribute of the Comprobante node of CFDI 3.3 and CFDI 4.0:

When receiving the XML file, the Certification Provider must verify that the date and time is not:

  • Larger than the date and time increased in the deadline specified on the current Miscellaneous Fiscal Resolution - Suppliers' obligations on the CFDI certification process.
  • Shorter than the date and time diminished in the deadline specified on the current Miscellaneous Fiscal Resolution – Suppliers' obligations on the CFDI certification process.

Issuer

  • The Issuer's RFC for the receipt must be published on the List of Taxpayers with Obligation (LCO) of the SAT.
  • The seal of the receipt should not be generated with the e.firma's Digital Certificate (also know as FIEL) of the issuer.
  • The Digital Stamp Certificate (CSD) of the issuer that was generated with the Digital Stamp of the Receipt:
    • Must be valid on the date of issuance of the receipt.
    • Must be on the List of Taxpayers with Obligation (LCO) published by the SAT.
    • Should not be revoked.
    • The serial number of the certificate must match the CSD number of the receipt according to base64 on the attribute Certificado.
    • The serial number of the certificate must match with the Issuer RFC of the receipt.
  • You can obtain more information about the Digital Stamp Certificates on the SAT's portal for procedures and services. On that same portal, you can also find Digital Stamping archives to perform tests for your implementations.
The update of the LCO can take from 36 to 48 hours from the moment you get the archives of the CSD, this process is automatic and it is performed by the SAT and the PAC together, it is not necessary to perform any additional procedure.

Issuer Stamp

  • The attribute Sello of the CFDI is generated from the original chain that SAT has defined. Any alteration of the data conforming the original chain after generating the Sello will result on an invalid Stamp. You must consider that there's a sequence to generate the original chain: Cadena original CFDI ver 3.3 | Cadena original CFDI ver. 4.0 | Cadena original Retenciones ver. 1.0 | Cadena original Retenciones ver. 2.0
  • Information on the Complementos and Complementos Concepto (Supplements and Supplements Concept) are part of the original chain.
  • The Sello of the Fiscal Receipt must be done with the CSD of Issuer. This will be verified using the Base 64 Certificate listed on the Certificado attribute of the Receipt.
  • The digestion algorithm for CFDI 3.3, 4.0 and Retenciones 2.0 is SHA2 256, and for Retenciones 1.0 is SHA1.

Addenda

  • Receipts can be received with or without an Addenda element. The Addenda has commercial information between the Issuer and the Receiver, so no type of validation is performed over this node. By SAT disposition the CFDI version sent to SAT has no Addenda.

Validations for CFDI 3.3

One of the most important changes for CFDI ver. 3.3 are the rules of validation that SAT has requested from the PCCFDI, they should be performed before the certification of each receipt. These rules of validation can be classified in the following way:

  • Arithmetical
  • Conditional
  • Consistency

On this article you can find a list of scenarios that a PCCFDI must validate and if necessary, notify the error code.

Validations for CFDI 4.0

For CFDI, the rules of validation specified by the SAT for the CFDI on the Matrix of Error Codes for digital fiscal receipts on internet version 4.0 is being followed

On this article you can find a list of scenarios that a PCCFDI must validate and if necessary, notify the error code.

Method [TimbrarComprobante]

This Method of the web service is used to request stamping, this can be to certify (stamp) a Digital Fiscal Receipt on Internet (CFDI) or a CFDI that supports Retentions and Payment Information. The certification is made according to the definition on Anexo 20 of the Fiscal Code of the Federation published on the Diario Oficial and on SAT Portal.

Next, you can see the information of the request and of the response:

TimbrarComprobante Request

The data required for the stamping request of a CFDI to Webservice is the following:

Element Use Description
ApiKey Required Authentication ID generated on Sovos portal
Comprobante Required It hosts the Fiscal Receipt on XML inside an <![CDATA[...]]> envelope wich must abide to the specifications of Anexo 20.
CFDI v3.3
CFDI v4.0
Retenciones v1.0
Retenciones v2.0
CustomData Optional An XML structure can be included with the required data to be shown on the printed version of the CFDI.
TransactionProperty Optional Those are parameters that alert Sovos if there is a special procedure to perform with the transaction. Some of these parameters must be previously hired and configured by Sovos. Some of them are:
  • tipoDocumento - this is used to specify the use of a specific printed version and to classify the stamped receipt on reports.
  • folioOperacion - This gives a unique ID from the issuer. The max length for this attribute is 200 characters.
  • PemexVault - Requires configuration. It indicates if a Receipt must be sent to the Pemex electronic vault.
  • correoReceptor - Requires configuration. Once the receipt is stamped, a copy will be sent to the specified email addresses. If you use more than one email address, be sure to separate them with a comma (,)
  • VinculaCliente - Requires configuration. Once the receipt is certified, it is possible to associate it with the linking data specified in this TransactionProperty. It can be a contract number, póliza number or any other internal Id from the issuer that link the CFDI issued to it's customer. The customer of the issuer can have Access to our "third party portal" in order to recover their receipts through the registered e-mail address on correoReceptor unless the linking data of the receipt with the client is an email: in this case is not necessary to specify the correoReceptor and the emails with notifications and access codes will be sent to the address specified as VinculaCliente. This functionality only applies to CFDI certification at the moment.


An example of the Stamping request for a CFDI version 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>

An example of the Stamping request for a CFDI version 4.0:

<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 Version="4.0" Fecha="2021-12-20T18:28:55" SubTotal="1966.40" Descuento="152.00" Moneda="MXN" Total="2063.13" TipoDeComprobante="I" Exportacion="01" LugarExpedicion="11520" MetodoPago="PUE" FormaPago="01" Sello="AE7u4Slw5qKievn6FT2TYlsNqx7yIOhL+Gs3qfOVoxDKMWQDhyXZXxx/BXl0kBc61t62DwyHPI3ZcpllbPzPj8D0JmLSK6rkkaakcJw5ku6JCXUTpVANB2e/v2of0aAVLbgn1IXcKLmCrIY3IuwhJFFUUVfBHP7sA50WkkpUi1DnO2WPF+On5osl38DkVT8/ymrrFINol7Wtf3VD+G1lY04G/CI5b00pvzkt+PcOzpMspmNdGcC1Qx03sZtM6tsqtvwTmOnHBLlZCKxpZOxM/SdN6K96uS7gL/EDppIl25Z2ux1TOp6nhFO+DimpYusfeJthk2FH+7JABI5fudlySQ==" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cfdi="http://www.sat.gob.mx/cfd/4" xmlns:cce11="http://www.sat.gob.mx/ComercioExterior11" xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd" Certificado="MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==" NoCertificado="30001000000400002434">
  <cfdi:InformacionGlobal Periodicidad="04" Meses="06" Año="2021" />
  <cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE SA DE CV" RegimenFiscal="603" />
  <cfdi:Receptor Rfc="XAXX010101000" Nombre="PUBLICO EN GENERAL" DomicilioFiscalReceptor="11520" RegimenFiscalReceptor="616" UsoCFDI="S01" />
  <cfdi:Conceptos>
    <cfdi:Concepto ClaveProdServ="10101504" Cantidad="3" ClaveUnidad="29" Descripcion="descripcion" ValorUnitario="34.3" Importe="102.90" ObjetoImp="01" />
    <cfdi:Concepto ClaveProdServ="10202843" Cantidad="3" ClaveUnidad="2B" Descripcion="Computadora HP" ValorUnitario="564" Importe="1692.00" Descuento="120.00" ObjetoImp="02">
      <cfdi:Impuestos>
        <cfdi:Traslados>
          <cfdi:Traslado Base="1572" Impuesto="002" TasaOCuota="0.160000" Importe="251.52" TipoFactor="Tasa" />
        </cfdi:Traslados>
      </cfdi:Impuestos>
      <cfdi:ACuentaTerceros RfcACuentaTerceros="CACX7605101P8" NombreACuentaTerceros="Xochilt Casas Chavez" RegimenFiscalACuentaTerceros="607" DomicilioFiscalACuentaTerceros="04600" />
    </cfdi:Concepto>
    <cfdi:Concepto ClaveProdServ="43211510" Cantidad="5" ClaveUnidad="2B" Descripcion="Consola de audio" ValorUnitario="34.3" Importe="171.50" Descuento="32.00" ObjetoImp="02">
      <cfdi:Impuestos>
        <cfdi:Traslados>
          <cfdi:Traslado Base="139.5" Impuesto="003" TasaOCuota="0.030000" Importe="4.18" TipoFactor="Cuota" />
        </cfdi:Traslados>
        <cfdi:Retenciones>
          <cfdi:Retencion Base="139.5" Impuesto="003" TipoFactor="Cuota" TasaOCuota="0.050000" Importe="6.97" />
        </cfdi:Retenciones>
      </cfdi:Impuestos>
    </cfdi:Concepto>
  </cfdi:Conceptos>
  <cfdi:Impuestos TotalImpuestosTrasladados="255.70" TotalImpuestosRetenidos="6.97">
    <cfdi:Retenciones>
      <cfdi:Retencion Impuesto="003" Importe="6.97" />
    </cfdi:Retenciones>
    <cfdi:Traslados>
      <cfdi:Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="251.52" Base="1572" />
      <cfdi:Traslado Impuesto="003" TipoFactor="Cuota" TasaOCuota="0.030000" Importe="4.18" Base="139.5" />
    </cfdi:Traslados>
  </cfdi:Impuestos>
</cfdi:Comprobante>]]></urn:Comprobante>
        </urn:TimbrarComprobanteRequest>
    </soapenv:Body>
</soapenv:Envelope>

An example of the Stamping request for retentions CFDI 1.0:

<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>

An example of the Stamping request for retentions CFDI 2.0:

<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 Version="2.0" FechaExp="2021-12-22T13:09:21" LugarExpRetenc="05370" CveRetenc="28" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:retenciones="http://www.sat.gob.mx/esquemas/retencionpago/2" Certificado="MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==" NoCertificado="30001000000400002434" Sello="SMQ1zNg+WC3x9bT/ctZ5oJKqO7S5yAn3YCdUbTTUYM4Jni11LEOklNQC2TAezpi+cSf7INrkxYKrs6GAxMvnICc6/Nlg6KqyOxqbaXJULNANRJ8NWKkv25GkAEu2cES+TSk/nXP3pkw9mN6akt8D/vHDj2kJxxqid/TkVm6TZROzAuIS+XlvoJlkuG6KbvaOjdCPN6wMbw+ZO/wx+ifN/8hJK2QPWz0O1YEJyEe6hBw+195fBRjCxbuC1qdwFk6nmU56yAV6IHmF3l8eu9ByHfo226mcWLYNYkxWzVmAMfoxo9PAEUIHk4PNy+xEkpkPRv/x/qRZPE7yw3a2Y+VRWw==" xsi:schemaLocation="http://www.sat.gob.mx/esquemas/retencionpago/2 http://www.sat.gob.mx/esquemas/retencionpago/2/retencionpagov2.xsd">
	<retenciones:Emisor RfcE="EKU9003173C9" NomDenRazSocE="ESCUELA KEMPER URGATE SA DE CV" RegimenFiscalE="601"/>
	<retenciones:Receptor NacionalidadR="Nacional">
		<retenciones:Nacional RfcR="ASE0201179X0" NomDenRazSocR="Advantage Security, S. de R.L. de C.V." DomicilioFiscalR="03800"/>
	</retenciones:Receptor>
	<retenciones:Periodo MesIni="01" MesFin="12" Ejercicio="2021"/>
	<retenciones:Totales MontoTotOperacion="0" MontoTotGrav="0" MontoTotExent="0" MontoTotRet="0" UtilidadBimestral="1" ISRCorrespondiente="1"/>
</retenciones:Retenciones>]]></urn:Comprobante>
      </urn:TimbrarComprobanteRequest>
   </soapenv:Body>
</soapenv:Envelope>

TimbrarComprobante Response

You will obtain the following as a response to your fiscal receipt stamping request:

On successful transaction

Element Description
TransactionId Id of the transaction.
Result When the fiscal receipt was processed correctly, it is included into a <![CDATA[...]]> envelope.
TransactionProperties This has a collection of elements TransactionProperty, with a couple of attributes:
  • Key - identifies the value of the value attribute
  • value - contains the value related to the key attribute Id.


This is the response message when a CFDI version 3.3 has been successfully certified:

<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>

This is the response message when a CFDI of Retenciones has been successfully certified:

<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>

When there were errors on the transaction

Element Description
TransactionId Id of the transaction for diagnosis and support, it is necessary to have this Id available if requesting support.
Error Object to describe errors.
Code A chain that identifies a specific error.
Message Description of the Error Code, for diagnosis of client applications without referring to the table of errors. Its value will be always the same for specific error codes.
Target Optative feature that in some cases will indicate the most precise location of the error, especially when there’s more than one place where it could have happened. For example, if the request includes a receipt with more than one fiscal concept and the error is about concept validation data, this field will show which of the concepts is the one causing a rejection in the validation rule.
Details Detailed description of the specifical error case, for diagnostic purposes. It is intended to be read by a developer.
InnerErrors List of other objects similar to Error with the same structure described on this table, they ca be the root error or a list of the different errors that caused the main error. Each error on this list could have InnerErrors: if that’s the case, you will see more detailed information.

Next, we can see some examples of response messages with an error during the stamping process

  • Example of an error response when the API Key is not valid
<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>
  • Example of an error response when the account is not authorized to use the service.
<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>

Error Codes

Next, we can see the error codes that the platform can show

Error.Code Error.InnerErrors.Error.Code Meaning Description
AuthenticationFailed 100 API Key Required Element ApiKey is empty or has spaces.
AuthenticationFailed 101 API Key not valid API Key does not exist in Sovos.
Unauthorized 102 API Key does not have privileges The Sovos account does not have the stamping service enabled for CFDI. Please contact Sovos support.
InvalidRequest 201 Receipt required The Cfdi element is empty.
InvalidRequest 202 Receipt is not a valid XML The element Cfdi cannot be read as an XML.
InvalidRequest 203 Invalid Structure The XML on the element Cfdi is not valid according to the XSD for CFDI. This error code considers all the validations performed for CFDI 3.3 and 4.0. For further detail go to the following section: Error Codes for CFDI 3.3 and CFDI 4.0
InvalidRequest 204 The receipt includes a previous stamp. XML is already stamped: it already has the element tfd:TimbreFiscalDigital on its complements.
InvalidRequest 205 RFC of the Issuer is not valid RFC of the issuer does not fit the regular expression defined for an RFC.
InvalidRequest 206 XML namespace not valid The correct namespace is not being used for the root node.
InvalidRequest 207 XML prefix not valid The prefix cfdi is not being used on the namespace of the receipt.
InvalidRequest 301 The Certificado does not match with the Issuer's RFC The Certificado attribute has a CSD that does not match with the RFC of the Issuer.
InvalidRequest 302 Certificado is not CSD The Digital Certificate used to seal the receipt is not a CSD (most likely it was done using an e.firma or FIEL).
InvalidRequest 303 Digital Certificate was not issued by SAT The CSD is not issued by any root certificate of the SAT.
InvalidRequest 304 Certificado not registered on the LCO The issuer's certificate is not registered on the List of Obligated Taxpayers (LCO) published by SAT.
InvalidRequest 305 Issuer Certificate does not exist The number of CSD certificate does not exist for that RFC Issuer.
InvalidRequest 306 Receipt's date out of the certificate validity The issue date of the receipt is out of the validity of the certificate.
InvalidRequest 307 Issuer's certificate not valid The issue date of the certificate is out of the scope validity from the certificate.
InvalidRequest 308 Revoked issuer's Certificado The certificate is currently revoked according with the LCO of SAT.
InvalidRequest 309 Certificate number stated do not match the one from Certificado Certificate number reported in attribute NoCertificado is different from the serial number read from the Certificado attribute.
InvalidRequest 310 Invalid Seal The seal in the Sello attribute is invalid.
InvalidRequest 311 Receipt previously stamped The hash on the original chain has been previously stamped.
InvalidRequest 321 Date of the Receipt is in the future The issue date cannot be greater than the current date.
InvalidRequest 999 Internal service error Error on the Sovos platform.

Error Codes for CFDI 3.3 and CFDI 4.0

The validations performed for versions 3.3 and 4.0 of the CFDI, will be returned on this way:

<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>
  • The element Error\Code will always have the value InvalidRequest
  • The element Error\Code\InnerErrors\Error\Code will have the value 203 with the message: "Estructura del comprobante inválida contra anexo20"
  • On the next errors array (and subsequent ones), you will see the error codes established by the SAT for the validations that the PCCFDI must perform before certificate (stamping) the receipt.

Specific errors for CFDI 3.3 are listed on this article: Error Codes CFDI 3.3.
Specific errors for CFDI 4.0 are listed on this article: Error Codes CFDI 4.0.

CFDI and Retenciones Complements

The detail of the complements for CFDI and Retenciones, and the concept complements (only for CFDI) can be consulted in the article Supported Complements and their integration mechanisms


For more information or to clarify any doubt related to this guide, please send an email to MEX-soporte@sovos.com


Regresar