Acceso al Sandbox

Ingresa una API Key válida generada en el LMS (Sistema → API Keys). El acceso se valida en tiempo real: si la clave está revocada, no podrás entrar.
¿Sin credenciales? Solicítalas a tu administrador en el panel de Lirium.
Solicitud de prueba
Completa los datos y las variables de scoring, luego pulsa Probar para enviar la aplicación al motor real de Looviin.
SANDBOX
Datos del solicitante

Variables de scoring
JSON del request
📊
Sin resultados todavía
Completa la solicitud y pulsa Probar para ver aquí la decisión, el score y la respuesta del motor.
Entorno
Uso de la credencial · 24h
Cargando uso de la credencial…
Actividad del sandbox · 24h
hace 24 hahora
Envíos hechos desde este sandbox con tu credencial (se guardan localmente en este navegador).

GIG Ingest API

Ingesta masiva de aplicaciones del canal GIG (plataformas de socios y/o usuarios masivos) con evaluación automática de scoring crediticio. Hasta 100 aplicaciones por request.

Autenticación

Cada request debe incluir tu API Key en el header:

X-API-Key: <tu-api-key>

Las credenciales las entrega tu contacto en Looviin. Trátalas como secretas; si se compromete una, solicita su revocación.

Endpoint

POST https://api.looviin.com/PRO

Content-Type: application/json.

Request — body

{
  "aplicaciones": [
    {
      "nombre":          "Juan Pérez",
      "cedula":          "1234567890",
      "ciudad":          "Bogotá",
      "telefono":        "+573001234567",
      "plataforma":      "rappi",
      "moneda":          "COP",
      "ingreso":         2500000,
      "monto_deuda":     800000,
      "num_deudas":      "1",
      "antiguedad_mora": "lt6",
      "historial_previo":"no",
      "optin_whatsapp":  true
    }
  ]
}

Campos

CampoTipoReq.Descripción
nombrestringNombre completo del solicitante
cedulastringCédula de ciudadanía
ciudadstringCiudad de residencia
telefonostringNoNúmero con código de país
plataformastringNorappi | inDrive | uber | texto libre (nombre de la plataforma)
monedastringNoCódigo de 3 letras de la moneda de los montos: COP | USD | MXN | PEN | ARS | CLP | BRL … Si se omite, se infiere por el código de país del teléfono.
ingresonumberIngresos mensuales generados en tu plataforma, en la moneda declarada (> 0). Alias heredado: ingreso_cop
monto_deudanumberMonto de la deuda a consolidar, en la moneda declarada (> 0). Alias heredado: monto_deuda_cop
num_deudasstring"1" | "2" | "3"
antiguedad_morastringVer tabla abajo
historial_previostring"si" | "no"
optin_whatsappbooleanConsentimiento del usuario para ser contactado por Looviin vía WhatsApp. Debe ser true para que el cliente reciba el flujo de WhatsApp y firma del contrato. Sin consentimiento la solicitud se registra y evalúa igual, pero no se le contactará por WhatsApp.

Consentimiento WhatsApp (opt-in): antes de enviar la solicitud, el socio debe haber obtenido el consentimiento explícito del usuario para que Looviin lo contacte por WhatsApp, y enviarlo en optin_whatsapp. Es un requisito de la plataforma de WhatsApp/Meta para mensajes iniciados por la empresa: solo se contactará a los usuarios que dieron optin_whatsapp: true.

Valores de antiguedad_mora

ValorSignificado
lt6Menos de 6 meses en mora
6a12Entre 6 y 12 meses en mora
1a2Entre 1 y 2 años en mora
gt2Más de 2 años en mora

Response

Éxito 200

{
  "procesados": 1,
  "errores": 0,
  "resultados": [
    {
      "cedula":   "1234567890",
      "nombre":   "Juan Pérez",
      "id":       42,
      "score":    75,
      "decision": "approved",
      "estado":   "firma_pendiente"
    }
  ]
}

Si alguna aplicación falla validación, se incluye errores_detalle (el resto del lote se procesa igual):

{
  "procesados": 1,
  "errores": 1,
  "resultados": [ ... ],
  "errores_detalle": [
    { "cedula": "0000000000", "error": "ingreso (ingreso_cop) requerido y > 0 (numérico)" }
  ]
}

¿Quedó registrada o no?

Cómo interpretar la respuesta por cada aplicación del lote:

✓ Registrada
Aparece en resultados[] (con id, score, decision, estado) y cuenta dentro de procesados. La aplicación quedó creada en Looviin. Cada entrada trae la cedula como identificador para emparejarla con tu envío.
✗ No registrada
No está en resultados[]: aparece en errores_detalle[] con el motivo (suma a errores), o el request falló (HTTP ≠ 200). No se creó — corrige y reenvíala.

Unicidad por WhatsApp: el requisito que evita duplicados es el número de telefono (WhatsApp), no la cedula. Si ya existe una aplicación abierta (no rechazada ni desembolsada) con ese número, la nueva se rechaza con el motivo “No se puede generar esta solicitud porque ya existe una asociada a este número de whatsapp”. La cedula es obligatoria y se usa solo como identificador en la respuesta.

El resto del lote se procesa igual aunque algunas fallen: revisa resultados[] vs errores_detalle[] aplicación por aplicación, no solo el código HTTP.

Qué recibe el cliente por WhatsApp

Cuando una aplicación entra con optin_whatsapp: true y queda registrada, Looviin dispara un outbound de WhatsApp al número de telefono: una oferta co-branded (tu marca + Looviin) con el saldo de la deuda y un botón “Me interesa”. Si el cliente acepta, el resto del flujo (extractos, validación de ingreso, firma) ocurre dentro del mismo chat. Así se ve la respuesta esperada del lado del cliente:

