erp-transportistas-v2/docs/02-definicion-modulos/MAI-009-facturacion-transporte/historias-usuario/US-MAI009-003.md
Adrian Flores Cortes 569eaeb5a4 docs: Add MAI-009 (Facturación) and MAI-010 (Liquidaciones) specifications
MAI-009 Facturación Transporte (31 SP):
- README, REQUERIMIENTOS (7 RF), RESUMEN-EPICA
- 5 User Stories: generación factura, recargos, CFDI/Carta Porte,
  conciliación/pagos, estados de cuenta

MAI-010 Liquidaciones (31 SP):
- README, REQUERIMIENTOS (6 RF), RESUMEN-EPICA
- 5 User Stories: esquemas pago, cálculo por viaje, viáticos,
  deducciones, generar/autorizar liquidación

Part of Phase 2 - P0 Critical Modules specification

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 02:05:03 -06:00

15 KiB

US-MAI009-003: Timbrar CFDI con Carta Porte

ID: US-MAI009-003 Módulo: MAI-009 (Facturación Transporte) Prioridad: Alta Story Points: 8


Historia de Usuario

Como facturador Quiero timbrar la factura como CFDI 4.0 con complemento Carta Porte Para cumplir con las obligaciones fiscales y entregar documentos válidos al cliente


Criterios de Aceptación

CA-001: Validar datos antes de timbrar

Dado que tengo un borrador de factura Cuando intento timbrar Entonces el sistema valida: datos fiscales del cliente, líneas correctas, Carta Porte completa

CA-002: Generar XML CFDI 4.0

Dado que los datos son válidos Cuando proceso el timbrado Entonces se genera el XML con estructura CFDI 4.0

CA-003: Incluir complemento Carta Porte 3.1

Dado que los viajes tienen datos de Carta Porte Cuando se genera el XML Entonces incluye el complemento con: ubicaciones, mercancías, autotransporte

CA-004: Enviar a PAC y recibir respuesta

Dado que el XML está listo Cuando se envía al PAC Entonces se recibe: UUID, sello, cadena original, o errores de validación

CA-005: Manejar errores de validación

Dado que el PAC retorna error Cuando veo el resultado Entonces se muestran los errores específicos para corregir

CA-006: Generar PDF representación impresa

Dado que el CFDI fue timbrado Cuando descargo el PDF Entonces incluye: datos fiscales, QR, cadena, sello, complemento CP


Mockup / UI

┌─────────────────────────────────────────────────────────────────┐
│ TIMBRAR CFDI                                           ✕        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Factura: BORRADOR | Total: $55,338.96 MXN                     │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  VALIDACIÓN PREVIA                                              │
│                                                                 │
│  DATOS FISCALES                                                 │
│  ✓ RFC emisor válido: TRA850101XXX                             │
│  ✓ RFC receptor válido: DAB850101XXX                           │
│  ✓ Régimen fiscal configurado                                  │
│  ✓ Uso CFDI seleccionado: G03                                  │
│                                                                 │
│  FACTURA                                                        │
│  ✓ Al menos una línea de concepto                              │
│  ✓ Totales calculados correctamente                            │
│  ✓ Forma y método de pago seleccionados                        │
│                                                                 │
│  CARTA PORTE (3 viajes)                                         │
│  ✓ VJE-0120: Ubicaciones y mercancías completas               │
│  ✓ VJE-0125: Ubicaciones y mercancías completas               │
│  ✓ VJE-0128: Ubicaciones y mercancías completas               │
│  ✓ Datos de autotransporte completos                          │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  ✅ VALIDACIÓN EXITOSA - Listo para timbrar                    │
│                                                                 │
│  PAC: Finkok (Primario)                                         │
│  Ambiente: [Producción ▼]                                      │
│                                                                 │
│  [Cancelar]                              [🔐 Timbrar CFDI]     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Resultado Exitoso

