Cancellation of CFDI of the Primary Sector specifying reason for cancellation

This service allows you to cancel the tax receipts issued by Sovos in its capacity as a Provider of Certification of issuance of CFDI through the acquirer of goods or services (PCECFDI).

Content

General characteristics

In the scheme of Digital Tax Vouchers by Internet (CFDI), the SAT safeguards in its centralized database all the vouchers certified by the Authorized Certification Providers for the complete list of taxpayers. Therefore, due to this centralized model, the cancellation of a CFDI consists of requesting the cancellation of the voucher directly from the SAT, through the Cancellation of CFDI.

It describes how to make the request to cancel the CFDI issued by Sovos in Mexico in its role as a Provider of Certification of issuance of CFDI through the acquirer of goods or services (PCECFDI). During this process, the SAT can approve or reject the cancellation request, issuing an Acuse of the operation indicating either the confirmation that the voucher was canceled, or the reason for the rejection for which the voucher could not be cancelled. The causes of rejection can be transitory: if the SAT does not have yet the CFDI registered in its system; or definitive: if the cancellation request is incorrect.

In order for the SAT to process a request for cancellation of a CFDI issued by a PCECFDI, it is required that the request for cancellation of the UUID (fiscal folio) to be electronically signed with an special digital seal certificate (CESD). Sovos Mexico will only process CFDIs that were issued as PCECFDI.

Sovos Mexico offers the Disconnected Cancellation modality, where the necessary requests are generated with the SAT and a re-attempt scheme due to saturation of SAT systems during peak hours or caused by some other reason.

Offline Cancellation (asynchronous)

In this modality, the taxpayer requests to Sovos Mexico to carry out the cancellation process of one or more fiscal folios (with a maximum of up to 500 fiscal folios in a single operation). The taxpayer can send to Sovos Mexico the list of tax folios to cancel either through a webservice or a plain text file, which is transferred by a secure connection (SFTP). Each fiscal folio must be accompanied by a reason for cancellation and if the code 01 is specified as the reason for cancellation: specify the fiscal folio that replaces the CFDI that is being canceled.

As an immediate result, Sovos Mexico provides the taxpayer with a transaction identifier tracking.

Sovos Mexico is responsible for carrying out as many communication sessions with the SAT as required in order to ensure that all cancelation requests have been delivered to the SAT, without the intervention of the taxpayer.

Taxpayers can check the progress of their cancellation operation at any time, as many times as required, through the Sovos Mexico transaction status query method using the tracking number assigned to the operation.

Sovos Mexico Cancellation Services Comparison

This table shows a comparison of the main characteristics of the different CFDI cancellation services offered by Sovos Mexico.

Feature Offline Cancellation (Asynchronous) Text File
Limit of Cancellations in a single request 500 receipts 10,000 receipts
Sovos is in charge of making the re-attempts before the SAT Yes Yes

Requirements to cancel a CFDI under PCECFDI

In order to cancel a fiscal folio of a CFDI under the PCECFDI scheme, the receipt must have been issued by Sovos; if it was issued by another PCECFDI, the cancellation cannot be made.

Integration

There are two means of integration to send cancellation requests to Sovos:

  • Cancellation SOAP Webwervice
  • Plain text file via SFTP

In this article the cancellation via Webservice. If you want to make the cancellation through a plain text file, it is necessary to create the plain text file as indicated in the following link: plain text file for cancellation. The file can be sent via SFTP or uploaded to the Sovos Mexico portal.

For additional information, please contact us or contact your account executive.

Cancellation Webservice

The following operations can be performed in this Webservice:

  • Offline cancellation.
  • Consultation of cancellation status for a fiscal folio.
  • Consultation of cancellation status of a batch previously sent to cancel.

What I need?

To use the cancellation web service you need:

  • Have your CFDI certified by Sovos in Mexico with the PCECFDI schema.
  • Have an API Key in your Sovos Mexico account. The API Key is an identifier that authenticates your requests in the platform's Webservices. To see how to generate the API Key, see this article: Generate API Key for Webservices.

Service location.

The URLs where the WebService Definition contract (WSDL) is found for each of the environments are:

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

Method [Cancelar]: Asynchronous cancellation

In this Webservice method, you can receive a list of up to 500 fiscal folios to cancel.

Cancelar Request

Element Usage Description
APIKey Required Authentication token, which is generated in the Sovos Mexico portal.
Folios Required Structure/array of fiscal folios of the vouchers to be paid, which must contain at least 1 and up to 500 folios.
Each folio must have a valid UUID format, described by the following regular expression:
[a-f0-9A-F]{8}-[a-f0-9A-F]{4 }-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}
Example: F9123206- D86C-49EE-80F3-C288CC948631

Each fiscal folio must be accompanied by the reason for cancellation, and only if the key 01 is used, the folio that it replaces must be specified whithin the request to cancel.
Optionally you can specify the total of the receipt and the RFC of the recipient of the receipt (Issuer of the Primary Sector CFDI).
TransactionProperty Optional These are parameters that indicate to Sovos Mexico some kind of special treatment to perform with the cancellation request. These parameters must be previously contracted and configured by Sovos personnel.

