- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Cambios en backend y frontend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
171 lines
3.6 KiB
Markdown
171 lines
3.6 KiB
Markdown
# MCH-005: Integraciones de Pago
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-005
|
|
- **Fase:** 1 - MVP Core
|
|
- **Prioridad:** P0
|
|
- **Estado:** Completado
|
|
- **Fecha inicio:** 2026-01-06
|
|
- **Fecha fin:** 2026-01-07
|
|
|
|
## Descripcion
|
|
|
|
Integracion con proveedores de pago populares en Mexico para aceptar pagos con tarjeta: Mercado Pago (lector bluetooth), Clip, y efectivo. Soporte para suscripciones via Stripe.
|
|
|
|
## Objetivos
|
|
|
|
1. Integracion Mercado Pago Point
|
|
2. Integracion Clip
|
|
3. Registro de pagos en efectivo
|
|
4. Stripe para suscripciones
|
|
5. Conciliacion de pagos
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- Mercado Pago Point (lector bluetooth)
|
|
- Clip (terminal)
|
|
- Efectivo (registro manual)
|
|
- Stripe (suscripciones y OXXO)
|
|
- Webhooks para confirmacion
|
|
|
|
### Excluido
|
|
- CoDi/SPEI - MCH-024
|
|
- Pagos QR propios - fase posterior
|
|
- Terminales bancarias tradicionales
|
|
|
|
## Proveedores
|
|
|
|
### Mercado Pago
|
|
- **Uso:** Pagos con tarjeta en tienda
|
|
- **Hardware:** Point Bluetooth
|
|
- **Comision:** ~3.5%
|
|
- **Integracion:** SDK + Webhooks
|
|
|
|
### Clip
|
|
- **Uso:** Pagos con tarjeta en tienda
|
|
- **Hardware:** Terminal Clip
|
|
- **Comision:** ~3.6%
|
|
- **Integracion:** SDK + Webhooks
|
|
|
|
### Stripe
|
|
- **Uso:** Suscripciones, pagos en linea, OXXO
|
|
- **Comision:** ~3.6% + $3 MXN
|
|
- **Integracion:** API + Webhooks
|
|
|
|
### Efectivo
|
|
- **Uso:** Pagos en efectivo
|
|
- **Registro:** Manual en POS
|
|
- **Control:** Corte de caja
|
|
|
|
## Endpoints API
|
|
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| POST | /payments/intent | Crear intencion de pago |
|
|
| POST | /payments/confirm | Confirmar pago |
|
|
| GET | /payments/:id | Obtener pago |
|
|
| POST | /payments/webhook | Webhook de proveedores |
|
|
| GET | /payments/methods | Metodos disponibles |
|
|
|
|
## Flujos de Pago
|
|
|
|
### Pago con Tarjeta (MercadoPago/Clip)
|
|
```
|
|
1. Venta creada en POS
|
|
2. Empleado selecciona "Tarjeta"
|
|
3. Se envia monto a terminal
|
|
4. Cliente pasa tarjeta
|
|
5. Webhook confirma pago
|
|
6. Venta marcada como pagada
|
|
7. Ticket generado
|
|
```
|
|
|
|
### Pago en Efectivo
|
|
```
|
|
1. Venta creada en POS
|
|
2. Empleado selecciona "Efectivo"
|
|
3. Ingresa monto recibido
|
|
4. Sistema calcula cambio
|
|
5. Venta registrada
|
|
6. Actualiza caja
|
|
```
|
|
|
|
### Pago OXXO (Stripe)
|
|
```
|
|
1. Cliente solicita pago en OXXO
|
|
2. Sistema genera referencia Stripe
|
|
3. Se muestra codigo de barras
|
|
4. Cliente paga en OXXO
|
|
5. Webhook confirma (24-48h)
|
|
6. Pedido/suscripcion activada
|
|
```
|
|
|
|
## Modelo de Datos
|
|
|
|
### Tablas
|
|
|
|
**payments** (en sales schema)
|
|
- id, sale_id, provider, amount
|
|
- reference, status, metadata
|
|
- created_at, confirmed_at
|
|
|
|
**payment_methods** (por tenant)
|
|
- id, tenant_id, provider, credentials
|
|
- settings, active
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Archivo |
|
|
|------------|--------|---------|
|
|
| payments.module | Completado | `modules/payments/` |
|
|
| stripe.provider | Completado | `providers/stripe.provider.ts` |
|
|
| mercadopago.provider | Completado | `providers/mercadopago.provider.ts` |
|
|
| PaymentModal | Completado | `components/pos/PaymentModal.tsx` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- MCH-001 (Infraestructura)
|
|
- MCH-002 (Auth)
|
|
- MCH-004 (POS)
|
|
|
|
### Bloquea a
|
|
- MCH-018 (Suscripciones)
|
|
- MCH-020 (Pagos online)
|
|
|
|
## Criterios de Aceptacion
|
|
|
|
- [x] Mercado Pago procesa pagos
|
|
- [x] Webhooks se reciben correctamente
|
|
- [x] Efectivo registra correctamente
|
|
- [x] Stripe funciona para suscripciones
|
|
- [x] Conciliacion de pagos funciona
|
|
|
|
## Configuracion por Tenant
|
|
|
|
```typescript
|
|
// tenant_integrations
|
|
{
|
|
provider: 'mercadopago',
|
|
credentials: {
|
|
access_token: 'encrypted...',
|
|
public_key: '...'
|
|
},
|
|
settings: {
|
|
point_device_id: '...'
|
|
}
|
|
}
|
|
```
|
|
|
|
## Seguridad
|
|
|
|
- Credenciales encriptadas en BD
|
|
- Webhooks verificados con firma
|
|
- Logs de todas las transacciones
|
|
- PCI compliance delegado a proveedores
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-07
|