--- id: "MAP-OQI-005-payments-stripe" title: "Mapa de OQI-005-payments-stripe" type: "Index" project: "trading-platform" updated_date: "2026-01-04" --- # _MAP: OQI-005 - Pagos y Stripe **Última actualización:** 2025-12-05 **Estado:** Parcialmente Implementado **Versión:** 1.0.0 --- ## Propósito Esta épica implementa el sistema completo de pagos integrado con Stripe, incluyendo suscripciones (Free, Basic, Pro, Premium), compra de cursos, wallet interno, depósitos para inversión y facturación automática. --- ## Contenido del Directorio ``` OQI-005-payments-stripe/ ├── README.md # Documentación técnica existente ├── _MAP.md # Este archivo - índice ├── requerimientos/ # Documentos de requerimientos funcionales │ ├── RF-PAY-001-suscripciones.md # Planes de suscripción │ ├── RF-PAY-002-checkout.md # Checkout y pagos │ ├── RF-PAY-003-wallet.md # Wallet interno │ ├── RF-PAY-004-facturacion.md # Facturación automática │ ├── RF-PAY-005-webhooks.md # Webhooks de Stripe │ └── RF-PAY-006-reembolsos.md # Sistema de reembolsos ├── especificaciones/ # Especificaciones técnicas │ ├── ET-PAY-001-database.md # Modelo de datos │ ├── ET-PAY-002-stripe-api.md # Integración Stripe │ ├── ET-PAY-003-webhooks.md # Manejo de webhooks │ ├── ET-PAY-004-api.md # Endpoints REST │ ├── ET-PAY-005-frontend.md # Componentes React │ └── ET-PAY-006-security.md # Seguridad PCI DSS ├── historias-usuario/ # User Stories │ ├── US-PAY-001-ver-planes.md │ ├── US-PAY-002-suscribirse.md │ ├── US-PAY-003-cambiar-plan.md │ ├── US-PAY-004-cancelar-suscripcion.md │ ├── US-PAY-005-comprar-curso.md │ ├── US-PAY-006-agregar-metodo-pago.md │ ├── US-PAY-007-ver-facturas.md │ ├── US-PAY-008-depositar-wallet.md │ ├── US-PAY-009-retirar-wallet.md │ ├── US-PAY-010-ver-historial.md │ ├── US-PAY-011-solicitar-reembolso.md │ └── US-PAY-012-actualizar-tarjeta.md └── implementacion/ # Trazabilidad de implementación └── TRACEABILITY.yml ``` --- ## Requerimientos Funcionales | ID | Nombre | Prioridad | SP | Estado | |----|--------|-----------|-----|--------| | RF-PAY-001 | Planes de Suscripción | P0 | 8 | ✅ Implementado | | RF-PAY-002 | Checkout y Pagos | P0 | 8 | ✅ Implementado | | RF-PAY-003 | Wallet Interno | P1 | 8 | Pendiente | | RF-PAY-004 | Facturación Automática | P1 | 5 | Pendiente | | RF-PAY-005 | Webhooks Stripe | P0 | 5 | ✅ Implementado | | RF-PAY-006 | Sistema de Reembolsos | P2 | 6 | Pendiente | **Total:** 40 SP --- ## Especificaciones Técnicas | ID | Nombre | Componente | Estado | |----|--------|------------|--------| | ET-PAY-001 | Database | Database | ✅ Schema existe | | ET-PAY-002 | Stripe API | Backend | ✅ Implementado | | ET-PAY-003 | Webhooks | Backend | ✅ Implementado | | ET-PAY-004 | API REST | Backend | ✅ Parcial | | ET-PAY-005 | Frontend | Frontend | Pendiente | | ET-PAY-006 | Security | Backend | ✅ Implementado | --- ## Historias de Usuario | ID | Historia | Prioridad | SP | Estado | |----|----------|-----------|-----|--------| | US-PAY-001 | Ver planes de suscripción | P0 | 2 | Pendiente | | US-PAY-002 | Suscribirse a un plan | P0 | 5 | ✅ Backend listo | | US-PAY-003 | Cambiar plan de suscripción | P1 | 3 | Pendiente | | US-PAY-004 | Cancelar suscripción | P1 | 3 | Pendiente | | US-PAY-005 | Comprar curso individual | P1 | 3 | ✅ Backend listo | | US-PAY-006 | Agregar método de pago | P0 | 3 | Pendiente | | US-PAY-007 | Ver historial de facturas | P1 | 3 | Pendiente | | US-PAY-008 | Depositar en wallet | P1 | 5 | Pendiente | | US-PAY-009 | Retirar de wallet | P2 | 5 | Pendiente | | US-PAY-010 | Ver historial de transacciones | P1 | 2 | Pendiente | | US-PAY-011 | Solicitar reembolso | P2 | 3 | Pendiente | | US-PAY-012 | Actualizar tarjeta | P1 | 3 | Pendiente | **Total:** 40 SP --- ## Planes de Suscripción | Plan | Precio | Stripe Price ID | Features | |------|--------|-----------------|----------| | **Free** | $0/mes | - | Paper trading, cursos básicos, 3 señales/día | | **Basic** | $19/mes | `price_1Sb3k64dPtEGmLmpeAdxvmIu` | Trading real, 10 señales/día, 1 agente | | **Pro** | $49/mes | `price_1Sb3k64dPtEGmLmpm5n5bbJH` | Señales ilimitadas, 3 agentes, soporte prioritario | | **Premium** | $99/mes | `price_1Sb3k74dPtEGmLmpHfLpUkvQ` | API access, white label, soporte dedicado | --- ## Dependencias ### Depende de: - **OQI-001:** Autenticación (usuarios) - ✅ Completado ### Bloquea: - **OQI-002:** Education (compra de cursos premium) - **OQI-004:** Investment (depósitos) --- ## Stack Técnico | Capa | Tecnología | Uso | |------|------------|-----| | Frontend | React + Stripe Elements | UI de pagos | | Backend | Express.js + Stripe SDK | API | | Database | PostgreSQL | Transacciones | | Payments | Stripe | Procesamiento | --- ## Webhooks Configurados | Evento | Acción | |--------|--------| | `payment_intent.succeeded` | Actualizar pago, otorgar acceso | | `payment_intent.payment_failed` | Notificar usuario, marcar fallido | | `customer.subscription.created` | Activar suscripción | | `customer.subscription.updated` | Sincronizar estado | | `customer.subscription.deleted` | Cancelar acceso | | `invoice.paid` | Registrar factura pagada | | `invoice.payment_failed` | Notificar problema de pago | --- ## Seguridad ### PCI DSS Compliance - Nunca almacenar números de tarjeta - Usar Stripe Elements (tokenización) - Validar webhook signatures - HTTPS obligatorio ### Rate Limiting | Endpoint | Límite | |----------|--------| | `/payments/*` | 20/hora | | `/webhooks` | Ilimitado (validación Stripe) | --- ## Criterios de Aceptación ### Funcionales - [ ] Usuarios pueden ver y comparar planes - [ ] Checkout con Stripe Elements funciona - [ ] Suscripciones se activan automáticamente - [ ] Webhooks procesan todos los eventos - [ ] Facturas disponibles para descarga - [ ] Wallet permite depósitos y retiros ### No Funcionales - [ ] Checkout carga en < 2 segundos - [ ] 99.9% uptime en procesamiento de pagos - [ ] Transacciones atómicas ### Técnicos - [ ] Cobertura de tests > 80% - [ ] Logs de auditoría para pagos - [ ] Modo test/producción separados --- ## Hitos | Hito | Entregables | Target | |------|-------------|--------| | M1 | Planes + checkout básico | Sprint 5 ✅ | | M2 | Suscripciones completas | Sprint 5 | | M3 | Wallet + facturación | Sprint 6 | | M4 | Reembolsos + polish | Sprint 6 | --- ## Referencias - [README Técnico](./README.md) - [Stripe Dashboard](https://dashboard.stripe.com) - [Vision del Producto](../../00-vision-general/VISION-PRODUCTO.md) - [_MAP Fase MVP](../_MAP.md)