> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gigstack.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancellation Motives Catalog (Motivos de Cancelación)

> Integration guide for Cancellation Motives Catalog (Motivos de Cancelación)

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

| Code | SAT description | What to establish before requesting cancellation |
| - | - | - |
| `01` | Comprobante emitido con errores con relación | The corrected replacement has been issued; keep its UUID. |
| `02` | Comprobante emitido con errores sin relación | The case qualifies for cancellation without supplying a replacement UUID in the cancellation request. |
| `03` | No se llevó a cabo la operación | The underlying operation did not take place. |
| `04` | Operación nominativa relacionada en la factura global | A sale included in a global invoice needs its own customer invoice. |

## What We See

The [cancel operation](/reference/cancelInvoice) 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?](/recipes/credit-note#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](https://www.sat.gob.mx/minisitio/Factura/documentos/PreguntasFrecuentes_CancelacionFactura25082026.pdf).

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

```json theme={null}
{"motive":"01","substitution_uuid":"REPLACEMENT_CFDI_UUID"}
```

For an operation that did not take place:

```json theme={null}
{"motive":"03"}
```

The [operation reference](/reference/cancelInvoice) specifies authentication, path,
body, and errors. It does not accept a partial amount or list of lines to cancel.

## Business Scenarios and Decision Matrix

| Business result needed | Relevant action |
| - | - |
| Correct an issued CFDI through substitution | Issue replacement with relationship `04`, then request original cancellation with motive `01`. |
| Document a discount or return | Investigate a related egress CFDI / credit note. It is not automatically a cancellation. |
| Refund a collected payment | Investigate the payment refund flow; a fiscal document alone does not return money. |
| Issue an individual CFDI for a sale already in a global invoice | Follow the complete motive `04` replacement workflow below. |
| Discard an unissued draft | Delete the draft; there is no stamped CFDI to cancel. |

## 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](/countries/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](https://www.sat.gob.mx/minisitio/Factura/documentos/PreguntasFrecuentes_CancelacionFactura25082026.pdf).

## Related Documentation

* [Invoice relationships](/guides/catalogs/invoice_relationships)
* [Global invoices](/guides/catalogs/invoices_globals)
* [Credit-note recipe](/recipes/credit-note)
* [Cancellation operation](/reference/cancelInvoice)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.