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 SATCatálogo APIDescripción
c_FormaPagoSatPaymentFormsFormas de pago aceptadas en la factura
c_MonedaSatCurrenciesMonedas permitidas en la factura
c_TipoDeComprobanteSatInvoiceTypesTipos de comprobante de la factura
c_ExportacionSatExportCodesOperaciones de exportación de la factura
c_MetodoPagoSatPaymentMethodsMétodos de pago de la factura
c_PeriodicidadSatPeriodicitiesPeriodicidad de la factura global
c_MesesSatMonthsPeriodos que ampara la factura
c_TipoRelacionSatRelationshipTypesTipos de relación entre facturas
c_RegimenFiscalSatTaxRegimesRegímenes fiscales del emisor o del receptor
c_UsoCFDISatCfdiUsesUsos del CFDI
c_ClaveProdServSatProductCodesClaves de productos y servicios
c_ClaveUnidadSatUnitMeasurementsUnidades de medida de los productos
c_ObjetoImpSatTaxObjectsObjeto de impuesto de los productos
c_ImpuestoSatTaxesImpuestos aplicables en la factura
c_TipoFactorSatTaxTypesTipos de factor de los impuestos de los productos
c_MotivosCancelacionSatMotivosCancelacionMotivos de cancelación de facturas
c_PaisSatCountriesPaíses conforme al estándar ISO 3166-1
c_EstadoSatPayrollStatesEntidades 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 SATCatálogo APIDescripción
c_BancoSatBanksBancos para transferencias de nómina
c_OrigenRecursoSatFundSourcesOrigen de los recursos de las empresas del SNCF en la nómina
c_PeriodicidadPagoSatPaymentPeriodicitiesPeriodicidad de pago de la nómina
c_TipoContratoSatContractTypesTipos de contrato entre el empleado y el empleador
c_TipoDeduccionSatDeductionTypesTipos de deducción de la nómina
c_TipoHorasSatOvertimeTypesTipos de horas extra que trabaja un empleado
c_TipoIncapacidadSatDisabilityTypesTipos de incapacidad de un empleado
c_TipoJornadaSatWorkdayTypesTipos de jornada laboral de un empleado
c_TipoNominaSatPayrollTypesTipos de nómina
c_TipoOtroPagoSatOtherPaymentTypesTipos de otros pagos que recibe un empleado
c_TipoPercepcionSatEarningTypesTipos de percepción que recibe un empleado
c_TipoRegimenSatTaxRegimeTypesTipos de régimen de contratación del empleado
c_RiesgoPuestoSatJobRisksRiesgo del puesto de trabajo del empleado
c_EstadoSatPayrollStatesEntidades federativas donde puede estar el centro de trabajo
c_SindicalizadoSatUnionizedStatusesIndica si el trabajador pertenece a un sindicato

Catálogos internos de Fiscalapi

Catálogo APIDescripción
ProductTypesTipos de producto de la clasificación UNSPSC (nivel segmento)
ProductDivisionsDivisiones de producto de la clasificación UNSPSC (nivel división)
ProductGroupsGrupos de producto de la clasificación UNSPSC (nivel grupo)
ProductClassesClases de producto de la clasificación UNSPSC (nivel clase)
UserTypesTipos de usuario del sistema
ReportRuleTypesTipos de regla de reportes
TaxesImpuestos aplicables (ISR, IVA, IEPS)
TaxFlagsNaturaleza del impuesto: retención (R) o traslado (T)
TaxTypesTipos de factor de impuesto: Tasa, Cuota o Exento
TaxRulesReglas de cálculo de impuestos por tipo, división, grupo o clase de producto
PersonTypesTipos de persona (física o moral)
InvoiceStatusesEstatus de factura en el ciclo de vida del CFDI
SatValidationTypesTipos de validación SAT que pueden ejecutarse sobre un CFDI

Catálogos de Carta Porte 3.1

