API do Movidesk - Contrato de horas - Consumo de horas
14 min
Criado por Andre Azevedo Vargas em 22/01/2019 11:01
Atualizado por Thiago Tamanini em 28/07/2022 11:44
Importante: Nossas API's possuem um limite de 10 requisições por minuto para garantir um comportamento saudável no seu uso. Caso você tenha um cenário específico que precise aumentar o uso, entre em contato com o nosso time de atendimento para análise de viabilidade. Saiba mais sobre horários e limites das API's
https://api.movidesk.com/public/v1

Consumo de contrato de horas

  URL:    /timeAgreementConsumption
  Métodos: GET 

Layout

timeAgreementConsumption

Propriedade Tipo Tamanho Obrigatório Descrição
id string 64   Número do consumo de contrato de horas (somente leitura). Esse ID corresponde ao registro de fechamento do período. Em períodos abertos, o ID retornado é zero, pois o fechamento ainda não foi gerado
name string 128 Nome do contrato de horas
startPeriod DateTime 19  Início do período (formato 2019-10-01T00:00:00). Propriedade referente ao campo "period", utilizada apenas como filtro para buscar mais de um período
endPeriod DateTime 19   Fim do período. Propriedade referente ao campo "period", utilizada apenas como filtro para buscar mais de um período
baseAmount decimal 18,2    Valor base do contrato
exceededHourAmount decimal     Valor total de horas excedentes
renewalDay int 2   Dia de renovação do contrato de horas
contractedHours int     Horas contratadas
differentiateHoursFranchise bool     Informa se diferencia horas da franquia por atividade
differentiateHoursConsumption bool     Usada para diferenciar franquia de horas e valores por atividade e tipos de hora
period time     Período do apontamento de horas.
consumedHours double     Horas consumidas no contrato de horas. Este valor é exibido somente quando o período está fechado
discount decimal  18,2   Desconto no contrato de horas
discountType int   Percent = 0, Curency =1
timeAppointments appointments     Lista com os apontamentos de horas do contrato de horas. ver documentação
expenses expenses     Lista com as despesas do contrato de horas. ver documentação
clients person       Lista com os clientes do contrato de horas. ver documentação

Consumo de contrato de horas > Clientes

timeAgreementConsumption.client[n]

Propriedade Tipo Tamanho Obrigatório Descrição
id string 64 Id (Cod. ref.) da empresa, departamento ou pessoa relacionado como cliente do ticket (Somente leitura).
businessName string 128   Nome do cliente (Somente leitura).
email string 128   E-mail principal do cliente (Somente leitura).
phone string 128   Telefone principal do cliente (Somente leitura).
personType int 1 ✓  Pessoa = 1, Empresa = 2, Departamento = 4  (Somente leitura).
profileType int 1 ✓  Agente = 1, Cliente = 2, Agente e Cliente = 3  (Somente leitura).
isDeleted bool     Verdadeiro se o cliente foi deletado (Somente leitura).
organization person     Organização do cliente (Somente leitura). ver documentação

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

Propriedade Tipo Tamanho Obrigatório Descrição
id int    * Id (Código) do apontamento (Somente leitura). *Deve ser informado quando necessário alterar o apontamento já existente.
activity string 128 Deve ser uma atividade cadastrada previamente no sistema.
date datetime   Deve conter a data com as horas zeradas Ex: 2016-08-24T00:00:00.
periodStart time   * Período inicial do apontamento. Ex: 08:00:00. *Obrigatório quando determinado via parametrização.
periodEnd time   * Período final do apontamento. Ex: 12:00:00. *Obrigatório quando determinado via parametrização.
workTime time    * Tempo total do apontamento. Ex: 04:00:00. *Obrigatório quando determinado via parametrização.
workTypeName string   Tipo do horário apontado.
createdBy person    ✓ Dados da pessoa que realizou o apontamento. ver documentação
createdByTeam team   * Dados da equipe da pessoa que apontou a despesa. ver documentação

Consumo de contrato de horas » Despesas

timeAgreementConsumption.expenses[n]

Propriedade Tipo Tamanho Obrigatório Descrição
id int  1   Campo Identificador único da Despesa.
type string 128 Descrição do Tipo de Despesa relacionado ao apontamento.
serviceReport string  128   Número do Relatório de Serviço emitido contendo a despesa. Somente Leitura.
createdBy person  128 Dados da pessoa que realizou o apontamento da despesa. ver documentação
createdByTeam team   128   Dados da equipe da pessoa que apontou a despesa. ver documentação
date

datetime

UTC

   ✓ Data de criação da pessoa. Deve ser menor ou igual a data atual. A data informada deve estar no formato UTC*.
quantity int Quantidade de apontamento. *Obrigatório quando não informado o campo value.
value decimal  18,2  *

Valor em moeda apontado. *Obrigatório quando não informado o campo quantity.

