Skip to content

Integracion ISISYSTEM

Esta guia esta dirigida al equipo tecnico de ISISYSTEM. Explica como enviar datos de clientes a NoviSuite (ms-credigestion) para su replicacion hacia el ERP MBA3.

ConceptoValor
Dominio produccionhttps://credigestion-api.novicompu.com
Puerto interno3005
ProtocoloREST/JSON sobre HTTPS
Health checkGET /up

ISISYSTEM se autentica usando un ServiceKey compartido. No se usa JWT.

Authorization: ServiceKey <SU_CLAVE_SECRETA>
Content-Type: application/json

El ServiceKey es una clave secreta que el equipo de NoviSuite le proporcionara a ISISYSTEM de forma segura. Nunca comparta esta clave en canales publicos.

  1. NoviSuite configura la variable ISISYSTEM_SERVICE_KEY en el servicio
  2. ISISYSTEM envia el header Authorization: ServiceKey <clave> en cada request
  3. El ServiceKeyGuard de NoviSuite valida la clave:
    • Si coincide → el request continua y se marca como origen ISISYSTEM
    • Si no coincide → retorna 401 Unauthorized
  4. Si ISISYSTEM envia Bearer en lugar de ServiceKey → es rechazado explicitamente con 401

Este es el unico endpoint que ISISYSTEM debe usar para crear clientes en NoviSuite.

POST https://credigestion-api.novicompu.com/api/v1/credigestion/clients/from-isisystem
TipoSoportado
ServiceKeySi (obligatorio)
Bearer JWTNo (rechazado con 401)
{
"codigo_empresa": "EMP01",
"nombre_cliente": "Juan Perez",
"identificacion": "1712345678",
"email": "[email protected]",
"telefono_1": "0991234567",
"telefono_2": "022345678",
"direccion_1": "Av. Principal 123",
"extra_fields": {
"texto_4": "Creado desde ISISYSTEM"
}
}
CampoTipoMax. longitudDescripcion
codigo_empresastring20Codigo de la empresa en MBA3
nombre_clientestring255Nombre completo del cliente
identificacionstring50Cedula, RUC o identificacion fiscal
CampoTipoDescripcion
emailstringCorreo electronico
telefono_1stringTelefono principal
telefono_2stringTelefono secundario
direccion_1textDireccion principal
extra_fieldsobjectCampos adicionales de MBA3 (ver abajo)

Se pueden enviar campos adicionales de MBA3 mediante extra_fields. Estos se guardan como JSONB y se mapean directamente al payload de MBA3.

FamiliaCamposNotas
lista_datos_nlista_datos_1 a lista_datos_10Valores de lista
alfanumerico_nalfanumerico_1 a alfanumerico_10Texto alfanumerico
valor_nvalor_1 a valor_10Valores numericos
fecha_nfecha_1 a fecha_10Formato aaaa-mm-dd
booleano_nbooleano_1 a booleano_101=True / 0=False
texto_ntexto_1 a texto_10Texto libre (hasta 32000 chars)
{
"codigo_empresa": "EMP01",
"nombre_cliente": "Juan Perez",
"identificacion": "1712345678",
"extra_fields": {
"fecha_6": "2026-04-14",
"booleano_8": "1",
"texto_4": "Creado desde ISISYSTEM",
"valor_8": "1250.55"
}
}

Cuando ISISYSTEM envia una solicitud al endpoint oficial, NoviSuite ejecuta estos pasos automaticamente:

ISISYSTEM ──ServiceKey──> NoviSuite (ms-credigestion)
│ 1. Valida ServiceKey
│ 2. Pre-check en paralelo contra MBA3 y registro local
│ 3. Decide:
│ - Si existe en MBA3 → 409 EXISTS_IN_MBA3
│ - Si existe solo local → 409 EXISTS_LOCAL
│ - Si no existe → crea en PostgreSQL local
│ 4. Retorna respuesta
PostgreSQL Local
(mba3_synced = false)
│ Sync manual posterior
MBA3 (ERP principal)
Terminal window
curl -X POST 'https://credigestion-api.novicompu.com/api/v1/credigestion/clients/from-isisystem' \
-H 'Authorization: ServiceKey SU_CLAVE_SECRETA_AQUI' \
-H 'Content-Type: application/json' \
-d '{
"codigo_empresa": "EMP01",
"nombre_cliente": "Juan Perez",
"identificacion": "1712345678",
"email": "[email protected]",
"telefono_1": "0991234567"
}'
  • Verifica que el header Authorization empiece con ServiceKey
  • Extrae la clave y compara con ISISYSTEM_SERVICE_KEY
  • Si es valida → continua; si no → 401 Unauthorized

NoviSuite consulta MBA3 para verificar si el cliente ya existe:

  • Si existe en MBA3 → Retorna 409 EXISTS_IN_MBA3 con los datos del cliente existente
  • Si existe solo localmente → Retorna 409 EXISTS_LOCAL
  • Si no existe en ningun lado → Continua con la creacion