Este es un ejemplo ilustrativo del mensaje co-branded. El texto exacto, el nombre del aliado y los botones se configuran en tu credencial; “Aliado Demo” es un nombre ficticio.

Tabla de decisiones

Scoredecisionestado
≥ 70approvedfirma_pendiente
50 – 69en_revisionen_revision
30 – 49en_revisionen_revision
< 30rechazadorechazado
Monto > límiterechazadorechazado

Errores HTTP

CódigoDescripción
400JSON inválido o campos requeridos faltantes
401API Key inválida o ausente
405Método no permitido (solo POST/GET)
500Error interno temporal — reintentar

Cuota diaria por partner

Tu credencial tiene un cap diario negociado con Looviin (ventana rolling 24h). Si un lote excede el restante disponible, las aplicaciones que sobran se rechazan individualmente con el código quota_partner_excedida dentro de errores_detalle[]; el resto del lote se procesa normal (modo procesamiento parcial, HTTP 200):

{
  "procesados": 280,
  "errores": 20,
  "resultados": [ ... 280 items ... ],
  "errores_detalle": [
    {
      "cedula":     "1234567890",
      "error":      "quota_partner_excedida",
      "restante":   0,
      "cap_diario": 300
    }
  ]
}

Si tu credencial fue creada sin cap (campo cap_diario nulo en el LMS), no hay límite por partner — los lotes solo están sujetos al máximo de 100 apps por request.

Consultar cuota antes de enviar (GET)

Para no enviar un lote que vas a exceder, podés consultar tu estado actual con un GET al mismo endpoint:

GET https://api.looviin.com/PRO
X-API-Key: <tu-api-key>

Respuesta:

{
  "partner": {
    "nombre":     "Aliado Demo S.A.S.",
    "pais":       "CO",
    "cap_diario": 300,
    "used_24h":   45,
    "remaining":  255
  },
  "window":     "rolling_24h",
  "fetched_at": "2026-05-23T20:28:07.862918+00:00"
}

El sandbox tiene la pestaña Conexión & cuota con un botón “Consultar cuota” debajo del campo X-API-Key que llama a este endpoint y muestra el resultado en cards. cap_diario y remaining son null si tu credencial no tiene cap.

Lotes

Máximo 100 aplicaciones por request. Las que fallen validación se omiten individualmente; el resto se procesa. Si además el lote excede tu cap diario, se procesan las primeras N apps que entren en el restante y las demás responden con quota_partner_excedida (ver arriba).

Normalización tolerante

El endpoint normaliza la entrada antes de validar. No necesitas adaptar tu formato a estos casos:

CampoAceptaSe normaliza a
ingreso, monto_deudanúmero o string numérico (2500000 o "2500000"); también los alias heredados ingreso_cop / monto_deuda_copnúmero (> 0)
monedacódigo de 3 letras en cualquier capitalización (cop, Usd…)mayúsculas; si no es válida se infiere por el teléfono
num_deudasstring o entero ("1" o 1)string "1"/"2"/"3"
antiguedad_moracualquier capitalizaciónminúsculas
historial_previocualquier capitalizaciónminúsculas (enviar si/no sin tilde)
plataformatexto libre o ausenteminúsculas, gig si vacío
nombre, cedula, ciudad, telefonocon espacios sobrantestrim()
Un elemento del array que no sea un objeto (null, string, número) se rechaza individualmente sin abortar el resto del lote.

Motor de scoring

CriterioPuntos máx
Capacidad de pago (ingreso / cuota de referencia)25
Canal de origen (GIG = 20 fijo)20
Antigüedad de mora20
Número de deudas en mora20
Historial de pago previo15
Total100

Ejemplos (cURL)

POST · enviar lote

curl -X POST https://api.looviin.com/PRO \
  -H "Content-Type: application/json" \
  -H "X-API-Key: TU_API_KEY" \
  -d '{
    "aplicaciones": [
      {
        "nombre":          "Ana García",
        "cedula":          "9876543210",
        "ciudad":          "Medellín",
        "telefono":        "+573109876543",
        "plataforma":      "inDrive",
        "moneda":          "COP",
        "ingreso":         3200000,
        "monto_deuda":     600000,
        "num_deudas":      "2",
        "antiguedad_mora": "6a12",
        "historial_previo":"si",
        "optin_whatsapp":  true
      }
    ]
  }'

GET · consultar cuota

curl https://api.looviin.com/PRO \
  -H "X-API-Key: TU_API_KEY"
Looviin Colombia · GIG API · Documentación para integradores. Para soporte o gestión de credenciales, contacta a tu enlace en Looviin.
Colección Postman
Postman Collection v2.1 · 2 requests · variables baseUrl + apiKey
Descargar (.json)
Endpoints incluidos
POST/PROEnviar lote — hasta 100 aplicaciones
GET/PROConsultar cuota de la credencial
Cómo importar
  1. En Postman: Import → arrastrá looviin-gig-api.postman_collection.json.
  2. Abrí la colección → pestaña Variables → poné tu clave en apiKey (Current value).
  3. Ejecutá Consultar cuota · GET /PRO para validar el acceso (200 + tu cuota).
  4. Editá el body de Enviar lote y dale Send.
Variables
baseUrlhttps://api.looviin.com
apiKeytu clave (reemplazar)
Autenticación

Cada request lleva el header X-API-Key: {{apiKey}}, ya configurado en la colección. Mismo endpoint que el sandbox (api.looviin.com).