GMAO-GSAT · Integración

GSAT API

Integra los datos de tu GMAO-GSAT con cualquier sistema externo. Nuestra API REST expone en tiempo real los presupuestos y los partes de trabajo de tu organización.

Integración sin fricción

¿Qué es la API de GSAT?

La API de GSAT es una interfaz REST que permite a sistemas externos consultar y obtener datos del núcleo de GMAO-GSAT de forma segura y estructurada. Está diseñada para integraciones empresariales: ERP, portales de cliente, cuadros de mando o cualquier aplicación que necesite acceder a la información de servicio técnico de tu empresa.

Las respuestas se devuelven en formato JSON con paginación, filtros por fecha y estado, y soporte para autenticación mediante token Bearer.

REST sobre HTTPS

Protocolo estándar, compatible con cualquier lenguaje o plataforma.

Clave X-API-KEY

Clave de acceso enviada en la cabecera X-API-KEY. Nunca va en la URL.

JSON paginado

Respuestas estructuradas con paginación, filtros y metadatos de consulta.

Datos en tiempo real

Cada llamada devuelve el estado actual del sistema GMAO-GSAT.

Referencia

Endpoints disponibles

La API expone actualmente dos recursos principales. Cada endpoint soporta filtros, paginación y ordenación por los campos más relevantes del negocio.

GET /api/v1/presupuestos Disponible

Presupuestos

Devuelve el listado de presupuestos generados en GMAO-GSAT. Permite consultar el histórico completo o filtrar por estado, cliente, rango de fechas e importe. Ideal para cuadros de mando comerciales, integraciones con ERP o reporting externo.

Parámetros de consulta

page integer Página de resultados. Mínimo 1. Ejemplo: page=2
pageSize integer Resultados por página. Entre 1 y 100. Ejemplo: pageSize=25
sortBy string Campo por el que ordenar. Nombre exacto. Ejemplo: sortBy=Id
sortDir string Dirección del orden: asc o desc. Ejemplo: sortDir=desc
Id integer Identificador exacto del presupuesto. Ejemplo: Id=65233
Numero string Número exacto del presupuesto. Ejemplo: Numero=1516
Serie string Serie exacta del presupuesto. Ejemplo: Serie=1030
ClienteId integer Identificador exacto del cliente. Ejemplo: ClienteId=123
Estado integer Estado exacto del presupuesto. Ejemplo: Estado=1
fechaDesde datetime Fecha más antigua del rango. Formato: AAAA-MM-DDTHH:MM:SSZ. Ejemplo: fechaDesde=2026-01-01T00:00:00Z
fechaHasta datetime Fecha más reciente del rango (inclusiva). Formato: AAAA-MM-DDTHH:MM:SSZ. Ejemplo: fechaHasta=2026-12-31T23:59:59Z

Campos de respuesta principales

  • id — Identificador único del presupuesto
  • referencia — Número de referencia visible (ej. PRE-2026-0142)
  • cliente — Nombre y CIF del cliente
  • estado — Estado actual del presupuesto
  • importe_neto — Importe sin impuestos
  • importe_total — Importe total con IVA
  • fecha_emision — Fecha de creación del presupuesto
  • fecha_validez — Fecha límite de validez
  • tecnico_asignado — Nombre del técnico responsable

Ejemplo de respuesta

{
  "page": 1,
  "pageSize": 25,
  "total": 142,
  "data": [
    {
      "id": 65233,
      "numero": 1516,
      "serie": "1030",
      "clienteId": 123,
      "estado": 1,
      "importe": 1850.00,
      "fechaEmision": "2026-05-10T00:00:00Z"
    }
  ]
}
GET /api/v1/partes-trabajo Disponible

Partes de trabajo

Devuelve los partes de trabajo registrados en GMAO-GSAT. Cada parte recoge la intervención técnica completa: cliente, instalación, técnico, tiempos, materiales empleados y estado de cierre. Permite construir informes de productividad, facturación o SLA desde sistemas externos.

Parámetros de consulta

page integer Página de resultados. Mínimo 1. Ejemplo: page=2
pageSize integer Resultados por página. Entre 1 y 100. Ejemplo: pageSize=25
sortBy string Campo por el que ordenar. Nombre exacto. Ejemplo: sortBy=Id
sortDir string Dirección del orden: asc o desc. Ejemplo: sortDir=desc
Id integer Identificador exacto del parte. Ejemplo: Id=1
Numero string Número exacto del parte de trabajo. Ejemplo: Numero=1
ClienteId integer Identificador exacto del cliente. Ejemplo: ClienteId=5
Estado integer Estado exacto del parte. Ejemplo: Estado=1
Serie string Serie exacta del parte. Ejemplo: Serie=1
ProyectoId integer Identificador exacto del proyecto vinculado. Ejemplo: ProyectoId=25
PresupuestoId integer Identificador del presupuesto relacionado. Ejemplo: PresupuestoId=65233
fechaDesde datetime Fecha más antigua del rango. Formato: AAAA-MM-DDTHH:MM:SSZ. Ejemplo: fechaDesde=2026-01-01T00:00:00Z
fechaHasta datetime Fecha más reciente del rango (inclusiva). Formato: AAAA-MM-DDTHH:MM:SSZ. Ejemplo: fechaHasta=2026-12-31T23:59:59Z