Si el cliente no existe:

  1. Crea el registro en credigestion_clients con:
    • mba3_synced = false (aun no sincronizado con MBA3)
    • source_system = "ISISYSTEM" (origen del request)
  2. Devuelve 201 Created con el cliente creado

La sincronizacion hacia MBA3 no es automatica. Un administrador de NoviSuite la realiza manualmente despues usando:

POST https://credigestion-api.novicompu.com/api/v1/credigestion/clients/:codigo/sync-mba3

201 Created — Cliente creado exitosamente

Section titled “201 Created — Cliente creado exitosamente”
{
"success": true,
"reason": "CREATED",
"operation": "create",
"client": {
"id": "42",
"codigo_cliente": null,
"codigo_empresa": "EMP01",
"nombre_cliente": "Juan Perez",
"identificacion": "1712345678",
"email": "[email protected]",
"telefono_1": "0991234567",
"mba3_synced": false,
"source_system": "ISISYSTEM",
"created_at": "2026-05-06T15:00:00.000Z",
"updated_at": "2026-05-06T15:00:00.000Z"
},
"mba3_pre_check": {
"checked_at": "2026-05-06T15:00:00.000Z",
"found": false
}
}

Nota: codigo_cliente sera null inicialmente porque MBA3 aun no ha asignado uno. Se poblara despues de la sincronizacion manual.

409 EXISTS_IN_MBA3 — Cliente ya existe en MBA3

Section titled “409 EXISTS_IN_MBA3 — Cliente ya existe en MBA3”
{
"success": false,
"reason": "EXISTS_IN_MBA3",
"mba3_client": {
"codigo_cliente": "CLIE1001",
"codigo_empresa": "EMP01",
"nombre_cliente": "Juan Perez",
"identificacion": "1712345678",
"email": "[email protected]",
"telefono_1": "0991234567"
},
"local_record": { ... },
"mba3_pre_check": { "checked_at": "2026-05-06T15:00:00.000Z", "found": true },
"message": "El cliente ya existe en MBA3",
"hint": "Use el codigo_cliente devuelto para operar sobre el cliente existente"
}

Que hacer: Use el codigo_cliente retornado (CLIE1001 en el ejemplo) para operaciones futuras. No intente crear un duplicado.

409 EXISTS_LOCAL — Cliente ya existe localmente en NoviSuite

Section titled “409 EXISTS_LOCAL — Cliente ya existe localmente en NoviSuite”
{
"success": false,
"reason": "EXISTS_LOCAL",
"mba3_client": null,
"local_record": {
"id": "42",
"codigo_cliente": null,
"codigo_empresa": "EMP01",
"identificacion": "1712345678",
"mba3_synced": false,
"source_system": "ISISYSTEM"
},
"mba3_pre_check": { "checked_at": "2026-05-06T15:00:00.000Z", "found": false },
"message": "El cliente ya existe localmente en NoviSuite pero aun no fue sincronizado a MBA3",
"hint": "Espere a la sincronizacion manual o consulte el registro local"
}

Que hacer: El cliente fue creado previamente pero aun no se sincronizo con MBA3. Espere a que el administrador de NoviSuite realice la sincronizacion.

{
"status": "error",
"statusCode": 400,
"message": "Error de validacion",
"errors": ["codigo_empresa es obligatorio", "identificacion es obligatorio"]
}

401 Unauthorized — Autenticacion fallida

Section titled “401 Unauthorized — Autenticacion fallida”
{
"status": "error",
"statusCode": 401,
"message": "ServiceKey invalida o faltante"
}

502 Bad Gateway — MBA3 rechazo la consulta

Section titled “502 Bad Gateway — MBA3 rechazo la consulta”
{
"status": "error",
"statusCode": 502,
"message": {
"message": "MBA3 rechaz la consulta del cliente",
"upstreamMessage": "Detalle del error de MBA3..."
}
}
{
"status": "error",
"statusCode": 504,
"message": "MBA3 no respondio a tiempo durante la consulta del cliente"
}
HTTPCasoAccion recomendada
400Body invalido o faltan campos obligatoriosRevisar payload y reenviar
401Falta Authorization, ServiceKey invalida, o se envio BearerVerificar credenciales
409Cliente ya existe (EXISTS_IN_MBA3 o EXISTS_LOCAL)Usar codigo_cliente existente
502MBA3 / Consulta Externa rechazo el pre-checkContactar a NoviSuite
504MBA3 / Consulta Externa no respondio antes del timeoutReintentar despues de unos segundos

NoviSuite valida que no exista un registro con la misma combinacion: identificacion + codigo_empresa. Si ya existe → retorna 409 Conflict.

