Modules documented: - MAI-003 (OT): README, REQUERIMIENTOS, RESUMEN-EPICA, 10 US - MAI-006 (Tracking): README, REQUERIMIENTOS, RESUMEN-EPICA - MAI-008 (Incidencias): 3 US (18 SP) - MAI-011 (Flota): README, REQUERIMIENTOS, RESUMEN-EPICA - MAI-012 (Combustible): 3 US (18 SP) - MAI-013 (Mantenimiento): 3 US (18 SP) - MAI-014 (Carriers): 3 US (18 SP) - MAI-015 (Portal): 3 US (18 SP) - MAE-016 (Carta Porte): 10 US - MAE-017 (HOS): 3 US (16 SP) - MAE-018 (Reportes): 3 US (18 SP) Phase 2+3 complete: 13 modules, 50+ User Stories Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
192 lines
10 KiB
Markdown
192 lines
10 KiB
Markdown
# MAE-016: Carta Porte CFDI
|
|
|
|
**Modulo:** MAE-016 | **Version:** 1.0.0 | **Actualizado:** 2026-01-27
|
|
**Epica:** EPIC-MAE-016 - Carta Porte CFDI
|
|
**Schema BD:** compliance
|
|
**DDL:** `database/ddl/08-compliance-schema-ddl.sql`
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
Modulo de generacion, timbrado y administracion del **Complemento Carta Porte version 3.1** para CFDI, conforme a los lineamientos del Servicio de Administracion Tributaria (SAT). Este complemento es obligatorio para el traslado de bienes y mercancias en territorio nacional por via de autotransporte federal.
|
|
|
|
El modulo automatiza la construccion del XML del complemento a partir de los datos operativos del viaje (origen, destino, mercancias, operador, unidad, remolques), ejecuta las validaciones de campos obligatorios conforme a los catalogos del SAT, se integra con un Proveedor Autorizado de Certificacion (PAC) para el timbrado digital y ofrece funcionalidades de descarga PDF, cancelacion con motivo y expediente fiscal por viaje.
|
|
|
|
---
|
|
|
|
## Contexto Legal y Normativo
|
|
|
|
- **Base legal:** Regla 2.7.7.1 de la Resolucion Miscelanea Fiscal vigente; articulo 29-A del Codigo Fiscal de la Federacion.
|
|
- **Version complemento:** Carta Porte 3.1, vigente desde el **17 de julio de 2024**.
|
|
- **Obligatoriedad:** Toda persona fisica o moral que transporte bienes o mercancias en territorio nacional por via terrestre, maritima, aerea o ferroviaria debe emitir CFDI con complemento Carta Porte.
|
|
- **Sanciones:** La falta de este documento durante el traslado implica multas y posible decomiso de mercancias por parte de la autoridad fiscal.
|
|
- **Catalogos SAT:** Se utilizan catalogos oficiales de claves de producto/servicio, unidades de medida, tipos de permiso SCT, configuracion vehicular, claves de material peligroso y tipos de figura de transporte.
|
|
- **Motivos de cancelacion:** 01 (Comprobante emitido con errores con relacion), 02 (Comprobante emitido con errores sin relacion), 03 (No se llevo a cabo la operacion), 04 (Operacion nominativa relacionada en factura global).
|
|
|
|
---
|
|
|
|
## Tipos de CFDI con Carta Porte
|
|
|
|
| Tipo | Enum DDL | Descripcion | Escenario |
|
|
|------|----------|-------------|-----------|
|
|
| **CFDI de Ingreso** | `INGRESO` | Factura por servicio de transporte prestado a un tercero | Empresa transportista que cobra por el traslado de mercancias del cliente |
|
|
| **CFDI de Traslado** | `TRASLADO` | Comprobante de traslado de mercancias propias | Empresa que mueve sus propias mercancias sin cobrar servicio de flete |
|
|
|
|
---
|
|
|
|
## Actores
|
|
|
|
| Actor | Responsabilidad |
|
|
|-------|-----------------|
|
|
| **Facturador** | Genera la carta porte desde el viaje, valida datos, solicita timbrado al PAC, descarga PDF/XML |
|
|
| **Contador** | Revisa expediente fiscal, gestiona cancelaciones, genera reportes fiscales mensuales |
|
|
| **Coordinador de Operaciones** | Asegura que los datos del viaje (mercancias, ubicaciones, figuras) esten completos antes del despacho |
|
|
| **Operador/Conductor** | Porta el PDF/XML en la unidad durante el traslado; consulta en modo offline desde la app movil |
|
|
|
|
---
|
|
|
|
## Funcionalidades Principales
|
|
|
|
1. **Generacion automatica desde viaje:** El sistema construye el complemento Carta Porte 3.1 a partir de los datos del viaje (ubicaciones, mercancias, operador, unidad, remolques) sin captura manual redundante.
|
|
2. **Validacion de campos SAT:** Antes de enviar al PAC, el sistema valida todos los campos obligatorios segun el tipo de CFDI (Ingreso/Traslado), incluyendo catalogos SAT (BienesTransp, ClaveUnidad, ConfigVehicular, TipoPermiso, TipoFigura).
|
|
3. **Timbrado con PAC:** Integracion con proveedores autorizados de certificacion (Finkok, Facturapi, SW Sapien) para timbrar el CFDI y obtener UUID fiscal, cadena de certificacion y sello digital.
|
|
4. **Generacion de PDF:** Representacion impresa del CFDI con complemento Carta Porte, incluyendo datos fiscales, mercancias, ubicaciones, figuras de transporte y codigo QR de verificacion.
|
|
5. **Cancelacion de CFDI:** Envio de solicitud de cancelacion al SAT a traves del PAC con motivo (01, 02, 03, 04), UUID de sustitucion cuando aplica y bitacora de cancelaciones.
|
|
6. **Expediente fiscal por viaje:** Asociacion del UUID del CFDI timbrado, XML, PDF y QR con el viaje/OT, permitiendo consulta rapida y auditoria.
|
|
7. **Disponibilidad offline:** El operador puede descargar y consultar el PDF, XML y QR desde la app movil en modo offline, cumpliendo con la obligacion de portarlo durante el traslado.
|
|
8. **Reporte fiscal mensual:** Generacion de reporte con todos los CFDI emitidos, cancelados y vigentes en un periodo, agrupados por tipo, serie, estado y totales.
|
|
|
|
---
|
|
|
|
## Entidades (desde DDL - schema compliance)
|
|
|
|
| Tabla | Descripcion | Campos clave |
|
|
|-------|-------------|--------------|
|
|
| `compliance.cartas_porte` | CFDI con complemento Carta Porte 3.1 | id, viaje_id, tipo_cfdi, uuid_cfdi, emisor_rfc, receptor_rfc, estado, xml_cfdi, pdf_url |
|
|
| `compliance.ubicaciones_carta_porte` | Nodos Ubicacion (origen/destino) de la carta porte | id, carta_porte_id, tipo_ubicacion, codigo_postal, fecha_hora_salida_llegada, distancia_recorrida |
|
|
| `compliance.mercancias_carta_porte` | Nodo Mercancias transportadas en el complemento | id, carta_porte_id, bienes_transp, descripcion, cantidad, peso_en_kg, material_peligroso |
|
|
| `compliance.figuras_transporte` | Nodo FiguraTransporte (operador, propietario, arrendador) | id, carta_porte_id, tipo_figura, rfc_figura, num_licencia |
|
|
| `compliance.autotransporte_carta_porte` | Nodo Autotransporte federal (vehiculo, permisos, remolques) | id, carta_porte_id, perm_sct, num_permiso_sct, config_vehicular, placa_vm, remolques |
|
|
|
|
### ENUMs
|
|
|
|
| Enum | Valores | Uso |
|
|
|------|---------|-----|
|
|
| `compliance.estado_carta_porte` | BORRADOR, VALIDADA, TIMBRADA, CANCELADA | Ciclo de vida del CFDI |
|
|
| `compliance.tipo_cfdi_carta_porte` | INGRESO, TRASLADO | Tipo de comprobante fiscal |
|
|
|
|
---
|
|
|
|
## API Endpoints (propuestos)
|
|
|
|
| Metodo | Ruta | Descripcion |
|
|
|--------|------|-------------|
|
|
| POST | `/api/v1/carta-porte` | Crear carta porte desde viaje |
|
|
| GET | `/api/v1/carta-porte/:id` | Obtener detalle de carta porte |
|
|
| GET | `/api/v1/carta-porte` | Listar cartas porte (filtros: estado, fecha, tipo_cfdi) |
|
|
| POST | `/api/v1/carta-porte/:id/validar` | Validar campos obligatorios SAT |
|
|
| POST | `/api/v1/carta-porte/:id/timbrar` | Timbrar CFDI con PAC |
|
|
| GET | `/api/v1/carta-porte/:id/pdf` | Descargar PDF de la carta porte |
|
|
| GET | `/api/v1/carta-porte/:id/xml` | Descargar XML del CFDI |
|
|
| POST | `/api/v1/carta-porte/:id/cancelar` | Cancelar CFDI con motivo |
|
|
| GET | `/api/v1/carta-porte/expediente/:viajeId` | Consultar expediente fiscal del viaje |
|
|
| POST | `/api/v1/carta-porte/:id/mercancias` | Agregar mercancias a la carta porte |
|
|
| PUT | `/api/v1/carta-porte/:id/mercancias/:mercanciaId` | Actualizar mercancia |
|
|
| POST | `/api/v1/carta-porte/:id/figuras` | Registrar figuras de transporte |
|
|
| POST | `/api/v1/carta-porte/:id/autotransporte` | Configurar datos de autotransporte federal |
|
|
| GET | `/api/v1/carta-porte/reporte-fiscal` | Generar reporte fiscal mensual |
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
| ID | Titulo | SP | Prioridad | Estado |
|
|
|----|--------|----|-----------|--------|
|
|
| US-MAE016-001 | Generar carta porte desde viaje | 8 | P0 | Backlog |
|
|
| US-MAE016-002 | Validar datos obligatorios SAT | 5 | P0 | Backlog |
|
|
| US-MAE016-003 | Timbrar CFDI con PAC | 8 | P0 | Backlog |
|
|
| US-MAE016-004 | Descargar PDF de carta porte | 3 | P1 | Backlog |
|
|
| US-MAE016-005 | Cancelar CFDI con motivo | 5 | P1 | Backlog |
|
|
| US-MAE016-006 | Consultar expediente fiscal | 3 | P1 | Backlog |
|
|
| US-MAE016-007 | Agregar mercancias transportadas | 5 | P0 | Backlog |
|
|
| US-MAE016-008 | Registrar figuras de transporte | 5 | P1 | Backlog |
|
|
| US-MAE016-009 | Configurar datos autotransporte federal | 5 | P1 | Backlog |
|
|
| US-MAE016-010 | Generar reporte fiscal mensual | 3 | P2 | Backlog |
|
|
|
|
**Total Story Points:** 50
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
|
|
| Modulo | Razon |
|
|
|--------|-------|
|
|
| MAI-001 Fundamentos | Auth, RBAC, multi-tenancy, tenant_id para RLS |
|
|
| MAI-003 Ordenes de Transporte | Datos de OT/embarque como origen de la carta porte |
|
|
| MAI-005 Despacho | Viaje despachado como prerequisito para generar carta porte |
|
|
| MAI-009 Facturacion Transporte | CFDI de Ingreso se vincula con factura de transporte |
|
|
| MAI-011 Gestion de Flota | Datos de unidad, remolques, operadores (placas, licencias, permisos SCT) |
|
|
|
|
### Bloquea a
|
|
|
|
| Modulo | Razon |
|
|
|--------|-------|
|
|
| MAI-007 POD y Cierre | El cierre operativo requiere la carta porte timbrada |
|
|
| MAI-015 Portal Cliente | El portal muestra carta porte al cliente para descarga |
|
|
| MAE-018 Reportes y KPIs | Los reportes fiscales consolidan datos de cartas porte |
|
|
|
|
---
|
|
|
|
## Flujo Principal
|
|
|
|
```
|
|
1. GENERAR CARTA PORTE
|
|
Coordinador/Facturador selecciona viaje despachado
|
|
Sistema extrae datos: emisor, receptor, ubicaciones, mercancias, operador, unidad
|
|
Crea registro en compliance.cartas_porte con estado BORRADOR
|
|
|
|
2. AGREGAR/VERIFICAR MERCANCIAS
|
|
Sistema carga mercancias del viaje/OT
|
|
Facturador ajusta claves SAT (bienes_transp, clave_unidad)
|
|
Registra peso_en_kg, material_peligroso si aplica
|
|
|
|
3. REGISTRAR FIGURAS DE TRANSPORTE
|
|
Sistema carga operador asignado como tipo_figura '01' (Operador)
|
|
Se agregan propietario ('02') o arrendador ('03') si aplica
|
|
Valida num_licencia del operador
|
|
|
|
4. CONFIGURAR AUTOTRANSPORTE
|
|
Sistema carga datos de unidad: perm_sct, config_vehicular, placa_vm
|
|
Agrega remolques con sub_tipo_rem y placa
|
|
Valida catalogo de configuracion vehicular SAT
|
|
|
|
5. VALIDAR DATOS SAT
|
|
Sistema ejecuta validaciones de campos obligatorios
|
|
Verifica catalogos SAT (BienesTransp, ClaveUnidad, ConfigVehicular)
|
|
Si pasa: estado = VALIDADA. Si falla: muestra errores especificos
|
|
|
|
6. TIMBRAR CON PAC
|
|
Sistema genera XML del CFDI con complemento Carta Porte 3.1
|
|
Envia a PAC (Finkok/Facturapi/SW)
|
|
Recibe uuid_cfdi, fecha_timbrado, sello, cadena
|
|
Estado = TIMBRADA. Almacena xml_cfdi
|
|
|
|
7. GENERAR PDF Y QR
|
|
Sistema genera representacion impresa con datos fiscales
|
|
Incluye codigo QR de verificacion SAT
|
|
Almacena pdf_url y qr_url
|
|
|
|
8. CANCELAR (si requiere)
|
|
Facturador/Contador selecciona motivo (01, 02, 03, 04)
|
|
Si motivo 01: indica uuid_sustitucion
|
|
Envia solicitud al PAC
|
|
Estado = CANCELADA. Registra fecha_cancelacion y motivo
|
|
```
|
|
|
|
---
|
|
|
|
*MAE-016 Carta Porte CFDI - ERP Transportistas v1.0.0 - Sistema SIMCO v4.0.0*
|