- Renombrar 02-integraciones/ → 03-integraciones/ (resolver prefijo duplicado) - Renombrar 02-devops/ → 04-devops/ (resolver prefijo duplicado) - Renombrar architecture/ → 97-adr/ (agregar prefijo numerico) - Actualizar _MAP.md con nueva estructura y version 2.1.0 Estructura final: - 00-vision-general/ - 01-modulos/ - 02-especificaciones/ - 03-integraciones/ - 04-devops/ - 97-adr/ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.1 KiB
4.1 KiB
| id | title | type | status | priority | provider | category | multi_tenant | version | created_date | updated_date |
|---|---|---|---|---|---|---|---|---|---|---|
| INT-001 | Integracion Stripe Billing | Integration | Implemented | P0 | Stripe | Payments | true | 1.0.0 | 2026-01-07 | 2026-01-10 |
INT-001: Stripe Integration
Metadata
| Campo | Valor |
|---|---|
| Codigo | INT-001 |
| Proveedor | Stripe Inc |
| Tipo | Pagos |
| Estado | Implementado |
| Multi-tenant | Si |
| Fecha integracion | 2026-01-10 |
Documentacion completa: Ver SAAS-004-billing.md
Resumen
Integracion con Stripe para pagos y suscripciones.
Caracteristicas
- Suscripciones recurrentes (monthly/yearly)
- Webhooks para eventos de pago
- Billing portal para clientes
- Metered billing opcional
- Manejo de invoices y payments
Configuracion
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PUBLISHABLE_KEY=pk_...
Endpoints/SDK Utilizados
| Operacion | Endpoint/Metodo | Descripcion |
|---|---|---|
| Crear cliente | stripe.customers.create() |
Crea customer en Stripe |
| Obtener cliente | stripe.customers.retrieve() |
Obtiene datos de customer |
| Actualizar cliente | stripe.customers.update() |
Actualiza datos de customer |
| Crear suscripcion | stripe.subscriptions.create() |
Inicia nueva suscripcion |
| Cancelar suscripcion | stripe.subscriptions.cancel() |
Cancela suscripcion activa |
| Pausar suscripcion | stripe.subscriptions.update() |
Pausa cobros |
| Reanudar suscripcion | stripe.subscriptions.resume() |
Reanuda suscripcion pausada |
| Crear checkout | stripe.checkout.sessions.create() |
Crea sesion de checkout |
| Crear portal | stripe.billingPortal.sessions.create() |
Acceso a portal de billing |
| Crear precio | stripe.prices.create() |
Crea nuevo precio |
| Listar precios | stripe.prices.list() |
Lista precios disponibles |
| Crear invoice | stripe.invoices.create() |
Crea factura manual |
| Obtener invoice | stripe.invoices.retrieve() |
Obtiene factura |
| Pagar invoice | stripe.invoices.pay() |
Marca invoice como pagada |
| Crear payment intent | stripe.paymentIntents.create() |
Inicia intent de pago |
| Confirmar payment | stripe.paymentIntents.confirm() |
Confirma pago |
| Webhook handler | stripe.webhooks.constructEvent() |
Valida webhooks |
Rate Limits
| Limite | Valor | Accion si excede |
|---|---|---|
| Requests/seg | 100 | Retry con backoff exponencial |
| Requests/dia | Sin limite | N/A |
Manejo de Errores
| Codigo | Descripcion | Accion |
|---|---|---|
| 400 | Bad Request | Log + no retry |
| 401 | Unauthorized | Renovar credenciales |
| 429 | Rate Limited | Backoff exponencial |
| 500 | Server Error | Retry con backoff |
Fallbacks
Estrategia si Stripe no disponible
| Escenario | Estrategia | Accion |
|---|---|---|
| API timeout | Reintentar con backoff | 3 reintentos: 1s, 2s, 4s |
| Webhook perdido | Verificacion periodica | Cron cada 5 min verifica estado |
| Pago fallido | Dunning automatico | 3 reintentos en 7 dias |
| Suscripcion cancelada | Periodo de gracia | 7 dias antes de suspender |
Circuit Breaker
- Umbral apertura: 5 fallos consecutivos
- Timeout semi-abierto: 30 segundos
- Fallback: Cola BullMQ para retry posterior
Multi-tenant
- Credenciales: Por tenant (cada tenant puede tener su propia cuenta Stripe Connect)
- Configuracion: Por tenant via tenant_config
- Aislamiento: Prefijo tenant_id en todas las operaciones
Testing
Sandbox/Test Mode
- Usar claves de prueba en desarrollo (sk_test_, pk_test_)
- Tarjetas de prueba: 4242424242424242 (exito), 4000000000000002 (decline)
- Fixtures disponibles para testing unitario
Monitoreo
| Metrica | Descripcion | Alerta |
|---|---|---|
| Latencia | Tiempo de respuesta | >2s |
| Errores | Tasa de errores | >1% |
| Disponibilidad | Uptime del servicio | <99.9% |
Referencias
- Stripe API Documentation
- Modulo relacionado: SAAS-004-billing.md
Ultima actualizacion: 2026-01-10 Version: 1.0.0