APIs Última actualización: Febrero de 2025

Bienvenido a la documentación oficial de las APIs de eTiempos. Aquí encontrarás toda la información necesaria para integrarte fácilmente con nuestros servicios. Nuestra suite de APIs proporciona acceso seguro y eficiente a datos críticos, permitiéndote consultar y gestionar la información esencial de tu organización.

💡 ¿Qué es una API?

Una API (Application Programming Interface) es un conjunto de reglas y protocolos que permite a diferentes sistemas comunicarse entre sí. Con nuestras APIs, podrás interactuar con el sistema eTiempos desde tus propias aplicaciones, automatizando procesos y mejorando la eficiencia.

🚀 Características Principales:
  • RESTful: Nuestras APIs siguen el estándar REST, usando métodos HTTP como GET, POST, PUT, y DELETE.
  • Seguridad: Autenticación mediante X-Auth-Token con claves únicas para cada desarrollador.
  • Formato: Las respuestas son en formato JSON, facilitando la integración y el procesamiento de datos.
  • Control de Errores: Sistema detallado de códigos de estado HTTP y mensajes de error.
  • Registro de Actividades: Cada consulta queda registrada para auditoría y control.
🛡️ Seguridad y Autenticación:

Para acceder a cualquier API, es necesario incluir tu API Key en el encabezado (X-Auth-Token). Asegúrate de mantener tu clave segura y no compartirla públicamente.

📌 URL Base de las APIs:
https://etiempos.com/API/v2/{nombreapi}
✅ Ejemplo de Encabezado (Header):
{
  "X-Auth-Token": "Bearer TU_API_KEY"
}
📘 Ejemplo de Consumo con Python:
import requests

url = "https://etiempos.com/API/v2/users"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
🚨 Manejo de Errores:

Nuestras APIs devuelven códigos HTTP estándar. A continuación se listan los más comunes:

  • 200 OK – Solicitud exitosa.
  • 400 Bad Request – Error en la solicitud (parámetros inválidos).
  • 401 Unauthorized – Falta o es inválida la API Key.
  • 403 Forbidden – API Key sin permisos o expirada.
  • 404 Not Found – Recurso no encontrado.
  • 500 Internal Server Error – Error en el servidor.

Usuarios Última actualización: 18 de Febrero 2025

Esta API proporciona una lista de todos los usuarios registrados en el sistema según la compañía asociada a la API Key.

Descripción

Obtener la lista de usuarios según el idCia relacionado con la API Key.

Solicitud (Request)

📌 URL del Endpoint
https://etiempos.com/API/v2/users
✅ Método
  • Método: GET
  • Formato: application/json
  • Autenticación: Requiere API Key mediante X-Auth-Token Header.
🔑 Headers Requeridos
{
  "X-Auth-Token": "Bearer {api_key}"
}
📘 Ejemplo de Consumo con Python:
import requests

url = "https://etiempos.com/API/v2/users"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)

print(response.json())

Respuesta (Response)

✅ Ejemplo de Respuesta Exitosa (200):
{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idEmpleado": 101,
      "name": "Juan Pérez",
      "login": "jperez",
      "email": "juan.perez@etiempos.com",
      "Puesto": "Gerente",
      "Activo": 1
    },
    {
      "idEmpleado": 102,
      "name": "Ana López",
      "login": "alopez",
      "email": "ana.lopez@etiempos.com",
      "Puesto": "Consultor",
      "Activo": 1
    }
  ]
}
⚠️ Ejemplos de Errores:
401 - No Autorizado
{
  "error": "No autorizado: Falta API Key"
}
403 - API Key Expirada
{
  "error": "API Key expirada"
}
500 - Error Interno del Servidor
{
  "error": "Error en la base de datos"
}

Códigos de Estado

Código Significado
200 Solicitud exitosa
400 Solicitud incorrecta
401 Falta o es inválida la API Key
403 API Key expirada o sin permisos
500 Error interno del servidor

