How Cancellation Reason should be managed for CFDi 4.0
The cancellation process has dramatically changed with the CFDi 4.0. The main change is related to the need to add the reason for the cancellation to the request based on a catalog published by the Tax Authorities as follows:
“01” Fiscal receipts issued with errors (with relationship)
“02” Fiscal receipts issued with errors (without relationship)
“03” The commercial operation did not happen
“04” Named operation(s) related to a Global Invoice
Now, when each code needs to be used, and how the process should work?
Reason 01, is the reason mostly expected by the Tax Authorities. It should be used when some time after the issuing of the document the sender realizes that it has some error (product, quantity, price, etc).
In this case, the assumption is that the transaction happened, but the invoice has errors, an it needs to be replaced.
The first step is to issue a new document that will replace the original with errors. This new document must include as a related document the UUID of the original/wrong document, and relationship code 04 (Substitution)
The second step is to send the cancellation of the original/wrong document with reason 01 and a relationship to the UUID of the new document recently created.
Reason 02, is expected to be used when immediately after the stamping of the document, and even before it is delivered to the customer the issuer identifies that it has an error.
In this case, firstly, the wrong document is cancelled with reason 02 but without a relationship, and secondly, a new document is created with a relationship code 04 and with relationship to the UUID of the document just cancelled. As you can see, it is the process used for CFDi 3.3.
Reason 03, the description is truly clear, it is used when after the issuing of the fiscal receipt it is found that the commercial operation didn’t happen. In this case the document is cancelled with reason 03 and without a relationship.
Reason 04, is used after a Global Invoice is stamped and a customer requests a named invoice related to one or more of the tickets included in the Global Invoice
In this case when the Global invoice is cancelled, reason 04 must be used, as a second step the new Global Invoice is issued (excluding the named invoice(s)), and finally, the named invoice(s) is issued.