API de Movidesk - Contrato de horas - Consumo de horas
22 min
Creado por Andre Azevedo Vargas en 22/01/2019 11:01
Actualizado por Karine Moreira en 24/09/2024 16:27
Importante: Nuestras API tienen un límite de 10 solicitudes por minuto para garantizar un uso saludable. Si tienes un escenario específico que requiera un mayor uso, contacta a nuestro equipo de soporte para analizar la viabilidad. Más información sobre horarios y límites de las API
https://api.movidesk.com/public/v1

Consumo del contrato de horas

  URL:    /timeAgreementConsumption
  Métodos: GET 

Layout

timeAgreementConsumption

Propiedad Tipo Tamaño Obligatorio Descripción
id cadena 64   Número del consumo del contrato de horas (solo lectura). Este ID corresponde al registro del cierre del período. En períodos abiertos, el ID devuelto es cero, ya que el cierre aún no ha sido generado.
name cadena 128 Nombre del contrato de horas
startPeriod FechaHora 19  Inicio del período (formato 2019-10-01T00:00:00). Propiedad referente al campo "period", utilizada solo como filtro para buscar más de un período.
endPeriod DateTime 19   Fin del período. Propiedad referente al campo "period", utilizada solo como filtro para buscar más de un período.
baseAmount decimal 18,2    Valor base del contrato
exceededHourAmount decimal     Valor total de horas excedentes
renewalDay int 2   Día de renovación del contrato de horas
contractedHours int     Horas contratadas
differentiateHoursFranchise bool     Indica si diferencia las horas de la franquicia por actividad
differentiateHoursConsumption bool     Se usa para diferenciar la franquicia de horas y valores por actividad y tipos de hora
period Datetime     Período del registro de horas.
consumedHours double     Horas consumidas en el contrato de horas. Este valor se muestra solo cuando el período está cerrado
discount decimal  18,2   Descuento en el contrato de horas
discountType int   Porcentaje = 0, Moneda = 1
timeAppointments appointments     Lista con los registros de horas del contrato de horas. ver documentación
expenses expenses     Lista con los gastos del contrato de horas. ver documentación
clients person       Lista con los clientes del contrato de horas. ver documentación

Puntos importantes

  • Obligatoriedad del parámetro name: Para búsquedas utilizando startPeriod y endPeriod, es obligatorio especificar el nombre del contrato de horas en la propiedad name.
  • Error de falta de $select: Si name no está especificado, la solicitud devolverá un error indicando que el parámetro $select es necesario.
  • Prioridad del parámetro $select: Si $select se usa en la solicitud, las propiedades startPeriod, endPeriod y period se ignorarán, y el sistema devolverá un estado 200 - ok.

 

Por lo tanto, para una solicitud correcta que busca el consumo de horas, es necesario:
1. Especificar la propiedad name con el nombre del contrato de horas.
2. No incluir $select en la solicitud.
3. Utilizar el $filter para definir el intervalo de period en formato Datetime.


Consumo de contrato de horas > Clientes

timeAgreementConsumption.client[n]

Propiedad Tipo Tamaño Obligatorio Descripción
id string 64 Id (Cod. ref.) de la empresa, departamento o persona relacionado como cliente del ticket (Solo lectura).
businessName string 128   Nombre del cliente (Solo lectura).
email string 128   Correo electrónico principal del cliente (Solo lectura).
phone string 128   Teléfono principal del cliente (Solo lectura).
personType int 1 ✓  Persona = 1, Empresa = 2, Departamento = 4 (Solo lectura).
profileType int 1 ✓  Agente = 1, Cliente = 2, Agente y Cliente = 3 (Solo lectura).
isDeleted bool     Verdadero si el cliente ha sido eliminado (Solo lectura).
organization person     Organización del cliente (Solo lectura). ver documentación

Consumo de contrato de horas » Registros de horas
timeAgreementConsumption.timeAppointments[n]

Propiedad Tipo Tamaño Obligatorio Descripción
id int    * Id (Código) del registro (Solo lectura). *Debe ser proporcionado cuando sea necesario modificar un registro ya existente.
activity string 128 Debe ser una actividad registrada previamente en el sistema.
date datetime   Debe contener la fecha con las horas en ceros. Ej: 2016-08-24T00:00:00.
periodStart time   * Período inicial del registro. Ej: 08:00:00. *Obligatorio cuando se determine por configuración.
periodEnd time   * Período final del registro. Ej: 12:00:00. *Obligatorio cuando se determine por configuración.
workTime time    * Tiempo total del registro. Ej: 04:00:00. *Obligatorio cuando se determine por configuración.
workTypeName string   Tipo del horario registrado.
createdBy person    ✓ Datos de la persona que realizó el registro. ver documentación
createdByTeam team   * Datos del equipo de la persona que registró el gasto. ver documentación

Consumo de contrato de horas » Gastos

timeAgreementConsumption.expenses[n]