Notas Importantes

Recomendaciones

  • Utilizar HTTPS para todas las solicitudes.
  • La API Key es confidencial. Evitar exponerla en clientes públicos.
  • Se recomienda implementar control de límite de solicitudes (rate limiting).

Indicadores de Proyecto Última actualización: Febrero de 2025

La API `indicadorproyecto` proporciona información detallada sobre un proyecto específico, incluyendo métricas clave como horas planeadas, horas consumidas, costos y facturación acumulada. Esta API es útil para realizar análisis de desempeño y seguimiento de proyectos.

🛡️ Requisitos de Autenticación:

Para consumir esta API, es necesario incluir la clave de API (`X-Auth-Token`) en los encabezados.

📌 URL del Endpoint:
https://etiempos.com/API/v2/indicadorproyecto

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación del desarrollador ✅ Sí
proyecto Query Código del proyecto a consultar ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta el indicador de un proyecto usando Python:

import requests

url = "https://etiempos.com/API/v2/indicadorproyecto"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}
params = {
    "proyecto": "PROY2025AA04"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

{
  "nombreProyecto": "PROY2025AA04",
  "horasPlaneadas": 500,
  "honorarios": 150000,
  "horasConsumidas": 350,
  "costoConsumido": 105000,
  "facturadoAcumulado": 120000,
  "mesesTranscurridos": 8
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
400 Bad Request Faltan parámetros obligatorios {"error":"Falta el parámetro 'proyecto'"}
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
404 Not Found Proyecto no encontrado {"error":"Proyecto no encontrado"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Frecuencia: Esta API se actualiza en tiempo real. Se recomienda realizar consultas periódicas, pero evitar exceder los límites de uso.
  • Seguridad: No compartas tu X-Auth-Token públicamente. Almacénala de forma segura.

Clientes Última actualización: Febrero de 2025

La API `clientes` proporciona información sobre los clientes registrados en el sistema. Esta API es fundamental para la gestión de relaciones comerciales y seguimiento de clientes.

🛡️ Requisitos de Autenticación:

Esta API requiere incluir la clave de API (X-Auth-Token) en los encabezados para su uso.

📌 URL del Endpoint:
https://etiempos.com/API/v2/clientes

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación del desarrollador ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta la lista de clientes usando Python:

import requests

url = "https://etiempos.com/API/v2/clientes"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idCliente": 12345,
      "nombre": "Cliente Ejemplo 1",
      "rfc": "ABC123456789",
      "correo": "cliente1@ejemplo.com",
      "telefono": "9991234567"
    },
    {
      "idCliente": 67890,
      "nombre": "Cliente Ejemplo 2",
      "rfc": "XYZ987654321",
      "correo": "cliente2@ejemplo.com",
      "telefono": "9997654321"
    }
  ]
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
400 Bad Request Faltan parámetros obligatorios o malformados {"error":"Parámetros inválidos"}
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
404 Not Found Cliente no encontrado {"error":"Cliente no encontrado"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Frecuencia: Esta API se actualiza en tiempo real. Se recomienda realizar consultas periódicas, pero evitando exceder los límites de uso.
  • Seguridad: Mantén segura tu clave X-Auth-Token. No la expongas en código público.

Hoja de Trabajo Última actualización: Febrero de 2025

La API `hojaTrabajo` permite consultar y gestionar las horas trabajadas registradas en el sistema por proyecto y empleado. Esta API es clave para el control de tiempos y costos.

🛡️ Requisitos de Autenticación:

Esta API requiere incluir la clave de API (X-Auth-Token) en los encabezados para su uso.

📌 URL del Endpoint:
https://etiempos.com/API/v2/hojaTrabajo

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación del desarrollador ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta las horas trabajadas usando Python:

import requests

url = "https://etiempos.com/API/v2/hojatrabajo"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idEmpleado": 101,
      "idProy": 2102,
      "fecha": "2024-01-05",
      "hora": 8.5,
      "actividad": "Revisión de informes",
      "costoHora": 500.00,
      "totalCosto": 4250.00
    },
    {
      "idEmpleado": 101,
      "idProy": 2102,
      "fecha": "2024-01-10",
      "hora": 7.0,
      "actividad": "Reunión con cliente",
      "costoHora": 500.00,
      "totalCosto": 3500.00
    }
  ]
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
400 Bad Request Faltan parámetros obligatorios o malformados {"error":"Parámetros inválidos"}
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
404 Not Found No se encontraron registros {"error":"No se encontraron registros"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Frecuencia: La API se actualiza en tiempo real. Consulta regularmente, pero respeta los límites de uso.
  • Seguridad: Protege tu clave X-Auth-Token. No la compartas ni expongas en código público.

Hoja de Trabajo Meta Última actualización: Febrero de 2025

La API `hojaTrabajoMeta` permite consultar las metas de horas trabajadas definidas para los empleados. Este endpoint es útil para monitorear el cumplimiento de metas y objetivos por periodo.

🛡️ Requisitos de Autenticación:

Esta API requiere incluir la clave de API (X-Auth-Token) en los encabezados para su uso.

📌 URL del Endpoint:
https://etiempos.com/API/v2/hojaTrabajoMeta

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación del desarrollador ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta las metas de horas trabajadas usando Python:

import requests

url = "https://etiempos.com/API/v2/hojaTrabajoMeta"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

{
  "status": "success",
  "total": 2,
  "data": [
    {
	"idEmpleado": 100147,
        "name": "PETER ALEJANDRO PEREZ CHEL",
        "idCia": 2102,
        "Activo": 1,
        "Puesto": "Encargado 2",
        "HorasTotalesMensual": "191.00",
        "Cargables": "87.00",
        "Fecha": "2025-01-01",
        "MetaHoras": 8
    },
  ]
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
400 Bad Request Faltan parámetros obligatorios o malformados {"error":"Parámetros inválidos"}
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
404 Not Found No se encontraron registros {"error":"No se encontraron metas"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Frecuencia: La API se actualiza en tiempo real. Se recomienda consultar de manera mensual para el seguimiento de metas.
  • Seguridad: Asegúrate de proteger tu clave X-Auth-Token.

Actividades Última actualización: Febrero de 2025

La API `actividades` permite obtener el listado de actividades registradas en el sistema. Es útil para consultar las tareas, procesos o acciones relacionadas con los proyectos o empleados.

🛡️ Requisitos de Autenticación:

Esta API requiere incluir la clave de API (X-Auth-Token) en los encabezados para su uso.

📌 URL del Endpoint:
https://etiempos.com/API/v2/actividades

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación del desarrollador ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta las actividades registradas usando Python:

import requests

url = "https://etiempos.com/API/v2/actividades"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers, params=params)
print(response.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

{
  "status": "success",
  "total": 3,
  "data": [
    {
      "idActividad": 105,
      "idProy": 3105,
      "nombre": "Revisión de informes",
      "descripcion": "Revisión y validación de informes mensuales",
      "responsable": "Carlos Martínez",
      "fechaInicio": "2024-02-05",
      "fechaFin": "2024-02-10",
      "estado": "Completada"
    },
    {
      "idActividad": 106,
      "idProy": 3105,
      "nombre": "Auditoría interna",
      "descripcion": "Revisión de cumplimiento de procesos",
      "responsable": "Ana López",
      "fechaInicio": "2024-03-01",
      "fechaFin": "2024-03-15",
      "estado": "En proceso"
    },
    {
      "idActividad": 107,
      "idProy": 3105,
      "nombre": "Capacitación",
      "descripcion": "Capacitación al equipo de trabajo",
      "responsable": "Pedro Pérez",
      "fechaInicio": "2024-04-10",
      "fechaFin": "2024-04-12",
      "estado": "Pendiente"
    }
  ]
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
400 Bad Request Faltan parámetros obligatorios o malformados {"error":"Parámetros inválidos"}
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
404 Not Found No se encontraron registros {"error":"No se encontraron actividades"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Frecuencia: Se recomienda consultar diariamente si se usa para monitoreo de actividades.
  • Seguridad: Mantén tu X-Auth-Token seguro y confidencial.

Departamentos Última actualización: Febrero de 2025

La API `deptos` permite obtener el listado de departamentos registrados en el sistema. Es útil para gestionar y consultar la estructura organizativa de la compañía.

🛡️ Requisitos de Autenticación:

Esta API requiere incluir la clave de API (X-Auth-Token) en los encabezados para su uso.

📌 URL del Endpoint:
https://etiempos.com/API/v2/deptos

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación del desarrollador ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta el listado de departamentos usando Python:

import requests

url = "https://etiempos.com/API/v2/deptos"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

{
  "status": "success",
  "total": 3,
  "data": [
    {
      "idDepto": 101,
      "nombre": "Recursos Humanos",
      "descripcion": "Departamento de gestión de personal",
      "activo": 1
    },
    {
      "idDepto": 102,
      "nombre": "Contabilidad",
      "descripcion": "Departamento de finanzas y contabilidad",
      "activo": 1
    },
    {
      "idDepto": 103,
      "nombre": "Tecnología",
      "descripcion": "Departamento de tecnología y sistemas",
      "activo": 1
    }
  ]
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
400 Bad Request Parámetros inválidos o malformados {"error":"Parámetros inválidos"}
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
404 Not Found No se encontraron departamentos {"error":"No se encontraron departamentos"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Frecuencia: Se recomienda consultar semanalmente si es para actualizaciones de estructura organizativa.
  • Seguridad: Mantén tu X-Auth-Token seguro y confidencial.

Facturación Esperada Última actualización: Febrero de 2025

La API `factesp` permite consultar el historial de facturación específica para proyectos, con detalles personalizados según la estructura de cada cliente.

🛡️ Requisitos de Autenticación:

Esta API requiere el encabezado X-Auth-Token para la autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/factesp

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
X-Auth-Token Header Clave de autenticación ✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta facturación específica para un proyecto usando Python:

import requests

url = "https://etiempos.com/API/v2/factesp"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idFactura": 202401,
      "idProy": 12345,
      "mes": 1,
      "monto": 15000.00,
      "moneda": "MXN",
      "fechaEmision": "2024-01-15"
    },
    {
      "idFactura": 202402,
      "idProy": 12345,
      "mes": 2,
      "monto": 17000.00,
      "moneda": "MXN",
      "fechaEmision": "2024-02-16"
    }
  ]
}

🚨 Posibles Errores

CódigoDescripciónEjemplo
401No autorizado{"error":"API Key inválida"}
404No se encontraron datos{"error":"No se encontraron facturas"}

Facturación Última actualización: Febrero de 2025

La API `facturacion` proporciona un resumen general de todas las facturas emitidas, permitiendo filtrar por cliente, proyecto y rango de fechas.

🛡️ Requisitos de Autenticación:

Requiere el encabezado X-Auth-Token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/facturacion

📝 Parámetros de Consulta

ParámetroTipoDescripciónObligatorio
X-Auth-TokenHeaderClave de autenticación✅ Sí

📥 Ejemplo de Solicitud (Request)

Consulta todas las facturas emitidas para un cliente en un rango de fechas:

import requests

url = "https://etiempos.com/API/v2/facturacion"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}


response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idFactura": 1001,
      "idCliente": 789,
      "idProy": 123,
      "monto": 25000.00,
      "fecha": "2024-03-10"
    },
    {
      "idFactura": 1002,
      "idCliente": 789,
      "idProy": 124,
      "monto": 18000.00,
      "fecha": "2024-05-20"
    }
  ]
}