┌─────────────────────────────────────────────────────────────────┐
│ ✅ CFDI TIMBRADO EXITOSAMENTE                          ✕        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  DATOS DEL TIMBRE                                               │
│                                                                 │
│  Serie: A                                                       │
│  Folio: 00456                                                   │
│  UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8                    │
│                                                                 │
│  Fecha timbrado: 2026-01-27 14:32:15                           │
│  PAC: Finkok                                                    │
│  Certificado SAT: 00001000000506258000                         │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  ARCHIVOS GENERADOS                                             │
│                                                                 │
│  📄 A-00456.pdf    (Representación impresa)    [Descargar]     │
│  📄 A-00456.xml    (CFDI timbrado)             [Descargar]     │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  COMPLEMENTO CARTA PORTE                                        │
│                                                                 │
│  IdCCP: CCC000001234567890                                      │
│  Versión: 3.1                                                   │
│  3 ubicaciones | 5 mercancías | 1 figura transporte            │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  SIGUIENTE PASO                                                 │
│                                                                 │
│  [Enviar al cliente]  [Ver factura]  [Nueva factura]           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Error de Validación

┌─────────────────────────────────────────────────────────────────┐
│ ❌ ERROR AL TIMBRAR                                    ✕        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  El PAC rechazó el CFDI. Corrija los siguientes errores:       │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  ERRORES SAT                                                    │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ ❌ CCE205 - El RFC del receptor no está en la lista LCO│   │
│  │    RFC: DAB850101XXX                                    │   │
│  │    Acción: Verificar RFC correcto del cliente          │   │
│  ├─────────────────────────────────────────────────────────┤   │
│  │ ❌ CCP155 - La clave del producto no es válida         │   │
│  │    Línea 2: Clave "99999999" no existe en catálogo    │   │
│  │    Acción: Corregir clave de producto SAT             │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  Código respuesta PAC: 307                                      │
│  Mensaje: Documento no válido según esquema XSD                │
│                                                                 │
│  [Volver a editar]                    [Reintentar timbrado]    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Proceso de Cancelación

┌─────────────────────────────────────────────────────────────────┐
│ CANCELAR CFDI                                          ✕        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Factura: A-00456                                               │
│  UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8                    │
│  Total: $55,338.96 MXN                                          │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  ⚠ ADVERTENCIA                                                 │
│  La cancelación de un CFDI tiene implicaciones fiscales.       │
│  Una vez cancelada, no se puede revertir.                      │
│                                                                 │
│  ─────────────────────────────────────────────────────────────  │
│                                                                 │
│  Motivo de cancelación:                                         │
│  [01 - Comprobante emitido con errores con relación▼]          │
│    ○ 01 - Con errores con relación                             │
│    ○ 02 - Con errores sin relación                             │
│    ○ 03 - No se llevó a cabo la operación                      │
│    ○ 04 - Operación nominativa relacionada                     │
│                                                                 │
│  UUID que sustituye (si aplica):                               │
│  [________________________________]                             │
│                                                                 │
│  Justificación interna:                                         │
│  [Error en datos del cliente, se reexpide corregida          ] │
│                                                                 │
│  [Cancelar operación]                    [⚠ Cancelar CFDI]    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Notas Técnicas

  • Integración con PAC Finkok (primario) y SW Sapien (respaldo)
  • XML se genera según esquema SAT CFDI 4.0
  • Complemento Carta Porte 3.1 se obtiene de MAE-016
  • UUID y XML se almacenan en billing.facturas_transporte
  • PDF se genera con template HTML + puppeteer
  • Failover automático si PAC primario falla

Definición de Done

  • Validación previa de datos fiscales
  • Generación de XML CFDI 4.0
  • Inclusión de complemento Carta Porte 3.1
  • Integración con PAC (timbrado)
  • Manejo de errores de validación SAT
  • Generación de PDF representación
  • Proceso de cancelación con motivo
  • Failover a PAC secundario
  • Tests de timbrado y cancelación