Esto permite a ISISYSTEM reintentar de forma segura (idempotencia) sin crear duplicados.

VariableValor QANota
ISISYSTEM_USUARIOPOSNVC001Usuario funcional asignado a NoviSuite
ISISYSTEM_CODIGO_EMPRESA000598Empresa por defecto
ISISYSTEM_OTP_BYPASS999999OTP fijo mientras no este Biometria
CedulaClienteCupo DisponibleEstado
0914665005GILBERT TACLE$1700Activa
0926208323TINOCO SALTOS$1685Activa
  • OTP bypass QA: 999999 (se inyecta automaticamente si el campo OTP esta vacio)
  • Mapeo cNumeroTarjeta: en QA el campo debe ir poblado con la cedula del cliente
  • Productos: el wizard usa "004" por defecto; verificar disponibilidad en QA

Checklist de Requisitos que NoviSuite Necesita de ISISYSTEM

Section titled “Checklist de Requisitos que NoviSuite Necesita de ISISYSTEM”
ItemDetalleEstado
Whitelist de IP salienteIP publica desde la que ms-credigestion llamara al WCFPendiente
Confirmacion de hosts y puertosURL completa de Cartera y Central por ambienteQA confirmado
TLS / certificadosSi el endpoint productivo va por HTTPSPendiente
VPN / tunelSi se requiere VPN site-to-site o tunel adicionalPendiente
VariableValor QAEstado
ISISYSTEM_USUARIOPOSNVC001Entregado
ISISYSTEM_CODIGO_EMPRESA000598Confirmado
ISISYSTEM_TERMINALNOVISUITE-01Pendiente confirmacion
ISISYSTEM_OTP_BYPASS999999Workaround vigente
ISISYSTEM_CARTERA_URLhttp://186.5.126.42:8092/Cartera/ServicioCartera.svcQA
ISISYSTEM_CENTRAL_URLhttp://186.5.126.42:8092/Central/ServicioCentral.svcQA
  • WSDL de cada servicio (ServicioCartera.svc?wsdl y ServicioCentral.svc?wsdl)
  • Ejemplos reales de envelope SOAP request + response
  • Politica de idempotencia: como identifica ISISYSTEM un reintento
  • Politica de reverso: ventana de tiempo permitida y autorizaciones requeridas
  • Catalogo de codigos de error de negocio (nNumeroError) con descripcion
  • Punto de contacto tecnico de ISISYSTEM para incidentes (correo + Slack/Teams + horario)
  • Canal para reportar errores upstream (ticketing, mesa de ayuda)
  • Politica de cambios: como notifican a NoviSuite cuando cambia un endpoint, codigo de error o namespace XML
  • Logs upstream: si se pueden solicitar trazas por numeroOperacion cuando hay discrepancia

Ademas de la gestion de clientes, NoviSuite permite realizar consumos de credito directo contra ISISYSTEM. Este modulo es usado por el punto de venta MBA3 y el dashboard de NoviSuite.

AccionEndpointAutenticacion
Consultar linea de creditoPOST /api/v1/credigestion/consumo/cupoBearer JWT
Consultar opciones de financiacionPOST /api/v1/credigestion/consumo/financiacionBearer JWT
Generar autorizacionPOST /api/v1/credigestion/consumo/autorizacionBearer JWT
Registrar OTPPOST /api/v1/credigestion/consumo/otpBearer JWT
Confirmar consumoPOST /api/v1/credigestion/consumo/confirmarBearer JWT
Reversar autorizacionPOST /api/v1/credigestion/consumo/reversoBearer JWT
Reversar consumo confirmadoPOST /api/v1/credigestion/consumo/reverso-consumoBearer JWT

Nota: El modulo de consumo usa Bearer JWT, no ServiceKey. Solo el modulo de clientes acepta ServiceKey para ISISYSTEM.

NoviSuite traduce las llamadas REST/JSON del dashboard a SOAP/XML contra los servicios WCF de ISISYSTEM:

Dashboard/MBA3 ──REST/JSON──> NoviSuite (ms-credigestion) ──SOAP/XML──> ISISYSTEM WCF

ISISYSTEM no necesita implementar nada adicional para el modulo de consumo — NoviSuite consume los servicios WCF que ISISYSTEM ya expone.

ServicioURLOperaciones
Carterahttp://186.5.126.42:8092/Cartera/ServicioCartera.svcConsultarTarjeta, GrabarAutorizacion, GrabarConsumo, GrabarReversoAutorizacion, GrabarReversoConsumo
Centralhttp://186.5.126.42:8092/Central/ServicioCentral.svcConsultarAlternativaFinanciacion

El modulo de pagos (consulta de deuda, aplicacion de pago y reverso de pago) esta en estado de especificacion y aun no esta implementado. Se documentara cuando el modulo exista.

Para dudas tecnicas o soporte, contactar al equipo de NoviSuite.