SAT Catalogue Lookup
sat_catalog_lookupFind official SAT catalog entries for CFDI invoices—tax regimes, payment methods, CLABE banks, CURP states—by exact code or text search without network access.
Instructions
Look up the code tables a CFDI is written in, without downloading the SAT's spreadsheet. Nine catalogues, all bundled — this tool never touches the network.
regimen_fiscal(c_RegimenFiscal) — tax regime of issuer and receiveruso_cfdi(c_UsoCFDI) — what the receiver does with the invoiceforma_pago(c_FormaPago) — cash, transfer, card, …metodo_pago(c_MetodoPago) — PUE vs PPDtipo_comprobante(c_TipoDeComprobante) — I/E/T/N/Pobjeto_imp(c_ObjetoImp) — whether a line item is subject to tax (CFDI 4.0)impuestos(c_Impuesto) — ISR / IVA / IEPSbancos_clabe— Banxico participants by the first three CLABE digitsestados_curp— RENAPO's state keys for CURP positions 12-13
With no query you get the whole catalogue. With one, an exact code match wins (leading zeros are ignored, so '1' finds '01'); failing that it falls back to a case- and accent-insensitive substring search over both code and label, so 'confianza' finds 626 and 'oaxaca' finds OC.
Two honesty notes carried in the output: the bank list is a curated subset of Banxico's participant catalogue rather than the whole thing, and the CURP state keys are RENAPO's own — they do not match INEGI or ISO 3166-2:MX codes.
Args:
catalog (enum): one of regimen_fiscal, uso_cfdi, forma_pago, metodo_pago, tipo_comprobante, objeto_imp, impuestos, bancos_clabe, estados_curp.
query (string, optional): an exact code, or text to search for.
response_format ('markdown' | 'json'): output format (default 'markdown').
Returns: { catalog, official_name, authority, description, used_in, query, match_type, total_entries, match_count, entries[{code, label}], truncated, notes[] }.
Example: "What does UsoCFDI G03 mean?" -> sat_catalog_lookup(catalog="uso_cfdi", query="G03").
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | An exact code ('626', 'G03', '012') or free text to search ('confianza', 'BBVA', 'Oaxaca'). Omit for the whole catalogue. | |
| catalog | Yes | Which catalogue to read. | |
| response_format | No | Output format: 'markdown' for a human-readable summary (default) or 'json' for the full structured payload. | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| query | Yes | ||
| catalog | Yes | ||
| entries | Yes | ||
| used_in | Yes | ||
| authority | Yes | ||
| truncated | Yes | ||
| match_type | Yes | ||
| description | Yes | ||
| match_count | Yes | ||
| official_name | Yes | ||
| total_entries | Yes |