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 Features
- Disconnected cancellation (asynchronous)
- Comparison of cancellation services of Sovos Mexico
- [Requirements to cancel a CFDI] (#requisitos)
-
Integration
- Cancellation through Web Service
- Cancellation via plain text file
-
Cancellation Web Service
- What do I need?
- Service location.
-
Method [
Cancelar
]: Async Cancel -
Method [
GetFolioStatusDetail
]: Query to obtain the status of the cancellation of the fiscal folio- GetFolioStatus request
- GetFolioStatus response
-
Method [
GetTransactionStatusDetail
]: Query to obtain the status of the fiscal folios contained in the batch- GetTransactionStatus request
- GetTransactionStatus response
-
SAT Cancellation Response Codes
- Success Codes
- Error codes
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:
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
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
|
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:
|
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.
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