3.4 KiB
3.4 KiB
EPICA: EPIC-MGN-017 - Integracion Stripe
Metadata
| Campo | Valor |
|---|---|
| ID | EPIC-MGN-017 |
| Nombre | Integracion Stripe para Suscripciones |
| Modulo | billing |
| Fase | Fase 4 - SaaS Platform |
| Prioridad | P0 |
| Estado | Backlog |
| Story Points | 34 |
| Sprint(s) | Sprint 22-24 |
Descripcion
Integracion completa con Stripe para gestion de suscripciones por usuario, cobros recurrentes, prorratas automaticas, y webhooks para sincronizacion de estado.
Objetivo de Negocio
- Automatizar cobros recurrentes por suscripcion
- Soportar modelo per-seat con prorratas
- Facilitar cambios de plan (upgrade/downgrade)
- Mantener sincronizacion bidireccional con Stripe
Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|---|---|---|---|---|
| US-MGN017-001 | Como tenant owner, quiero vincular mi cuenta con Stripe | P0 | 3 | Backlog |
| US-MGN017-002 | Como tenant owner, quiero agregar tarjeta de credito | P0 | 5 | Backlog |
| US-MGN017-003 | Como sistema, quiero crear suscripcion en Stripe al activar tenant | P0 | 5 | Backlog |
| US-MGN017-004 | Como sistema, quiero actualizar cantidad de usuarios en Stripe | P0 | 5 | Backlog |
| US-MGN017-005 | Como sistema, quiero procesar webhooks de Stripe | P0 | 8 | Backlog |
| US-MGN017-006 | Como sistema, quiero manejar pagos fallidos | P0 | 5 | Backlog |
| US-MGN017-007 | Como tenant owner, quiero ver portal de facturacion Stripe | P1 | 3 | Backlog |
Total Story Points: 34 SP
Criterios de Aceptacion
Funcionales:
- Crear Customer en Stripe al registrar tenant
- Agregar/actualizar metodos de pago via Stripe Elements
- Crear Subscription con quantity = usuarios
- Actualizar quantity automaticamente al agregar/remover usuarios
- Procesar webhooks: invoice.paid, payment_failed, subscription.updated, etc.
- Cancelar suscripcion al final del periodo
- Redirigir a Stripe Customer Portal
No Funcionales:
- Webhook retry logic
- Idempotencia en procesamiento de webhooks
- Logs de todas las transacciones
Webhooks a Implementar
| Evento | Accion |
|---|---|
| customer.subscription.created | Registrar suscripcion |
| customer.subscription.updated | Actualizar estado/cantidad |
| customer.subscription.deleted | Marcar suscripcion cancelada |
| invoice.created | Registrar factura draft |
| invoice.finalized | Actualizar factura a open |
| invoice.paid | Marcar factura pagada, activar tenant |
| invoice.payment_failed | Alertar, iniciar dunning |
| payment_intent.succeeded | Registrar pago |
| payment_intent.payment_failed | Registrar intento fallido |
Dependencias
Depende de:
- EPIC-MGN-016 Billing (Ready)
- EPIC-MGN-004 Tenants (Ready)
Bloquea:
- EPIC-MGN-018 WhatsApp (feature flag por plan)
- EPIC-MGN-019 AI Agents (feature flag por plan)
Desglose Tecnico
Database:
- Tabla: stripe_customers
- Tabla: stripe_webhook_events
Backend:
- Service: StripeService
- Controller: StripeWebhookController
- Job: SyncStripeDataJob
Integraciones:
- Stripe SDK (Node.js)
- Stripe Elements (Frontend)
- Stripe Customer Portal
Creado por: Requirements-Analyst Fecha: 2025-12-05