# MGN-016: Integraciones de Pagos y POS ## Descripción del Módulo El módulo de Integraciones de Pagos y POS permite a los tenants conectar terminales de pago y procesadores para cobrar a sus propios clientes. Esto incluye integraciones con MercadoPago, Clip, Stripe Terminal, y otros proveedores de pagos en punto de venta. **IMPORTANTE:** Este módulo es diferente a MGN-015 (Billing): - **MGN-015:** Cobra a los tenants por usar la plataforma SaaS - **MGN-016:** Permite a los tenants cobrar a sus clientes finales ## Requerimientos Funcionales | ID | Nombre | Prioridad | Story Points | Estado | |----|--------|-----------|--------------|--------| | [RF-MGN-016-001](./RF-MGN-016-001-integracion-mercadopago.md) | Integración MercadoPago | P1 | 13 | Definido | | [RF-MGN-016-002](./RF-MGN-016-002-integracion-clip.md) | Integración Clip | P1 | 13 | Definido | | [RF-MGN-016-003](./RF-MGN-016-003-integracion-stripe-terminal.md) | Integración Stripe Terminal | P2 | 8 | Definido | | [RF-MGN-016-004](./RF-MGN-016-004-gestion-terminales.md) | Gestión de Terminales | P1 | 8 | Definido | | [RF-MGN-016-005](./RF-MGN-016-005-conciliacion-pagos.md) | Conciliación de Pagos | P1 | 13 | Definido | | [RF-MGN-016-006](./RF-MGN-016-006-reportes-transacciones.md) | Reportes de Transacciones | P2 | 5 | Definido | **Total Story Points:** 60 ## Arquitectura de Integraciones ``` ┌──────────────────────────────────────────────────────────────────┐ │ TENANT (Cliente SaaS) │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ MercadoPago │ │ Clip │ │ Stripe │ │ │ │ Credentials│ │ Credentials│ │ Credentials│ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ └─────────┼──────────────────┼───────────────────┼──────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ MercadoPago │ │ Clip │ │ Stripe API │ │ API │ │ API │ │ Terminal │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## Dependencias ### Dependencias Internas - **MGN-003 (Catalogs):** Métodos de pago, monedas, contactos - **MGN-004 (Financial):** Registro contable de pagos recibidos (auto-asientos) - **MGN-007 (Sales):** Pagos de órdenes de venta (actualizar estado) - **MGN-014 (Mensajería):** Notificaciones de transacciones y auditoría - **MGN-015 (Billing):** Feature flags (mercadopago_enabled, clip_enabled) ### Dependencias Externas - MercadoPago API (OAuth2, Webhooks) - Clip API (API Keys, Webhooks) - Stripe API (Connect, Terminal) ### Integraciones Requeridas - **MGN-007:** Webhook `payment.approved` debe actualizar `sales.orders.payment_status` - **MGN-004:** Transacciones confirmadas deben generar asientos contables automáticos ## Actores del Módulo | Actor | Descripción | RFs Relacionados | |-------|-------------|------------------| | Tenant Admin | Configura integraciones | RF-001, RF-002, RF-003, RF-004 | | Cajero/Vendedor | Procesa pagos | RF-001, RF-002, RF-003 | | Contador | Concilia transacciones | RF-005, RF-006 | | Sistema | Webhooks y sincronización | Todos | ## Entidades Principales ```sql -- Schema: integrations integrations.payment_providers -- Proveedores configurados por tenant integrations.payment_credentials -- Credenciales encriptadas (OAuth tokens, API keys) integrations.payment_terminals -- Terminales físicas registradas integrations.payment_transactions -- Transacciones procesadas integrations.webhook_logs -- Logs de webhooks recibidos integrations.reconciliation_batches -- Lotes de conciliación ``` ## Proveedores Soportados ### MercadoPago (México, LATAM) - **Métodos:** Tarjeta, OXXO, SPEI, Mercado Crédito - **Terminales:** Point Smart, Point Pro - **Comisiones:** 3.49% + IVA (tarjeta presencial) ### Clip (México) - **Métodos:** Tarjeta (crédito/débito) - **Terminales:** Clip Plus, Clip Pro - **Comisiones:** 3.6% + IVA ### Stripe Terminal (Global) - **Métodos:** Tarjeta (crédito/débito) - **Terminales:** BBPOS WisePOS E, Verifone P400 - **Comisiones:** 2.9% + $0.30 USD ## Flujo General de Pago ``` ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ Vendedor│────▶│ ERP │────▶│ Gateway │────▶│ Banco │ │ (POS) │ │ (crear │ │(procesar│ │(aprobar)│ └─────────┘ │ intent) │ │ pago) │ └────┬────┘ └─────────┘ └─────────┘ │ ▲ │ │ ┌─────────┐ │ └─────────│ Webhook │◀────────┘ │(confirmar│ └─────────┘ ``` ## Seguridad 1. **Credenciales:** Encriptadas con AES-256, nunca en logs 2. **OAuth:** Refresh tokens con rotación automática 3. **Webhooks:** Validación de firma (HMAC) 4. **PCI-DSS:** Datos de tarjeta nunca tocan nuestros servidores 5. **Auditoría:** Todas las transacciones logueadas ## Notas de Implementación 1. **Multi-proveedor:** Un tenant puede tener múltiples proveedores activos 2. **Failover:** Si un proveedor falla, ofrecer alternativa 3. **Offline:** Soportar modo offline para terminales físicas 4. **Notificaciones:** Alertar sobre transacciones fallidas 5. **Reconciliación:** Job diario para conciliar con extractos ## Feature Flags ```json { "mercadopago_enabled": true, "clip_enabled": true, "stripe_terminal_enabled": false, "offline_mode": true, "auto_reconciliation": true } ```