/v1/auth/token
Pública
Generar token
Valida credenciales del cliente y devuelve access_token.
Body JSON
{
"client_id": "mi_cliente",
"client_secret": "mi_secreto"
}
Respuesta ejemplo
{
"access_token": "<jwt>",
"token_type": "Bearer",
"expires_in": 3600
}
Errores posibles
/v1/asistencias
Bearer JWT
Consultar asistencias
Consulta asistencias por rango de fechas del cliente autenticado. inicio/fin en formato YYYY-MM-DD.
inicio=2026-03-01&fin=2026-03-31&empleado=123Respuesta ejemplo
{
"items": [
{
"GRUPO_COMERCIAL": "Grupo ABC",
"CLIENTE": "Cliente Demo",
"INSTALACION": "Planta Norte",
"UBICACION": "Acceso principal",
"CARGO": "Guardia de seguridad",
"COD_EMP": "123",
"EMPLEADO": "Juan Pérez",
"TURNO_ID": 7,
"TURNO_HORA": "08:00 - 17:00",
"FECHA_INICIO": "2026-03-20",
"HORA_ENTRADA": "08:05",
"FECHA_FIN": "2026-03-20",
"HORA_SALIDA": "17:02",
"ASISTENCIA": "Asistencia",
"ENTRADA": "Sí",
"SALIDA": "Sí",
"TIEMPO_EXTRA": "No"
}
]
}
Errores posibles
/v1/reporte-asistencias
Bearer JWT
Reporte de asistencias del turno anterior
Consulta las asistencias del turno del día anterior del cliente autenticado, incluyendo a todos los empleados sin filtro.
Respuesta ejemplo
{
"items": [
{
"GRUPO_COMERCIAL": "Grupo ABC",
"CLIENTE": "Cliente Demo",
"INSTALACION": "Planta Norte",
"UBICACION": "Acceso principal",
"CARGO": "Guardia de seguridad",
"COD_EMP": "123",
"EMPLEADO": "Juan Pérez",
"TURNO_ID": 7,
"TURNO_HORA": "08:00 - 17:00",
"FECHA_INICIO": "2026-03-20",
"HORA_ENTRADA": "08:05",
"FECHA_FIN": "2026-03-20",
"HORA_SALIDA": "17:02",
"ASISTENCIA": "Asistencia",
"ENTRADA": "Sí",
"SALIDA": "Sí",
"TIEMPO_EXTRA": "No"
}
]
}
Errores posibles
/v1/listado-vacantes
Bearer JWT
Listado de vacantes
Obtiene vacantes activas del cliente autenticado.
Respuesta ejemplo
{
"items": [
{
"EMPRESA": "Empresa XYZ",
"GRUPO_COMERCIAL": "Grupo ABC",
"CLIENTE_ID": 1,
"CLIENTE": "Cliente Demo",
"INSTALACION_ID": 10,
"INSTALACION": "Planta Norte",
"ESTADO": "Estado Demo",
"CIUDAD": "Ciudad Demo",
"PUESTO_ID": 44,
"UBICACION": "Acceso principal",
"CARGO": "Guardia de seguridad",
"SALARIO": "9524.32",
"PLAZA_ID": 95,
"POSICION": "A",
"PROGRAMACION": "Programación 1"
}
]
}
Errores posibles
/v1/listado-empleados
Bearer JWT
Listado de empleados
Obtiene los datos de un empleado asignado del cliente autenticado, filtrado por el parámetro empleado.
empleado=123Respuesta ejemplo
{
"items": [
{
"EMPRESA": "Empresa XYZ",
"GRUPO_COMERCIAL": "Grupo ABC",
"CLIENTE_RFC": "CLI950821ABC",
"CLIENTE": "Cliente Demo",
"INSTALACION": "Planta Norte",
"REGION": "Región Centro",
"ESTADO": "Estado Demo",
"CIUDAD": "Ciudad Demo",
"COD_ALTERNO": "PT-01",
"UBICACION": "Acceso principal",
"PLAZA_ID": 95,
"POSICION": "A",
"EMPLEADO_ID": 123,
"EMPLEADO": "Pérez Gómez Juan Carlos",
"FECHA_INGRESO": "2026-03-30",
"EMPLEADO_RFC": "PEGJ950821ABC",
"CARGO": "Guardia de seguridad",
"PROGRAMACION": "Programación 1"
}
]
}
Errores posibles
/v1/estado-empleado
Bearer JWT
Estado de empleado (activo/inactivo)
Obtiene los datos de un empleado del cliente autenticado buscando por RFC o número de empleado, incluyendo su estatus (Activo/Inactivo). Si el empleado está inactivo, solo se devuelven sus datos base (id, nombre, fecha de ingreso, RFC); el resto de los campos vienen vacíos.
empleado=123 (o empleado=PEGJ950821ABC)Respuesta ejemplo
{
"items": [
{
"EMPRESA": "Empresa XYZ",
"GRUPO_COMERCIAL": "Grupo ABC",
"CLIENTE_RFC": "CLI950821ABC",
"CLIENTE": "Cliente Demo",
"INSTALACION": "Planta Norte",
"REGION": "Región Centro",
"ESTADO": "Estado Demo",
"CIUDAD": "Ciudad Demo",
"COD_ALTERNO": "PT-01",
"UBICACION": "Acceso principal",
"PLAZA_ID": 95,
"POSICION": "A",
"EMPLEADO_ID": 123,
"EMPLEADO": "Pérez Gómez Juan Carlos",
"FECHA_INGRESO": "2026-03-30",
"EMPLEADO_RFC": "PEGJ950821ABC",
"CARGO": "Guardia de seguridad",
"PROGRAMACION": "Programación 1",
"ESTATUS": "Activo"
}
]
}
Errores posibles
/v1/tipo-incidencias
Bearer JWT
Listado de tipos de incidencia
Obtiene los tipos de incidencia activos (TPIN_ESTADO = 1) del cliente autenticado.
Respuesta ejemplo
{
"items": [
{
"TIPO_INCIDENCIA_ID": 1,
"INCIDENCIA": "Vacaciones",
"AFECTA_NOMINA": "Sí",
"TURNO_X_TURNO": "No"
}
]
}
Errores posibles
/v1/incidencias
Bearer JWT
Listado de incidencias
Consulta incidencias del cliente autenticado filtradas por el parámetro empleado (EMP_ID).
empleado=123Respuesta ejemplo
{
"items": [
{
"INCIDENCIAS_ID": 10,
"EMP_ID": 123,
"EMPLEADO": "Pérez Gómez Juan Carlos",
"DIAS_INCIDENCIA": 5,
"TIPO_INCIDENCIA": "Vacaciones",
"FECHA_INICIO": "2026-03-01",
"FECHA_FIN": "2026-03-05",
"OBSERVACIONES": null
}
]
}
Errores posibles
/v1/agregar-incidencia
Bearer JWT
Agregar incidencia
Registra una incidencia para un empleado del cliente autenticado. Valida que el empleado y el tipo de incidencia estén activos, exige empleado_cubrir cuando el tipo de incidencia es turno por turno, y rechaza incidencias que se traslapen en fecha con otra ya registrada para el mismo empleado.
Body JSON
{
"empleado": 123,
"tipo_incidencia": 1,
"dias": 5,
"fecha_inicio": "2026-03-01",
"fecha_fin": "2026-03-05",
"observaciones": "Vacaciones anuales",
"empleado_cubrir": 456
}
Respuesta ejemplo
{
"id": 789,
"message": "Incidencia registrada correctamente."
}
Errores posibles
/v1/agregar-justificacion
Bearer JWT
Agregar justificación
Registra una justificación para un turno (TURNO_ID) de un empleado del cliente autenticado. Las justificaciones creadas por esta vía siempre quedan aprobadas de forma automática: se limpia la incidencia del turno, se marca como asistencia tomada y se guarda el motivo capturado. Solo puede existir una justificación por turno.
Body JSON
{
"empleado": 123,
"turno_id": 98765,
"motivo": "Olvido de marcaje",
"descripcion": "El empleado marcó entrada tarde por falla en la app.",
"comentario_aprobacion": "Justificación aprobada automáticamente vía integración."
}
Respuesta ejemplo
{
"id": 321,
"message": "Justificación registrada y aprobada correctamente."
}
Errores posibles
/v1/agregar-empleado
Bearer JWT
Agregar empleado
Inserta un empleado en integracion_empleados para el cliente del token. El campo "adicional" es un JSON con datos extra que se guardan tal cual en la base de datos para ese empleado, útil para integraciones personalizadas.
Body JSON
{
"codemp": 123,
"apaterno": "Pérez",
"amaterno": "Gómez",
"nombres": "Juan Carlos",
"fecnac": "1995-08-21",
"rfc": "PEGJ950821ABC",
"curp": "PEGJ950821HDFRMR09",
"imss": "12345678901",
"correo": "juan.perez@empresa.com",
"telefono": "5512345678",
"fecing": "2026-03-30",
"adicional": {
"fuente": "integracion_MAAT",
"comentarios": "Ingreso por API",
"empresa": "Empresa XYZ",
"grupo_comercial": "Grupo ABC",
"cliente_id": 1,
"cliente": "Cliente Demo",
"instalacion_id": 10,
"instalacion": "Planta Norte",
"estado": "Estado Demo",
"ciudad": "Ciudad Demo",
"puesto_id": 44,
"ubicacion": "Acceso principal",
"cargo": "Guardia de seguridad",
"salario": "9524.32",
"plaza_id": 95,
"posicion": "A",
"programacion": "Programación 1"
}
}
Respuesta ejemplo
{
"id": 456,
"message": "Empleado agregado correctamente."
}