Person

timeAgreementConsumption.timeAppointments[n].createdBy

timeAgreementConsumption.expenses[n].createdBy

timeAgreementConsumption.clients[n].organization

Propriedade Tipo Tamanho Obrigatório Descrição
id string 64 Id (Cod. ref.) da organização (Somente leitura).
businessName string 128   Nome da organização (Somente leitura).
email string 128   E-mail principal da organização (Somente leitura).
phone string 128   Telefone principal da organização (Somente leitura).
personType int 1   Tipo da pessoa: Pessoa = 1, Empresa = 2, Departamento = 4  (Somente leitura).
profileType int 1   Perfil da pessoa: Agente = 1, Cliente = 2, Agente e Cliente = 3  (Somente leitura).

Team

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

Propriedade Tipo Tamanho Obrigatório Descrição
id int   ✓   Id (Cod. ref.) do time (Somente leitura).
name string  128    Nome do time (Somente leitura).


Trabalhando com os dados

Para ter acesso aos dados é necessário que previamente seja gerada uma chave para a API

Para gerar uma chave para a API (token), acesse ao Movidesk, vá em Configurações / Conta / Parâmetros e na guia ambiente clique no botão "Gerar nova chave" caso ainda não tenha uma criada.
Você poderá repetir essa operação sempre que quiser gerar uma nova chave de acesso, mas lembre-se que ao gerar uma nova chave, todos os programas que utilizarem a chave antiga irão parar de funcionar.

Todo o fluxo de dados (Visualização) devem possuir o formato JSON conforme exemplo abaixo:

{
"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": "Atividade",
"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": "Nome"
},
"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
}
]
}

Obtendo dados

Método GET

Obtendo um único contrato de horas

GET: /timeAgreementConsumption
Parâmetros: name, token

Exemplo:

Obtendo o contrato com o id 1

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

Retorno:

  { 
    "id": 1,
"name": "contrato",
"baseAmount": 0,
"exceededHourAmount": 0,
"renewalDay": 5,
"contractedHours": 30,
... Demais colunas no formato do layout acima }

Obtendo uma lista de contratos de horas

GET: /timeAgreementConsumption
Parametros: token, $select

Exemplo:

Obtendo uma lista de contratos de horas(é obrigatório o uso da cláusula $select)

GET: https://api.movidesk.com/public/v1/timeAgreementConsumption?token=52ee6ca5-8639-422b-bafe-470013c11176&$select=name,renewalDay

Retorno:

[
{
"name": "contrato",
 "renewalDay": "5"
},
{
"name": "contrato2",
"renewalDay": "10" 
}
... Demais itens da lista
]

Obtendo os contratos de horas com filtros

GET: /timeAgreementConsumption
Parâmetros: token, $select

Para permitir e simplificar consultas com filtros, a API utiliza o protocolo aberto OData. Os filtros possíveis são:
• $filter: a expressão especificada com esse filtro é avaliada para cada item do retorno da consulta e somente os itens em que o resultado da expressão for verdadeiro serão incluídos no retorno final;
• $orderby: permite que os itens do retorno da consulta sejam ordenados de forma ascendente (asc) ou descendente (desc). Se não for especificado asc ou desc, o padrão será asc;
• $top: permite especificar o número de itens que devem ser incluídos no retorno da consulta;
• $skip: permite especificar a quantidade de itens que devem ser ignorados e não incluídos no retorno da consulta;
• $select: permite especificar propriedades especificas dos itens que devem ser preenchidas no retorno da consulta;
• $expand: permite expandir as coleções filhas dos itens consultados.

Exemplos:

Obtendo o nome e o dia de renovação dos contratos de horas que possuam o número de horas contratadas maior do que 30:

GET: https://api.movidesk.com/public/v1/timeAgreementConsumption?token=52ee6ca5-8639-422b-bafe-470013c11176&$select=name,renewalDay&$filter=contractedHours gt 30

Retorno:

[
{
"name": "contrato3",
 "renewalDay": "9"
},
{
"name": "contrato5",
"renewalDay": "11" 
}
]

Obtendo o id, nome e dia de renovação dos contratos de horas que possuam o número de horas contratadas maior do que 30 e ordenados de forma descendente em relação ao nome:

GET: https://api.movidesk.com/public/v1/timeAgreementConsumption?token=52ee6ca5-8639-422b-bafe-470013c11176&$select=id,name,renewalDay&$filter=contractedHours gt 30&$orderby=id desc

Retorno:
[ 
  {
"id": "29",
"name": "contrato3",
"renewalDay": "9"
},
{
"id": "20",
"name": "contrato5",
"renewalDay": "11"
}, ... Demais itens da lista que possuam as horas contratadas maior do que 30 e ordenados de forma descendente em relação ao id ]

 

Este artigo foi útil para você?
Últimos artigos visitados