erp-retail/docs/08-epicas/EPIC-RT-010-facturacion.md

9.9 KiB

EPICA: EPIC-RT-010 - Facturación CFDI

Metadata

Campo Valor
ID EPIC-RT-010
Nombre Facturación CFDI
Modulo facturacion
Fase Fase 1 - MVP
Prioridad P0 (Critico)
Estado Backlog
Story Points 35
Sprint(s) Sprint 6-7

Descripcion

Generación de comprobantes fiscales digitales (CFDI 4.0) para ventas en tienda y online. Incluye facturación a público en general, facturación a cliente con RFC, notas de crédito, cancelaciones y portal de autofactura para clientes.


Objetivo de Negocio

  • Cumplimiento fiscal obligatorio
  • Facturación inmediata en POS
  • Autofactura para clientes
  • Control de notas de crédito
  • Reportes fiscales

Historias de Usuario

ID Historia Prioridad SP Estado
US-RT010-001 Como cajero, quiero generar factura inmediata al cerrar venta si el cliente la solicita P0 5 Backlog
US-RT010-002 Como cajero, quiero generar factura a público en general para ventas sin RFC P0 3 Backlog
US-RT010-003 Como cliente, quiero autofacturar desde portal web usando mi ticket P0 8 Backlog
US-RT010-004 Como contador, quiero generar nota de crédito por devolución P0 5 Backlog
US-RT010-005 Como contador, quiero cancelar CFDI con motivo de cancelación P0 3 Backlog
US-RT010-006 Como cliente, quiero recibir mi factura PDF y XML por email P0 3 Backlog
US-RT010-007 Como contador, quiero ver reporte de CFDIs emitidos por período P0 3 Backlog
US-RT010-008 Como admin, quiero configurar datos fiscales de la empresa P0 2 Backlog
US-RT010-009 Como contador, quiero regenerar PDF de factura existente P1 2 Backlog
US-RT010-010 Como admin, quiero validar RFC del cliente contra SAT (opcional) P2 1 Backlog

Total Story Points: 35 SP


CFDI 4.0 - Elementos Clave

┌─────────────────────────────────────────────────────────┐
│              ESTRUCTURA CFDI 4.0                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  EMISOR                                                 │
│  ├── RFC de la empresa                                  │
│  ├── Nombre o razón social                              │
│  ├── Régimen fiscal                                     │
│  └── Código postal del domicilio fiscal                 │
│                                                         │
│  RECEPTOR                                               │
│  ├── RFC del cliente (o XAXX010101000 para público)     │
│  ├── Nombre o razón social                              │
│  ├── Régimen fiscal                                     │
│  ├── Código postal del domicilio fiscal                 │
│  └── Uso del CFDI (G03 - Gastos en general)             │
│                                                         │
│  CONCEPTOS                                              │
│  ├── Clave de producto/servicio SAT                     │
│  ├── Descripción                                        │
│  ├── Cantidad y unidad                                  │
│  ├── Valor unitario                                     │
│  ├── Importe                                            │
│  └── Impuestos (IVA, IEPS si aplica)                    │
│                                                         │
│  COMPLEMENTOS                                           │
│  └── Pago (si es PPD - Pago en Parcialidades)           │
│                                                         │
│  TIMBRE FISCAL DIGITAL (TFD)                            │
│  ├── UUID (folio fiscal)                                │
│  ├── Fecha de timbrado                                  │
│  ├── Sello del SAT                                      │
│  └── Sello del emisor                                   │
│                                                         │
└─────────────────────────────────────────────────────────┘

Flujo de Facturación

FACTURACIÓN INMEDIATA (POS)

┌─────────────┐
│   VENTA     │  ← Cajero cierra venta
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ ¿FACTURA?   │ ─── No ──► Ticket simple
└──────┬──────┘
       │ Si
       ▼
┌─────────────┐
│ DATOS RFC   │  ← Captura RFC y datos fiscales
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  TIMBRADO   │  ← PAC genera UUID
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ PDF + XML   │  ← Envío por email
└─────────────┘


AUTOFACTURA (Portal)

