
## Obtener datos de una licencia

Servicio: `https://licencias.api.induxsoft.net`. Las consultas no requieren encabezado `Authorization`: el servicio solo responde si el identificador (`{id_licencia_o_activo}`) pertenece al cliente indicado en `{nic_o_idservicio}`.

GET
```https://licencias.api.induxsoft.net/licencia/{nic_o_idservicio}/{id_licencia_o_activo}```

Respuesta:
```
{
    "dispositivo": "Código del dispositivo en relación a la licencia",
    "creacion": "Fecha de creación",
    "activacion": "Fecha de activación",
    "vencimiento": "Fecha de vencimiento",
    "producto": "Nombre del producto",
    "vencida": true/false,
    "bloqueada": true/false
}
```

## Obtener datos de una Cuenta de Timbrado

GET
```https://licencias.api.induxsoft.net/cti/{nic_o_idservicio}/{id_licencia_o_activo}```

Respuesta:
```
{
    "creacion": "Fecha de creación",
    "vencimiento": "Fecha de vencimiento",
    "producto": "Descripción del CTI",
    "vencida": true/false,
    "activa": true/false
}
```

## Obtener datos de un activo practihost

GET
```https://licencias.api.induxsoft.net/practihost/{nic_o_idservicio}/{id_licencia_o_activo}```

Respuesta:
```
{
    "creacion": "Fecha de creación",
    "vencimiento": "Fecha de vencimiento",
    "producto": "Descripción del activo",
    "vencida": true/false
}
```

## Obtener datos de un workspace

GET
```https://licencias.api.induxsoft.net/workspace/{nic_o_idservicio}/{id_licencia_o_activo}```

Respuesta:
```
{
    "creacion": "Fecha de creación",
    "inicio": "Fecha de inicio",
    "vencimiento": "Fecha de vencimiento",
    "ult_renovacion": "Fecha de ultima renovación",
    "producto": "Descripción",
    "vencida": true/false
}
```

## Notas de implementación

*Revisado contra el código del servicio el 2026-10-19.*

- Las fechas llegan con el formato `yyyy-MM-ddTHH:mm:ss` (sin zona horaria) o como cadena vacía si no hay dato.
- `vencida`, `bloqueada` y `activa` llegan como número (`1` verdadero, `0` falso), no como `true`/`false`.
- La respuesta exitosa es el objeto mismo, sin envoltura `success`/`data`.
- Si no hay datos para la combinación de cliente e identificador, el servicio responde **HTTP 404** con:

```
Content-Type: application/json;charset=utf-8
{
    "success": 0,
    "message": "{404} No se encontró datos relacionado a la licencia y el nic"
}
```

  El texto de `message` puede terminar con una referencia interna de línea (`[Ln= …]`).

- El primer segmento de la ruta debe ser `licencia`, `cti`, `practihost` o `workspace`. Con otro valor, o si faltan segmentos, el servicio responde un error (`{"message": "..."}`) en lugar de datos.

### Ejemplo

```
GET https://licencias.api.induxsoft.net/licencia/123456/ABCDEFGHJKMNPQRSTVWXYZ0123/

HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
{
    "dispositivo": "EQUIPO-EJEMPLO",
    "creacion": "2026-01-15T10:30:00",
    "activacion": "2026-01-15T10:45:12",
    "vencimiento": "2027-01-15T00:00:00",
    "producto": "Producto de ejemplo",
    "vencida": 0,
    "bloqueada": 0
}
```

## Generar un identificador de licencia

GET
```https://licencias.api.induxsoft.net/guid26.dkl```

Devuelve un identificador nuevo de 26 caracteres con el formato de las licencias. Solo genera el texto: no registra ninguna licencia.

Respuesta:
```
{
    "success": 1,
    "data": {
        "licencia": "Identificador de 26 caracteres"
    }
}
```
