Skip to main content

Overview

These codes apply when requesting cancellation of a Mexican CFDI. Choose the reason that matches the transaction. A submitted cancellation request can remain pending; HTTP 200 alone does not establish that the fiscal document is cancelled.

Cancellation Motives Table

What We See

The cancel operation uses DELETE /invoices/{id} with motive and, when applicable, substitution_uuid at the top level. The ID in the URL identifies the invoice; do not send an invoice_uuid or cancellation wrapper.

How to Use It

Before changing anything, retrieve the original invoice, identify any related complements or replacement documents, and confirm the team and mode. A refund, a credit note, and cancellation are separate operations with separate results. Use Credit note, refund, or cancellation? to choose the API task.

Detailed Motive Explanations

Motive 01: Error with Substitution

Issue the corrected CFDI with relationship 04 referring to the original UUID. Then request cancellation of the original with motive 01 and the new UUID in substitution_uuid. The relationship code 04 and cancellation motive 04 come from different catalogs and mean different things.

Motive 02: Error without Substitution

This motive describes an error without a related replacement in the cancellation request. It does not prove the sale vanished or that no corrected invoice will be needed. Follow the case-specific procedure in the SAT’s cancellation guidance.

Motive 03: Operation Not Completed

Use this for an operation that did not take place. A late or declined payment by itself does not establish that the underlying sale or service never occurred. Returning any money already received requires a separate refund or bank action.

Motive 04: Global Invoice Customer Request

A CFDI is cancelled as a document; this is not a partial cancellation of one line while the original global invoice remains valid. The SAT’s questions 6 and 10 describe cancellation of the original global invoice, a new global excluding the sale that needs its own CFDI, and the individual customer invoice. See the SAT cancellation FAQ.

Implementation Examples

API Request Examples

These are the complete JSON bodies for the cancellation operation, not full shell commands. Select an actual invoice and the applicable motive deliberately. For motive 01, replace the placeholder with the already-issued replacement UUID:
For an operation that did not take place:
The operation reference specifies authentication, path, body, and errors. It does not accept a partial amount or list of lines to cancel.

Business Scenarios and Decision Matrix

Important Considerations

SAT Approval Process

Whether cancellation needs recipient acceptance depends on the applicable SAT rules and the document’s circumstances; do not infer automatic acceptance from the motive alone. Read the returned cancellation state, then retrieve the invoice again. For Mexican invoices, look for the resulting cancellation_status and document status; an accepted cancellation should be distinguished from a still-valid, pending request. A later read can differ from the initial provider response.

Customer Impact

Only tell a customer that cancellation completed after verifying the final state. Preserve the original and replacement UUIDs and any cancellation receipt for reconciliation. This catalog does not describe Colombian annulment; use Colombia.

Error Prevention

  • A 403 mode mismatch requires the key for the invoice’s mode, not a different motive.
  • A 422 for an imported invoice means it must be cancelled through its original issuer/provider.
  • If a request times out, retrieve the existing invoice before submitting another cancellation.
  • If a provider rejects cancellation, preserve its actual message and examine the related documents.
  • Do not delete payment history or assume balances/refunds were corrected because cancellation was requested.

Cancellation Workflow Examples

Error Correction Workflow (Motive 01)

  1. Read the original invoice and confirm the correction needed.
  2. Issue the corrected replacement with relationship 04 to the original UUID.
  3. Request original cancellation with motive: "01" and the replacement UUID.
  4. Retrieve the original and verify the resulting cancellation state.
  5. Reconcile both UUIDs and communicate the actual result.

Simple Cancellation Workflow (Motive 02/03)

  1. Confirm the motive represents the actual operation and record the original UUID.
  2. Submit the cancellation request.
  3. Retrieve the invoice and inspect the final state; pending is not completed.
  4. Handle any replacement or money return separately if the case requires it.

Global Invoice Conversion Workflow (Motive 04)

  1. Identify the original global CFDI and the exact sale to separate.
  2. Request cancellation of the original global CFDI with motive 04; verify its result.
  3. Issue the replacement global CFDI excluding that sale.
  4. Issue the customer’s individual CFDI for that sale.
  5. Reconcile all UUIDs and totals so the same sale is not counted twice.
This is the SAT’s documented business sequence, not a promise that one API call performs all steps. If any step remains pending or fails, report that state and reconcile it before continuing. SAT source: questions 6 and 10.