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

# SAT catalogs

> Look up the exact coded values the SAT requires — payment forms, payment methods, uso CFDI, tax regimes, and more — instead of guessing four-digit enums.

CFDI 4.0 fields are coded: `payment_form` is a `c_FormaPago` code, `payment_method` is `c_MetodoPago`,
`use` is `c_UsoCFDI`, `tax_regime` is `c_RegimenFiscal`. Get one wrong and the SAT rejects the invoice.
The `/v1/catalogs` endpoints return those codes with their meanings, so you (or an agent) can look up
the right value at runtime instead of hard-coding it.

The codes served here are the **same tables the invoice builder validates against** — what a catalog
advertises is exactly what `POST /v1/invoices` accepts, so they can never drift.

> [!NOTE]
>
> These endpoints are **public** — no API key required, so you can discover valid codes before you sign up.

## List the catalogs

```bash theme={null}
curl https://api.newinvoice.dev/v1/catalogs
```

```json theme={null}
{
  "object": "list",
  "data": [
    { "catalog": "uso_cfdi",      "sat_catalog": "c_UsoCFDI",   "name": "Uso del CFDI",   "url": "/v1/catalogs/uso_cfdi",      "count": 24 },
    { "catalog": "payment_forms", "sat_catalog": "c_FormaPago", "name": "Formas de pago", "url": "/v1/catalogs/payment_forms", "count": 22 }
  ],
  "has_more": false
}
```

## Fetch one catalog

```bash theme={null}
curl https://api.newinvoice.dev/v1/catalogs/payment_forms
```

```json theme={null}
{
  "object": "list",
  "catalog": "payment_forms",
  "sat_catalog": "c_FormaPago",
  "name": "Formas de pago",
  "data": [
    { "code": "01", "description": "Efectivo" },
    { "code": "03", "description": "Transferencia electrónica de fondos" },
    { "code": "99", "description": "Por definir" }
  ],
  "has_more": false
}
```

## Available catalogs

| Slug | SAT catalog | Used in |
| - | - | - |
| `uso_cfdi` | c\_UsoCFDI | `use` (customer + invoice level) |
| `payment_forms` | c\_FormaPago | `payment_form` |
| `payment_methods` | c\_MetodoPago | `payment_method` (PUE / PPD) |
| `tax_regimes` | c\_RegimenFiscal | `tax_regime` (issuer + customer) |
| `invoice_types` | c\_TipoDeComprobante | `type` (I / E / P …) |
| `taxes` | c\_Impuesto | line `taxes[].tax` |
| `tax_objects` | c\_ObjetoImp | line `tax_object` |
| `relation_types` | c\_TipoRelacion | `relation.type` |
| `export_types` | c\_Exportacion | `export` |
| `periodicities` | c\_Periodicidad | global-invoice periodicity |
| `currencies` | c\_Moneda | `currency` |

## Persona-aware codes

`uso_cfdi` and `tax_regimes` entries carry a `personas` array — the taxpayer types a code is valid for
(`fisica`, `moral`, or both). Filter to the ones that apply with `?persona=`:

```bash theme={null}
curl "https://api.newinvoice.dev/v1/catalogs/uso_cfdi?persona=fisica"
```

> [!TIP]
>
> `currencies` entries include `decimals` — the number of decimal places the currency allows. `JPY` and
> `CLP` are `0`; sending `100.50 JPY` is the classic **CFDI40107** rejection.

An unknown slug returns **404 `catalog.not_found`**, whose `remediation` lists every valid slug.

## Every code

The complete catalogs below are generated from the API's source of truth, so they always match
exactly what `POST /v1/invoices` accepts — no API call needed to read them.

### Uso del CFDI — `c_UsoCFDI`

Slug `uso_cfdi` · 24 codes · `GET /v1/catalogs/uso_cfdi`

| Code | Description | Valid for |
| - | - | - |
| `G01` | Adquisición de mercancías | fisica, moral |
| `G02` | Devoluciones, descuentos o bonificaciones | fisica, moral |
| `G03` | Gastos en general | fisica, moral |
| `I01` | Construcciones | fisica, moral |
| `I02` | Mobiliario y equipo de oficina por inversiones | fisica, moral |
| `I03` | Equipo de transporte | fisica, moral |
| `I04` | Equipo de cómputo y accesorios | fisica, moral |
| `I05` | Dados, troqueles, moldes, matrices y herramental | fisica, moral |
| `I06` | Comunicaciones telefónicas | fisica, moral |
| `I07` | Comunicaciones satelitales | fisica, moral |
| `I08` | Otra maquinaria y equipo | fisica, moral |
| `D01` | Honorarios médicos, dentales y gastos hospitalarios | fisica |
| `D02` | Gastos médicos por incapacidad o discapacidad | fisica |
| `D03` | Gastos funerales | fisica |
| `D04` | Donativos | fisica |
| `D05` | Intereses reales pagados por créditos hipotecarios | fisica |
| `D06` | Aportaciones voluntarias al SAR | fisica |
| `D07` | Primas por seguros de gastos médicos | fisica |
| `D08` | Gastos de transportación escolar obligatoria | fisica |
| `D09` | Depósitos en cuentas para el ahorro, primas de pensiones | fisica |
| `D10` | Pagos por servicios educativos (colegiaturas) | fisica |
| `S01` | Sin efectos fiscales | fisica, moral |
| `CP01` | Pagos | fisica, moral |
| `CN01` | Nómina | fisica |

### Formas de pago — `c_FormaPago`

Slug `payment_forms` · 22 codes · `GET /v1/catalogs/payment_forms`

