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

# CFDI Usage Catalog (Uso CFDI)

> Integration guide for CFDI Usage Catalog (Uso CFDI)

## Overview

For Mexican CFDI, **`use` is the recipient's intended Uso CFDI**. Ask the recipient
which use applies and check its compatibility with their fiscal regime and person type.
It is not the issuing team's business activity and does not by itself make an expense
deductible.

## How to Use It

The invoice field is `use`. The recipient's regime is `client.tax_system` (or the
stored customer's `tax_system`). An invoice-body **fragment** looks like this:

```json theme={null}
{"use":"G03","client":{"tax_system":"601"}}
```

This only shows field placement; it is not a complete invoice. Use the full
[invoice recipe](/recipes/invoice) and [income contract](/reference/createInvoicesIncome).
There is no `cfdi_usage`, `tax_regime`, or enclosing `invoice` object in that request.

## What We See

The following 24 codes and compatibility lists are present in gigstack's catalog.
They explain its labels and are not a promise of fiscal acceptance for every
transaction. The public invoice schema accepts `use` as a string; the provider
validates the fiscal combination. Check the [SAT's current filling material and
catalogs](https://www.sat.gob.mx/minisitio/Factura/emite_materialdeayudaparafactura.htm) for code validity and applicability.

## CFDI Usage Codes by Category

### General Business Expenses (G Codes)

| Code | Description | Compatible Tax Regimes |
| - | - | - |
| `G01` | Merchandise acquisition | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `G02` | Returns, discounts or bonuses | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `G03` | General expenses | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |

### Investment Expenses (I Codes)

| Code | Description | Compatible Tax Regimes |
| - | - | - |
| `I01` | Construction | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I02` | Office furniture and equipment investments | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I03` | Transportation equipment | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I04` | Computer equipment and accessories | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I05` | Dies, molds, matrices and tooling | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I06` | Telephone communications | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I07` | Satellite communications | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |
| `I08` | Other machinery and equipment | 601, 603, 606, 612, 620, 621, 622, 623, 624, 625, 626 |

### Personal Deductible Expenses (D Codes)

| Code | Description | Compatible Tax Regimes |
| - | - | - |
| `D01` | Medical, dental fees and hospital expenses | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D02` | Medical expenses for disability or incapacity | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D03` | Funeral expenses | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D04` | Donations | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D05` | Real interest effectively paid for mortgage loans (housing) | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D06` | Voluntary contributions to SAR | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D07` | Medical expense insurance premiums | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D08` | Mandatory school transportation expenses | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D09` | Savings account deposits, pension plan premiums | 605, 606, 608, 611, 612, 614, 607, 615, 625 |
| `D10` | Educational service payments (tuition) | 605, 606, 608, 611, 612, 614, 607, 615, 625 |

### Special Cases (S Codes)

| Code | Description | Compatible Tax Regimes |
| - | - | - |
| `S01` | Without fiscal effects | 601, 603, 605, 606, 608, 610, 611, 612, 614, 616, 620, 621, 622, 623, 624, 607, 615, 625, 626 |

### Payment Documents (CP Codes)

| Code | Description | Compatible Tax Regimes |
| - | - | - |
| `CP01` | Payments | 601, 603, 605, 606, 608, 610, 611, 612, 614, 616, 620, 621, 622, 623, 624, 607, 615, 625, 626 |

### Payroll Documents (CN Codes)

| Code | Description | Compatible Tax Regimes |
| - | - | - |
| `CN01` | Payroll | 605 |

## Tax Regime Compatibility Matrix

The lists above reproduce the code groups in gigstack's catalog; they are not rules
for whether an actual expense may be deducted. In particular:

* `CN01` is the payroll use associated with `605`; `605` is not limited to `CN01` for every document.
* `S01` and `CP01` use the explicitly listed regimes, not an unconditional “all regimes” rule.
* A `G`, `I`, or `D` code must fit the recipient's intended use as well as its registered information.
* A payroll code in a catalog does not mean the income-invoice endpoint is a payroll API.

## Implementation Examples

### API Request Example

For the tutorial's invoice, `"use": "G03"` is a top-level input. For a general-public
global invoice, follow the dedicated [receiver rules](/guides/catalogs/invoices_globals#the-receiver),
which use `S01` in that flow. These are different cases, not interchangeable defaults.

### Validation Logic

If you maintain a local code selector, retain the catalog's version, recipient-type
constraints, regime compatibility, and validity dates together. Do not copy a short
partial JavaScript mapping and treat missing entries as official fiscal exclusions.

### Usage Code Validation

Check the actual provider error when a use is rejected. A syntactically valid string
can still be incompatible with the recipient or document. Do not silently replace
the selected use with `G03` or `S01` to make a request pass.

## Common Use Cases

| Intended use | Example label to investigate |
| - | - |
| Merchandise acquisition | `G01` |
| General expenses | `G03` |
| Computer equipment and accessories | `I04` |
| Medical/dental/hospital expenses | `D01` |
| Without fiscal effects | `S01` |
| Payment document | `CP01` |

These labels do not establish eligibility for a deduction or permission to issue a
particular document type. `D10`'s tuition label, for example, does not make all
education spending deductible.

## Important Notes

`S01` does not mean the underlying transaction has no tax consequences. `CP01` does
not record a payment by itself; use the actual [payment-complement flow](/recipes/paid-later).
These SAT meanings apply to Mexico; [Colombia](/countries/colombia) has different
fiscal fields even though the shared API currently still requires `use`.

## Error Prevention

Collect the recipient's actual requested use, verify its registered regime, and
inspect the issued XML. If the intended value changes, follow the appropriate
correction process rather than altering an already-issued document locally.
See [Cancellation motives](/guides/catalogs/cancellation_motives).

## Related Documentation

* [Tax regimes](/guides/catalogs/tax_regimes)
* [Mexico fields](/countries/mexico)
* [Invoice recipe](/recipes/invoice)
* [Global invoices](/guides/catalogs/invoices_globals)


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