Contenido
¿Qué es Carta Porte? ¿Cuándo es obligatorio? Tipos de traslado Versión 3.1 (2024) Estructura Ubicaciones Autotransporte FiguraTransporte Generar con Timbrify
🚛

Carta Porte 3.1

Guía completa para entender, generar y validar el Complemento Carta Porte versión 3.1. Obligatorio para el traslado de mercancías por territorio nacional desde 2022.

Versión 3.1 activa Obligatorio desde Jun 2022 Actualizado Ene 2026
🗺️ ¿Qué es el Complemento Carta Porte?

El Complemento Carta Porte es un nodo adicional que se incorpora a un CFDI (generalmente de tipo Traslado o Ingreso) para amparar el traslado de mercancías por vía terrestre, aérea, marítima o ferroviaria dentro del territorio nacional.

Funciona como el documento legal que los transportistas y propietarios de la mercancía deben presentar ante las autoridades durante el traslado. Reemplazó a la antigua Carta Porte en papel.

⚠️ Sin Carta Porte vigente, las autoridades pueden detener el traslado y aplicar multas de hasta $5,000 MXN por parte del SAT y la Guardia Nacional.
📋 ¿Cuándo es obligatorio?

El Complemento Carta Porte es obligatorio cuando:

SituaciónObligatorio
Traslado de mercancías en vehículo propio o rentado por el dueño
Transporte contratado a un tercero (autotransportista)
Transporte entre estados o municipios
Traslado local (misma ciudad, corta distancia, mismo dueño)No siempre
Paquetería y mensajería (envíos menores a 350 kg)Exentos
Traslado de bienes intangibles / serviciosNo aplica
🔀 Tipos de traslado
📦
Dueño traslada
🚚
CFDI Traslado + CP
+
🏪
Transportista
💰
CFDI Ingreso + CP
EscenarioTipo CFDIEmisor del CFDI
El dueño de la mercancía traslada con vehículo propioT - TrasladoEl dueño de la mercancía
El dueño contrata un transportista externoI - IngresoEl transportista (quien cobra el flete)
Traslado de mercancias propias entre sucursalesT - TrasladoLa empresa propietaria
🆕 Cambios en versión 3.1 (2024)

La versión 3.1 del complemento, vigente desde junio 2024, trajo cambios importantes:

Coordenadas GPS obligatorias en ubicaciones de origen y destino (latitud y longitud).
RFC del operador obligatorio para transportistas. El chofer debe estar dado de alta ante el SAT.
Número de permiso SCT actualizado a catálogo c_TipoPermiso versión 2024.
Peso bruto total validado contra los límites por tipo de vehículo en el catálogo SCT.
📍 Nodo Ubicaciones

Define el origen y el o los destinos del traslado. Se requiere al menos un origen (Origen) y un destino (Destino).

CampoReq.Descripción
TipoUbicacionObligatorio"Origen" o "Destino"
IDUbicacionObligatorioIdentificador único de la ubicación (OR000001, DE000001...)
RFCRemitenteDestinatarioObligatorioRFC del dueño de la mercancía en esa ubicación
FechaHoraSalidaLlegadaObligatorioFecha y hora estimada de salida (origen) o llegada (destino). Formato ISO 8601.
DomicilioObligatorioDirección completa: Calle, Municipio, Estado, País, CodigoPostal
Latitud / LongitudObligatorio v3.1Coordenadas GPS. Nuevo en versión 3.1.
🚚 Nodo Autotransporte Federal
CampoReq.Descripción
PermSCTObligatorioTipo de permiso SCT del transportista (catálogo c_TipoPermiso)
NumPermisoSCTObligatorioNúmero de permiso otorgado por la SCT
IdentificacionVehicularObligatorioDatos del vehículo: ConfigVehicular, PesoBrutoVehicular, PlacaVM
SegurosObligatorioAseguradora de responsabilidad civil y número de póliza
RemolquesCondicionalSi aplica: SubTipoRem y Placa de cada remolque
👤 Nodo FiguraTransporte

Define a los actores del traslado. En autotransporte federal siempre se requiere al menos el Operador (chofer).

CampoReq.Descripción
TipoFiguraObligatorio"01" = Operador, "02" = Propietario, "03" = Arrendador, "04" = Notificado
RFCFiguraObligatorioRFC del operador (chofer). Nuevo como obligatorio en v3.1.
NombreFiguraObligatorioNombre del operador
NumLicenciaCondicionalNúmero de licencia federal si TipoFigura = "01"
⚡ Generar Carta Porte con Timbrify

Timbrify maneja el Complemento Carta Porte 3.1 completo. Solo pasa los datos del traslado y nosotros construimos el nodo XML correctamente.

const cfdi = await client.invoices.stamp({
  tipoComprobante: 'T', // Traslado
  // emisor y receptor como en CFDI normal...

  complementoCartaPorte: {
    version: '3.1',
    transpInternac: 'No',
    ubicaciones: [
      {
        tipoUbicacion: 'Origen',
        idUbicacion: 'OR000001',
        rfcRemitenteDestinatario: 'MEM901231L84',
        fechaHoraSalidaLlegada: '2026-02-24T08:00:00',
        latitud: 19.4326,
        longitud: -99.1332,
        domicilio: { municipio: 'Cuauhtémoc', estado: 'CMX', codigoPostal: '06600' },
      },
      {
        tipoUbicacion: 'Destino',
        idUbicacion: 'DE000001',
        rfcRemitenteDestinatario: 'CLI901231AB1',
        fechaHoraSalidaLlegada: '2026-02-24T14:00:00',
        latitud: 20.9674,
        longitud: -89.5926,
        domicilio: { municipio: 'Mérida', estado: 'YUC', codigoPostal: '97000' },
      },
    ],
    mercancias: [{
      bienesTransp: '52161557', // Clave producto SAT
      descripcion: 'Autopartes',
      cantidad: 200,
      claveUnidad: 'KGM',
      pesoEnKg: 500,
    }],
    autotransporte: {
      permSct: 'TPAF01',
      numPermisoSct: 'SCT-TPAF01-12345',
      configVehicular: 'C2',
      placaVm: 'AAA-000-A',
      aseguradora: 'Qualitas',
      polizaRC: 'POL-12345678',
    },
    figurasTransporte: [{
      tipoFigura: '01', // Operador
      rfcFigura: 'OEPM901231AB1',
      nombreFigura: 'PEDRO MARTINEZ OLIVA',
      numLicencia: 'LIC-FED-123456',
    }],
  },
});
Ver documentación API Hablar con soporte