| Code | Description |
| - | - |
| `01` | Efectivo |
| `02` | Cheque nominativo |
| `03` | Transferencia electrónica de fondos |
| `04` | Tarjeta de crédito |
| `05` | Monedero electrónico |
| `06` | Dinero electrónico |
| `08` | Vales de despensa |
| `12` | Dación en pago |
| `13` | Pago por subrogación |
| `14` | Pago por consignación |
| `15` | Condonación |
| `17` | Compensación |
| `23` | Novación |
| `24` | Confusión |
| `25` | Remisión de deuda |
| `26` | Prescripción o caducidad |
| `27` | A satisfacción del acreedor |
| `28` | Tarjeta de débito |
| `29` | Tarjeta de servicios |
| `30` | Aplicación de anticipos |
| `31` | Intermediario pagos |
| `99` | Por definir |

### Métodos de pago — `c_MetodoPago`

Slug `payment_methods` · 2 codes · `GET /v1/catalogs/payment_methods`

| Code | Description |
| - | - |
| `PUE` | Pago en una sola exhibición |
| `PPD` | Pago en parcialidades o diferido |

### Regímenes fiscales — `c_RegimenFiscal`

Slug `tax_regimes` · 19 codes · `GET /v1/catalogs/tax_regimes`

| Code | Description | Valid for |
| - | - | - |
| `601` | General de Ley Personas Morales | moral |
| `603` | Personas Morales con Fines no Lucrativos | moral |
| `605` | Sueldos y Salarios e Ingresos Asimilados a Salarios | fisica |
| `606` | Arrendamiento | fisica |
| `607` | Régimen de Enajenación o Adquisición de Bienes | fisica |
| `608` | Demás ingresos | fisica |
| `610` | Residentes en el Extranjero sin Establecimiento Permanente | fisica, moral |
| `611` | Ingresos por Dividendos (socios y accionistas) | fisica |
| `612` | Personas Físicas con Actividades Empresariales y Profesionales | fisica |
| `614` | Ingresos por intereses | fisica |
| `615` | Régimen de los ingresos por obtención de premios | fisica |
| `616` | Sin obligaciones fiscales | fisica, moral |
| `620` | Sociedades Cooperativas de Producción que optan por diferir sus ingresos | moral |
| `621` | Incorporación Fiscal | fisica |
| `622` | Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras | moral |
| `623` | Opcional para Grupos de Sociedades | moral |
| `624` | Coordinados | moral |
| `625` | Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas | fisica |
| `626` | Régimen Simplificado de Confianza | fisica, moral |

### Tipos de comprobante — `c_TipoDeComprobante`

Slug `invoice_types` · 5 codes · `GET /v1/catalogs/invoice_types`

| Code | Description |
| - | - |
| `I` | Ingreso |
| `E` | Egreso |
| `T` | Traslado |
| `N` | Nómina |
| `P` | Pago |

### Impuestos — `c_Impuesto`

Slug `taxes` · 3 codes · `GET /v1/catalogs/taxes`

| Code | Description |
| - | - |
| `001` | ISR |
| `002` | IVA |
| `003` | IEPS |

### Objeto de impuesto — `c_ObjetoImp`

Slug `tax_objects` · 4 codes · `GET /v1/catalogs/tax_objects`

| Code | Description |
| - | - |
| `01` | No objeto de impuesto |
| `02` | Sí objeto de impuesto |
| `03` | Sí objeto del impuesto y no obligado al desglose |
| `04` | Sí objeto del impuesto y no causa impuesto |

### Tipos de relación — `c_TipoRelacion`

Slug `relation_types` · 7 codes · `GET /v1/catalogs/relation_types`

| Code | Description |
| - | - |
| `01` | Nota de crédito de los documentos relacionados |
| `02` | Nota de débito de los documentos relacionados |
| `03` | Devolución de mercancía sobre facturas o traslados previos |
| `04` | Sustitución de los CFDI previos |
| `05` | Traslados de mercancías facturados previamente |
| `06` | Factura generada por los traslados previos |
| `07` | CFDI por aplicación de anticipo |

### Exportación — `c_Exportacion`

Slug `export_types` · 4 codes · `GET /v1/catalogs/export_types`

| Code | Description |
| - | - |
| `01` | No aplica |
| `02` | Definitiva con clave A1 |
| `03` | Temporal |
| `04` | Definitiva con clave distinta a A1 |

### Periodicidad (factura global) — `c_Periodicidad`

Slug `periodicities` · 5 codes · `GET /v1/catalogs/periodicities`

| Code | Description |
| - | - |
| `01` | Diario |
| `02` | Semanal |
| `03` | Quincenal |
| `04` | Mensual |
| `05` | Bimestral |

### Monedas — `c_Moneda`

Slug `currencies` · 22 codes · `GET /v1/catalogs/currencies`

| Code | Decimals |
| - | - |
| `MXN` | 2 |
| `USD` | 2 |
| `EUR` | 2 |
| `CAD` | 2 |
| `GBP` | 2 |
| `JPY` | 0 |
| `CHF` | 2 |
| `CNY` | 2 |
| `AUD` | 2 |
| `BRL` | 2 |
| `ARS` | 2 |
| `COP` | 2 |
| `CLP` | 0 |
| `PEN` | 2 |
| `DKK` | 2 |
| `SEK` | 2 |
| `NOK` | 2 |
| `HKD` | 2 |
| `SGD` | 2 |
| `NZD` | 2 |
| `KRW` | 0 |
| `XXX` | 0 |


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