Catálogos del SAT
El Servicio de Administración Tributaria (SAT) publica catálogos estándar para la facturación electrónica en México. Sus claves y descripciones son de uso obligatorio al emitir un CFDI.
Equivalencia entre catálogos del SAT y Fiscalapi
Los catálogos del SAT en la API tienen exactamente los mismos registros que los catálogos oficiales. Por ejemplo, SatPaymentForms contiene los mismos registros que c_FormaPago. Las tablas siguientes muestran el nombre de cada catálogo en el SAT y en la API.
Catálogos de facturación
| Catálogo SAT | Catálogo API | Descripción |
|---|---|---|
| c_FormaPago | SatPaymentForms | Formas de pago aceptadas en la factura |
| c_Moneda | SatCurrencies | Monedas permitidas en la factura |
| c_TipoDeComprobante | SatInvoiceTypes | Tipos de comprobante de la factura |
| c_Exportacion | SatExportCodes | Operaciones de exportación de la factura |
| c_MetodoPago | SatPaymentMethods | Métodos de pago de la factura |
| c_Periodicidad | SatPeriodicities | Periodicidad de la factura global |
| c_Meses | SatMonths | Periodos que ampara la factura |
| c_TipoRelacion | SatRelationshipTypes | Tipos de relación entre facturas |
| c_RegimenFiscal | SatTaxRegimes | Regímenes fiscales del emisor o del receptor |
| c_UsoCFDI | SatCfdiUses | Usos del CFDI |
| c_ClaveProdServ | SatProductCodes | Claves de productos y servicios |
| c_ClaveUnidad | SatUnitMeasurements | Unidades de medida de los productos |
| c_ObjetoImp | SatTaxObjects | Objeto de impuesto de los productos |
| c_Impuesto | SatTaxes | Impuestos aplicables en la factura |
| c_TipoFactor | SatTaxTypes | Tipos de factor de los impuestos de los productos |
| c_MotivosCancelacion | SatMotivosCancelacion | Motivos de cancelación de facturas |
| c_Pais | SatCountries | Países conforme al estándar ISO 3166-1 |
| c_Estado | SatPayrollStates | Entidades federativas de México, estados de Estados Unidos y provincias de Canadá, con su clave de 3 letras |
SatStates es otro catálogo: las entidades federativas de México con clave numérica (00 a 32, 88 y 99). No es c_Estado, así que no lo uses para el estado de un domicilio de carta porte o de comercio exterior.
Catálogos de nómina
| Catálogo SAT | Catálogo API | Descripción |
|---|---|---|
| c_Banco | SatBanks | Bancos para transferencias de nómina |
| c_OrigenRecurso | SatFundSources | Origen de los recursos de las empresas del SNCF en la nómina |
| c_PeriodicidadPago | SatPaymentPeriodicities | Periodicidad de pago de la nómina |
| c_TipoContrato | SatContractTypes | Tipos de contrato entre el empleado y el empleador |
| c_TipoDeduccion | SatDeductionTypes | Tipos de deducción de la nómina |
| c_TipoHoras | SatOvertimeTypes | Tipos de horas extra que trabaja un empleado |
| c_TipoIncapacidad | SatDisabilityTypes | Tipos de incapacidad de un empleado |
| c_TipoJornada | SatWorkdayTypes | Tipos de jornada laboral de un empleado |
| c_TipoNomina | SatPayrollTypes | Tipos de nómina |
| c_TipoOtroPago | SatOtherPaymentTypes | Tipos de otros pagos que recibe un empleado |
| c_TipoPercepcion | SatEarningTypes | Tipos de percepción que recibe un empleado |
| c_TipoRegimen | SatTaxRegimeTypes | Tipos de régimen de contratación del empleado |
| c_RiesgoPuesto | SatJobRisks | Riesgo del puesto de trabajo del empleado |
| c_Estado | SatPayrollStates | Entidades federativas donde puede estar el centro de trabajo |
| c_Sindicalizado | SatUnionizedStatuses | Indica si el trabajador pertenece a un sindicato |
Catálogos internos de Fiscalapi
| Catálogo API | Descripción |
|---|---|
| ProductTypes | Tipos de producto de la clasificación UNSPSC (nivel segmento) |
| ProductDivisions | Divisiones de producto de la clasificación UNSPSC (nivel división) |
| ProductGroups | Grupos de producto de la clasificación UNSPSC (nivel grupo) |
| ProductClasses | Clases de producto de la clasificación UNSPSC (nivel clase) |
| UserTypes | Tipos de usuario del sistema |
| ReportRuleTypes | Tipos de regla de reportes |
| Taxes | Impuestos aplicables (ISR, IVA, IEPS) |
| TaxFlags | Naturaleza del impuesto: retención (R) o traslado (T) |
| TaxTypes | Tipos de factor de impuesto: Tasa, Cuota o Exento |
| TaxRules | Reglas de cálculo de impuestos por tipo, división, grupo o clase de producto |
| PersonTypes | Tipos de persona (física o moral) |
| InvoiceStatuses | Estatus de factura en el ciclo de vida del CFDI |
| SatValidationTypes | Tipos de validación SAT que pueden ejecutarse sobre un CFDI |
SatValidationTypes devuelve todos los tipos de validación, incluidos los inactivos, porque es un
catálogo genérico. Para obtener solo los tipos que puedes solicitar, usa
Listar tipos de validación. Los estatus posibles de cada tipo
no son un catálogo: consúltalos con Listar estatus de un tipo.
Catálogos de Carta Porte 3.1
| Catálogo SAT | Catálogo API | Descripción |
|---|---|---|
| c_CveTransporte | SatCveTransporte | Clave del medio de transporte: Autotransporte (01), Marítimo (02), Aéreo (03), Ferroviario (04) |
| c_TipoEstacion | SatTipoEstacion | Tipo de estación: Origen Nacional (01), Intermedia (02), Destino Nacional (03) |
| c_Estaciones | SatEstaciones | Estaciones y terminales de origen, intermedias y destino para cada tipo de transporte |
| c_TipoPermiso | SatTipoPermiso | Tipos de permiso otorgados por la SCT para transporte de carga y pasajeros |
| c_ClaveUnidadPeso | SatClaveUnidadPeso | Claves de unidades de peso: Kilogramo (KGM), Tonelada (TNE), Libra (LBR), entre otros |
| c_MotivoTraslado | SatMotivoTraslado | Motivo del traslado de mercancías amparado en el CFDI |
| c_TipoMateria | SatTipoMateria | Tipo de materia o mercancía transportada |
| c_SectorCOFEPRIS | SatSectorCOFEPRIS | Sector COFEPRIS: Medicamentos (01), Precursores (02), Psicotrópicos (03), Tóxicas (04), Plaguicidas (05) |
| c_FormaFarmaceutica | SatFormaFarmaceutica | Forma farmacéutica del producto cuando el sector COFEPRIS es Medicamentos |
| c_CondicionesEspeciales | SatCondicionesEspeciales | Condiciones especiales de transporte para mercancías reguladas por COFEPRIS |
| c_RegistroISTMO | SatRegistroISTMO | Registro del Corredor Interoceánico del Istmo de Tehuantepec |
| c_ClaveTipoCarga | SatClaveTipoCarga | Clasificación del tipo de carga transportada |
| c_Colonia | SatColonia | Colonias de las ubicaciones de origen y destino |
| c_Localidad | SatLocalidad | Localidades de las ubicaciones de origen y destino |
| c_Municipio | SatMunicipio | Municipios de las ubicaciones de origen y destino |
| c_MaterialPeligroso | SatMaterialPeligroso | Materiales peligrosos conforme a la NOM: explosivos, municiones, sustancias químicas |
| c_TipoEmbalaje | SatTipoEmbalaje | Tipo de embalaje para transporte de materiales peligrosos |
| c_ConfigAutotransporte | SatConfigAutotransporte | Configuración vehicular del autotransporte (tipo de vehículo y remolque) |
| c_SubTipoRem | SatSubTipoRem | Subtipo de remolque o semirremolque del autotransporte |
| c_ParteTransporte | SatParteTransporte | Partes o segmentos del transporte |
| c_FiguraTransporte | SatFiguraTransporte | Figuras de transporte: Operador (01), Propietario, Arrendatario, Notificado |
| c_ConfigMaritima | SatConfigMaritima | Configuración del transporte marítimo |
| c_ContenedorMaritimo | SatContenedorMaritimo | Tipos de contenedor marítimo |
| c_NumAutorizacionNaviero | SatNumAutorizacionNaviero | Número de autorización del agente naviero consignatario |
| c_TipoDeServicio | SatTipoDeServicio | Tipo de servicio ferroviario |
| c_CodigoTransporteAereo | SatCodigoTransporteAereo | Códigos de líneas aéreas para transporte de carga |
| c_DerechosDePaso | SatDerechosDePaso | Derechos de paso (peaje) en rutas ferroviarias |
| c_TipoCarro | SatTipoCarro | Tipo de carro ferroviario |
| c_Contenedor | SatContenedor | Especificaciones de contenedores ferroviarios |
| c_TipoDeTrafico | SatTipoDeTrafico | Tipo de tráfico ferroviario |
| c_RegimenAduanero | SatRegimenAduanero | Régimen aduanero: Importación Definitiva (IMD), Exportación Definitiva (EXD), Temporal (ITR), Depósito Fiscal (DFI), Tránsito (TRA) |
| c_DocumentoAduanero | SatDocumentoAduanero | Tipo de documento aduanero |
| c_FlagTipoUbicacion | SatFlagTipoUbicacion | Tipo de ubicación: Origen o Destino |
| c_FlagNavegacionTrafico | SatFlagNavegacionTrafico | Indicador de navegación y tráfico marítimo |
| c_FlagMaterialPeligroso | SatFlagMaterialPeligroso | Indicador de material peligroso: Sí o No |
| c_FlagLogisticaInversaRecoleccionDevolucion | SatFlagLogisticaInversaRecoleccionDevolucion | Indicador de logística inversa para recolección o devolución |
| c_FlagTranspInternac | SatFlagTranspInternac | Indicador de transporte internacional: Sí o No |
| c_FlagEntradaSalidaMerc | SatFlagEntradaSalidaMerc | Indicador de entrada o salida de mercancía |
| c_FlagRegistroISTMO | SatFlagRegistroISTMO | Indicador de registro en el Corredor del Istmo de Tehuantepec |
Catálogos de Comercio Exterior 2.0
| Catálogo SAT | Catálogo API | Descripción |
|---|---|---|
| c_ClavePedimento | SatClavePedimento | Clave del pedimento de importación o exportación |
| c_FraccionArancelaria | SatFraccionArancelaria | Fracción arancelaria de la mercancía en operaciones de comercio exterior |
| c_INCOTERM | SatINCOTERM | Términos de comercio internacional (INCOTERM) que definen responsabilidades en la entrega |
| c_TipoOperacion | SatTipoOperacion | Tipo de operación de comercio exterior |
| c_UnidadAduana | SatUnidadAduana | Unidad de medida utilizada en la documentación aduanera |
Modelo PagedList
Como los catálogos del SAT tienen muchos registros, Buscar en un catálogo responde con el modelo paginado PagedList. Cada elemento de la página es un CatalogDto, que representa un registro del catálogo.
Propiedades
- Name
items- Type
- array of objects (CatalogDto)?
- Description
Lista de elementos en la página actual.
- Name
pageNumber- Type
- integer | number?
- Description
Página actual.
- Name
totalPages- Type
- integer | number?
- Description
Total de páginas.
- Name
totalCount- Type
- integer | number?
- Description
Total de elementos.
- Name
hasPreviousPage- Type
- boolean?
- Description
Indica si hay una página anterior.
- Name
hasNextPage- Type
- boolean?
- Description
Indica si hay una página siguiente.
Listar catálogos
Este endpoint devuelve, sin paginar, los nombres de los catálogos disponibles. Usa estos nombres para consultar o buscar registros en un catálogo. Escríbelos tal cual, porque distinguen mayúsculas y minúsculas: un nombre que no está en la lista responde 404 en los demás endpoints de catálogos.
Request
curl --location 'https://test.fiscalapi.com/api/v4/catalogs' \
--header 'X-TENANT-KEY: <tenant>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'X-API-KEY: <api-key>' \
--data ''
Response
{
"data": [
"SatCfdiUses",
"SatCountries",
"SatCurrencies",
"SatExportCodes",
"SatInvoiceTypes",
"SatMonths",
"SatTaxObjects",
"SatPaymentForms",
"SatPaymentMethods",
"SatPeriodicities",
"SatProductCodes",
"SatRelationshipTypes",
"SatTaxes",
"SatStates",
"SatTaxRegimes",
"SatTaxTypes",
"SatUnitMeasurements",
"ProductTypes",
"ProductDivisions",
"ProductGroups",
"ProductClasses",
"UserTypes",
"ReportRuleTypes",
"Taxes",
"TaxFlags",
"TaxTypes",
"TaxRules",
"PersonTypes",
"InvoiceStatuses",
"SatBanks",
"SatFundSources",
"SatPaymentPeriodicities",
"SatContractTypes",
"SatDeductionTypes",
"SatOvertimeTypes",
"SatDisabilityTypes",
"SatWorkdayTypes",
"SatPayrollTypes",
"SatOtherPaymentTypes",
"SatEarningTypes",
"SatTaxRegimeTypes",
"SatJobRisks",
"SatPayrollStates",
"SatUnionizedStatuses",
"SatRegimenAduanero",
"SatCveTransporte",
"SatTipoEstacion",
"SatEstaciones",
"SatClaveUnidadPeso",
"SatMaterialPeligroso",
"SatTipoEmbalaje",
"SatTipoPermiso",
"SatColonia",
"SatLocalidad",
"SatMunicipio",
"SatSectorCOFEPRIS",
"SatFormaFarmaceutica",
"SatCondicionesEspeciales",
"SatTipoMateria",
"SatDocumentoAduanero",
"SatParteTransporte",
"SatFiguraTransporte",
"SatConfigAutotransporte",
"SatSubTipoRem",
"SatRegistroISTMO",
"SatConfigMaritima",
"SatClaveTipoCarga",
"SatContenedorMaritimo",
"SatNumAutorizacionNaviero",
"SatCodigoTransporteAereo",
"SatTipoDeServicio",
"SatDerechosDePaso",
"SatTipoCarro",
"SatContenedor",
"SatTipoDeTrafico",
"SatFlagTipoUbicacion",
"SatFlagNavegacionTrafico",
"SatFlagMaterialPeligroso",
"SatFlagLogisticaInversaRecoleccionDevolucion",
"SatFlagTranspInternac",
"SatFlagEntradaSalidaMerc",
"SatFlagRegistroISTMO",
"SatMotivosCancelacion",
"SatClavePedimento",
"SatFraccionArancelaria",
"SatINCOTERM",
"SatMotivoTraslado",
"SatTipoOperacion",
"SatUnidadAduana"
],
"succeeded": true,
"message": "",
"details": "",
"httpStatusCode": 200
}
Obtener registro por ID
Este endpoint obtiene un registro de un catálogo a partir del nombre del catálogo y del ID del registro, que es su clave en el catálogo. El nombre del catálogo distingue mayúsculas y minúsculas.
Errores
Los mensajes llegan en details. En ellos, <recordId> es la clave del registro y <catalogName> es el nombre del catálogo.
| Estado | Cuándo ocurre | Mensaje |
|---|---|---|
| 404 | La clave del registro no existe en el catálogo. | No such resource for the given Id: <recordId> |
| 404 | El nombre del catálogo no existe. | No existe el catálogo '<catalogName>'. |
Request
curl --location 'https://test.fiscalapi.com/api/v4/catalogs/SatPaymentForms/key/03' \
--header 'X-TENANT-KEY: <tenant-key>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'X-API-KEY: <api-key>' \
--data ''
Response
{
"data": {
"id": "03",
"description": "Transferencia electrónica de fondos",
"createdAt": "2024-08-10T15:46:30.3730000",
"updatedAt": null
},
"succeeded": true,
"message": "",
"details": "",
"httpStatusCode": 200
}
Buscar en un catálogo
Este endpoint busca registros en un catálogo a partir del nombre del catálogo y de un término de búsqueda. La respuesta es una lista paginada.
Query parameters
- Name
pageNumber- Type
- integer | number
- required
- Description
Número de página que quieres consultar.
Default:1
- Name
pageSize- Type
- integer | number
- required
- Description
Cantidad de registros por página, de 1 a 100.
Default:50
Errores
El mensaje llega en details. En él, <catalogName> es el nombre del catálogo.
| Estado | Cuándo ocurre | Mensaje |
|---|---|---|
| 404 | El nombre del catálogo no existe. | No existe el catálogo '<catalogName>'. |
Request
curl --location 'https://test.fiscalapi.com/api/v4/catalogs/SatPaymentForms/Tarjeta?pageNumber=1&pageSize=100' \
--header 'X-TENANT-KEY: <tenant-key>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'X-API-KEY: <api-key>' \
--data ''
Response
{
"data": {
"items": [
{
"id": "04",
"description": "Tarjeta de crédito",
"createdAt": "0001-01-01T00:00:00.0000000",
"updatedAt": null
},
{
"id": "28",
"description": "Tarjeta de débito",
"createdAt": "0001-01-01T00:00:00.0000000",
"updatedAt": null
},
{
"id": "29",
"description": "Tarjeta de servicios",
"createdAt": "0001-01-01T00:00:00.0000000",
"updatedAt": null
}
],
"pageNumber": 1,
"totalPages": 1,
"totalCount": 3,
"hasPreviousPage": false,
"hasNextPage": false
},
"succeeded": true,
"message": "",
"details": "",
"httpStatusCode": 200
}