Campos de respuesta principales

  • id — Identificador único del parte
  • numero_parte — Referencia visible (ej. PT-2026-3871)
  • cliente — Nombre y CIF del cliente
  • instalacion — Descripción e ID de la instalación o máquina
  • tecnico — Nombre del técnico asignado
  • estado — Estado actual del parte
  • fecha_apertura — Fecha y hora de apertura
  • fecha_cierre — Fecha y hora de cierre (null si abierto)
  • tiempo_resolucion_h — Tiempo total en horas desde apertura a cierre
  • descripcion_averia — Descripción del problema reportado
  • descripcion_intervencion — Descripción de la actuación realizada
  • materiales — Array de materiales empleados con referencia y cantidad

Ejemplo de respuesta

{
  "page": 1,
  "pageSize": 25,
  "total": 3871,
  "data": [
    {
      "id": 10042,
      "numero": 3871,
      "clienteId": 5,
      "proyectoId": 25,
      "presupuestoId": 65233,
      "estado": 1,
      "fechaApertura": "2026-05-14T09:30:00Z",
      "fechaCierre": "2026-05-14T12:00:00Z"
    }
  ]
}

Seguridad

Autenticación y acceso

Todas las llamadas requieren una clave de acceso enviada en la cabecera HTTP X-API-KEY. La clave es única por cliente, la genera el equipo de Grupo Talia y puede revocarse en cualquier momento.

  • Cabecera obligatoria: X-API-KEY con tu clave real
  • Comunicación cifrada HTTPS en todas las peticiones (-k para certificados locales)
  • Clave única por entorno: producción y desarrollo tienen claves separadas
  • API de solo lectura: no crea, modifica ni elimina datos
  • Límite de llamadas configurable según acuerdo de servicio

Ejemplos en PowerShell / curl.exe

# Listado de presupuestos (página 1, 10 resultados)
curl.exe -k -H "X-API-KEY: TU_API_KEY_REAL" "https://SERVIDOR:7264/api/v1/presupuestos?page=1&pageSize=10"

# Presupuesto concreto por ID
curl.exe -k -H "X-API-KEY: TU_API_KEY_REAL" "https://SERVIDOR:7264/api/v1/presupuestos/65233"

# Partes de un presupuesto concreto
curl.exe -k -H "X-API-KEY: TU_API_KEY_REAL" "https://SERVIDOR:7264/api/v1/partes-trabajo?PresupuestoId=65233&page=1&pageSize=10"

# Verificar que la API responde
curl.exe -k -H "X-API-KEY: TU_API_KEY_REAL" "https://SERVIDOR:7264/health/ready"

Referencia rápida

Reglas y códigos de error

Conocer las restricciones de la API y el significado de cada código de respuesta reduce el tiempo de integración y facilita la detección de problemas.

Reglas importantes

  • Usa siempre curl.exe (no curl) en PowerShell para evitar diferencias de comportamiento.
  • La cabecera X-API-KEY es obligatoria en todas las llamadas.
  • Usa -k si el certificado HTTPS es local o interno.
  • El parámetro depth no está permitido: devuelve error 400.
  • En los endpoints de detalle por ID (/presupuestos/{id}) no añadas parámetros extra.
  • Los filtros funcionan por coincidencia exacta: envía el valor completo, no una parte.
  • page debe ser 1 o mayor. pageSize entre 1 y 100.
  • fechaDesde no puede ser mayor que fechaHasta. El rango es inclusivo.
  • sortDir solo acepta asc o desc. Cualquier otro valor devuelve error 400.

Códigos de respuesta HTTP

200
OK

La llamada es correcta y devuelve los datos solicitados.

400
Bad Request

Parámetro incorrecto, valor no permitido o combinación inválida (p. ej. depth, sortDir erróneo, fechaDesde  >  fechaHasta, page < 1).

401
Unauthorized

Falta la cabecera X-API-KEY o la clave no es correcta.

403
Forbidden

La clave es válida pero no tiene permiso para esa operación.

404
Not Found

El registro solicitado no existe en la base de datos.

429
Too Many Requests

Se han realizado demasiadas consultas en poco tiempo. Espera y vuelve a intentarlo.

504
Gateway Timeout

La consulta tardó demasiado. Usa filtros más concretos o reduce el pageSize.

Siguiente paso

¿Quieres integrar GSAT con tu sistema?

Contacta con nuestro equipo para solicitar el acceso a la API, recibir la documentación técnica completa y definir el alcance de la integración.