- Backend NestJS con módulos de autenticación, inventario, créditos - Frontend React con dashboard y componentes UI - Base de datos PostgreSQL con migraciones - Tests E2E configurados - Configuración de Docker y deployment Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
211 lines
7.4 KiB
Markdown
211 lines
7.4 KiB
Markdown
# ADR-0004: Pagos en Efectivo Mexico
|
|
|
|
---
|
|
id: ADR-0004
|
|
type: ADR
|
|
status: Aceptado
|
|
created_date: 2026-01-10
|
|
updated_date: 2026-01-10
|
|
decision_date: 2026-01-10
|
|
deciders: ["Product Owner", "Tech Lead"]
|
|
---
|
|
|
|
## Estado
|
|
|
|
**Aceptado**
|
|
|
|
---
|
|
|
|
## Contexto
|
|
|
|
El mercado objetivo de MiInventario son pequenos negocios en Mexico:
|
|
- 60-70% de transacciones en Mexico son en efectivo
|
|
- Muchos usuarios no tienen tarjeta de credito/debito
|
|
- OXXO tiene 20,000+ tiendas en Mexico
|
|
- 7-Eleven tiene 2,000+ tiendas
|
|
- Los usuarios confian en pagar en tiendas de conveniencia
|
|
|
|
Ofrecer solo pago con tarjeta excluiria a gran parte del mercado objetivo.
|
|
|
|
---
|
|
|
|
## Decision
|
|
|
|
Implementar **pagos en efectivo via OXXO y 7-Eleven**:
|
|
|
|
1. **OXXO via Stripe**
|
|
- Usar Stripe OXXO vouchers
|
|
- Integracion simple (misma cuenta Stripe)
|
|
- Cobertura de 20,000+ tiendas
|
|
- Comision ~3.6%
|
|
|
|
2. **7-Eleven via Conekta**
|
|
- Usar Conekta como agregador
|
|
- Cobertura de 2,000+ tiendas
|
|
- Comision ~3.9%
|
|
- Implementar post-MVP si demanda lo justifica
|
|
|
|
3. **Flujo comun**
|
|
- Usuario selecciona paquete
|
|
- Genera voucher/referencia con codigo de barras
|
|
- Paga en tienda con efectivo
|
|
- Recibe creditos via webhook (10-30 min)
|
|
|
|
---
|
|
|
|
## Opciones Consideradas
|
|
|
|
### Opcion A: Solo tarjeta de credito/debito
|
|
|
|
| Aspecto | Valor |
|
|
|---------|-------|
|
|
| Cobertura | ~30% del mercado |
|
|
| Complejidad | Baja |
|
|
| Conversion | Baja |
|
|
| UX | Simple |
|
|
|
|
**Descartada:** Excluye mayoria del mercado objetivo.
|
|
|
|
### Opcion B: OXXO solo
|
|
|
|
| Aspecto | Valor |
|
|
|---------|-------|
|
|
| Cobertura | Alta (20k tiendas) |
|
|
| Complejidad | Media |
|
|
| Conversion | Alta |
|
|
| Integracion | Simple (Stripe) |
|
|
|
|
**Parcialmente seleccionada:** OXXO es prioritario (P0).
|
|
|
|
### Opcion C: OXXO + 7-Eleven (Seleccionada)
|
|
|
|
| Aspecto | Valor |
|
|
|---------|-------|
|
|
| Cobertura | Maxima |
|
|
| Complejidad | Media-Alta |
|
|
| Conversion | Maxima |
|
|
| Integracion | 2 proveedores |
|
|
|
|
**Seleccionada:** Cobertura maxima, 7-Eleven como P1 post-MVP.
|
|
|
|
---
|
|
|
|
## Consecuencias
|
|
|
|
### Positivas
|
|
|
|
- **Inclusion financiera**: Usuarios sin tarjeta pueden pagar
|
|
- **Confianza**: Usuarios confian en OXXO/7-Eleven
|
|
- **Conversion**: Mayor tasa de conversion
|
|
- **Mercado amplio**: Acceso a 70% adicional del mercado
|
|
- **Competitividad**: Diferenciador vs competencia
|
|
|
|
### Negativas
|
|
|
|
- **Asincronico**: Pago no es instantaneo (10-30 min)
|
|
- **Expiracion**: Vouchers expiran (24-72h)
|
|
- **Complejidad**: Webhooks, reconciliacion
|
|
- **Abandono**: Usuario puede no pagar
|
|
- **Costos**: Comisiones ligeramente mayores
|
|
|
|
---
|
|
|
|
## Comparativa de Opciones
|
|
|
|
| Aspecto | Tarjeta | OXXO | 7-Eleven |
|
|
|---------|---------|------|----------|
|
|
| Tiempo | Instantaneo | 10-30 min | 5-15 min |
|
|
| Comision | ~3% | ~3.6% | ~3.9% |
|
|
| Cobertura | Universal | 20k tiendas | 2k tiendas |
|
|
| Expiracion | N/A | 72h | 48h |
|
|
| Integracion | Stripe | Stripe | Conekta |
|
|
| Prioridad | P0 | P0 | P1 |
|
|
|
|
---
|
|
|
|
## Flujo de Usuario OXXO
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ FLUJO PAGO OXXO │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ 1. Usuario selecciona paquete │
|
|
│ ┌─────────────────────────────────────┐ │
|
|
│ │ Paquete Popular - $100 MXN │ │
|
|
│ │ ≈ 8-10 inventarios │ │
|
|
│ │ [Pagar OXXO] │ │
|
|
│ └─────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ 2. Genera voucher │
|
|
│ ┌─────────────────────────────────────┐ │
|
|
│ │ |||||||||||||||||||||||||||||| │ │
|
|
│ │ Referencia: 1234 5678 9012 3456 │ │
|
|
│ │ Monto: $100.00 MXN │ │
|
|
│ │ Expira: 12 Ene, 10:30 AM │ │
|
|
│ │ │ │
|
|
│ │ [Compartir] [Guardar] │ │
|
|
│ └─────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ 3. Usuario va a OXXO y paga │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ 4. Webhook confirma pago (10-30 min) │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ 5. Push notification + creditos acreditados │
|
|
│ ┌─────────────────────────────────────┐ │
|
|
│ │ ✓ Pago confirmado │ │
|
|
│ │ +8.5 creditos a tu cuenta │ │
|
|
│ └─────────────────────────────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Manejo de Casos Edge
|
|
|
|
| Caso | Solucion |
|
|
|------|----------|
|
|
| Voucher expira | Cancelar orden, notificar usuario |
|
|
| Pago parcial | No permitido (monto fijo) |
|
|
| Doble pago | Detectar por idempotencia, reembolsar |
|
|
| Webhook falla | Retry automatico, reconciliacion diaria |
|
|
| Usuario no paga | Expira automaticamente |
|
|
|
|
---
|
|
|
|
## Metricas
|
|
|
|
| Metrica | Objetivo |
|
|
|---------|----------|
|
|
| Conversion OXXO | > 60% de vouchers pagados |
|
|
| Tiempo promedio | < 24h desde voucher |
|
|
| Tasa de expiracion | < 30% |
|
|
| Errores de webhook | < 0.1% |
|
|
|
|
---
|
|
|
|
## Plan de Implementacion
|
|
|
|
1. **MVP (P0)**: Tarjeta (Stripe) + OXXO (Stripe)
|
|
2. **Post-MVP (P1)**: 7-Eleven (Conekta)
|
|
3. **Futuro**: SPEI, otros metodos si demanda existe
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
- [MII-011](../01-epicas/MII-011-pagos-tarjeta.md) - Pagos tarjeta
|
|
- [MII-012](../01-epicas/MII-012-pagos-oxxo.md) - Pagos OXXO
|
|
- [MII-013](../01-epicas/MII-013-pagos-7eleven.md) - Pagos 7-Eleven
|
|
- [INT-001](../02-integraciones/INT-001-stripe.md) - Integracion Stripe
|
|
- [INT-002](../02-integraciones/INT-002-oxxo.md) - Integracion OXXO
|
|
|
|
---
|
|
|
|
**Ultima Actualizacion:** 2026-01-10
|