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 isuse. The recipient’s regime is client.tax_system (or the
stored customer’s tax_system). An invoice-body fragment looks like this:
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 acceptsuse as a string; the provider
validates the fiscal combination. Check the SAT’s current filling material and
catalogs for code validity and applicability.
CFDI Usage Codes by Category
General Business Expenses (G Codes)
Investment Expenses (I Codes)
Personal Deductible Expenses (D Codes)
Special Cases (S Codes)
Payment Documents (CP Codes)
Payroll Documents (CN Codes)
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:CN01is the payroll use associated with605;605is not limited toCN01for every document.S01andCP01use the explicitly listed regimes, not an unconditional “all regimes” rule.- A
G,I, orDcode 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,
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 withG03 or S01 to make a request pass.
Common Use Cases
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.
These SAT meanings apply to Mexico; Colombia has different
fiscal fields even though the shared API currently still requires use.