🚨 Posibles Errores

CódigoDescripciónEjemplo
400Solicitud inválida{"error":"Fechas inválidas"}
401No autorizado{"error":"API Key inválida"}
404Sin resultados{"error":"No se encontraron facturas"}

💡 Notas y Recomendaciones

  • 🛡️ Mantén tu clave de API segura.

Proyectos Última actualización: Febrero de 2025

La API `proyectos` permite consultar el listado general de proyectos activos, incluyendo información básica y fechas clave.

🛡️ Requisitos de Autenticación:

Requiere el encabezado X-Auth-Token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/proyectos

📝 Parámetros de Consulta

ParámetroTipoDescripciónObligatorio
X-Auth-TokenHeaderClave de autenticación✅ Sí

📥 Ejemplo de Solicitud (Request)

import requests

url = "https://etiempos.com/API/v2/proyectos"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idProy": 101,
      "proyecto": "Consultoría Fiscal 2024",
      "descripcion": "Auditoría y revisión fiscal",
      "idCliente": 501,
      "fechaIngreso": "2024-01-15",
      "estado": "Activo"
    },
    {
      "idProy": 102,
      "proyecto": "Implementación ERP",
      "descripcion": "Sistema de gestión empresarial",
      "idCliente": 502,
      "fechaIngreso": "2024-02-20",
      "estado": "Activo"
    }
  ]
}

