Appearance
Configuracion de Gateway de Pagos del Portal
Modulo: Config / Admin Tipo: View Estado: Planificado Fecha: 2026-04-22
Descripcion
Vista en el modulo Config/Admin del ERP Bautista donde el operador configura, por sucursal, el gateway de pagos que utilizara el Portal de Clientes. Cada sucursal puede tener un gateway diferente o ninguno (deshabilita pagos online para esa sucursal).
Esta configuracion es el prerequisito tecnico para que el Portal de Clientes pueda procesar pagos online. Sin ella, POST /portal/pagos/iniciar retorna 422 GATEWAY_NOT_CONFIGURED.
Frontend
Vistas
- Vista de configuracion de gateway: Formulario de configuracion por sucursal en el modulo Config/Admin del ERP.
- Ruta:
/config/portal/gateway(o donde viva la configuracion del portal en el ERP) - Acceso: solo operadores con permisos de configuracion
- Ruta:
Interacciones del usuario
- El operador selecciona la sucursal a configurar (si el sistema maneja multiples sucursales visibles).
- Elige el gateway desde un selector:
paypertic,mercadopago, o "Sin pagos online". - Ingresa las credenciales segun el gateway seleccionado:
- PayPerTIC: api_key + webhook_token (api_secret es opcional)
- MercadoPago: api_key + api_secret + webhook_token
- Guarda la configuracion. El sistema confirma el guardado.
- Opcionalmente, puede limpiar la configuracion para deshabilitar pagos online.
Comportamiento del formulario
- El campo
api_secretse muestra u oculta segun el gateway seleccionado:paypertic: campo oculto o marcado como opcionalmercadopago: campo obligatorio
- Los campos de credenciales se muestran con mascara (tipo password). Al editar, el campo se limpia para forzar el reingreso del valor.
- Si
portal.gateway.nombrese deja en blanco o se selecciona "Sin pagos online", los demas campos se deshabilitan y la sucursal no permitira pagos online.
Permisos
| Permiso | Descripcion | Acciones permitidas |
|---|---|---|
CONFIG_PORTAL_VIEW | Ver configuracion del portal | Consultar valores actuales |
CONFIG_PORTAL_WRITE | Modificar configuracion del portal | Guardar cambios de gateway |
Backend
Persistencia
Las claves viven en la tabla data_config a nivel SUCURSAL (schema sucXXXX). Se usa el mecanismo existente de configuracion del sistema.
| Clave | Tipo | Descripcion |
|---|---|---|
portal.gateway.nombre | string | Identificador del gateway: paypertic, mercadopago, o vacio para deshabilitar |
portal.gateway.api_key | string | API key o Bearer token del gateway |
portal.gateway.api_secret | string | Secret adicional (requerido por MercadoPago, opcional para PayPerTIC) |
portal.gateway.webhook_token | string | Token Bearer que el gateway envia en sus webhooks para autenticar requests entrantes |
Nivel de tabla: SUCURSAL — schema suc{sucursal_id}. Cada sucursal tiene su propia configuracion independiente.
Uso en el backend del portal
El modulo Modules/Portal/ lee estas claves en POST /portal/pagos/iniciar para:
- Determinar que gateway corresponde a la sucursal del usuario autenticado (via
sucursal_iddel JWT) - Instanciar el adapter correcto via
PaymentGatewayFactory - Validar el webhook entrante en
POST /portal/pagos/webhookcomparando la firma conportal.gateway.webhook_token
Si portal.gateway.nombre esta vacio o null, POST /portal/pagos/iniciar retorna 422 GATEWAY_NOT_CONFIGURED sin intentar procesar el pago.
Reglas de negocio
- Gateway por sucursal: Cada sucursal configura su propio gateway de forma independiente. Una sucursal puede usar PayPerTIC mientras otra usa MercadoPago.
- Deshabilitar pagos: Si
portal.gateway.nombreesta vacio o null, la sucursal no permite pagos online. El portal mostrara la opcion de pago deshabilitada para esa sucursal. - api_secret obligatorio para MercadoPago: Si el gateway seleccionado es
mercadopago,portal.gateway.api_secretes obligatorio. Parapaypertic, es opcional. - Credenciales enmascaradas: Las claves almacenadas son sensibles. No se retornan en texto plano desde la API de lectura — solo se indica si estan configuradas o no.
Casos de uso
Caso 1: Habilitar pagos online para una sucursal
Actor: Operador con permiso CONFIG_PORTAL_WRITE
Precondiciones:
- La sucursal existe y no tiene gateway configurado (o tiene uno diferente)
- El operador tiene las credenciales del gateway a mano
Flujo principal:
- El operador abre la vista de configuracion de gateway del portal
- Selecciona el gateway:
payperticomercadopago - Ingresa
api_key,api_secret(si corresponde) ywebhook_token - Guarda la configuracion
- El sistema persiste los valores en
data_configde la sucursal correspondiente
Postcondiciones:
portal.gateway.nombretiene el valor del gateway elegido- Las credenciales estan almacenadas en
data_config - El Portal de Clientes de esa sucursal puede procesar pagos online
Caso 2: Deshabilitar pagos online para una sucursal
Actor: Operador con permiso CONFIG_PORTAL_WRITE
Flujo principal:
- El operador abre la vista de configuracion
- Selecciona "Sin pagos online" o borra el valor del gateway
- Guarda la configuracion
Postcondiciones:
portal.gateway.nombrequeda vacio o nullPOST /portal/pagos/iniciarretorna422 GATEWAY_NOT_CONFIGUREDpara esa sucursal- El Portal de Clientes no muestra la opcion de pago online
Consideraciones tecnicas
Seguridad
- Las credenciales (
api_key,api_secret,webhook_token) son sensibles. Deben almacenarse de forma segura endata_config. - El endpoint de lectura de configuracion NO retorna el valor actual de las credenciales en texto plano. Solo indica si estan configuradas (boolean o valor enmascarado tipo
"****configured****"). - Al editar, el campo de credencial se limpia en el frontend para forzar reingreso explicito.
Multi-tenancy
- La configuracion vive en el schema de la sucursal (
suc{sucursal_id}), siguiendo el patron multi-tenant del sistema. - Si el ERP maneja multiples sucursales por tenant, el operador debe configurar cada sucursal por separado.
Gateways soportados
| Gateway | Valor en config | api_secret obligatorio |
|---|---|---|
| PayPerTIC | paypertic | No (opcional) |
| MercadoPago | mercadopago | Si |
Dependencias
Funcionalidades relacionadas
- Pagos del Portal — Endpoints —
POST /portal/pagos/iniciarconsume esta configuracion - Integraciones de Pago — detalle de cada gateway
- Vista de Reconciliacion de Pagos — feature relacionada que depende de que el gateway este configurado
Modulos externos
PaymentGatewayFactoryenModules/Portal/Infrastructure/Adapters/- Tabla
data_configa nivel sucursal