Request Example:

<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>?</cus:ApiKey>
   </soapenv:Header>
   <soapenv:Body>
      <urn:CancelacionFiscalSPRequest>
         <urn:Folios>
            <urn:CancelFolioSP>
               <urn:UUID>F9123206-D86C-49EE-80F3-C288CC948631</urn:UUID>
               <urn:Reason>02</urn:Reason>
            </urn:CancelFolioSP>
         </urn:Folios>
      </urn:CancelacionFiscalSPRequest>
   </soapenv:Body>
</soapenv:Envelope>

Cancelar Response

Element Description
OnError
  • false: Successful transaction.
  • true: Error processing transaction.
  • ErrorMessage If the Error node has the value true, the error description will be returned on an XML structure with Code and Message nodes.
    These will reflect errors on the cancellation request and will have nothing to do with the content of the request.
    TrackingId This is the unique tracking identifier assigned by Sovos Mexico to this request. This value can be used to query the result of the transaction at any time in the future. See GetTransactionStatus operation.

    Response Example:

    <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">
          <CancelacionFiscalSPResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
             <OnError>false</OnError>
             <TrackingId>a5ecf804-07a5-4a87-b8de-74720c84d530</TrackingId>
          </CancelacionFiscalSPResponse>
       </s:Body>
    </s:Envelope>

    Method [GetFolioStatusDetail]: Query to get status of cancellation of specific UUID

    Through this method, you can consult the result of the cancellation request of a specific fiscal folio. It will be possible to consult the fiscal folios that have been requested to be canceled in Sovos Mexico either by Webservice or by integration file.

    GetFolioStatus Request

    Element Usage Description
    APIKey Required Authentication token generated at the Sovos Mexico portal.
    UUID Required The folio of a voucher that has been previously requested to cancel, either by Webservice or by integration file.

    Request example:

    <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>?</cus:ApiKey>
       </soapenv:Header>
       <soapenv:Body>
          <urn:FolioStatusSPRequest>
             <urn:UUID>6AEF1DBD-F8F2-408C-B914-CD32067E3F2A</urn:UUID>
          </urn:FolioStatusSPRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    GetFolioStatus Response

    Element Description
    OnError
  • false: Successful transaction.
  • true: Error processing transaction.
  • Error Array of Code and Message nodes with details of the error in the transaction.
    SatSentRequest
  • false: The fiscal folio has not yet been sent to the SAT to request cancellation.
  • true: The fiscal folio has been sent to the SAT to request its cancellation.
  • ResultCode SAT code that specifies the status of the cancellation request in SAT systems.
    ResultMessage Message or description of the code reported in the ResultCode node
    UUID The Fiscal Folio of which detail is delivered
    RelatedUUIDs Structure FolioFiscalSPDetail, where a recursive detail is given to inform
    • UUID with the related fiscal folio
    • RequestSentToSAT to indicate if the fiscal folio cancellation request has already been sent to SAT
    • ResultCode with SAT's response code
    • ResultMessage with the message associated with the result code
    • UUIDStatus with the status of the fiscal folio consulted, and
    • again the structure RelatedUUIDs for each related fiscal folio.

    Response example:

    <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">
          <FolioStatusSPResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
             <OnError>false</OnError>
             <Error>
                <Code/>
             </Error>
             <SatSentRequest>true</SatSentRequest>
             <ResultCode>201</ResultCode>
             <ResultMessage>Petición de cancelación recibida</ResultMessage>
             <UUID>6aef1dbd-f8f2-408c-b914-cd32067e3f2a</UUID>
             <RelatedUUIDs/>
          </FolioStatusSPResponse>
       </s:Body>
    </s:Envelope>

    Method [GetTransactionStatusDetail]: Result of Batch processing

    In this method, it will be possible to know the status of the cancellation request made, either by the Webservice or by integration file.

    GetTransactionStatusDetail Request

    Element Usage Description
    ApiKey Required Authentication Identifier generated at Sovos Mexico portal.
    TrackingId Required Transaction tracking identifier, which is returned by a previous call to the Cancelar operation or the one obtained as a response from the plain text file.

    Request Example:

    <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>?</cus:ApiKey>
       </soapenv:Header>
       <soapenv:Body>
          <urn:TransactionStatusSPRequest>
             <urn:TrackingId>e8a406e0-1bf3-4f84-b663-c90562e61236</urn:TrackingId>
          </urn:TransactionStatusSPRequest>
       </soapenv:Body>
    </soapenv:Envelope>

    Respuesta GetTransactionStatusDetail

    Element Description
    OnError
  • false: Successful transaction.
  • true: Error processing the transaction.
  • ErrorMessage In case the OnError element has the value true, the error description will be displayed through a structure of Code and Message nodes.
    TotalUUIDs Total number of UUIDs that the cancellation batch contained
    UUIDsRejectedSAT Total number of UUIDs that the SAT has rejected in the cancellation request
    Finished Indicates true if the transaction has already finished or false if it is still in process .
    UUIDs List of results where there is a FolioFiscalSPDetaul element for each folio that was requested to be canceled. For each folio, the following is returned:
    • UUID: The Fiscal Folio of the voucher.
    • RequestSentToSAT: Value true or false indicating whether the voucher was sent to cancel or not. As of November 1st, 2018, with the implementation of the new cancellation scheme, the default value of this node is false, so users are encouraged to consult the status of the Voucher.
    • ResultCode: Response code returned by SAT for the receipt. See the List of SAT response codes for cancellation.
    • ResultMessage: Meaning of the SAT response code.
    UUIDsSentoToSAT Total number of UUIDs that were sent to SAT.

    A batch is in a finished status (Finished = true) when each of the receipts that were requested to be canceled is in one of the following status: * Successfully cancelled. * It could not be canceled at SAT with a reason for definitive rejection. The definitive rejection reasons are those listed as non-retryable according with the SAT Response Codes for Cancellation section.

    Response example:

    <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">
          <TransactionStatusSPResponse xmlns="urn:reachcore.com:services:api:ws:pacservices:6.0">
             <OnError>false</OnError>
             <TotalUUIDs>1</TotalUUIDs>
             <UUIDsRejectedSAT>1</UUIDsRejectedSAT>
             <Finished>false</Finished>
             <UUIDs>
                <FolioFiscalSPDetail>
                   <UUID>6aef1dbd-f8f2-408c-b914-cd32067e3f2a</UUID>
                   <RequestSentToSAT>true</RequestSentToSAT>
                   <ResultCode>201</ResultCode>
                   <ResultMessage>Petición de cancelación recibida</ResultMessage>
                </FolioFiscalSPDetail>
             </UUIDs>
             <UUIDsSentToSAT>0</UUIDsSentToSAT>
          </TransactionStatusSPResponse>
       </s:Body>
    </s:Envelope>

    SAT Cancellation Response Codes

    For each request to cancel a voucher, SAT authorizes or rejects it by specifying a status code. The following two tables describe the known status codes and their meanings.

    The Primary Sector cancellation process was also affected by the new cancellation scheme.
    Although the Primary Sector scenario is considered an exception in the cancellation scheme, it is recommended to review the status of the CFDI after carrying out the cancellation.
    You can get more information about this new cancellation scheme in our Blog, or well at SAT's microsite.

    Success codes

    Code Description Meaning Retryable? What to do?
    201 Cancellation Request Received The cancellation request has been received. It does not necessarily mean that the Voucher has been cancelled. No Check the status of the Voucher on the SAT. If the Voucher could be cancelled, its status will change to Cancelado.
    202 Previously Received Cancellation Request The cancellation request has been received previously. It does not necessarily mean that the Voucher has been cancelled. No Check the status of the Voucher on the SAT. If the Voucher could be canceled, its status changed to Cancelado.


    SAT error codes

    Code Description Meaning Retryable? What to do?
    203 UUID Not found or does not correspond to issuer The Fiscal Folio that was requested to be canceled could not be found, or was found but was not issued by the specified RFC. No Specify the correct Issuer's RFC for that voucher and send a new request.
    204 UUID Not applicable for cancellation The Folio Fiscal cannot be canceled. SAT does not specify under what criteria this code is returned, but it is not frequent. No Contact SAT and ask at Taxpayer Assistance for the reason why the cancellation of the receipt is not authorized. Sovos can't help with SAT resolutions or cancellation criteria.
    205 UUID Does not exist SAT has not yet published the receipt on its internet portal, and therefore it cannot be canceled yet. Yes Ensure that the receipt is already delivered to SAT and re-attempt the cancellation.
    206 UUID does not correspond to a CFDI of the Primary Sector The fiscal folio that was sent to cancel does not correspond to a Primary Sector UUID. No Ensure that the fiscal folio provided belongs to a Primary Sector CFDI.
    207 The reason for cancellation was not specified or the reason for cancellation is not valid This error code is common when using the reason 01 (Vouchers issued with errors and have relationships) and the Folio Sustitucion is not compliant with the UUID format (or it is being specified the same UUID that is being requested to cancel). No Check the format of the UUID that is sent in the Folio Sustitucion and verify that the UUID is in capital letters and that it is different from the UUID that is being canceled.
    208 The date of the cancellation request is greater than the date of declaration of the receipt The issue date of the fiscal folio exceeds the cancellation date allowed for the annual declaration period of the year to which the voucher belongs. No In the RMF for 2022, which entered into force on January 1st, 2022, establishes the term for the cancellation of CFDI through rule 2.7.1.47., and it establishes that the cancellation of CFDI may be made at no later than the month in which the annual income tax return corresponding to the fiscal year in which the aforementioned voucher was issued must be submitted.
    209 Folio Substitution not required The cancellation request sent a reason for cancellation that does not require a Substitution Folio. No Modify the cancellation request so as not to specify the replacement folio.
    211 Deadline for cancellation request date for global invoice The global invoice that is trying to be canceled is within the deadline for its cancellation. No  
    212 Invalid or non-existent relationship The cancellation request does not have a relationship or the relationship that was specified is not valid. No Review the cancellation request and try again.

    For more information or clarification of doubts related to this guide, please send an email to MEX-soporte@sovos.com


    Regresar