Bandeja de Solicitudes Financieras
Caso práctico completo del framework aplicado a la gestión de solicitudes financieras en InnovaFamily: anulación de facturas, notas crédito y facturación de servicios.
Contexto del caso
El equipo financiero de InnovaFamily necesitaba una bandeja unificada para gestionar solicitudes de anulación de facturas, generación de notas crédito y facturación de servicios educativos, con trazabilidad completa, permisos por rol y estados auditables.
Este caso demuestra cómo el framework convierte una necesidad de negocio compleja en un feature bien especificado, implementado y entregado.
OpenSpec aplicado
proposal.md
Problema: Los equipos financieros gestionaban solicitudes por correo y hojas de cálculo, sin trazabilidad ni auditoría.
Solución: Bandeja centralizada con flujo de aprobación, estados auditables y ejecución automática de las acciones financieras correspondientes.
Decisión: Módulo independiente con integración al sistema de facturación existente, sin reemplazarlo.
design.md
Arquitectura:
- Frontend React con bandeja, filtros por estado/tipo y vista de detalle
- Backend con orquestador de solicitudes financieras y motor de reglas de estado
- Integración con servicios de facturación y notas crédito via API interna
- Persistencia con auditoría completa (actor, timestamp, evidencia por decisión)
Modelo de datos:
financial_request: id, type, status, requester_id, created_atrequest_status_history: request_id, from_status, to_status, actor_id, timestamp, notesrequest_evidence: request_id, file_url, uploaded_by, uploaded_at
Contrato API principal:
GET /financial-requests— listar con filtros (status, type, date_range)GET /financial-requests/:id— detalle completo con historialPOST /financial-requests/:id/approve— aprobar solicitudPOST /financial-requests/:id/reject— rechazar con motivoPOST /financial-requests/:id/execute— ejecutar acción financiera
tasks.md (resumen)
- Crear modelo de datos y migración
- Implementar endpoints de consulta (GET)
- Implementar endpoints de acción (approve/reject/execute)
- Integrar con servicio de facturación
- Implementar frontend — bandeja con filtros
- Implementar frontend — vista de detalle y acciones
- Tests de integración — endpoints y reglas de estado
- UAT con equipo financiero
Quality Gates aplicados
| Gate | Estado | Aprobado por |
|---|---|---|
| Spec Gate | ✅ Aprobado | Tech Lead + PO Financiero |
| Architecture Gate | ✅ Aprobado | Tech Lead |
| Security Gate | ✅ Aprobado | Tech Lead |
| Testing Gate | ✅ Aprobado | QA Agent |
| Code Review Gate | ✅ Aprobado | 2 reviewers |
| UAT Gate | ✅ Aprobado | PO + 3 usuarios financieros |
| Release Gate | ✅ Aprobado | Tech Lead |
Aprendizajes
- El contrato API definido antes de implementar eliminó 3 rondas de corrección entre frontend y backend.
- El motor de reglas de estado documentado en design.md permitió al agente implementar las transiciones sin ambigüedad.
- Los criterios de aceptación por rol (aprobador vs ejecutor vs auditor) fueron clave para el UAT exitoso.