🚨 Posibles Errores

CódigoDescripciónEjemplo
400Solicitud inválida{"error":"Parámetro inválido"}
401No autorizado{"error":"API Key inválida"}
404No se encontraron proyectos{"error":"Sin resultados"}

Proyectos Esperados Última actualización: Febrero de 2025

La API `proyectosesp` proporciona un detalle extendido de proyectos, incluyendo asignación de horas y gastos adicionales por mes usando las tablas normalizadas meses_proyecto y otros_gastos.

🛡️ Requisitos de Autenticación:

Requiere el encabezado Authorization con Bearer token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/proyectosesp

📝 Parámetros de Consulta

ParámetroTipoDescripciónObligatorio
AuthorizationHeaderBearer token con API Key✅ Sí

📥 Ejemplo de Solicitud (Request)

import requests

url = "https://etiempos.com/API/v2/proyectosesp"
headers = {
    "Authorization": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

{
  "status": "success",
  "total": 24,
  "data": [
    {
      "idProy": 2102,
      "idCia": 2102,
      "IdCliente": 501,
      "Proyecto": "Consultoría Fiscal 2024",
      "DescripcionProy": "Auditoría y revisión fiscal",
      "IdServicios": 10,
      "idGerente": 100050,
      "Mes": 1,
      "MontoPpto": 60250.00,
      "OtrosGastos": 5000.00,
      "Fecha": "01-01-2024"
    },
    {
      "idProy": 2102,
      "idCia": 2102,
      "IdCliente": 501,
      "Proyecto": "Consultoría Fiscal 2024",
      "DescripcionProy": "Auditoría y revisión fiscal",
      "IdServicios": 10,
      "idGerente": 100050,
      "Mes": 2,
      "MontoPpto": 65000.00,
      "OtrosGastos": 3500.00,
      "Fecha": "01-02-2024"
    }
  ]
}

🚨 Posibles Errores

CódigoDescripciónEjemplo
401No autorizado: API Key inválida o ausente{"error":"No autorizado: Falta API Key"}
405Método no permitido{"error":"Método no permitido"}
500Error interno del servidor{"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Autenticación: Esta API usa Bearer token. Asegúrate de incluir Authorization: Bearer {API_KEY} en los headers.
  • Filtrado Automático: Los datos se filtran automáticamente por la compañía (idCia) asociada a tu API Key.
  • Tablas Normalizadas: Esta versión usa las tablas meses_proyecto y otros_gastos en lugar de las columnas mes1-mes12 y og1-og12.
  • Registro: Cada consulta se registra en la tabla devlog para auditoría.

Meses Proyecto Última actualización: Febrero de 2025

La API `mesesProyecto` proporciona información detallada sobre las horas y tarifas presupuestadas por mes para cada empleado en un proyecto. Esta API es fundamental para el seguimiento de la planificación de recursos y costos mensuales.

🛡️ Requisitos de Autenticación:

Esta API requiere el encabezado Authorization con Bearer token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/mesesProyecto

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
Authorization Header Bearer token con API Key ✅ Sí
idProy Query ID del proyecto a filtrar (opcional) ❌ No

📥 Ejemplo de Solicitud (Request)

Consulta los meses presupuestados de un proyecto usando Python:

import requests

# Obtener todos los meses de todos los proyectos de tu compañía
url = "https://etiempos.com/API/v2/mesesProyecto"
headers = {
    "Authorization": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

# Filtrar por proyecto específico
response_filtrado = requests.get(
    url, 
    headers=headers, 
    params={"idProy": 2102}
)
print(response_filtrado.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

[
  {
    "idMesProyecto": 1,
    "idProy": 2102,
    "numeroMes": 1,
    "monto": 60250.00
  },
  {
    "idMesProyecto": 2,
    "idProy": 2102,
    "numeroMes": 2,
    "monto": 65000.00
  },
  {
    "idMesProyecto": 3,
    "idProy": 2102,
    "numeroMes": 3,
    "monto": 70000.00
  }
]

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
401 Unauthorized Falta la clave de autorización o es incorrecta {"error":"Unauthorized Client"}
405 Method Not Allowed Método HTTP no permitido (solo GET) {"error":"Método no permitido"}
500 Internal Server Error Error interno en el servidor {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Autenticación: Esta API usa Bearer token. Incluye Authorization: Bearer {API_KEY} en los headers.
  • Filtrado Automático: Los datos se filtran automáticamente por la compañía (idCia) asociada a tu API Key.
  • Filtrado por Proyecto: Usa el parámetro idProy para obtener solo los datos de un proyecto específico.
  • Registro: Cada consulta se registra en la tabla devlog para auditoría.

Otros Gastos Última actualización: Febrero de 2025

La API `otrosGastos` permite consultar los gastos adicionales registrados por proyecto y mes. Estos gastos incluyen conceptos como viáticos, materiales, servicios externos y otros costos que no son directamente horas de trabajo.

🛡️ Requisitos de Autenticación:

Esta API requiere el encabezado Authorization con Bearer token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/otrosGastos

📝 Parámetros de Consulta

Parámetro Tipo Descripción Obligatorio
Authorization Header Bearer token con API Key ✅ Sí
idProy Query ID del proyecto a filtrar (opcional) ❌ No

📥 Ejemplo de Solicitud (Request)

Consulta los otros gastos registrados usando Python:

import requests

# Obtener todos los gastos de todos los proyectos de tu compañía
url = "https://etiempos.com/API/v2/otrosGastos"
headers = {
    "Authorization": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

# Filtrar por proyecto específico
response_filtrado = requests.get(
    url, 
    headers=headers, 
    params={"idProy": 2102}
)
print(response_filtrado.json())

📤 Ejemplo de Respuesta (Response)

Si la solicitud es correcta, se recibe una respuesta en formato JSON:

[
  {
    "idGasto": 1,
    "idProy": 2102,
    "numeroMes": 1,
    "monto": 5000.00
  },
  {
    "idGasto": 2,
    "idProy": 2102,
    "numeroMes": 2,
    "monto": 3500.00
  },
  {
    "idGasto": 3,
    "idProy": 2103,
    "numeroMes": 1,
    "monto": 12000.00
  }
]

📤 Respuesta con Estructura Success

La respuesta incluye metadatos de éxito:

{
  "status": "success",
  "total": 3,
  "data": [
    {
      "idGasto": 1,
      "idProy": 2102,
      "numeroMes": 1,
      "monto": 5000.00
    }
  ]
}

🚨 Posibles Errores

La API proporciona mensajes de error claros en caso de fallo. A continuación se listan los más comunes:

Código Descripción Ejemplo
401 Unauthorized API Key inválida o ausente {"error":"No autorizado: Falta API Key"}
405 Method Not Allowed Método HTTP no permitido (solo GET) {"error":"Método no permitido"}
500 Internal Server Error Error interno en el servidor o base de datos {"error":"Error en la base de datos"}

💡 Notas y Recomendaciones

  • Autenticación: Esta API usa Bearer token. Incluye Authorization: Bearer {API_KEY} en los headers.
  • Filtrado Automático: Los datos se filtran automáticamente por la compañía (idCia) asociada a tu API Key.
  • Filtrado por Proyecto: Usa el parámetro idProy para obtener solo los gastos de un proyecto específico.
  • Registro: Cada consulta se registra en la tabla devlog para auditoría.
  • Moneda: Los montos se devuelven en la moneda configurada en el proyecto (generalmente MXN).

Puestos Última actualización: Febrero de 2025

La API `puestos` proporciona información sobre los puestos dentro de la empresa.

🛡️ Requisitos de Autenticación:

Requiere el encabezado X-Auth-Token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/puestos

📝 Parámetros de Consulta

ParámetroTipoDescripciónObligatorio
X-Auth-TokenHeaderClave de autenticación✅ Sí

📥 Ejemplo de Solicitud (Request)

import requests

url = "https://etiempos.com/API/v2/puestos"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

{
  "status": "success",
  "total": 3,
  "data": [
    {
      "idPuesto": 1,
      "nombre": "Gerente de Proyectos",
      "descripcion": "Responsable de liderar proyectos.",
      "activo": true
    },
    {
      "idPuesto": 2,
      "nombre": "Analista Contable",
      "descripcion": "Encargado del análisis financiero.",
      "activo": true
    },
    {
      "idPuesto": 3,
      "nombre": "Desarrollador Backend",
      "descripcion": "Desarrollo y mantenimiento de APIs.",
      "activo": true
    }
  ]
}

🚨 Posibles Errores

CódigoDescripciónEjemplo
400Solicitud inválida{"error":"Parámetro inválido"}
401No autorizado{"error":"API Key inválida"}
404No se encontraron puestos{"error":"Sin resultados"}

Servicios Última actualización: Febrero de 2025

La API `servicios` permite consultar el catálogo de servicios ofrecidos por la empresa.

🛡️ Requisitos de Autenticación:

Requiere el encabezado X-Auth-Token para autenticación.

📌 URL del Endpoint:
https://etiempos.com/API/v2/servicios

📝 Parámetros de Consulta

ParámetroTipoDescripciónObligatorio
X-Auth-TokenHeaderClave de autenticación✅ Sí

📥 Ejemplo de Solicitud (Request)

import requests

url = "https://etiempos.com/API/v2/servicios"
headers = {
    "X-Auth-Token": "Bearer TU_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())

📤 Ejemplo de Respuesta (Response)

{
  "status": "success",
  "total": 2,
  "data": [
    {
      "idServicio": 101,
      "nombre": "Consultoría Fiscal",
      "descripcion": "Asesoría y gestión fiscal para empresas.",
      "categoria": "Consultoría"
    },
    {
      "idServicio": 102,
      "nombre": "Consultoría Legal",
      "descripcion": "Soporte en temas legales y regulatorios.",
      "categoria": "Consultoría"
    }
  ]
}

🚨 Posibles Errores

CódigoDescripciónEjemplo
400Solicitud inválida{"error":"Parámetro inválido"}
401No autorizado{"error":"API Key inválida"}
404No se encontraron servicios{"error":"Sin resultados"}