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>
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