┌─────────────┐
│   PORTAL    │  ← Cliente ingresa
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   TICKET    │  ← Ingresa folio del ticket
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ DATOS RFC   │  ← Ingresa sus datos fiscales
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  TIMBRADO   │  ← PAC genera UUID
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  DESCARGA   │  ← PDF + XML disponibles
└─────────────┘

Criterios de Aceptacion de la Epica

Funcionales:

  • Facturación inmediata en POS
  • Factura a público en general
  • Portal de autofactura
  • Notas de crédito por devolución
  • Cancelación de CFDIs
  • Envío por email
  • Reportes de CFDIs
  • Configuración de datos fiscales

No Funcionales:

  • Timbrado < 5 segundos
  • Alta disponibilidad del PAC
  • Almacenamiento de XMLs por 5 años

Tecnicos:

  • Integración con PAC (Finkok, Facturama, etc.)
  • Generación de XML CFDI 4.0
  • Generación de PDF personalizado
  • Validación de RFC vs lista negra SAT

Dependencias

Esta epica depende de:

Epica/Modulo Estado Bloqueante
EPIC-RT-001 Fundamentos Backlog Si
EPIC-RT-002 POS Backlog Si

Esta epica bloquea:

Epica/Modulo Razon
Reportes fiscales Requiere CFDIs emitidos

Desglose Tecnico

Database:

  • Schema: invoicing
  • Tablas: 6 (invoices, invoice_items, cancellations, fiscal_data, xml_storage, pac_logs)
  • Funciones: 2 (generate_xml, validate_rfc)
  • Indices: Por UUID, fecha, RFC

Backend:

  • Modulo: invoicing
  • Entities: 4 (Invoice, InvoiceItem, Cancellation, FiscalData)
  • Services: PACService, XMLGenerator, PDFGenerator
  • Endpoints: 12
  • Tests: 28

Frontend:

  • Paginas: 4 (InvoiceList, InvoiceDetail, SelfService, Config)
  • Componentes: 10 (InvoiceForm, RFCInput, PDFViewer, etc.)
  • Portal público de autofactura
  • Stores: 1 (invoicingStore)

Endpoints API

Metodo Endpoint Descripcion
POST /api/invoices Crear y timbrar factura
GET /api/invoices/:id Detalle de factura
GET /api/invoices/:id/pdf Descargar PDF
GET /api/invoices/:id/xml Descargar XML
POST /api/invoices/:id/send Enviar por email
POST /api/invoices/:id/cancel Cancelar factura
POST /api/invoices/credit-note Crear nota de crédito
GET /api/invoices/report Reporte de CFDIs
POST /api/invoices/self-service Autofactura (público)
POST /api/invoices/validate-rfc Validar RFC

PAC (Proveedor Autorizado de Certificación)

PAC Notas
Finkok Popular, buena documentación
Facturama API REST moderna
SW Sapien Económico para alto volumen
Facturify Fácil integración

Riesgos

Riesgo Probabilidad Impacto Mitigacion
Caída del PAC Baja Alto PAC de respaldo
Cambios normativos Media Alto Monitoreo de actualizaciones
XMLs corruptos Baja Alto Validación antes de timbrar

Nota Técnica

La facturación electrónica en México (CFDI) es obligatoria y debe cumplir con los lineamientos del SAT. El sistema debe estar preparado para actualizaciones normativas frecuentes.


Definition of Ready (DoR)

  • Historias de usuario definidas
  • Criterios de aceptacion claros
  • Dependencias identificadas
  • Estimacion completada
  • PAC seleccionado y contratado
  • Certificados de sello digital (CSD) disponibles
  • Catálogo de productos con claves SAT

Definition of Done (DoD)

  • Facturación inmediata funcionando
  • Portal de autofactura operativo
  • Notas de crédito y cancelaciones
  • Integración con PAC estable
  • Tests de integración pasando
  • Documentación de API

Historial

Fecha Cambio Autor
2025-12-08 Creacion de epica Claude-Agent

Creada por: Claude-Agent Fecha: 2025-12-08 Ultima actualizacion: 2025-12-08