Catálogo SATCatálogo APIDescripción
c_CveTransporteSatCveTransporteClave del medio de transporte: Autotransporte (01), Marítimo (02), Aéreo (03), Ferroviario (04)
c_TipoEstacionSatTipoEstacionTipo de estación: Origen Nacional (01), Intermedia (02), Destino Nacional (03)
c_EstacionesSatEstacionesEstaciones y terminales de origen, intermedias y destino para cada tipo de transporte
c_TipoPermisoSatTipoPermisoTipos de permiso otorgados por la SCT para transporte de carga y pasajeros
c_ClaveUnidadPesoSatClaveUnidadPesoClaves de unidades de peso: Kilogramo (KGM), Tonelada (TNE), Libra (LBR), entre otros
c_MotivoTrasladoSatMotivoTrasladoMotivo del traslado de mercancías amparado en el CFDI
c_TipoMateriaSatTipoMateriaTipo de materia o mercancía transportada
c_SectorCOFEPRISSatSectorCOFEPRISSector COFEPRIS: Medicamentos (01), Precursores (02), Psicotrópicos (03), Tóxicas (04), Plaguicidas (05)
c_FormaFarmaceuticaSatFormaFarmaceuticaForma farmacéutica del producto cuando el sector COFEPRIS es Medicamentos
c_CondicionesEspecialesSatCondicionesEspecialesCondiciones especiales de transporte para mercancías reguladas por COFEPRIS
c_RegistroISTMOSatRegistroISTMORegistro del Corredor Interoceánico del Istmo de Tehuantepec
c_ClaveTipoCargaSatClaveTipoCargaClasificación del tipo de carga transportada
c_ColoniaSatColoniaColonias de las ubicaciones de origen y destino
c_LocalidadSatLocalidadLocalidades de las ubicaciones de origen y destino
c_MunicipioSatMunicipioMunicipios de las ubicaciones de origen y destino
c_MaterialPeligrosoSatMaterialPeligrosoMateriales peligrosos conforme a la NOM: explosivos, municiones, sustancias químicas
c_TipoEmbalajeSatTipoEmbalajeTipo de embalaje para transporte de materiales peligrosos
c_ConfigAutotransporteSatConfigAutotransporteConfiguración vehicular del autotransporte (tipo de vehículo y remolque)
c_SubTipoRemSatSubTipoRemSubtipo de remolque o semirremolque del autotransporte
c_ParteTransporteSatParteTransportePartes o segmentos del transporte
c_FiguraTransporteSatFiguraTransporteFiguras de transporte: Operador (01), Propietario, Arrendatario, Notificado
c_ConfigMaritimaSatConfigMaritimaConfiguración del transporte marítimo
c_ContenedorMaritimoSatContenedorMaritimoTipos de contenedor marítimo
c_NumAutorizacionNavieroSatNumAutorizacionNavieroNúmero de autorización del agente naviero consignatario
c_TipoDeServicioSatTipoDeServicioTipo de servicio ferroviario
c_CodigoTransporteAereoSatCodigoTransporteAereoCódigos de líneas aéreas para transporte de carga
c_DerechosDePasoSatDerechosDePasoDerechos de paso (peaje) en rutas ferroviarias
c_TipoCarroSatTipoCarroTipo de carro ferroviario
c_ContenedorSatContenedorEspecificaciones de contenedores ferroviarios
c_TipoDeTraficoSatTipoDeTraficoTipo de tráfico ferroviario
c_RegimenAduaneroSatRegimenAduaneroRégimen aduanero: Importación Definitiva (IMD), Exportación Definitiva (EXD), Temporal (ITR), Depósito Fiscal (DFI), Tránsito (TRA)
c_DocumentoAduaneroSatDocumentoAduaneroTipo de documento aduanero
c_FlagTipoUbicacionSatFlagTipoUbicacionTipo de ubicación: Origen o Destino
c_FlagNavegacionTraficoSatFlagNavegacionTraficoIndicador de navegación y tráfico marítimo
c_FlagMaterialPeligrosoSatFlagMaterialPeligrosoIndicador de material peligroso: Sí o No
c_FlagLogisticaInversaRecoleccionDevolucionSatFlagLogisticaInversaRecoleccionDevolucionIndicador de logística inversa para recolección o devolución
c_FlagTranspInternacSatFlagTranspInternacIndicador de transporte internacional: Sí o No
c_FlagEntradaSalidaMercSatFlagEntradaSalidaMercIndicador de entrada o salida de mercancía
c_FlagRegistroISTMOSatFlagRegistroISTMOIndicador de registro en el Corredor del Istmo de Tehuantepec

Catálogos de Comercio Exterior 2.0

Catálogo SATCatálogo APIDescripción
c_ClavePedimentoSatClavePedimentoClave del pedimento de importación o exportación
c_FraccionArancelariaSatFraccionArancelariaFracción arancelaria de la mercancía en operaciones de comercio exterior
c_INCOTERMSatINCOTERMTérminos de comercio internacional (INCOTERM) que definen responsabilidades en la entrega
c_TipoOperacionSatTipoOperacionTipo de operación de comercio exterior
c_UnidadAduanaSatUnidadAduanaUnidad 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.


GET/api/v4/catalogs

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

GET
/api/v4/catalogs
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
}

GET/api/v4/catalogs/<catalogName>/key/<recordId>

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.

EstadoCuándo ocurreMensaje
404La clave del registro no existe en el catálogo.No such resource for the given Id: <recordId>
404El nombre del catálogo no existe.No existe el catálogo '<catalogName>'.

Request

GET
/v4/catalogs/<catalogName>/key/<recordId>
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
}

GET/api/v4/catalogs/<catalogName>/<searchTerm>

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.

EstadoCuándo ocurreMensaje
404El nombre del catálogo no existe.No existe el catálogo '<catalogName>'.

Request

GET
/v4/catalogs/<catalogName>/<searchTerm>
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
}

¿Le resultó útil esta página?