Propiedad Tipo Tamaño Obligatorio Descripción
id int  1   Campo identificador único del gasto.
type string 128 Descripción del tipo de gasto relacionado con el registro.
serviceReport string  128   Número del informe de servicio emitido que contiene el gasto. Solo lectura.
createdBy person  128 Datos de la persona que registró el gasto. ver documentación
createdByTeam team   128   Datos del equipo de la persona que registró el gasto. ver documentación
date

datetime

UTC

   ✓ Fecha de creación del gasto. Debe ser menor o igual a la fecha actual. La fecha debe estar en formato UTC*.
quantity int Cantidad del gasto. *Obligatorio cuando no se informe el campo value.
value decimal  18,2  *

Valor en moneda registrado. *Obligatorio cuando no se informe el campo quantity.

Persona

timeAgreementConsumption.timeAppointments[n].createdBy

timeAgreementConsumption.expenses[n].createdBy

timeAgreementConsumption.clients[n].organization

Propiedad Tipo Tamaño Obligatorio Descripción
id string 64 Id (Cod. ref.) de la organización (Solo lectura).
businessName string 128   Nombre de la organización (Solo lectura).
email string 128   Correo electrónico principal de la organización (Solo lectura).
phone string 128   Teléfono principal de la organización (Solo lectura).
personType int 1   Tipo de persona: Persona = 1, Empresa = 2, Departamento = 4  (Solo lectura).
profileType int 1   Perfil de la persona: Agente = 1, Cliente = 2, Agente y Cliente = 3  (Solo lectura).

Equipo

timeAgreementConsumption.timeAppointments[n].createdByTeam
timeAgreementConsumption.expenses[n].createdByTeam

Propiedad Tipo Tamaño Obligatorio Descripción
id int   ✓   Id (Cod. ref.) del equipo (Solo lectura).
name string  128    Nombre del equipo (Solo lectura).


Trabajando con los datos

Para acceder a los datos es necesario que previamente se genere una clave para la API.

Para generar una clave para la API (token), accede a Movidesk, ve a Configuraciones / Cuenta / Parámetros y en la pestaña de entorno haz clic en el botón "Generar nueva clave" si aún no tienes una creada.
Podrás repetir esta operación siempre que quieras generar una nueva clave de acceso, pero recuerda que al generar una nueva clave, todos los programas que utilicen la clave antigua dejarán de funcionar.

Todo el flujo de datos (Visualización) debe tener el formato JSON como se muestra en el ejemplo a continuación:

{
"id": 1,
"name": "contrato",
"baseAmount": 0,
"exceededHourAmount": 0,
"renewalDay": 5,
"contractedHours": 30,
"differentiateHoursFranchise": false,
"differentiateHoursConsumption": false,
"period": "2018-12-01T00:00:00",
"consumedHours": 1,
"discount": null,
"discountType": null,
"timeAppointments": [
{
"id": 222,
"activity": "Actividad",
"date": "2018-12-19T00:00:00",
"periodStart": "10:41:00",
"periodEnd": "11:41:00",
"workTime": "01:00:00",
"workTypeName": "Extra",
"createdBy": {
"id": "571AE126-101B-43C7",
"personType": 1,
"profileType": 3,
"businessName": "Luiz",
"email": "email@movidesk.com",
"phone": "47983232821",
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
},
"createdByTeam": {
"id": 1755,
"name": "Nombre"
},
"ticketNumber": "98868",
"actionNumber": 83
}
],
"expenses": [
{
"id": 74,
"type": "tipo",
"serviceReport": "0",
"createdBy": {
"id": "571AE126-101B-43C7",
"personType": 1,
"profileType": 3,
"businessName": "Tatiana ",
"email": "andre.vargas@movidesk.com",
"phone": "47-84211821",
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
},
"createdByTeam": null,
"date": "2018-12-18T00:00:00",
"quantity": 14,
"value": 70
}
],
"clients": [
{
"id": "123",
"personType": 2,
"profileType": 2,
"businessName": "Maria",
"email": maria@gmail.com,
"phone": 48996888222,
"isDeleted": false,
"organization": null,
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
},
  {
"id": "312",
"personType": 2,
"profileType": 2,
"businessName": "João",
"email": joao@gmail.com,
"phone": 48996338222,
"isDeleted": false,
"organization": null,
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
}
]
}

Obteniendo datos

Método GET

Obteniendo un único contrato de horas

GET: /timeAgreementConsumption
Parámetros: name, token

Ejemplo:

Obteniendo el contrato con el id 1

GET: https://api.movidesk.com/public/v1/timeAgreementConsumption?token=448f8647-50cb-47e2-995c-b2bbe474486a&name&startPeriod=periodoinicial&endPeriod=periodofinal

Respuesta:

  { 
    "id": 1,
"name": "contrato",
"baseAmount": 0,
"exceededHourAmount": 0,
"renewalDay": 5,
"contractedHours": 30,
... Otras columnas en el formato del diseño anterior }

¿Te ha útil este artículo?
Vistos recientemente